uploaded hw

This commit is contained in:
Chris Nutter committed 2020-12-04 20:02:43 -08:00
1 parent 5a1698b3cc
commit 6e02fc4e7f
41 files changed
+1328

No files matched your search

Binary file not shown.
+164
View File
@@ -0,0 +1,164 @@
\documentclass[12pt]{article}
\usepackage[a4paper, total={6in, 10in}]{geometry}
\usepackage{graphicx}
\usepackage{abstract}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{indentfirst}
\usepackage{amssymb}
\usepackage{titling}
\usepackage{mwe}
\usepackage{fancyhdr}
\graphicspath{ {./images/} }
\renewcommand{\abstractname}{\small{\begin{center}Timestamps\end{center}\vspace{-4ex}}}
\setlength{\parskip}{3mm} % Add space between paragraphs.
\setlength{\parindent}{0.5in}
\setlength{\droptitle}{-35pt}
\linespread{1.2}
\fancypagestyle{plain}{
\vspace{3ex}
\fancyhead[L]{October 10th, 2020}
\renewcommand{\headrulewidth}{0.5pt}
}
\pretitle{\begin{center} \LARGE \textbf}
\posttitle{\end{center} \vspace{-3ex}}
\preauthor{\begin{center} \large}
\postauthor{\end{center} \vspace{-3ex}}
\predate{\begin{center} \small \emph}
\postdate{\end{center} \vspace{-3ex}}
\title{Chapter 4 \& 5 Summary}
\author{Chris Nutter\thanks{Dedicated to @QuesoGrande a.k.a. Jared D.}}
\date{CPSC 362}
% --> Here we go, satellite radio, y'all get hit with a...
\begin{document}
\maketitle
\begin{center} \vspace{-4ex}|\vspace{-3ex} \end{center}
\noindent\abstractname
\begin{center}
\normalsize\textbf{10/08/2020 - 01:58:55 PM}\\
Figures of each model are at the end of the document.
\end{center}
\normalsize
\tableofcontents
\vspace{4ex}
% --> First Chapter
\section{Chapter 4}
\indent
\emph{Prescriptive Process Model} is about constructing the order of software development where each task is set in order with specified guidelines.
\emph{The Waterfall Model} sets a sequential method to development with no traversal to earlier or later stages (similar to a waterfall that goes straight down and not back up again).
\emph{Incremental Process Model} relies on both linear and parallel processing directions to be applied; linear being the sequence of events while jumping around through increments \#n.
\emph{Evolutionary Process Model} is very iterative which constantly improves upon over time before reaching the final product. It keeps adding to the itself which makes the project bigger and closer to the final product.
\emph{Prototyping} is an important step to test your project and practically mandatory for releasing a product. Prototyping is often sent out to testers as a way of getting accurate reception of a product without in-house teams to influence judgement. For example a team creates a math game for 1st graders. The team will give the product to 1st graders to see how they like the product.
\emph{The Spiral Model} is a combination of prototyping with the Waterfall Model method which is very useful for fast development of versions for teams that are stuck in a time constraint.
\emph{Concurrent Model or sometimes concurrent engineering} is the repetitive nature of any process model mentioned.
\emph{Specialized Process Models} take one or more attributes of other models into one model.
\emph{Component-Based Development} is a special model that has many Spiral Model features with pre-packaged software components. There are 5 stages to the component-based development model.
\begin{enumerate}
\item Available component-based products are researched and evaluated for
the application domain in question.
\item Component integration issues are considered.
\item A software architecture is designed to accommodate the components.
\item Components are integrated into the architecture.
\item Comprehensive testing is conducted to ensure proper functionality.
\end{enumerate}
\emph{Aspect-Oriented Software Development} is the process and methodological way of defining, specifying, designing, and constructing \emph{aspects}.
\emph{Aspects} are ways of sub-routing and localizing the expression of crosscutting concerns.
\emph{Concerns} are the required parameters of a customer.
Putting it all together, \emph{crosscutting concerns} are concerns that are cut across various functions, features, and information bases.
\emph{Unified Process} recognises importance with customer communication towards the end goal.
\begin{enumerate}
\item \emph{Inception} or communication and planning
\item \emph{Elaboration} or planning and modelling
\item \emph{Construction}
\item \emph{Transition} or construction to deployment
\item \emph{Production} or software implement
\end{enumerate}
\emph{Personal Software Process} is similar to unified process but for personal development.
\begin{enumerate}
\item \emph{Planning} requires isolation of requirements
\item \emph{High-level design} requires component construction and design
\item \emph{High-level design review} requires verification methods to find error
\item \emph{Development} is for design refining.
\item \emph{Postmortem} is the collected measure of each stage to analyse effectiveness.
\end{enumerate}
\emph{Team Software Process} is similar to PSP but requires a further team-based curriculum to tackle. Various team building suggestions include moral boosting seminars, planning goals accordingly, accelerate process by coaching, providing guidance in a respectable manner, and facilitate university teaching.
\section{Chapter 5}
\indent
\emph{Agility} is very important and widely spread across software engineering. Ivar Jacobson says "Everyone is agile. An agile team is a nimble team able to appropriately respond to changes." Agility involves the philosophy of team structures and team attitudes being used among the members including technicians, programmers, design, everyone. Agility should be applied to any software process but it is essential to understand how agility is adapted to various different processes' tasks. Agile development processes lowers the development cost compared to conventional software processes and also increases development schedule processes.\\
\indent
Agile software process is mentioned as the manner of addressing a number of assumption about the majority of software projects. Agility principles are important for understanding and working towards and agile software process.
\begin{enumerate}
\item Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
\item Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
\item Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
\item Business people and developers must work together daily throughout the project.
\item Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
\item The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
\item Working software is the primary measure of progress.
\item Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
\item Continuous attention to technical excellence and good design enhances agility.
\item Simplicity—the art of maximizing the amount of work not done—is essential.
\item The best architectures, requirements, and designs emerge from self organizing teams.
\item At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
\end{enumerate}
The agile software process is very important to a proper work ethic that is fast and efficient for all parties.\\
\indent
\emph{The XP Process} is the object-oriented approach as a preferred development paradigm. It is labeled as the Extreme Programming for a reason. Planning the process requires listening to the people and technical members. Design which requires rigorous principles to follow by which are \textbf{keeping it simple}. Coding which is expanitory which is preliminary design implemented over time. It's not immediately ported over and needs tweaking and subtle improvements/adjustments over time. Lastly, testing which is crucial to a healthy design. Many errors will be made so adjusting and finding acceptable levels is appropriate at this step.
\emph{Scrum} is a development method that are consistent with the agile "manifesto" and are framed into 5 basic activities.
\begin{enumerate}
\item Requirements
\item Analysis
\item Design
\item Evolution
\item Delivery.
\end{enumerate}
Each framework allocates different important step to an appropriate manifesto.
\emph{Agile Unified Process} adopts a "serial in the large" and "iterative in the small" philosophy. Adopting the previous iteration's activities and working upon them in this one is essential and allows for updated output.\\
\indent
A proper agile philosophy permits a proper engineering ethic for everyone. These tools help facilitate a proper agile working habit for all members which is important for succeeding in the engineering field. Ever since the dawn of humans, we have been all been collaborating using different strengths to solve the same problems.
\newpage
\section{Images}
\begin{figure}[hbtp]
\centering
\fbox{\includegraphics[width=13.8cm]{waterfall.png}}
\caption{Waterfall Model}
\end{figure}
\begin{figure}[hbtp]
\centering
\fbox{\includegraphics[width=13.8cm]{inc.png}}
\caption{Incremental Model}
\end{figure}
\begin{figure}[hbtp]
\centering
\fbox{\includegraphics[width=6.8cm]{proto.png}}
\caption{Prototyping}
\end{figure}
\begin{figure}[hbtp]
\centering
\fbox{\includegraphics[width=13.8cm]{spiral.png}}
\caption{Spiral Model}
\end{figure}
\begin{figure}[hbtp]
\centering
\fbox{\includegraphics[width=13.8cm]{unified.png}}
\caption{Unified Model}
\end{figure}
\end{document}
Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.
+76
View File
@@ -0,0 +1,76 @@
\documentclass[12pt]{article}
\usepackage[a4paper, total={6in, 10in}]{geometry}
\usepackage{graphicx}
\usepackage{abstract}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{indentfirst}
\usepackage{amssymb}
\usepackage{titling}
\usepackage{mwe}
\usepackage{fancyhdr}
\usepackage{setspace}
\graphicspath{ {./images/} }
\renewcommand{\abstractname}{\small{\begin{center}Timestamps\end{center}\vspace{-4ex}}}
\setlength{\parskip}{3mm} % Add space between paragraphs.
\setlength{\parindent}{0.5in}
\setlength{\droptitle}{-35pt}
\onehalfspacing
\fancypagestyle{plain}{
\vspace{3ex}
\fancyhead[L]{November 14th, 2020}
\renewcommand{\headrulewidth}{0.5pt}
}
\pretitle{\begin{center} \LARGE \textbf}
\posttitle{\end{center} \vspace{-3ex}}
\preauthor{\begin{center} \large}
\postauthor{\end{center} \vspace{-3ex}}
\predate{\begin{center} \small \emph}
\postdate{\end{center} \vspace{-3ex}}
\title{Chapter 8 \& 9 Summary}
\author{Chris Nutter\thanks{Dedicated to @QuesoGrande a.k.a. Jared D.}}
\date{CPSC 315}
% --> Here we go, satellite radio, y'all get hit with a...
\begin{document}
\maketitle
%\begin{center} \vspace{-4ex}|\vspace{-3ex} \end{center}
\noindent\abstractname
\begin{center}
\normalsize\textbf{10/08/2020 - 01:58:55 PM}\\
Figures of each model are at the end of the document.
\end{center}
\normalsize
\tableofcontents
\vspace{4ex}
% --> First Chapter
\section{Chapter 8 Summary}
\indent Having software requirements is a main staple for a good engineering ethic. If you do not have a proper set of requirements for engineers to implement, there is no purpose or drive to products and they are created on a whim (which isn't necessarily bad but it isn't proper). Requirements are designed to be showcased before starting and demonstrate a foundation for a project.
\end{document}
% Possibly Important LaTeX Functions %
% ================================== %
% \begin{figure}[hbtp]
% \centering
% \fbox{\includegraphics[width=13.8cm]{big_o.png}}
% \caption{Big(O) Notation}
% \end{figure}
% \begin{lstlisting}[language=Python]
% print('hello world')
% \end{lstlisting}
+53
View File
@@ -0,0 +1,53 @@
Chris Nutter
Psuedocode
---------------------------------------------------------------------------------
At Startup:
The program loads to a login screen or it auto logins.
N U M B E R L A N D text appears at top.
Colorful program appears.
The program will show a picture and 5 buttons, "Time Attack", "Quiz", "Practice Mode", "Calculator", and "Exit".
Time Attack
Once "Time Attack" is clicked a button is prompted to say "Ready to play?" and once clicked the game will start.
The game generates random algorithmic math to be displayed in stdout.
A countdown timer will also begin.
The user will fill out answers at their pace.
Once answered, it will immediately give response whether correct or incorrect.
Timer:
If timer goes out, stdin will stop and it will be left with "Game Over" text.
A "+" button will appear to let the user increase time if desired to encourage critical thinking.
The game keeps going until timer goes out or if stopped.
Practice Mode
This will prompt the user with "Ready to play?" and once clicked the game will start.
This is almost verbatim quiz but will NOT UPDATE POINTS OR HISTORY.
Quiz
Before playing there is an extra button to display previous ranked games called "History"
Almost a carbon copy of "Practice Mode" except that there is a max time that cannot change.
There also is no immediate feedback.
Once over, the game will give a report of what was correct and incorrect.
Quiz WILL UPDATE POINTS ALGORITHM AND UPDATE HISTORY.
History
Will give a PDF of all your previous games and date.
Points
Not a button.
Text will appear at the top that gives the total rank in an algorithmic way.
No more than 10 score. No smaller than 0.
Calculator
Will create a calculator prompt at time but will auto-close during quiz.
Buttons 0-9 and mathmatical symbols.
Exit
Returns 0 and ends program
---------------------------------------------------------------------------------
This is all I can think of at the moment. Login will use mySQL and is still being considered.
+79
View File
@@ -0,0 +1,79 @@
get userID();
get userAge();
displayUserInfo();
getUserInputGameMode();
1.timeMode()
2.quizMode()
3.practiceMode()
4.calculatorMode()
5.highScore()
Case1:
displayTimeMode();
userInputTimer();
set time=userInputTimer();
if (time >0)
{
A = randomA();
B = randomB();
answerC = A+B;
displayA();
displayB();
D= randomD();
if D=== C then randomD();
else displayD();
If user click on answerC then add ++ correctCounter;
else set A=randomA(); set B=randomA();
}
</font></font></font><font color="#000000"> else save correctCounter to log;
print &ldquo; Retry?&rdquo; or &ldquo; exit&rdquo;
if user click retry, get userInputTimer();
if user click exit, return to main menu;
case2:
question=setNumberOfQuestion();
setArrayASize = question;
setArrayBSize= question;
setArrayCsize= question;
for( i =0; i&lt; question;i++)
{
arrayA[i]= random();
arrayB[i] = random();
arrayC[i]=arrayA[i]+arrayB[i]
}
for(i=0;i&lt;question;i++)
{
print arrayA[i] &ldquo; + &ldquo; print arrayB[i] &ldquo; = &ldquo;
arrayD[i]= userInput();
if (arrayC[i]= arrayD[i] )
correct++;
else
wrong++;
}
display correct and wrong to screen;
for(i=0;i&lt;question;i++)
{
display arrayA[i]&ldquo;+&rdquo; ArrayB[i] &ldquo;= &ldquo; arrayC[i] &ldquo;your Answer&rdquo; arrayD[i];
}
ask user to continue quiz or exit to main screen
case3:
if (continue = yes)
{
A= randomNumber();
B= randomNumber();
C= A+B;
display A &ldquo;+ &ldquo; B &ldquo;=&ldquo; then get userInput();
compare to C to userInput();
get userInputContinue();
}
else
exit to main menu
case4:
display calculator
case5:
DisplayScore();
+91
View File
@@ -0,0 +1,91 @@
{\rtf1\ansi\ansicpg1252\cocoartf2513
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 starting screen:\
get userID();\
get userAge();\
displayUserInfo();\
getUserInputGameMode();\
1.timeMode()\
2.quizMode()\
3.practiceMode()\
4.calculatorMode()\
5.highScore()\
Case1:\
displayTimeMode();\
userInputTimer();\
set time=userInputTimer();\
if (time >0)\
\{\
A = randomA();\
B = randomB();\
answerC = A+B;\
displayA();\
displayB();\
D= randomD();\
if D=== C then randomD();\
else displayD();\
If user click on answerC then add ++ correctCounter;\
else set A=randomA(); set B=randomA(); \
\}\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 else save correctCounter to log;\
print \'93 Retry?\'94 or \'93 exit\'94\
if user click retry, get userInputTimer();\
if user click exit, return to main menu;\
case2:\
question=setNumberOfQuestion();\
setArrayASize = question;\
setArrayBSize= question;\
setArrayCsize= question;\
for( i =0; i< question;i++)\
\{\
arrayA[i]= random();\
arrayB[i] = random();\
arrayC[i]=arrayA[i]+arrayB[i]\
\
\}\
for(i=0;i<question;i++)\
\{\
print arrayA[i] \'93 + \'93 print arrayB[i] \'93 = \'93\
arrayD[i]= userInput(); \
if (arrayC[i]= arrayD[i] )\
correct++;\
else\
wrong++; \
\}\
\
display correct and wrong to screen;\
for(i=0;i<question;i++)\
\{\
display arrayA[i]\'93+\'94 ArrayB[i] \'93= \'93 arrayC[i] \'93your Answer\'94 arrayD[i];\
\
\}\
ask user to continue quiz or exit to main screen\
case3:\
\
if (continue = yes)\
\{ \
A= randomNumber();\
B= randomNumber();\
C= A+B;\
display A \'93+ \'93 B \'93=\'93 then get userInput();\
compare to C to userInput();\
get userInputContinue();\
\} \
else \
exit to main menu\
\
case4:\
display calculator\
\
case5:\
DisplayScore();\
\
\
\
}
Binary file not shown.
Binary file not shown.
+223
View File
@@ -0,0 +1,223 @@
\documentclass[12pt]{article}
\usepackage[a4paper, total={6in, 10in}]{geometry}
\usepackage{verbatim}
% --> Here we go, satellite radio, y'all get hit with a...
\title{Group \#9 | Pseudocode}
\author{Chris Nutter\and Michael Nguyen\and Loc Nguyen}
\date
\begin{document}
\maketitle
\section{main()}
\begin{verbatim}
***************************************************
-> user opened exec
display:
buttons for gamemodes
_time, _rank, _practice, _calc
text for points
title text
text for button labels
hover over options for instructions (??)
---
while (user not exit) {
CaseA = time_mode()
CaseB = rank_mode()
CaseC = practice_mode()
CaseD = calculator()
if (user picks "time_mode()")
display time_mode()
if (user picks "rank_mode")
display rank_mode()
if (user picks "practice_mode")
display practice_mode()
if (user picks "calculator"
display calculator()
}
close program
***************************************************
\end{verbatim}
\newpage
\section{time\_mode() + \_start$\rightarrow$time\_mode()}
\begin{verbatim}
***************************************************
-> user clicked _time button
display:
buttons for _start and _back
text for instructions & "ready to start"
while (user not _back) {
if (user picks "_start")
display:
_start->time_mode() // starting screen for time_mode()
}
-> user clicked _start->time_mode()
display:
one question
input answer
button for submit
variation 1:
print question
while (time is not 0) {
while (user inputs answer) {
if (answer correct)
if (user has answered all questions)
print congrats!
return to main()
else
print nice! next problem...
repeat--;
else
print try again... clock is ticking
}
}
variation 2:
print ALL questions
if (user does not input all answers)
print "you didn't answer all questions"
if (user is done)
check answers
if (incorrect answers)
print incorrect answers
else
print congrats you got all them correct!
return to main()
***************************************************
\end{verbatim}
\section{quiz\_mode() + \_start\_quiz\_mode()}
\begin{verbatim}
***************************************************
--> user clicked quiz_mode()
display:
buttons for _start and _back AND _print_sheet
text for instructions & "ready to start" & print pdf sheet
if (user print pdf sheet)
if (user hasn't taken test)
print u have not taken test
else
pdf testsheet.pdf
while (user not _back) {
if (user picks _start)
display:
_start->quiz_mode()
}
--> user clicked _start->quiz_mode()
display:
all questions in a grid form
text with the problems
input for the answers
if (user does not input all answers)
print "you didn't answer all questions"
if (user is done)
check for answers
if (incorrect answers)
print incorrect answers
else
print congrats!
save answers to log
update rank points
return to main()
***************************************************
\end{verbatim}
\newpage
\section{practice\_mode() + \_start\_practice\_mode()}
\begin{verbatim}
***************************************************
--> user clicked practice_mode()
display:
buttons for _start and _back
text for instructions & "ready to start"
while (user not _back) {
if (user picks _start)
display:
_start->practice_mode()
}
--> user clicked _start->practice_mode()
display:
all questions in a grid form
text with the problems
input for the answers
if (user does not input all answers)
print "you didn't answer all questions"
if (user is done)
check for answers
if (incorrect answers)
print incorrect answers
else
print congrats!
return to main()
***************************************************
\end{verbatim}
\newpage
\section{calculator()}
\begin{verbatim}
***************************************************
--> user clicked calculator()
display:
new window w/ either...
windows: built in calculator
mac: built in calculator
linux: made from scratch calculator (so we actually code something)
while (user did not close calc) {
do anything user wants with buttons on calculator
}
close calculator
***************************************************
\end{verbatim}
\newpage
\end{document}