On this page:
✔️ About the Final Project
✔️ Submitting a Proposal
✔️ Final Project Requirements
✔️ Submitting the Final Project
About the Final Project
It’s never too early to start thinking about a final project! Final projects are a completely open-ended opportunity for you to demonstrate your deepest understanding of whatever topics you’d like. Final projects are due Friday, July 30th @ 8:00pm.
- You may work individually or in groups of up to 4.
- The more people in the group, the higher the expectations for the final product.
Proposing a Final Project
While submitting a proposal is not required, it is strongly recommended as it will allow you to confirm the scope of your project, ensure you’re on track to meeting all final project requirements (outlined below), will allow you to received feedback and ideas, and will force you to start thinking about the project early rather than the week it’s due (which wouldn’t be enough time to finish!).
To submit a proposal, please make a post on Piazza with answers to the following questions:
- Who are you working with, if anyone (or are you looking for groupmates)?
- Brief description of your project (elevator pitch for what it is and how it works)
- What topics will you be demonstrating and how (be specific with how you will use and demonstrate your chosen topics)
- Milestones & Timeline (what major tasks will you accomplish by when)
Your post can be private if you’d like or public if you’re looking for potential groupmates or don’t mind sharing ideas.
Final Project Requirements
- Language
- Must be written in standard C++.
- Scope
- Scope of project must be significantly broader than that of an assigned lab.
- Code Compilation
- Must compile and execute without any warning or errors.
- Code Execution
- Program must execute completely without crashing.
- Modular/OOP
- Functions and classes must be used appropriately to abstract and divvy-up your code (i.e., must follow OOP principles).
- Applications
- Your final project should use the most appropriate data structures and/or algorithms to complete a task based on a real-world problem/context/scenario and you should explain why said data structure or algorithm is the most appropriate for the task and for the given context/scenario/application.
- Video
- Project should include a video of no more than 10 minutes where you:
- Show how to compile and run your program
- Do a full runthrough of the program, explaining what users can and can’t do and what they should expect as a response from your program
- Walk through your code and explain what data structures and/or algorithms did you choose and why)?
- README
- Project should include a README.txt (or README.md) that answers:
- Purpose overview: What’s the purpose/use case of this project?
- Instructions for use: Describe how the user will interact with your program (is there anything the user shouldn’t do? Tell us!)
- Code overview: An overview of how your program works, including how all of the pieces fit together (use this to explain how your various functions and classes interact with each other)
- Potential bugs: A description of any possible bugs or problems with your program
- Easter Eggs: A description of any extra features you chose to implement, if any
- Group: The names of all group members
- Topic Overview: What course topics does your final project use?
- Video Link: Upload your video to Google Drive and enable link sharing or upload it to Youtube as unlisted or Vimeo as password-protected.
Submitting the Final Project
Final projects will be submitted through Gradescope. If you worked in a group, only one person needs to submit BUT the person submitting must add the groupmates via Gradescope. Zip/Compress all your project files:
- All header (.h) files
- All implementation (.cpp) files
- Your README with a link to your video (make sure I can access it!)