15-112 Term Project Assignment

Due: Mon 1-Dec at 10:00pm (no late submissions accepted)

See the Term Project Gallery for Qatar or the Term Project Gallery for Pittsburgh for examples!

Note: this is a long document. But: you really need to read all of it, very carefully, before starting any of it. You are about to invest serious effort creating the capstone project for this course. You need to take the time to carefully read and understand everything in this document before you get started.

Also, this project is meant to be educational but also good fun. Enjoy, and work hard!!!



1. Term Project Description

Your task is to design and implement a program of your choosing. Your project may be graphical, text-based, or even file-based. It may be a game, or a math or science application, or a baseball statistics package, or a productivity application (think Word or Excel, only very “lite” versions), or a shell script, or anything else you choose. This is a wide open assignment, and you are expected to be creative in your approach to it.

Each of you will have a Mentor CA for your term project. While every staff member is happy to help you at any time, it is expected that your Mentor CA will provide most of your support and guidance during the course of your term project. You are encouraged to discuss your project with your Mentor CA during the last weeks of the semester, so you know where you stand and what additional work may be required to improve your grade.

You have an extended period to finish this assignment, with no other required assignments during the last three weeks. You are expected to invest at least 30 total hours into this project in this time, and it is further expected that your project will clearly reflect the quantity and quality of design and craftsmanship that goes along with that much time on this task. Many of you will exceed the 30-hour bar, but this is a minimum expectation for passing the term project.

2. Schedule

Many events happen during Term Project Season! This is your guide to all of them.

Week 10

Week 11

Week 12

Week 13

Last Week 14

In the interview, you will present your project and demonstrate its key features. Your interview panel will consist of one instructor, your CA mentor, and one additional member of the 112 staff. Your demonstration should take no more than five minutes so that the panel has adequate time to ask you questions. During the interview, you may be asked technical questions about your project or to walk through portions of your code. This interview is your opportunity to ensure that your mentor and the interview panel fully understand your project so they can accurately represent and evaluate your work during the grading session. A signup form will be sent out for you to choose a TP3 interview slot during December 2–3. Please make sure you sign up promptly once the form is released.

3. Minimum Viable Project

Throughout this document, you will see references to the Minimum Viable Project (MVP). The MVP is the version of your project you must reach by TP2.

An MVP includes all core functionality of your project, is mostly bug-free, and provides a usable interface. Achieving MVP demonstrates that your project meets the course learning goals. If your project reaches MVP, it will receive at least 70% of the TP3 score. To earn a higher score, your project must go beyond the basics by adding significant features or polish.

Examples of enhancements beyond MVP include:

You are encouraged to reach MVP by TP2, but it is acceptable to reach it later, by TP3. However, aiming for MVP by TP2 will give you time to refine and extend your project with advanced features to further raise your score.

4. Term Project Policies and Rules

The term project is different from the other assignments and exams in 15-112. Therefore, it has its own special set of policies and rules. Note that the main course policies still apply, unless they are overruled by the policies described here.

4.1 Technical Restrictions

The term project is open-ended, but the following restrictions apply. Additional limitations may be listed in the Term Project Preview document.

General Requirements

Framework and Design

Hardware and External Materials

Project Scope

4.2 Academic Integrity and Citation Rules

All term projects must comply with the course’s academic integrity policy. The following clarifications apply specifically to the term project.

Individual Work The term project is individual. You must write your own code and submit work that reflects your own understanding.

Use of External Sources Unlike homework, your project may include ideas or code influenced by external sources such as online materials, AI tools like ChatGPT, or your own prior work.

Citations

Collaboration You may discuss concepts with other students, but sharing or copying code is not permitted. You are responsible for protecting your own work so others cannot copy it.

Failure to make the origin of your work clear may result in significant penalties or an academic integrity violation. Non-original work will be evident in your TP3 interview.

4.3 Additional Considerations

4.4. Tech Demo

If you do wish to use an external module not explicitly forbidden, you will need to pass a tech demo first. Check the schedule for details of the timing of this. A tech demo is where you use the module you are interested and demonstrate that you understand how to use the basic functionality. This is not simply a matter of you getting tutorial code from the internet to run. This is you demonstrating that you can produce your own functional code that makes substantial use of the module. If you are unable to complete an adequate tech demo before the tech demo deadline, then you will not be permitted to use the module in your project.

5. Deliverables

You will have 3 weekly deliverables for this term project, each graded separately. Each of the deliverables comes with a rubric, but these rubrics are fairly general, as projects vary so widely. In general, we expect a large amount of effort to go into the design, writeup, implementation, and presentation of your project. In addition to these deliverables, there will be a final interview and a written assignment (reflection).

The purpose of the intermediate TP deliverables is to provide early feedback and help ensure that you are making steady progress toward a successful final project.

TP1 (due Sun 23-Nov)

The TP1 deliverable consists of two main components: a design proposal and preliminary code. You should finish these components before meeting with your mentor so that you can present them in full. Your TP1 design proposal should be written in Markdown and saved as a file named README.md in your GitHub repository. The README.md should include a clear section titled “TP1 Proposal”, which contains your full design proposal.

TP2 (due Wed 26-Nov at 10:00pm)

Your TP2 deliverable consists of two components: a working demo and updated design docs.

TP3 (due Mon 1-Dec at 10:00pm)

TP3 is your final term project deliverable, and should be your completed term project. The main deliverables are the project codebase and source files, a README.md file, a demo video, and your updated design docs.

TP3 Interview (due Tue 2-Dec and Wed 3-Dec)

You will present a live demo of your project to the course staff. The demo may last up to 5 minutes and should highlight the core features of your project, especially those that might not be immediately apparent when staff test your code. You will need to sign up for a demo slot; details about scheduling will be provided later.

6. Grading

When we say “your project” below, we mean “the original contributions you made to your project and which you clearly identified to us for grading purposes”. That said, in general, the software component of projects are graded by equally considering a few general categories. There is some overlap, but you should pay attention to each of these to ensure the best grade:

Because of the open-ended nature of the project, we cannot (and will not) tell you whether or not a particular project, algorithm, or set of features is going to give you an A. In fact, CAs are prohibited from answering grade-related questions like “With my project as it is now, do you think it will get _____ grade” or “If I do _____ will I get _____ grade” or even telling you whether you will probably get a particular grade, so please do not ask these questions. All that we can tell you is whether or not you have hit MVP yet (which is described later in this document). In order to get the best grade possible, listen to the feedback you receive and be efficient about where you invest your time. Please also understand that because we can’t predict the future, we are simply giving you the best advice possible based on our understanding of your project. Your mentor is not responsible for your grade, and your grade is determined solely by what you turn in.

Term Project Component Grade Weights

TP Component Weight
TP1 Checkpoint 10%
TP2 Checkpoint 10%
TP3 Interview 10%
TP3 Deliverables 40%
TP Reflection 10%
Overall and Steady Effort 20%

When grading your project code, we also consider effort. The term project should occupy the majority of your 15-112 time during the final three weeks of the semester. Since the course is 12 units, this corresponds to about 12 hours per week, or roughly 30 hours total after accounting for lectures and other work. You are therefore expected to dedicate at least 10 hours per week to your term project. Demonstrating consistent effort and steady progress in mentor meetings will contribute to your score.

You are also expected to work steadily throughout the project period. This will be reflected in your GitHub history. Make regular commits as you develop your project. A single large commit made right before the deadline is not acceptable and will result in a penalty.

7. Resources