Project
The warm-up project is meant to be done fairly quickly; you will have
two weeks to work on this assignment. You will work on this project
individually and then hand in a short report on your results. This
project will be fairly well-defined. More details will be available
later.
The main project in this course has two goals. The first goal is to
help you learn more about doing research in general. The second goal
is to give you the opportunity to study a particular area of OS in
greater detail. Therefore, you are expected to perform a substantial
research project; this involves selecting an open problem, reading the
related work, designing, implementing, and evaluating a solution, and
presenting your results. Your completed projects should be of high
enough quality that it could (eventually) be published in a major
operating systems conference. People should work in groups of size
two or three; under no circumstances will larger groups be permitted!
You are strongly encouraged to select a project from
my list of suggestions (but a project
of your own devising is possible given sufficient justification at our
initial project meeting). Remember, the best project for you is the
one you feel motivated to do (not the easiest one, and not the
most-likely-to-get-me-a-paper one). The project is your chance to
work on something new and different -- I sincerely hope that not only
will you learn a lot while doing your project, but also that you will
have a lot of fun!
Throughout the semester, there will be a few milestones that you must
meet for your main project:
- Initial Meeting: We will use the initial meeting to help
figure out which projects would be a good match for your interests and
previous experience; therefore, before this initial meeting, you
should have narrowed down the list of potential projects to two or
three that you are interested in and should have read the listed
background papers. Of course, you are more than welcome to informally
talk to me about potential projects before this meeting!
- Proposal Report: After our meeting, you should determine
exactly what problem you will solve. In your project proposal, you
should clearly state the problem you are planning to solve, the
motivation for why this problem is important, your initial plans for
approaching the problem, and your proposed methodology for
evaluation. It should also discuss what resources you will use / need
for the project, such as hardware or software tools. This report
should contain references to at least one related background paper
(not already listed by me) that you have read. Your write-up should
be approximately a full page in length (or 500-1000 words).
- Related work report: An important component in research is
placing your contribution in the context of past work, which involves
differentiating your work from previous work. (There is nothing worse
than working on a problem, only to discover several months into the
work, that someone has already solved it!) To ensure that you have
found the applicable background material before beginning your own
work, I would like to see a summary of the relevant papers that you
have read (or, alas, skimmed). While the number of relevant papers
will vary depending upon your project, you should search for 8 to 10
references and write 500-1000 words. To find relevant papers, you may want
to check out the resources at the end of this
page. Your report should contain the appropriate citations in a
Reference section (I would suggest using bibtex for this).
This write-up may later become the Related Work section of your final
report (of course, you may need to add references, especially if the
direction of your contribution changes).
- Progress Meeting: After you have had about a month to work
on your project, we will meet to discuss your progress and any
problems that you are having. This will be an informal meeting, but
you should come to the meeting prepared to talk about your initial
results.
- Final Meeting: Near the end of the semester, we will have
one last meeting to discuss your results. At this meeting, you should
summarize the problem you are solving, your approach, your
methodology, and your results; you should plan how you will talk about
these issues, but you do not need to prepare slides. You should
absolutely bring all of your experimental results (in graph or table
form). At this meeting, you will receive feedback on what you need to
complete before your final report.
- In-class presentations: All students will give a very brief
overview of their projects in the last week of classes. Each group
will have approximately 10 minutes to describe their work to the rest
of the class. Given this short time-frame, you will be giving only a
very broad overview of your results; do not expect to distill
everything that you did and learned in this talk! The time limit will
be strictly enforced! You may want to check out the following site
for some hints on giving a
good
talk.
- Final report: Your final write-up should be similar in
style, length, and content to an OS conference paper. This is clearly
the most important part of demonstrating your project! More
details on writing the report will be given in class.
The following table summarizes the important dates for your project.
Event | Due Date
|
Warm-up project available: | Thursday, 2/1
|
Warm-up project due: | Thursday 2/15 (midnight)
|
Initial meeting: | Week of 2/26
|
Proposal: | Thursday 3/8 (midnight)
|
Related work report: | Thursday 3/22 (midnight)
|
Progress meeting: | Week of 4/9
|
Progress meeting: | Week of 4/23
|
Rough Draft due: | Monday 5/7 (5 pm)
|
In-class presentations: | Week of 5/7
|
Paper reviews: | Thursday, 5/10 (5 pm)
|
Final report: | Monday, 5/13 (midnight)
|
When searching for related work, I would suggesting starting with
citeseer. You can search
by keyword, but another very useful feature is to look for other (more
recent) papers that reference a given related paper.
Google Scholar provides keyword
search of scholarly work in any field. Another good way to find a set
of related papers is to start with the most recent related paper that
you can find and to work backwards in time through its references.
You can also get useful references from
The Collection of
Computer Science Bibliographies and
the DBLP
computer science bibliography site. You'll note that both have
bibliography entries in bibtex format, since many papers written in CS
use latex (and thus bibtex). As a last resort, you can always search
the web as a whole with a general search engine.
Specific OS Publications:
Operating system research papers are presented in a number of major
conferences and journal. When looking for related work, it also makes
sense to at least look at the titles and abstracts from papers
published in the sources for the last few years.
In summary, these are the top conferences and journals to keep in
mind for OS research, whether you are thinking about publishing your
own work, searching for related work, or trying to keep out-to-date with
the field.
Finally, a collection of advice papers is available in the Advice Papers List. I highly recommend that
you read these papers on your own; however, you will not be held
responsible for them.
Local Resources
Computer Systems Lab Homepage
Crash and Burn Lab