CS110: Principles of Computer Systems
Winter 2021-2022
Stanford University
Instructors: Nick Troccoli and Jerry Cain
Illustration courtesy of Ecy King, CS110 Champion, Spring 2021
CS107 took you behind the scenes:
CS110 uses this as a foundation to build complex programs that maximally take advantage of the hardware and operating system software available to us:
CS107 or equivalent -
The first assignment is meant to give you a sense of the scope of CS110 programs and refresh your memory on relevant prerequisites. If you feel ok about it, you're all set!
Nick Troccoli (Instructor)
Jerry Cain (Instructor)
Sophie Decoppet (CA)
Ayelet Drazen (CA)
Jonathan Kula (CA)
Victor Lin (CA)
Swayam Parida (CA)
Joel Ramirez (CA)
Nick Troccoli
Jerry Cain
Amrita Kaur (CS110A CA)
Thea Rossman (CS110L CA)
Full course topic list and calendar: click here
Key Question: How can we design filesystems to store and manipulate files on disk?
Unix Filesystem Inode Design [source]
Key Question: How can we design filesystems to store and manipulate files on disk?
Facebook's First Generation Haystack [source]
Key Question: How can our program create and interact with other programs?
Chrome Site Isolation [source]
Key Question: How can a single instance of our program perform multiple coordinated tasks at the same time?
Nginx and Thread Pools [source]
Key Question: How can we write programs that communicate over a network with other programs, and tackle large tasks using many machines?
Dataflow for Spotify Wrapped [source]
Second half of CS107 Textbook: Computer Systems: A Programmer's Perspective by Bryant & O'Hallaron, 3rd Edition
Principles of Computer System Design: An Introduction by Jerome H. Saltzer and M. Frans Kaashoek
Read our full course policies document:
Per-Lecture Concept Checks: 5%
Discussion Section Participation: 5% (or less)
Assignments: 54% (9% x 6)
Assessments: 36% (10% + 10% + 16%)
Read our full course policies document:
What questions do you have about the topics so far? (course structure/goals, textbooks, lectures / concept checks or discussion sections)
3 assessments this quarter at the end of weeks 3, 6, and during our final exam slot
First two assessments are take-home (given 48-hour window when you can take the assessment for 3 hours), third assessment is in-person
First two assessments 10%; last assessment 16%
First two assessments open-book, final assessment is closed-book
Per-Lecture Concept Checks: 5%
Discussion Section Participation: 5% (or less)
Assignments: 54% (9% x 6)
Assessments: 36% (10% + 10% + 16%)
Read our full course policies document:
Assignments are checked regularly for similarity with help of software tools.
If you need help, please contact us and we will help you.
We do not want you to feel any pressure to violate the Honor Code in order to succeed in this course.
If you realize that you have made a mistake, you may retract your submission to any assignment at any time, no questions asked.
What questions do you have about the topics so far? (assignments, assessments, course support, or honor code)