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 from major operating systems conferences over the last two decades. We will read roughly 10-20 research papers and I will ask you to reflect on them and e-mail me a paragraph of thoughts on each paper with you before you come to class (please put [CPS210 note] in the subject line). You may skip your paragraph for one out of every four papers without penalty.

The course will loosely follow the progression of topics in the Saltzer and Kaashoek Principles of Computer Systems Design textbook (PCSD).

Workload. In addition to the readings, there will be a midterm exam and a final exam. There will be some additional modest exercises or problems, some of which may be graded. 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.

Exams. Exams focus on general concepts underlying the readings: problems, solutions, limitations, principles. They are weighted toward core topics rather than nit-picky details of the readings. Exams are closed to all information access, except for one page of notes. The final exam is cumulative.

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.