Course Syllabus


This class is directed at graduate students seeking a deeper understanding of operating systems. We will cover classical topics and algorithms from operating and distributed systems, and also look at recent trends in operating systems research. This class is particularly targeted at graduate students wanting to pursue systems research. Students are encouraged to submit topics that interest them for inclusion in the class.

The course format will be a mix of lectures and student presentations. Students will learn how to read, summarize and present research papers and how to evaluate them.

Students will complete a term project, which can either take the form of a programming project or a survey paper on a research area. Every student is required to give a final presentation for their project or paper.


Course information



Office Hours:


Meeting Time:

Final Exam:

Dr. Ali R. Butt

By appointment only


TR 2:00pm-3:15pm in MCB 226

Dec 16, 1:05PM to 3:05PM



This class is offered to graduate students interested in systems research. We expect that you are familiar with basic operating systems ideas and principles, and that you have a proficient programming background in C.



Most of the reading will be assigned papers. We will also point out additional reading where applicable. If you wish to brush up on your operating systems basics, we recommend the following textbooks as background:

Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Arpaci-Dusseau Books
March, 2015 (Version 0.90) 


Tanenbaum, van Steen. Distributed Systems: Principles and Paradigms. 2nd Edition.

Prentice Hall. ISBN-10: 0-132-39227-5


Silberschatz, Galvin, Gagne. Operating System Concepts. 7th Edition.

John Wiley & Sons, Inc. ISBN 0-471-69466-5



The course work consists of student presentations, programming projects, and class participation in the discussions.


Paper and presentation evaluations: All students are required to read and evaluate the papers that are being discussed in class in advance. A paper evaluation form is available here. Your evaluation should address the questions on this form. You will submit your evaluation forms (limited to one page) at the beginning of each class. In addition to evaluating the paper, you will evaluate the speakers' presentations during class and submit a short written evaluation (one for each speaker) at the end of class.


In lieu of a late policy, you will have four wildcards for both the paper and speaker evaluations. That is, you may skip the evaluations that are due on four different dates without losing any credit. You need not ask for permission to do so in advance. However, you are still responsible for the material covered in class for the purposes of exams.


Paper presentation: Every student will prepare a 25 minute presentation on an assigned research paper. Your presentation should contain two parts: one in which you present the work as if it were your own, and a second part in which you present your evaluation of the work. You will meet with the instructor or TA before your presentation to discuss your slides. You must have a complete draft of your slides ready by that time.


Project: The class includes a term-long programming project of your choice related to the topics covered in class. The term project can take multiple forms. For instance, your team may design, prototype, and evaluate a small system that solves a distributed programming problem. Or you may design a project that evaluates an existing system's suitability for a particular purpose. Or you may add an extension to a system like Linux. You are encouraged to come up with your own ideas for a project, or choose from a list provided by the instructor.


Students will submit a 2 page project proposal that should outline the project. The proposal should explain what problem you are addressing and the relevance of that problem. You should outline what infrastructure (software and/or hardware) you will be using for that project and how you expect to evaluate your results. You will need to define what deliverables your project will have. To ensure progress towards the completion of your project or paper, your team will meet with the instructor during certain milestones, which will be posted on the class website. Those meetings are mandatory for full credit on the project.


Final Presentation: All teams are required to do a final 20 minute presentation that summarizes the results of their survey paper or programming project.



Paper reviews /class participation


Mid-term Presentation


Final Presentation




We will use 10-point grading scale which is listed below:

A   90-100
B   89-80 
C   79-70 
D   60-69
F   Below 60  


Honor Code

All work is conducted under the rules of the university Honor Code. This code and other relevant policies are described in detail on the class web pages.

For additional information about the Honor Code, please visit:


Students with Disabilities

If you need adaptations or accommodations because of a disability (learning disability, attention deficit disorder, psychological, or physical), if you have emergency medical information to share with the instructor, or if you need special arrangements in case the building must be evacuated, please meet with the instructor as soon as possible.


Resources/Course Materials

Project Guidelines and Schedule

Course Summary:

Date Details Due