Calendar

Below is a preview of the week-by-week plan for the quarter. There may be adjustments and rearrangements as we go.

Last updated: April 07, 2026.

  • Lecture videos are posted on Canvas under the "Panopto Course Videos" tab.

  • In the readings listed below, OSPP is Operating Systems: Principles and Practice (2nd Edition), by Thomas Anderson and Michael Dahlin. These readings are optional.

Topics Resources Assignments
Week 1
Lecture 1 (Mon 3/30): Welcome to CS111!
We will go through course logistics, learning goals, and a tour of the quarter's topics.
Lecture Slides
Handouts: Syllabus, Honor Code
Out: assign0
Lecture 2 (Wed 4/1): Threads, Processes, and Dispatching
Topic 1: We will learn about the different ways to manage concurrency (many things happening at once), including threads and processes.
Lecture Slides
OSPP, Chapter 4
Lecture 3 (Fri 4/3): Threads, Processes, and Dispatching, Continued
We'll dive deeper into the specifics of threads, processes, and thread dispatching.
Lecture Slides
In: assign0
Out: assign1
Section 1: Lambdas, Threads, and Processes
Week 2
Lecture 4 (Mon 4/6): Concurrency
We'll learn about atomic operations, synchronization, and critical sections.
Lecture Slides
OSPP, Chapter 5 up through Section 5.1
Lecture 5 (Wed 4/8): Locks and Condition Variables
We will learn how locks and condition variables coordinate threads safely, preventing race conditions and enabling threads to wait and signal correctly.
Lecture Slides
OSPP, Sections 5.2-5.4.
In (Thurs):
assign1
Out (Thurs):
assign2
Lecture 6 (Fri 4/10): Implementing Locks
We will learn how to implement locks and condition variables (inside the operating system)
OSPP, Section 5.7
Section 2: Synchronization
Week 3
Lecture 7 (Mon 4/13): Deadlock
We'll learn about deadlock.
OSPP, Section 6.5 and Chapter 7 up through Section 7.2.
Lecture 8 (Wed 4/15): Scheduling
We will learn how threads are scheduled on CPU cores
In (Thurs):
assign2
Out (Thurs):
assign3
Lecture 9 (Fri 4/17): Linkers and Dynamic Linking
Topic 2: Memory managment. Learn about how program sections are layed out in memory.
OSPP, Chapter 4
Section 3: Thread Dispatcher
Week 4
Lecture 10 (Mon 4/20): Dynamic Storage Management
How to manage a region of memory or storage to satisfy various needs?
Lecture 11 (Wed 4/22): Dynamic Storage Management, continued
Memory allocation and storage reclamation
In (Thurs):
assign3
Out (Thurs):
assign4
Lecture 12 (Fri 4/24): Trust and Operating Systems
Learn about what trust is and it relevance to operating systems
Section 4: Implementing Locks and Condition Variables
Week 5
Lecture 13 (Mon 4/27): Virtual Memory
How can one memory be shared among several concurrent processes? Introduction to virtual memory.
OSPP, Chapter 8
Lecture 14 (Wed 4/29): Virtual Memory, Continued
Continue discussion of virtual memory.
OSPP, Sections 5.2-5.4 and Section 6.5 In (Thurs):
assign4
Out (Thurs):
assign5
Lecture 15 (Fri 5/1): Virtual Memory, Continued
Continue discussion of virtual memory.
No sections this week.
Week 6
Lecture 16 (Mon 5/4): Demand Paging
Learn how we can allow programs to run without all of their information in memory
OSPP, Sections 9
Lecture 17 (Wed 5/6): Demand Paging, Continued
Learn about paging algorithms and page replacement policies.
(Thurs) Midterm Exam 7-9PM
Lecture 18 (Fri 5/8): Magnetic Disks
Topic 3: Storage management. Learn about magnetic disk storage.
OSPP, Section 12.1.
Section 5: Memory-Mapped Encrypted Files
Week 7
Lecture 19 (Mon 5/11): File systems
Learn about how files are stored on disk.
OSPP, Chapter 11, Section 13.3 (up through page 567).
Lecture 20 (Wed 5/13): File systems, Continued
Continue discussion of file systems.
In (Thurs):
assign5
Out (Thurs):
assign6
Lecture 21 (Fri 5/15): File systems, Continued
Continue discussion of file systems.
OSPP, Section 5.7
Section 6: Page Replacement with the Clock Algorithm
Week 8
Lecture 22 (Mon 5/18): Directories and Links
Naming: how do users refer to their files? How does OS find file, given name?
OSPP, Sections 13.1-13.2.
Lecture 23 (Wed 5/20): File System Crash Recovery
How to recover a file system from a crash?
OSPP, Chapter 14 up through Section 14.1. In (Thurs):
assign6
Out (Thurs):
assign7
Lecture 24 (Fri 5/22): File System Crash Recovery, Continued
Continue discussion of file system crash recovery.
Section 7: Reading Unix v6 Filesystems
Week 9
Mon 5/25 - No Lecture - Presidents' Day
Lecture 25 (Wed 5/27): Truth, Trust, and Technology
We'll discuss the clock algorithm for deciding which pages to kick from memory when we run out of space, and wrap up our discussion of virtual memory.
OSPP, Chapter 9 In (Thurs):
assign7
Out (Thurs):
assign8
Lecture 26 (Fri 5/29): Flash Memory
Learn about flash storage.
Section 8: Journaling File system
Week 10
Lecture 27 (Mon 6/1): Virtual Machines
We will learn about virtual machines as a way to review the course topics.
Lecture 28 (Wed 6/3): Course Review
We'll wrap up the course and review the topics covered.
In (Thurs):
assign8
No sections this week.
Final Exam Week
Final Exam: Wednesday, June 10, 8:30AM-11:30AM PDT