Projects
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 and novel question. The system should explore issues, solve problems or exploit techniques from classroom discussions or papers, and an experimental evaluation is expected.

You are encouraged to propose your own project idea, though 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 the work must be done by the members of the group in the class, the resulting project must be included in the class tech report, no non-712 student name can appear in the author list, and there must be concrete planning and completion of steps as specified below, and no external concerns will excuse missing any of these steps.

Some prior 712 class projects are described in the following techreports: CS-CMU-05-138, CS-CMU-05-201. 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 three to four. Use your office machines or the department's course clusters for most projects. The fraction of total project grade associated with each of the following documents is in proportion to the requested written length.


PROJECT DEADLINES