Most information on this page is subject to change.
Lecture, 4 hours; laboratory, 2 hours; outside study, 6 hours
Prerequisites: CS 32, CS 33, CS 35L
Jerome H. Saltzer and M. Frans Kaashoek, Principles of Computer System Design: An Introduction, Morgan Kaufmann (2009). ISBN 978-01-2374957-4 (printed). ScienceDirect (full e-book), MIT OCW (ebook for chapter 7 and later), Errata for Part I (PDF).
This class is about operating systems.
An operating system is a program that defines an abstract computer for other programs to use.
You will learn the theoretical and practical challenges faced by operating systems, implementation techniques for operating systems, an how to best use operating systems.
You will leave the class with a body of knowledge and a set of design principles useful when creating your own large systems. We will also demystify operating system implementation, one of the most challenging programming tasks there is.
Labs, the lab design problem, and scribe notes are group projects. Minilabs, exams, and the current topics report are individual projects.
All assignments will be collected using CourseWeb.
Every student is given 72 free late hours at the beginning of the quarter. The combination of all assignments can be late by up to 72 cumulative hours with no penalty. After this, the rough equivalent of a letter grade will be deducted for every day an assignment is late, rounded up (so 1 minute late = 1 letter grade penalty). If a student's assignments are late by more than 72 cumulative hours, we will distribute the penalties in the nicest way possible (maximizing course grade).
Assignments will not be accepted after the last day of finals week under any circumstances.
Students requiring more allowances for late assignments should contact the Engineering School's OASA or the Dean of Students.
Your course grade will be calculated approximately as follows:
We may adjust this formula (for example, if an exam is much harder than expected its weight may be reduced). The course is not graded on a curve (it is possible that all students will get an A, and possible that all students will get an F, although neither of these outcomes is at all likely).
Extraordinary performance will be recognized. Minilabs and some labs feature explicit opportunities for extra credit. Design problems also make good extra credit opportunities.
Students must follow the UCLA Student Conduct Code, which prohibits cheating, fabrication, multiple submissions, and facilitating academic dishonesty. A summary of the Student Conduct Code can be found in the Student Guide to Academic Integrity, and the Office of the Dean of Students has summarized some of the dos and don'ts in Before You Begin That Paper and How to Get the Better of an Exam.
Your work for this class must be in your own words and your own code. It is of course OK to talk to other people in the class about an assignment or project, and to use resources such as books or the Web. Additionally, the course labs may be completed in teams of 2 students. However, you may not use old solution sets, from this or any other class, for any reason. Furthermore, you are expected to work within the highest standards of academic honesty. This means that every idea you express must be your own, or you must credit the idea to its author ("As Einstein said..."). If you discussed work with other people in the class, submit their names along with your assignment. As a special case, there's no need to credit discussions with the instructor or TAs, or ideas from lecture or course notes.