G22.3250 Final project


In this lab you will define your and execute your own project. The lab is structured in several parts:
  1. Project proposal. The proposal is a short (maximum of two pages) proposal for what your project will be. It should state what problem you are solving, why you are solving it, what software you will write, and what the expected results will be. You won't be judged on your proposal; it is there to help you to get started.
  2. Software demo. You will execute the project and demonstrate the software to me.
  3. Presentation. You will present your work to the class in a talk on the last day of classes.
  4. Project paper. The paper is a maximum of 12 pages in at least 11 point font, describing the problem you solved and the solution, and reporting how effective that solution was. The paper should have a serious evaluation section, similar to the ones that you have seen in the research papers you are reading in class.
Your grade will primarily be based on the paper.

Doing a good project is a daunting task. In general, it is better to tackle a precise small problem and do a good job evaluating it than to tackle a large problem and get lost in the scope of the problem. To help you to define a project, this page lists several suggestions.

You should keep me informed at all stages of your project. Please come talk to me about your idea for a project, how you should execute the project, what resources you need for the project, what you should write about in your final paper, etc.

The project should be executed in teams of 2-4 students. The larger the team, the more ambitious your project should be. When you have formed a team, send me email to set up a meeting and discuss your proposed project.

Project suggestions

If you are having trouble thinking of a project idea, some of the ideas below might help get you started. You might also want to look through recent papers in SOSP, the top OS conference, as well as OSDI and Usenix (both of which are available as links off of this page). Here are some other ideas:

The Paper

This section provides some suggestions and guidelines on writing style and some of the things the grade will be based on.

Suggestions on Writing Style

Your paper should be as long as is necessary to explain the problem, your solution, the reasons for your choices, and your analysis of your solution. It should be no longer than that. The body of your paper must not exceed twelve 11-point, single-spaced pages in length. Please use 1-inch margins. In general, your paper's style and arrangement should be similar to the papers we've read in class.

A good paper begins with an abstract. The abstract is a very short summary of the entire paper. It is not an outline of the organization of the paper! It states the problem to be addressed (in one sentence). It states the essential points of your solution, without any detailed justification. And it announces any conclusions you have drawn. Good abstracts can fit in 100-150 words, at most.

The body of your paper should expand the points made in the abstract. Here you should:

  1. Introduce the problem and the externally imposed constraints.
  2. State the goals of your solution clearly.
  3. Describe the design of your solution. You may wish to divide the description into a high level architecture and a set of lower-level implementation decisions. This would be a good place for pictures and diagrams.
  4. Analyze how well the system you built fulfils your goals. Depending on your system, the analysis might deal with performance in the sense of throughput or running time; but keep in mind that factors such as reliability and useability may be as or more important goals than performance for some systems.
  5. Briefly review related work in the area of your project. The goal is to show either how you extended existing work or how you improved on it.
  6. Conclude with a review of lessons to be learned from your work.
  7. Document your sources, giving a list of all references (including personal communications). The style of your citations (references) and bibliography should be similar to the styles in the technical papers you're reading in this class. In particular, a bibliography at the end and no citations in the text of your paper is insufficient; You should show what specific pieces of information you learned from where.

Write for an audience that understands basic OS and network concepts and has a fair amount of experience applying them in various situations, but has not thought carefully about the particular problem you are dealing with.

How will your paper be graded?

Your paper will be graded on both content and writing.

Some content considerations:

Some writing considerations:

Make sure you save enough time to write a good paper, since that's what will determine your grade!