The final project for this course is worth 30% of your final grade and will allow you to use and demonstrate all of the skills you have developed in this course.
Step 1: Choosing your Project
Your task will be to create a program of your choosing. This program could be a game, a quiz application, a utility application that could help someone accomplish a task, or something else that you are interested in creating. You program may use graphics with the pygame library, or be entirely text-based.
Some ideas to inspire your creativity:
Text Based Games / Programs
Mad math minute
Blackjack / 21
Rock Paper Scissors
Tic-Tac-Toe
Yahtzee
Mastermind
Hangman
Graphic Based Games / Programs
Whack-a-mole
Cookie clicker
Pong
Flappy Bird
Dino Runner (chrome no internet game)
Slither (add extra functionality to the program
you created in the pygame tutorial)
It is expected that you will use Python for your program; if you wish to use another language/platform please speak with me in person ASAP.
BEFORE you begin working on your RST, you must submit a project proposal to indicate what you are planning to do. Submit your project proposal by completing this online form.
Step 2: Design
"Those who fail to plan, plan to fail" (attributed to Benjamin Franklin)
Once your proposal has been approved, you may begin your design.
Consider how to break down your idea into major tasks and sub-tasks. Plan your work so that it can be completed in stages. If you run out of time and cannot complete all the tasks, you will still have a working program with fewer features. START SMALL, GET IT WORKING, THEN ADD MORE! Clearly identify the tasks and stages that you will need to develop your program.
The design must also include a mock up (simulated screenshots) of what you intend the final version of your program to look like when it runs. Plan your user prompts if doing a text-based game or create some images (MS paint, Google Draw) if you wish to tackle something graphical.
You will communicate the design of your program with pseudocode, or IPO charts as needed. Consider what would be the best tool to fully explain how your program should function to a third party. This will give you another way to think through your program BEFORE coding.
Submit your design document (tasks & stages, mock-up, other design techniques) to the dropbox.
This must be submitted to Google Classroom.
Late submissions will only be accepted in handwritten format (i.e. computer access will be removed until the design document is finished.)
Step 3: Coding
Once I have received your design you may begin coding. You should be working each day to advance your program. The GitHub link is posted HERE: you should be able to access it after you submit your design.
You will push your code to GitHub EVERY DAY of the RST so I can see your progress
Your commit messages must include:
A brief explanation of what you accomplished during the class
Explanation of problems encountered or modifications to your design
Step 4: Testing
In addition to testing your game/program thoroughly (preferably as you code it!), you must also have at least ONE classmate try running your program as well.
The program tester must complete this online form as evidence that they tested your program.
Your mark for this section will come from YOU testing a classmate's program. You must test AT LEAST ONE classmate's program for this requirement to be fulfilled.
Step 5: Final Submission
The code that is in your GitHub repository on the last day of regular classes will be considered your submission.
3 Free Questions
Everyone has questions when they are writing software, because it is always not working! I understand. The problem is this is your final project not mine. I know I can code it. So ...
You will get 3 free questions you can ask, that if I can solve the problem it will count as a question. After that for every question I answer your mark will go down 1 partial level.