Your final project will be a program of your own design, which will demonstrate your mastery of the concepts learned in this course. This final project will take the place of a final exam, and should be an equivalent amount of effort to 3 weekly labs. You make work in pairs on the project - if you do, I will expect your final project to be significantly more impressive than a solo project, and your final grade for the project will be weighted by your partner's feedback on your efforts. You will demonstrate your projects for me and the rest of the class during our finals period on Friday, December 19th from 2-4pm, and all code and write-ups will be do then.
While you have complete freedom in what kind of application you decide to make, some ideas are below:
- A text-based adventure game, such as Lost Pig.
- A short animation, using the picture module.
- An animated interactive game, using the picture module.
- A card game.
- A significant extension of something we worked on in a lab (game of life, critter, soundwave, etc).
- A program that gives you a recipe based on what ingredients you have (or suggests a song based on what kind of music you want to hear, etc).
Your program will need to use all of the following programming techniques:
- Loops (either for or while)
- Functions
- Strings or Lists
- Exception Handling
Additionally, you will need to use at least 2 of the following 4 techniques:
- Recursion
- Classes and Inheritance
- Searching and Sorting
- Multiprocessing and Synchronization
This week in lieu of a prelab, you will turn in a short proposal for what you plan to do in your project. This will be a two to three paragraph write up of what your project will be, submitted at the beginning of class on Wednesday. You should cover:
- What your program will do.
- If you will work with a partner, and who they are.
- What you think the most significant programming challenges will be in your project.
- Any parts of your project where you are unsure what programming techniques/libraries/etc to use.
- How you will use the required programming techniques in your project.
Before working on the proposal, you should read the
longer project description so you have a clear idea of what is expected of your final project.
I will not accept your final project unless you have submitted a proposal and it has been approved by me. You MUST submit this proposal. If you are working with a partner, the two of you should submit a single proposal.