Projects (done in groups of size 2+) are a critical component of this course. Your goal is to design, build and evaluate interesting systems that address issues, solve problems and exploit techniques from classroom discussions and readings. A list of projects is here (accessible only to machines of Northwestern domain).
Projects must be written up in a term paper and teams will present their results at the end of the course in a mini-conference and write up a report. The list of potential ideas for projects will be posted soon. Feel free to use one, propose something completely different, or refine one of these into your own idea.
Project Deliverables and Deadlines
Proposal – April 8: 3-4 pages describing the purpose of the project, work to be done and potential load distribution, expected outcome/results, etc. Make sure to describe the context and related work for the proposed project. You should have another 1-2 pages references.
Design Document – April 15: 4-5 pages with a detailed description of the software design, load distribution among group members. Construct a detailed sketch of your evaluation plan - what hypothesis is to be tested, how you will control the test circumstances, what workloads will you apply, why will this test enable resolution of the hypothesis, and what and how will specific metrics be measured.
Weekly Meeting and Progress Report – 4/13-5/25: Each team will schedule a weekly meeting (30 minutes) with me. A work-in-progress report (except the 4/13 week) of 1-2 pages on the project status, initial results, and problems encountered, etc. is due 24 hours ahead of the meeting.
Project Presentation – June 1 and 3: Present the results in class, including Q&A.
Final Report – June 9: The final report is a workshop-level paper describing your work, evaluation, related research, potential avenues to explore, etc. You should incorporate the comments received during the presentation. Code should be submitted electronically.