6.858 Fall 2012 Lab 7: Final project

Piazza idea discussions due: Monday, October 29, 2012
Proposals due: Monday, November 5, 2012
Presentations due: Wednesday, December 12, 2012 (in class)
Code and write-up due: Friday, December 14, 2012 (5:00pm)

Introduction

In this lab, you will work on a final project of your own choice. Unlike in previous labs, you may work in groups of 3-4 for the final project. You will be required to turn in both your code and a short write-up describing the design and implementation of your project, and to make a short in-class presentation about your work.

The primary requirement is that your project be something interesting. Your project should also have something to do with security, but that's relatively easy, and it's much more important for your project to be interesting.

Below are some ideas for final projects that you might use as inspiration, including some of the projects from past years. We encourage you to come up with your own ideas for what you would like to work on; there's no need to restrict yourself to this list.

We encourage final projects that combine some ideas you have learned in 6.858 with other classes or projects you are already working on. For example, implementing some aspects of a capability design from Capsicum in the JOS kernel from 6.828 might make a good final project that you could use in both classes. Extending some system you are already working on to add better security mechanisms would also be a good candidate project.

Several final projects from last year's class ended up being subsequently published as research papers (e.g., UserFS, BStore, and LXFI). If this sounds interesting to you, try to pick an ambitious class project that you might want to continue working on afterwards!

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

Form a group. Decide on the project you would like to work on, and post short summary of your idea (one to two paragraphs) on Piazza. Discuss ideas with others in comments on their Piazza posting. Use these postings to help find other students interested in similar ideas for forming a group. Course staff will provide feedback on project ideas on Piazza; if you'd like more detailed feedback, come chat with us in person.

Project proposal. Discuss your proposed idea with course staff over the next week, before the proposal deadline, to flesh out the exact problem you will be addressing, how you will go about doing it, and what tools you might need in the process. By the proposal deadline, you must submit a one-to-two-page proposal 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 the submission web site.

Project presentation. Prepare a short three-minute in-class presentation about the work that you have done for your final project. We will provide a projector that you can use to demonstrate your project. The schedule for presentations is here.

Write-up and code. 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.

We have posted final project submissions here.