15-712: Advanced
Operating Systems & Distributed Systems, Spring 2005
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.
(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.
(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.
(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.
(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.
(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.
Present a 7-12 slide talk on the project (20-25 minute presentation) in class.