The semester-long project in COS-518 is an open-ended systems research project. Project topics should be reached after discussion with the class instructor. Projects should be done in groups of two or three, and must involve significant system programming. All group students are expected to share equally in the implementation.
At the end of the semester, each student will independently describe the contributions of their teammates.
The project time-line is as follows:
The proposal should introduce and clearly explain the problem you are trying to solve, briefly giving context in terms of the most relevant related work (with citations). Then sketch the high-level system design, highlighting any new knowledge contributions of the proposed work. Next provide a brief plan for experimental evaluation, followed by a work plan. The work plan should include a rough division of labor, highlight the systems programming work involved, and clarify when and where you propose to leverage existing code.
You should strongly consider using a version control system (git, svn, etc.) to perform source code control for your project and the paper you write describing it.
Emulab is a network emulation environment at the University of Utah. It provides racks of machines and programmable switches that can be configured to form mostly-arbitrary network topologies, with controllable delay and loss between nodes. It's a great way to test real programs in repeatable conditions or at scales that you can't get on your own.
If you wish to use Emulab for your project, you should join our class emulab project.
You must sign up to use a PlanetLab account. Please only sign up if you're going to use the account, since it imposes some management overhead on people not involved with the course.