CSE 221 (SP00)

Course Projects

The goal of the project is to deepen your knowledge in one area of computer systems research. You can work in groups of 1-4 people of your choice on the project. If you do not form a group on your own, I will help you find one. You will work on the projects in the last seven weeks of class, with most of the work concentrated in the last 4-5 weeks. We will then use our final period to conduct brief presentations of all of the projects.

Project Types

The project can take one of three forms:

1. Survey

Your project will survey the major research results and directions of a particular systems reseach area. You will need to identify the area, propose a set of 8-10 papers for that area, read the papers, and write a 6-10 page report. The report should emphasize breadth in the area, classify the approaches and techniques, distinguish contributions made by the various research projects described in the papers, and hypothesize about potential future research directions.

2. Proposal

Your project will propose a novel direction of research. You will need to identify the area, propose a set of 4-6 papers to read as background, and write a 6-10 page report. The report should start with a brief summary of previous and related work, describe the problem or questions you propose to investigate or answer, justify why they are important, and then outline a methodology for conducting the research. The methodology should include an approach for conducting experiments (e.g., simulation, analytic modeling, instrumentation, measurement, implementation), a set of experiments to perform, and a discussion explaining how the experiments investigate the problem or answer the questions.

3. Implementation

Your project will implement an idea proposed abstractly or theoretically in a paper, or conduct further experiments that extend work in a paper. You will need to identify the paper, propose an implementation project or set of experiments to perform on an existing implementation, and write a 4-6 page report. If you would like to continue a set of experiments on an existing implementation, I will help you obtain a copy of the implementation from the appropriate research group (internally or externally). The report should summarize previous work, state the problem you are investigating, and then describe the implementation or set of experiments you performed. If you performed experiments, you should clearly describe your experimental methodology and the results of your experiments.


Below is a list of suggested topics that have appeared recently in the OS literature. These are only suggestions; if there is another topic that you are particularly interested in, then I highly encourage you to pursue that topic.

I also have some specific ideas for operating systems projects that I'm interested in:

And I also encourage you to consider choosing a topic from the research interests of the other systems faculty here:

You can browse their web pages, talk with the students who work with them, come talk with me, or even approach them directly and ask them for suggestions (contrary to rumors, they do not bite).


4/22: Choose groups (Week 3)

Choose a group to work with. You can work alone, or in groups of up to four people. Someone from your group should email me the group membership by Saturday, April 22. If you would like me to help find you a group, please send me mail earlier in the week.

Once you form a group, discuss among yourselves possibilities for a topic. I also encourage you to talk with me or send me email about topics that you are interested in.

4/29: Choose topic (End of week 4)

Use week 4 to choose a topic for your project. When you've chosen a topic, send me email, but please do so by the end of the week. I will suggest a few papers for you to start with in pursuing your topic.

5/6: Choose papers (Week 5)

Use week 5 to finalize a list of papers for your topic. Email me the list of papers by the end of the week, and I will provide feedback.

5/17 - 5/24: Project checkpoint (Week 7)

I will schedule meetings with each of the groups to checkpoint the status of the project.

6/13: Reports due (Finals week)

Project reports are due at noon on 6/13. This should give me enough time to read them before the presentations on the 15th. I will also make the reports available through the Web.

6/15: Project Presentations (Finals week)

Each group will present their project during the final exam period.