Honors Operating Systems

(Also known as CSCI-GA.3250-001)

Spring 2012
Class: Mondays and Wednesdays, 3:30-4:45pm, WWH 312
Office hours: On request, 715 Broadway, room 711

Robert Grimm


Honors Operating Systems is a graduate course on operating and distributed systems. It covers a wide range of systems research, ranging from historical perspectives to internet-scale services and mobile/pervasive computing. The class has two major components: (1) reading, reviewing, and discussing research papers, and (2) performing a term-long class project. The goals are to expose students to a wide variety of systems research, to provide them with an opportunity to perform systems design and implementation of their own, and to develop their communication skills.


Readings cover a wide range of research papers and must be completed before the corresponding class. Students also need to write a review for each assigned paper (to make sure everyone keeps up with the readings). Each review should be about a paragraph long and discuss in the student's own words (1) the main idea(s) of each paper, (2) the student's main criticisms (regarding soundness, methodology, presentation, etc.), and (3) relevance to current systems or future research directions. David Wetherall at the University of Washington has written a great guide to reviewing papers.

Reviews are submitted by emailing them in plain-text format (with hard line breaks after each line) to csci_ga_3250_001_sp12@cs.nyu.edu. Please make sure the subject specifies the paper title. The archive of all reviews is here. Paper reviews are due at 8am on the day of the corresponding class!


The goal for the projects is to gain experience with designing, implementing, and evaluating real systems. Projects are term-long and performed in groups of two or three students. Each group produces a final report, structured like a conference paper, and presents their results at the end of the course. Projects can either explore a new systems challenge, focusing more on design and implementation, or try to replicate a previously published paper's results, focusing more on implementation and evaluation. Topics are picked by students in consultation with the instructor.

To guide project groups through the term, there are several milestones along the way:

The final project presentations are TBA. Reports are due before the presentations.


There is an open book, take home mid-term, but no final exam.


Undergraduate operating systems. Additionally, experience with building large software systems and the ability to digest and review research papers are highly helpful.

Grading Policy

Roughly: 50% for readings, class participation, and mid-term, and 50% for class project. Missed reviews, however, will have a disproportionate negative impact on the final grade.

Collaboration Policy

Students are encouraged to discuss class topics and readings with each other. However, each student must write his/her reading review individually. Students in different project groups may help each other with general programming questions. However, students in different groups must not exchange code or use code from outside sources (such as the Internet) without explicit permission by the instructor.


  1. Introduction

  2. Historical Perspective

    Further readings:

  3. Structure and Organization

    Further readings:

  4. Managing Concurrency

    Further readings:

  5. Communication

    Further readings:

  6. Virtual Memory

    Further readings:

  7. File Systems

    Further readings:

  8. Security

    Further readings:

  9. Mobile and Pervasive Computing

    Further readings:


Mailing List

On Papers and Presentations