xr 15-112: Fundamentals of Programming

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:
  1. Be sure to read this entire write-up before starting!
  2. We may add or clarify some details here, in which case we will announce them via Ed.
  3. All your code writing and editing for this project must be done exclusively in CS Academy, in the specific location listed below.
  4. 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: Additional Rules and Requirements:
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:
Note:
  1. 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.
  2. Neither the checkpoints nor the final submission may be half-weighted.
  3. 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.
  4. 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.
  5. 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. 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.)

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.