CSE 624 Semester Project

Project Overview

The course project for CSE 624 will give you some experience conducting systems research and is somewhat open-ended. An appropriate project might repeat and extend experiments from a previous paper, evaluate a new research idea, or apply an old idea to a modern system. If you are already involved in systems research, or have a systems-related component of non-systems research, you are welcome to submit a well-defined subproblem as your class project. The end product will be a brief written report of your results and a 15 minute in-class presentation (10 minutes of prepared material, 5 minutes for questions and answers).

Projects can be done individually or in groups of up to three students.

Project Guidelines and Ideas

A good project has a mixture of an interesting idea or question, non-trivial implementation, and good quantitative evaluation of the idea or question. There are no fixed proportions, but a proposal that requires little coding should have more experiments, and a coding-intensive project can get by with fewer experiments.

Many systems projects make their source code available. I encourage you to use published code where it makes sense and allows you to do more interesting work more quickly. Be advised that rerunning the exact experiments from a paper with the exact same source code is an insufficient course project. Please document whether you plan to use other's code in your proposal. Also, if you think unpublished source code would expedite your work and would like me to ask an external research group for their code, feel free to ask me.

I encourage you to propose your own ideas. If you have a rough idea of what you want to do and need guidance developing a question or finding related work, please come to office hours. You may also use one of the ideas below.

Project Management

Unfortunately, most researchers (including graduate students) schedule their time using a shortest-deadline-first heuristic. The obvious weakness of this is that a large project cannot be completed the night before a deadline. For this project, I strongly encourage you to set internal deadlines at 2 weeks to a month granularity as part of the proposal. You are accountable only to yourself for meeting the internal deadlines, but they can help keep the project on track (you are obviously accountable to the instructor for the end result).

You should strongly consider using Git, Subversion, or CVS to perform source code control for your project and the paper you write describing it. I suggest Git or Subversion.

I also strongly suggest writing your course project report using LaTeX. It is the de-facto tool in which most CS research papers are written. While it has a bit of start up cost, it is a tool you will likely need while collaborating with other researchers.


Any group that meets the basic criteria will get at least a B: something reasonable working, reasonable experiments and analysis, and a good in-class presentation. The difference between an A and a B is largely in the quality of the work: more features working, deeper analysis of the performance of the system, and a better in-class presentation.

Part of the feedback you can expect from the proposal are rough guidelines about what would make an A project and what would make a B project. Note that I cannot pre-grade a project at a fine granularity.

If things do not go according to plan

Research is a lot like digging for gold: sometimes you find gold and sometimes you just have a hole in the ground. A negative result can easily get an A if it is accompanied by good analysis of why something didn't work. For instance, if you can't reproduce a result from 10 years ago on modern hardware, it would be a fine result to show what performance characteristics of the hardware have changed accompanied by detailed measurements. In general, make it clear that the limitation is fundamental, not simply a bound on what you could accomplish the night before the project is due.

For students taking this course as CSE 522

If you are using this course to meet the CSE 522 requirement, you may not work as part of a group and your project must be implementation intensive. Please indicate in your project proposal that you are taking the course to meet your 522 requirement.

Last updated: Sat Mar 03 20:31:18 -0500 2012 [validate xhtml]