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, at least one of the following topics should appear in the project:
- concurrent programming, synchronization and deadlock detection/avoidance
- 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 - 5%
Due June 25.
(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 July 9.
(~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 - 7%
Due July 30.
(5 pages)
Revise
the project description scope. Present a detailed description
of the software design, including module decomposition,
packages used, partitioning of work if you have a parrtner 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 metrics
will be measured, and how you will collect/measure them. Doing
this well will significantly simplify the rest of the project,
especially the writing of the final report.
Online Project Presentation - 8%
August 10
(roughly 8 slides)
Present your work at an online conference-style session. Presentations
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
short talk is challenging - it should be visually appealing,
concise and informative. Be prepared
to be interrupted and answer questions during this presentation!
Final Report - 25%
Due August 27.
(12 pages)
This is a complete report. It should report goals,
relationship to the course, related work, design and implementation
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.