added new project

This commit is contained in:
Chris Nutter committed 2021-02-24 00:20:22 -08:00
1 parent 6e02fc4e7f
commit 90cfba2c6f
113 files changed
+974 -297

No files matched your search

+1
View File
@@ -0,0 +1 @@
print("hello world")
Binary file not shown.
+62
View File
@@ -0,0 +1,62 @@
\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{abstract}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{indentfirst}
\graphicspath{ {./images/} }
\renewcommand{\abstractname}{\large{Timestamps}}
\setlength{\parindent}{0.5in}
\title{CPSC 361 | Homework \#1 \\(Including Project Details)}
\author{Chris Nutter\thanks{Dedicated to @QuesoGrande a.k.a. Jared D.}}
% --> Here we go, satellite radio, y'all get hit with a...
\begin{document}
\maketitle
\begin{abstract}
\noindent
\begin{center}\textbf{09/09/2020 - 09:36:10 AM}\end{center}
You may want to skip the first section because it is for our group project and does not involve the textbook or python code.\\
\begin{center}\textbf{09/12/2020 - 12:58:05 PM}\end{center}
Sorry if there is weird spacing with the timestamps. I am currently working on fixing this. This timestamp will be deprecated if I fix the issue.\\
\end{abstract}
\tableofcontents
% -->
\section{How the Project Will Work?}
The application will be a very simple interface dedicated towards children to make sure they can follow along easily while retaining the information. Simple math is the goal while also expanding their mathematical knowledge. It'll be fairly straightforward. Multiple choice will be the way to go because it has proven to help decipher knowledge for students in the educational field. We will have a point system to tally up points per student. The more points they have, the better they're doing. The lower the points, the worse they are doing. If a student has 0 points, they are about the level we expect them to be at and we hope for them to be higher overtime. If they are lower than 0, they express issues with the topics at hand. Each problem will also have a time limit and a skip button. The time limit is set so the students don't use calculators and they work on their own. The skip button is there to provide a way to come back to the problem. Each session has a set time limit where all problems will be finished which challenges the student's to work diligently.\par
\begin{center}\line(1,0){250}\end{center}
% -->
\section{Chapter 1 Summary}
In the opening statements, we have a conversation between a software engineer and a game developer. The developer explains that they need to adapt a software engineering mindset towards their games or else they cannot make it out of the field alive. The textbook later explains that since technology is ever expanding, software is very important and that it requires pretty much most engineering products need some sort of software to be able to run. Software today is considered a product and just like packaging meat for a deli, we are creating a product for customers to use and it is very important for us as developers and engineers to make sure the software we deliver follow the guidelines for the industry. Unlike the early days of software engineering, we in the 21st century develop code that is proper and respectable and maintain a level of efficiency and help towards a company.\par
The industry has changed dramatically over the years due to many improvements in hardware (as well as software). Even with major advancements, we are still getting the reverberations of scrutiny towards programmers. The nature of software is ever-changing. It changes fairly often because of how technology advances everyday.\par
WebApps are becoming more and more common because new websites pop up everyday. Before, WebApps were mostly linked hypertext that were very limited. Now it has evolved into a huge set of languages and projects. Many main PC applications are now fully on web without needing desktop clients. This does come with its disadvantages like databases being unreliable security-wise and easy access to intrusions just when loading a website alone. Mobile applications also have improved dramatically over the years. Each application is designed with a small portable screen at hand which is why you rarely see desktop apps ported to mobile (you usually seem them rewritten from the ground up). Cloud computing is now one of the biggest ecosystems in the software engineering space mainly due to its cheaper finance for the end user and its more control over the end user. While cloud computing is useful for many as it does not rely heavily on the end-user, it gives companies more control over the software/information at hand creating a blockage between what information the company is obtaining or not. Cloud computing is the upcoming future for our children whether people want it or not.\par
Product Line Software is defined as 'a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way." [SEI13]. This concept is very important to software engineers because it helps maintain a set of particular needs from both the front-end and back-end of a project. It helps maintain a sense of balance between the two main fields.\par
The main issue with software engineers is time and demand. Are we able to create a project within the deadline to the specifications? Are concepts going to be cut? Who is in charge of the cutting process the people that can code or the people who want you to code? This is the ethical dilemma that mostly all software engineers face in their lifetime and there is no clear ways to solve this problem.
\begin{center}\line(1,0){250}\end{center}
% -->
\section{Python Test Code \& Output}
\begin{center}\includegraphics[width=13.8cm]{python-test.png}\end{center}
I created a python project that outputs hello world with one line in Terminal.
It creates a
\begin{lstlisting}[language=bash]
$ hello.py
\end{lstlisting}
which inputs
\begin{lstlisting}[language=Python]
$ print('hello world')
\end{lstlisting} inserts the code, and executes the script. Since python's hello world is a one-liner. I needed to do something to make it a little cooler.
\end{document}
Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

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}
Binary file not shown.
+53
View File
@@ -0,0 +1,53 @@
\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{abstract}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{indentfirst}
\usepackage{amssymb}
\graphicspath{ {./images/} }
\renewcommand{\abstractname}{\large{Timestamps}}
\setlength{\parindent}{0.5in}
\title{\Large{CPSC 362}\\\LARGE\textbf{{Lecture}}}
\author{Chris Nutter\thanks{Dedicated to @QuesoGrande a.k.a. Jared D.}}
% --> Here we go, satellite radio, y'all get hit with a...
\begin{document}
\maketitle
\begin{abstract}
\noindent
\begin{center}\textbf{09/19/2020 - 09:51:24 AM}\end{center}
She skipped me for the questioning. Hopefully I get marked in class.
\end{abstract}
\tableofcontents
% --> First Chapter
\section{Chapter 2}
\begin{center}\line(1,0){250}\end{center}
% --> Next Chapter
\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}
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

+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.
@@ -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}