CPS 210: Operating Systems
home calendar topics work resources

About CPS 210

Who should take this course. Undergraduate and graduate students with an interest in systems and networking. The course covers core areas in operating systems, selected topics in networking and networked systems, current research, and some of the classics.

Preparation. You should be familiar with undergraduate-level operating systems, consider yourself a strong student and a good programmer, and have enough familiarity with systems concepts to come up to speed quickly. We will cover any introductory (textbook) material rapidly and move significantly beyond it in the readings, class discussion, and exams.

Readings. The readings this semester will consist of research papers, emphasizing award papers from major operating systems conferences over the last two decades. We will read roughly 20 research papers and I will ask you to reflect on them and bring a paragraph of thoughts on each paper with you to class. You may skip your paragraph for one out of every four papers without penalty.

The course will loosely follow the progression of topics in Saltzer and Kaashoek, an unpublished draft systems textbook. S&K is highly recommended as entertaining and informative background reading. This draft textbook is protected material for limited use by permission of the authors. You can access it through the internal readings page.

Workload. In addition to the readings, there will be two problem sets (one of which will involve some multithreaded Java programming), a midterm exam, and a final exam. Exams will focus on core material and key principles and ideas of the research readings. In addition, there will be an exit interview at the end of the semester during which you will have a one-on-one conversation with me about systems.

Project. A course project is an important part of this course. In the course project you will propose some interesting ideas, present an argument supporting those ideas, and build software and/or conduct experiments to obtain an interesting outcome. We have a rich environment here with many useful tools in place as a basis for projects. Projects will be graded on the basis of a final report and demonstration. You will conduct your projects in teams of 1-3 individuals. You can choose the teams and the projects, with my approval.

Grading. Quals passes will be determined by mastery of the material as demonstrated on the exams. In grading I will assign roughly equal weight (one third each) to your project, your exams, and "other factors". For this course, the "other factors" category includes your notes on the readings, problem sets, exit interview, and additional credit given for particularly excellent projects, exam performance, or class participation.

Policy on collaboration for CPS 210. Collaboration is encouraged. Help each other. However, any work you turn in must be your own, and you may be called upon to explain (alone) your choices and approaches in more detail. You may incorporate public software into your assigned work to a reasonable extent, but not so much as to undermine the educational purpose and spirit of the project. In any case, you must acknowledge any sources of your words, ideas, and software when they are not your own, and you should disclose (in advance, without any specific request) the names of anyone who helped you with your work. Failing to do so is at best a violation of professional etiquette, and at worst it is plagiarism. Plagiarism, like collaboration on exams, is cheating. Cheating is a very serious offense and I do not expect it to occur in this class.