Project Info
The basic goal of this project is for class members to design, construct and evaluate an interesting software system. 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:
- concurrent programming, synchronization and deadlock detection/avoidance
- security protocols, authentication and encryption
- extended or distributed file systems, buffer management
- distributed agreement and coordination algorithms
- transaction management, failure recovery, high availability
- secure, safe remote execution
- distributed or QoS-enhanced resource management
- naming and resource discovery
- support for monitoring or debugging systems
- virtualization
You are encouraged to propose your own project idea, and we will provide several 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 2227-related component, and all project plans must be explicitly okay'd by the instructor. A good resource to look at when deciding on a project 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)
Logistically, you may work alone or in groups of two. If you need special access to particular equipment (e.g. a multiprocessor, a dedicated network switch, etc.), let me know as soon as possible. It may not be possible to accommodate all requests, but the sooner we know about them, the better chance we have of finding suitable alternatives that still let you explore the project in which you are interested.
The fraction of total project grade associated with each of the following documents is in proportion to the requested written length.
Project Deadlines
Proposal - 3%
Due Monday, February TBD.
(2 pages single spaced,
11 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 if you are working with a partner) 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.
Literature Survey - 5%
Due Monday, March TBD.
(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.
Design Document - 6%
Due Monday March TBD
(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. Provide a timeline for the remainder of
the term. 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.
Status Report - 3%
Due Monday April TBD.
(1-2 pages)
This should be a very brief 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.
Poster Presentation - 8%
Due April TBD.
(roughly 8 slides)
Present your work at a conference-style poster session. Posters
should comprise roughly 8 slides of material, motivating your
project, explaining the overall design and implementation, and
presenting the results of your evaluation. Preparing a good
poster is challenging - it should be visually appealing, and
should allow someone visiting your poster to get a good idea of
what your project is about, even if you are not there to explain
it. At the same time, it should not be overly wordy - people
should be able to get the main idea in a few minutes without
peering closely at tiny fonts. You should also prepare a
short (no more than 5 minutes without interruptions) talk to
present the highlights of your poster to visitors. Be prepared
to be interrupted and answer questions during this presentation
however!
Final Report - 30%
Due April TBD.
(12 pages)
This is a complete report. It should report goals,
relationship to the course, related work, implementation
design, evaluation methodology, results and analysis,
discussion of hypothesis outcome, most interesting future
work, and a bibliography. It should be similar in style
to a conference paper. You should be able to reuse many
parts of the intermediate documents you have written during
the course.