You are expected to understand this. CS 111 Operating Systems Principles, Winter 2011
You are here: CS111: [[syllabus]]


Most information on this page is subject to change.

Course overview

5 units
Lecture, 4 hours; laboratory, 2 hours; outside study, 6 hours
Prerequisites: CS 32, CS 33, CS 35L

Recommended textbook

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).

Course goal

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.


  • Four labs (to be completed in teams of 2)
    • Significant coding projects involving real operating systems
    • Lab 1: user-level process management, shell, C programming
    • Lab 2: Linux kernel device driver
    • Lab 3: Linux kernel file system
    • Lab 4: distributed systems, server programming, security
  • Lab design problem
    • Each team will complete a design problem for a lab of their choice. The design problem is generally due one week after the lab itself, with the exception of Lab 4 design problems. A design problem consists of a 5-6 page design report and a 5-minute oral presentation in discussion section. (Each student must complete a design problem -- be aware of this if you change teams.)
  • Midterm & final
    • The midterm will take place during class hours, the final during the final period assigned by the registrar. Exams are open-book and open-note. No automated devices (phones, laptop computers, Dick Tracy wristwatches) are allowed. No written makeup exams will be given.
  • Minilabs
    • Short coding projects involving tiny pedagogical operating systems
  • Scribe notes
    • Each student will complete at least one set of scribe notes that summarize class discussion. Scribe notes are completed in groups of up to three; some lectures may have multiple sets of scribe notes.
  • Current topics report
    • A 1-3 page paper on current topics in operating systems due at the end of the quarter.

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.

Late policy

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:

  • 1/3 exams (~1/9 midterm, ~2/9 final)
  • 1/3 labs (evenly divided)
  • 1/3 other (design problem, scribe notes, minilabs, current topics report)

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.

Academic honesty

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.

syllabus.txt · Last modified: 2011/01/05 19:44 by vahab
Recent changes RSS feed Driven by DokuWiki