6.5840 - Spring 2024

6.5840 Project

Proposals due: Mar 22 23:59
Code and write-up due: May 10 23:59
Presentations: May 14 in class

Introduction

You can either do a final project based on your own ideas, or Lab 5.

If you want to do a project, you must get our approval for your idea in advance. You must form a group of 2 or 3 6.5840 students to collaborate on the project. At the end of the term you'll turn in your code and a short write-up describing the design and implementation of your project, and make a short in-class presentation about your work. We'll post the project write-ups and code on the course web site.

Your project should be something interesting and challenging that's closely related to 6.5840 core topics, such as fault tolerance. The project must involve at least as much effort as Lab 5. Below you'll find some half-baked ideas that we think could turn into interesting projects, but we haven't given them too much thought.

Deliverables

There are four concrete steps to the final project, as follows:

  1. Form a group and decide on the project you would like to work on. Feel free to use Piazza to find group members and discuss ideas. Course staff will be happy to discuss project ideas via e-mail or in person.
  2. Flesh out the exact problem you will be addressing and how you will go about solving it. By the proposal deadline, you must submit a proposal (less than a page) describing: your group members list, the problem you want to address, how you plan to address it, and what are you proposing to specifically design and implement. Submit your proposal to https://6824.scripts.mit.edu/2024/handin.py/. We'll tell you whether we approve, or not, and give you feedback.
  3. Execute your project: design and build something neat!
  4. Write a document describing the design and implementation of your project, and turn it in along with your project's code by the final deadline. The document should be about 3 pages of text that helps us understand what problem you solved, and what your code does. You can either send the code to the staff list or provide a link to an repository (e.g., on GitHub) in your writeup. The code and writeups will be posted online after the end of the semester.
  5. Prepare a short presentation about the work that you have done for your final project, and deliver it during the last class meeting.

Half-baked project ideas

You should feel free to propose your own project idea. If you'd like some starting points, here are some topics that might (or might not) be worth thinking about.