CS 111: Operating Systems Principles

Fall 2025


Instructor: Sam Kumar

Lecture: MW 8:00-10:00 AM, 1425 Physics & Astronomy Building

Instructor Office Hours: M 10:00-12:00 PM and by appointment, 496B Engineering VI

Teaching Assistants: Sai Achalla and Turan Vural

Learning Assistants: Pavan Gudavalli and Rohan Sinha

Readers: TBD

Course announcements will posted on Ed.


Course Description

Introduction to operating systems design and evaluation. Computer software systems performance, robustness, and functionality. Kernel structure, bootstrapping, input/output (I/O) devices and interrupts. Processes and threads; address spaces, memory management, and virtual memory. Scheduling, synchronization. File systems: layout, performance, robustness. Distributed systems: networking, remote procedure call (RPC), asynchronous RPC, distributed file systems, transactions. Protection and security. Exercises involving applications using, and internals of, real-world operating systems. Letter grading.


Course Format

This is an upper-division undergraduate course. Lectures focus on explaining the course material. Lab sections focus on problem solving, to reinforce material from the previous lectures. Vitamins are short programming assignments that are essential for the course. Exams may cover material not only from lectures, but also from discussion and vitamins. Readings are optional, but may be useful to help understand the material.


Assignments and Grading

At the end of the term, each student is assigned a raw score out of 100 points, based on the following breakdown:

Then, raw scores are converted to letter grades according to the following absolute scale:
Raw Score Cutoff TBD 88 86 83 77 74 72 67 64 62 57 55 0
Letter Grade A+ A A- B+ B B- C+ C C- D+ D D- F
Each provided cutoff is the lowest score for the corresponding letter grade. For example, a score of 86.0 is an A-, while a score of 85.9 is a B+. The cutoff for a grade of A+ is not provided in the above table; it will be chosen at the end of the term, at the instructor's discretion.

The above grading scheme implies that your final grade in the course depends only on your own performance (i.e., there is no curve).

In extreme cases, such as if an exam or vitamin turns out to be much more difficult than intended due to an issue with the exam or vitamin, the instructor may adjust the above cutoffs at the end of the term. If any cutoffs are adjusted, they will only be adjusted downwards (i.e., resulting in higher letter grades).


Prerequisites

The prerequisites for this course are CS 32, CS 33, and CS 35L. For CS 111, the most important topics covered in these courses are:

Online Discussion Forum

We will use Ed as an online discussion forum for this class. You must join the Ed forum for this course. Important announcements will be made on Ed.


Textbook

Readings in this course are optional; all necessary content is covered in lectures, vitamins, and lab sections. We recognize that some students may prefer reading material to learn or review some course content. Thus, we provide, for each lecture, a reading selection that roughly aligns with the content covered in that lecture.

Most reading selections are taken from the following free online textbook. We refer to it as "OSTEP" (an abbreviation of its title).

The following is another textbook that we highly recommend. We refer to it as "A&D" (the authors' initials).


Enrollment

If you are unable to directly enroll in the course, then please follow the enrollment guidelines for computer science classes. If you would like to request a PTE to enroll in this course, then please talk to me about it after the first lecture of the course.


Academic Honesty and Collaboration

You are expected to follow the UCLA Student Conduct Code.

On programming assignments, the code that you submit must be your own work (for group assignments, work completed by you and your teammates). This means that you may not include code that you find online that is specific to the assignment, or use code that is produced by AI tools (e.g., ChatGPT), in your submissions for class assignments. That said, we do encourage you to speak with your classmates about concepts covered in class as they relate to assignments, approaches and designs for completing the assignments, and strategies for debugging code for the assignments. However, sharing your code with classmates or looking at your classmates' code (for group assignments, classmates outside of your group) is not allowed.

The following are examples of acceptable collaboration on programming assignments:

The following are examples of unacceptable collaboration on programming assignments:

On exams, you may not collaborate with anyone else. Some exams may allow limited amounts of handwritten notes, or access to a certain kind of calculator; such allowed resources will be announced ahead of the exam and explicitly stated on the exam itself. Except for resources that are explicitly allowed, exams are closed-book: you may not use any electronic devices (e.g., laptops, tablets, phones) or any other resources (e.g., books, notes).


Acknowledgments

Many assignments and lecture slides are based on those used in CS 162 at UC Berkeley. The instructor is grateful to the CS 162 instructors, who generously allowed reuse of this material.