The final project must be done in groups of 2 (or 3 with permission).
The project can be anything you'd like to build in C++. You are allowed to use any libraries you like. The only requirement is that you use some of the C++ features taught in the class.
The scale of your project should be about the order of complexity of a smallish game like Tetris (~1000 lines of code? This is not a hard requirement, your project should just be nontrivial.) If you have a group of 3, the project should be a little more complex to compensate.
- Proposal: Due Nov 14, 9PM
- Checkpoint: Schedule a meeting during the week of Nov 25
- Completed project and presentation: Due in class, Dec 5
- Proposal 10%
- Checkpoint 20%
- Project 50%
- Presentation 20%
Write a short proposal (<500 words) describing your project. In particular, describe any libraries or frameworks you plan to use. Talk about what features of C++ you expect to use, and how you plan to structure your project (Does it have a class hierarchy? Is it a series of class templates?). Provide an estimate for the time you expect to spend on different parts of the project, and how you expect the work will be split within your group.
Each group should have one member submit the proposal on canvas (in plain text).
Grading will be based solely on completeness of these requirements. I will provide feedback about your proposal as soon as possible.
Make an appointment to meet with me during the week of Nov 25. We will discuss any issues you may be having with the project so far. If needed, we can discuss any changes you need to make to your plan. The goal of this checkpoint is just to make sure you make some progress by this time, and not leave the project to the last minute.
Grading will be based on whether you have made an appropriate amount of progress.
Before the last class, submit all your code on Canvas. Since there are a variety of OSes and build environments used in the class, there is no requirement that your project build on my machine.
The project will be graded for 70% functionality and correctness, and 30% style. Marks will be deducted if your project is overly simple (hopefully this is not the case based on the proposal and the checkpoint).
Try to build features incrementally! If you fail to finish the entire project, the parts you did finish should be demoable. Otherwise, it will be very hard to grade.
You will demo your project in the last class of the semester. The demo should be fairly short (<5 min). Show off your project, and talk about any interesting parts of the development process. Did you have any really difficult bugs to work out, or any interesting design decisions that you made?
Grading will be based on completeness and functionality of your project.