CS110: Principles of Computer Systems, Autumn 2021

Announcements

  • Wednesday, Dec 8th
    Announcement from CS110 Alum Jason Chao!!
    • Registration for TreeHacks 2022 (Stanford's largest annual hackathon) is now open at TreeHacks.com! You'll only need only fill out a quick 5-minute form to RSVP – all Stanford students are automatically admitted but registration closes on January 30th.
    • We work hard to make the event as beginner-friendly as possible. Absolutely no prior hackathon experience is necessary and we'll be hosting beginner workshops on topics like web and mobile development in the weeks leading up to the event. TreeHacks is a great opportunity to make new friends, get some hands-on project experience, meet cool sponsor companies, and potentially win some awesome prizes in the process!
    • We hope you'll join us from February 18th-20th, 2022 for the best (in-person!) TreeHacks event ever!
    • Here's a quick highlight reel from our last in-person event in 2020.

Schedule

Week 10
Topic
Materials
Assignments
Readings
Week 10
Mon, Nov 29
Lecture 25: Introduction to Nonblocking I/O
·
Wed, Dec 1
Lecture 26: Advanced Nonblocking I/O, Event-Driven Programming
·
Thu, Dec 2
Lab 9: Proxy, MapReduce, and Farewells
assign6 In
Fri, Dec 3
Lecture 27: Life Beyond CS110, CS110 Jeopardy
·
Week 9
Mon, Nov 15
Lecture 23: Overview of MapReduce
·
Tue, Nov 16
assess3 In,
assign6 Out
Wed, Nov 17
Lecture 24: Principles of System Design
·
Thu, Nov 18
Lab 8: More Networking
assign7 Out (optional)
Fri, Nov 19
No Lecture: Day of Rest
·
Week 8
Mon, Nov 8
Lecture 21: Networks, Servers, System Calls
·
Wed, Nov 10
Lecture 22: More Network System Calls
Bryant & O'Hallaron: Sections 4,6 of chapter 3 (reader) or 11 (full textbook)
Thu, Nov 11
Lab 7: Networking and Multiprocessing
assign5 In
Fri, Nov 12
No Lecture: Day of Rest
assess3 Out
·
Week 7
Mon, Nov 1
Lecture 18: Multithreading Wrap, Ice Cream Parlors
·
Tue, Nov 2
assess2 In,
assign5 Out
Wed, Nov 3
Lecture 19: Introduction to Networks, Clients and Servers
Bryant & O'Hallaron: Sections 1-3 of chapter 3 (reader) or 11 (full textbook)
Thu, Nov 4
Lab 6: JavaScript Timers, Parallel Compilation
Fri, Nov 5
Lecture 20: Networking and Protocols
Bryant & O'Hallaron: Section 5 of chapter 3 (reader) or 11 (full textbook)
Week 6
Mon, Oct 25
Lecture 15: Multithreading, Condition Variables, and Semaphores
Bryant & O'Hallaron: Sections 6 and 7 of Chapter 4 (reader) or 12 (full textbook)
Wed, Oct 27
Lecture 16: Multithreading and Networking
·
Thu, Oct 28
Lab 5: Threads versus Processes
assign4 In
Fri, Oct 29
Lecture 17: Threading and ThreadPools
assess2 Out
·
Week 5
Mon, Oct 18
Lecture 12: Virtual Memory
Bryant & O'Hallaron: Section 3 of Chapter 4 (reader) or 12 (full textbook)
Tue, Oct 19
assign3 In,
assign4 Out
Wed, Oct 20
Lecture 13: Threads and Mutexes
Bryant & O'Hallaron: Sections 4 and 5 of Chapter 4 (reader) or 12 (full textbook)
Thu, Oct 21
Lab 4: Virtual Memory, Basic Threading
Fri, Oct 22
Lecture 14: Threads, Deadlock, Condition Variables
Bryant & O'Hallaron: Sections 4 and 5 of Chapter 4 (reader) or 12 (full textbook)
Week 4
Mon, Oct 11
Lecture 10: Signals, Take I
assess1 In
·
Tue, Oct 12
assign3 Out
Wed, Oct 13
Day of Rest
·
Thu, Oct 14
Lab 3: Parallel Programming
Fri, Oct 15
Lecture 11: Signals, Take II
·
Week 3
Mon, Oct 4
Lecture 7: Understanding execvp
Bryant & O'Hallaron: Section 5 of Chapter 1 (reader) or 8 (full textbook)
Wed, Oct 6
Lecture 8: Pipes and Interprocess Communication, Take I
Thu, Oct 7
Lab 2: Multiprocessing and Unix Tools
assign2 In
·
Fri, Oct 8
Lecture 9: Pipes and Interprocess Communication, Take II
assess1 Out
·
Week 2
Mon, Sep 27
Lecture 4: Filesystem System Calls
Tue, Sep 28
assign1 In,
assign2 Out
·
Wed, Sep 29
Lecture 5: Multiprocessing Basics
Thu, Sep 30
Lab 1: Filesystems and System Calls
·
Fri, Oct 1
Lecture 6: Process Synchronization and Transformation
Bryant & O'Hallaron: Sections 1 - 4 of Chapter 1 (reader) or 8 (full textbook)
Week 1
Mon, Sep 20
Lecture 1: Introductions
·
Tue, Sep 21

assign1 Out
·
Wed, Sep 22
Lecture 2: Filesystems, Take I
·
Fri, Sep 24
Lecture 3: Filesystems, Take II
Saltzer & Kaashoek, Section 2.5

Note that all lectures and assignment deadlines are subject to change.

Our CS110 website imitates that used by University of Washington's CSE373, Spring 2019.