The final project for CS122 is to build a software system that achieves a clearly stated goal that is of genuine interest to you and your partners. Final projects must be done in groups of three.

Projects are subject to the following rules. Each project must

  1. have a clear goal, and
  2. use an interesting source of data.


Register project groups: Each group must complete this form to register by no later than 5pm on Sunday, Jan 22nd.

Written Proposal (Due: Jan 24th at 5pm): Each group must submit a one or two page proposal that describes the goal of the project and the source of data the group will use. It should also give a basic sketch of the work required to complete the project and a timeline for completing it.

Proposal Presentations (4th week): Each group must give a ten minute presentation that describes its goals and plans.

Progress Checkins (6th and 8th week): Each group will meet with an instructor for 15-20 minutes once during sixth week and again during eighth week to discuss the group’s progress, challenges, and plans.

Completed Software (March 14th at 5pm): Each submission should include a description of how to run the software and should be well documented. We must be able to compile and run your program(s) on a VM and we must be able to understand the structure of your code without undue effort. Please note that if your project group contains one or more students that are graduating this quarter, the due date for the completed software will be accelerated so that we can meet College grading deadlines for Convocation students. Your instructor will contact you about this.

Final Project Presentations (10th week): Each group must give a 15-20 minute presentation describing its project. The presentation should include descriptions of the project’s goal, the results obtained, and how the system is structured, along with anything interesting the group has learned in the process of building the system.

All members in each group must participate in both presentations. We will post instructions for how to submit your work on Piazza.