Final Project
Video Overview
First, watch this required
Final Project Video Overview
(which is part of
prep13 and due by Mon 24-Nov).
Then carefully read the rest of this document.
Overview
This project is an opportunity to demonstrate your ability to apply your 15-112 knowledge in a creative and open-ended way. There are a few firm constraints, including these: You must create an interactive app using CPCS cmu_graphics, you must adhere to MVC, you may not use any non-builtin modules, and the project must exist and run in a single CS Academy Creative Task file. It should also be a project that you can complete in 10-12 productive hours. Within these constraints, however, you may create anything you wish. Be creative and have fun!
Due Dates
| Prep 13: Project Writeup (this doc) and Project Video Overview |
Mon 24-Nov |
| Checkpoint1: Project description |
Tue 25-Nov by 8pm |
| Checkpoint2: Progress update |
Tue 2-Dec by 8pm |
| Project deadline |
Fri 5-Dec at 8pm ET |
| Grace days may not be used on any part of the project. We will not grade anything submitted after the deadlines above. |
Notes:
- Be sure to read this entire write-up before starting!
- We may add or clarify some details here, in which case we will announce
them via Ed.
- All your code writing and editing for this project must be done exclusively
in CS Academy, in the specific location listed below.
- All syllabus policies apply, including but not limited to those in the 112 Homework Collaboration Policy (No-copying rule, 5-minute rule, AI policies, etc) and the Academic Integrity section, except where superseded below (e.g. you must cite any collaboration or external help).
Requirements
Expected Effort:
Everyone is expected to invest 10-12 hours into the project, so choose a project appropriate for that range.
While we may provide some few bonus points for especially strong projects,
these will be modest and only in a few exceptional cases. Thus, we
strongly recommend that you stay near the required 10-12 hours of effort
on this project.
To be very explicit, you must write new code representing 10-12 hours of your effort for this specific project. You may re-use or adapt some code if cited (for example, the 2d grid code from the notes, etc.) but your project should be something that is not very similar to anything you have created before. For instance, a lightly-modified version of Tetris or Snake will not pass, nor would a project whose code is mostly based off of a prior project of yours (or of someone else).
Evaluation Criteria:
- User Experience
Your project will be graded chiefly on the quality of the
user experience. This means your project must be richly interactive. That being said, you should resist the urge to add a bunch
of superficial, shallow features. Instead, focus on a small set of well-chosen,
well-designed features that produce a cogent, engaging app.
Many people choose to make a game, though you may also choose to make something else, like a productivity app.
Regardless of your app's basic functionality, your app's visual design should feel deliberate and cohesive, rather than being a collection of mismatched misaligned images and shapes. (Note that AI tends to struggle with this.)
- OOP
While you are generally free to use any 15-112 concepts in
your project, you are required to use OOP (which we cover in week11) in some meaningful
way. You do not have to use inheritance, but you do have to
include at least one original class with at least two attributes
that you define properly and use well. For full points, you
also have to include at least one well-chosen, well-designed,
well-used method in your class.
- Style
Your project has to use good style, as explained in the course
notes. Your code should be well-organized and easy for us to read and understand. Projects with eggregious style will lose points. Note that AI often produces code with eggregious style, the kind that would lose points.
Additional Rules and Requirements:
- You must create an interactive app using cmu_graphics in CPCS mode, you must adhere to MVC, you may not use any non-builtin modules, and the project must exist in one specific CS Academy Creative Task file.
- If you derive any substantial help from external resources (websites, AI, anyone other than a 112 TA, etc.) you should cite the nature and extent of this help in a brief but clear comment. It is perfectly allowed to receive external help, but you must cite it. Uncited external help is an AIV.
- As described on Ed, if you wish to do a project that does not conform to these rules, you must obtain very explicit written-in-email permission from Prof. Kosbie or Prof. Taylor. Be aware that this path will require more work.
- Remember, you are responsible for confirming that all required forms have been successfully submitted on time. If you have not received a confirmation email from Google soon after filling out a form, we do not have your response. We cannot accept any other proof of form submission aside from that email receipt.
Grading:
Checkpoint1 and Checkpoint2 will count as one prep each, to be added into the prep category. These checkpoints will be graded mostly for completion and effort, so if you follow instructions carefully and make good progress on your project, you will probably get full points for these.
Your final project submission will count as two homework grades. Assuming you have met all of the requirements from this document, final submission grading is as follows:
- A: At least 10 hours of work, resulting in a very good, working app
- B: At least 10 hours of work, resulting in a good, working app
- C: At least 10 hours of work, resulting in a basic but functioning app
- D: At least 5-10 hours of work
- R: Less than 5 hours of work
Note:
- Since we will be grading a variety of projects, this
requires some subjectivity in our grading. While this is true, be
assured that we will take measures to ensure that we are grading
fairly and consistently.
- Neither the checkpoints nor the final submission may be half-weighted.
- A 'working' app does not have to be 100% free of bugs, but these bugs should not be large enough to detract substantially from the user experience.
- We will use two metrics to determine "time on task". First, the CS Academy time logs and code histories, which are very accurate. Second, though, we know what 10 hours of effort translates to in code, and we will expect to see that quantity and quality of original product.
- Assuming most of you will invest thoughtful effort in the project, we expect the median grade for the project to be around 85.
Deliverables
Starting today, you must do all your editing and code-writing for the project in this provided CS Academy location:
Note that this means you must not write your project in the sandbox or in any external code editors (like VSCode). Some of you may find this inconvenient, but this is meant to decrease the risk of AI overdependence, and the code history allows us to clearly observe the effort you have invested.
- We will only count effort that we can observe through the code history, so if you were to write all of your code elsewhere, none of that effort would count toward your grade, even if you manually retype it in the creative task. We would also be unconvinced that the code was truly written by you.
Prep13 (Mon 24-Nov)
Read the Project Writeup (this doc) and watch the
Project Video Overview.
Checkpoint1 (Tue 25-Nov 8pm, worth 1 prep)
Before the deadline, you must submit the
Checkpoint1 submission form, where you will give us a brief description of your project along with short answers to a few questions (for example, what part of your project do you expect to be the most challenging, when do you expect to have this part done, etc.).
Checkpoint2 (Tue 2-Dec 8pm, worth 1 prep)
Before the deadline, you must submit the
Checkpoint2 submission form, where you will give us a brief update on your progress along with any updates to your project plan. By this point, we should be able to see clear progress toward your goal by looking at your code. We expect you will have at least a few hundred lines of well-written code, which should ideally run and do something, though it is ok if your app is not playable or complete.
We will automatically download a copy of your code from CS Academy at exactly 8pm on the due date. We would recommend briefly pausing your work at 8pm so that we can download a working version without syntax errors.
Final Submission (Fri 5-Dec 8pm, worth 2 hws)
Before the deadline, you must submit the
Final Project Submission form, which will ask you for a link to your uploaded video (see Project Grading Video below) and a few short questions about your project. If your video link is ready, you should be able to complete the form in about 30 minutes, but don't put it off too late, since the form will lock at 8pm.
We will automatically download a copy of your code from CS Academy at exactly 8pm on the due date. To avoid the risk of your submission being buggy at 8pm, you should make sure that your project runs and is in a gradable state well before then, and you should
definitely avoid trying to add new features in the last few hours. Additionally, do not modify your code after the deadline has passed. (If you want to ensure your code is safe, you may press the "submit" button in CS Academy creative task, which will prevent you from editing it further. However, this is not required. Also, if you press submit and then change your mind, we will only unlock it for you once, so avoid that button unless you are really, truly done.)
- Feature List:
Include a triple-quoted string at the top of your code
that briefly describes the key features that you want us to grade.
If it is not obvious, you also need to include brief
instructions for graders explaining how to make those
features visible.
- Grading Shortcuts:
Also, to help us grade your project, we ask that you provide
"grading shortcuts", or specific keys graders can press to put
the app immediately into a state that showcases some of the
best features you implemented (for example, in a platformer, maybe press B to skip right to the Boss Scene, something like that). List those grading shortcuts in your triple-quoted string,
and perhaps in the project itself (e.g. in a grading
shortcuts screen).
- Project Grading Video:
Everyone must also create a short video (no more than 2 minutes, preferably 1 minute) where you screenshare your running project with your voice-over where you showcase the most important features that you want graders to be aware of. Graders will watch the video (closely, but only up to the first 2 minutes in all cases) just before grading your project. Note: You do not need to make a very polished video, so long as we can see your running project and clearly hear and understand your comments. One very easy way to do this is to use zoom, share your screen, and record the meeting.
Note: The video must be uploaded to either Youtube or Google Drive, and a link must be properly submitted through the Final Project Submission form by 8pm on Friday 5-Dec. Also, you must be sure that the video is viewable by anyone who has the link (without using a password), and you must not modify the video after the deadline. If we cannot access your video, we cannot grade your project, so we recommend testing the link in an incognito window or with a friend. It is your responsibility to ensure that your video and form response has been properly received on time.
Example Projects
Click these links to see a few interactive examples of projects we created, along with the most likely grade range that each of them would earn. These are just examples, though you may certainly choose to create one of these if you like. (Note that the videos are from Spring '24, so if they mention any grading policies or rules, you should disregard those entirely.)
Important Note: These projects were written entirely without AI (so while AI is allowed, the bar for such projects is much higher). These grade ranges assume that the example projects have been written with good style and sufficient OOP as described above. If you implement the same features but your code does not meet our standards for good style and sufficient OOP, or if you are dependent on AI to write, edit, or debug parts of your code, your grade may be lower than these estimates.