OPERATING SYSTEMS IICOMS E6118, Dept of Computer Science, Columbia University
Home | Lectures | Projects | Students | Discussion | Resources

FINAL PROJECT
For your final project, you need to pose a question, design a framework in which to answer the question, conduct the research, and write up your experience and results. There will be five deliverables for this project which will count toward your final project grade: a project proposal and research plan (15%), midterm project status presentation (10%), an extended abstract (15%), an in-class presentation (20%), and a final report (40%). You are encouraged to schedule periodic project status meetings with the instructor.
  1. Project proposal and research plan due 1/31
    Your project proposal should clearly state the goals of your project and the research question you are investigating. Describe why you think the project you are proposing is interesting and important. Your research plan should include (1) related work that shows you have enough background in the area to know that you are not simply reproducing someone else's work, (2) hypotheses about the conclusions you expect to draw from the work, (3) experimental setup which describes what experiments you plan to conduct and how you plan to do your measurements, (4) a description of hardware and software you will need for your work so that we can make sure we have it available, and (5) a detailed schedule for your work including dates and milestones.
  2. Project status presentations on 3/7
    Each group should present a 10 minute talk with slides regarding their project. The talk should include motivation for the work, a summary of the key research idea, current implementation status, and any preliminary results. Groups should provide hardcopies of their slides for the instructor.
  3. Extended abstract due 4/4
    An extended abstract is a condensed version of your paper. It should be 5-6 pages, double column, 10 point font, single space, and 1 inch margins. You should have most of your research completed at this point. The abstract should include a complete discussion of all related work, a complete description of the research ideas, including mechanisms and algorithms developed. It should provide a complete description of experiments that have been done or will be done to validate the work, though some experiments and data may still be missing. Your abstracts will be reviewed and returned to you with comments which you should take note of in writing your final report.
  4. Project presentations on 4/25
    Each group will give a presentation on their project in class. Presentations should be 15-20 minutes, with about 5 minutes for questions afterwards.
  5. Final report due 5/1
    The final report is a research paper. Reports should be roughly 10-20 pages in length, including graphs, diagrams, and citations. Reports should not be more than 20 pages. Report format should be the same as that of the extended abstract, double column, single space, 10 pt font, and 1 inch margins. You should complete the writing early enough that you have time to reread your work and critique it with the same rigor that you applied in reviewing other papers for the course. There should be a complete description of experimental results with all support measurements and data. You should be honest and state shortcomings in your work. You should discuss future work and possible follow-on projects. Several of these reports may be suitable for submissions to an operating systems conference such as Usenix or OSDI. I will be glad to work with you to turn them into submissions.
Examples of previous E6118/E6998 projects:
A Measurement Study of Google Play
Nicolas Viennot, Edward Garcia, and Jason Nieh, Proceedings of the ACM International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS 2014), Austin, TX, June 2014.
Transparent Mutable Replay for Multicore Debugging and Patch Validation
Nicolas Viennot, Sid Nair, and Jason Nieh, Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Houston, TX, March 2013.
THINC: A Virtual Display Architecture for Thin-Client Computing
Ricardo Baratto, Leonard Kim, and Jason Nieh, Proceedings of the 20th ACM Symposium on Operating Systems Principles (SOSP 2005), Brighton, United Kingdom, October 2005.
Group Ratio Round Robin: O(1) Proportional Share Scheduling for Uniprocessor and Multiprocessor Systems
Bogdan Caprita, Wong Chun Chan, Jason Nieh, Clifford Stein, and Haoqiang Zheng, Proceedings of the 2005 USENIX Annual Technical Conference (USENIX 2005), Anaheim, CA, June 2005.
The Design and Implementation of Zap: A System for Migrating Computing Environments
Steven Osman, Dinesh Subhraveti, Gong Su, and Jason Nieh, Proceedings of the 5th Symposium on Operating Systems Design and Implementation (OSDI 2002), Boston, MA, December 2002.


Jason Nieh, nieh@cs.columbia.edu