CSC2227S | Summer 2021 | Projects

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:

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.