15-712: Advanced Operating Systems & Distributed Systems


The basic goal of 15-712's project component is for class members to gain experience with software systems research by designing, constructing, and evaluating an interesting software system in order to explore some concrete question. The system should explore issues, solve problems or exploit techniques from classroom discussions or papers. Specifically, multiple of the following topics should appear in the project:

You are encouraged to propose your own project idea, and we will provide various project topic ideas (to help you brainstorm). It is more than fine for your project to span areas, combining system software issues (this class) and others like intelligent systems, theory, and programming languages. However, there must obviously be a significant 712-related component, and all project plans must be explicitly okay'd by the course staff. It is also fine for your project to serve some external purpose (e.g., contributing to your research agenda), but there must be concrete planning and completion steps as specified below. Some prior 712 class projects are described in the following techreport: CS-CMU-98-103. Another good resource to look at is An Evaluation of the Ninth SOSP Submissions, or How (and How Not) to Write a Good Systems Paper (by R. Levin and D. Redell, in Operating Systems Review, vol. 17, no. 3, July 1983, pp. 35-40) -- it is available on the Readings page.

Logistically, you should work in groups of two or three. Use your office machines or the department's course clusters for most projects. Request a crashable machine, if your project needs it, and we will try to help. The fraction of total project grade associated with each of the following documents is in proportion to the requested written length.

Project Deadlines


Due October 3.

(3 pages; single spaced, one or two columns, 10 point font or larger)

Describe the project idea/application, how it relates to the course material, what work must be done (suggesting how it can be partitioned among you) and what resources you will need (including software systems you already have access to). Concentrate on convincing us that it will pertain to the course, that you will be able to complete it, and that we will be able to evaluate it. The third page should be dedicated to providing an outline of your intended final paper, identifying the specific experiments to be run and what questions they will answer.

We have provided a sample of the first two pages from last year, and James has written up a sample of what the third page should look like for this year. However, please do not get caught up in style--these are only guides, and imperfect at that. What we really want is for you to more thoroughly plan out your project up front.

Sample First Two Pages | Sample Third Page

Literature Survey

Due October 17.

(2-3 pages + bibliography)

Identify work and results related to your proposed project. Describe how your project fits within the context of this previous work, including what your project will add to existing understanding, what previous results your design will leverage, and previous/alternate approaches to solving the problem your system addresses. Cite the relevant published works in your bibliography.

Please provide a short review (less than 1 paragraph) of your project at the beginning of this document to remind us what you are working on.

Design Document

Due October 31.

(5 pages)

Revise the project description scope briefly. Present a detailed description of the software design, including module decomposition, packages used, partitioning of work among the group and highlighting the course material relationships. Report logistical obstacles and your approach to overcoming them. Construct a detailed sketch of your evaluation plan - what hypothesis is to be tested, how will you control the test circumstances, what workloads will you apply, why will this test enable resolution of the hypothesis, and what and how will specific metrics be measured. Doing this well will significantly simplify the rest of the project, specifically the writing of the final report.

Presentation & Status Report

Due November 17-21.

(2 pages)

This should be a status report. All obstacles should be resolved. The evaluation plan should be finalized. Any major changes in design should be documented. Initial data collection and reporting is strongly encouraged. Present a 5-8 slide talk on the project (15 minute presentation) in class.

Final Report

Due December 10.

(10 pages)

This is a complete report. It should report goals, relationship to the course, implementation design, evaluation methodology, results and analysis, discussion of hypothesis outcome, most interesting future work, and a bibliography.

Last modified: Thu Oct 23 18:45:42 EDT 2003