Schedule¶
| Week ⇅ | Date | Topic | Links |
|---|---|---|---|
| 1 |
Aug 25
Tuesday
|
LEC Building an Operating System, and Your First Rust
Sec02:
Recording
|
|
|
Aug 27
Thursday
|
EXERCISE Setup session · 00r hello_rust
SUBMIT 00r
|
||
|
Aug 28
Friday
|
EXERCISE 01r control_flow
SUBMIT 01r
|
||
| 2 |
Sep 1
Tuesday
|
||
|
Sep 3
Thursday
|
EXERCISE 02r ownership
SUBMIT 02r
|
||
|
Sep 4
Friday
|
EXERCISE 03r borrowing
SUBMIT 03r
|
||
| 3 |
Sep 8
Tuesday
|
LEC Structs, impl, Enums, and match
Sec01:
Recording
|
|
|
Sep 10
Thursday
|
EXERCISE 04r structs_impl
SUBMIT 04r
|
||
|
Sep 11
Friday
|
EXERCISE 05r enums_match
SUBMIT 05r
|
||
| 4 |
Sep 15
Tuesday
|
||
|
Sep 17
Thursday
|
EXERCISE 06r collections · 07r traits
SUBMIT 06r, 07r
|
||
|
Sep 18
Friday
|
EXERCISE 08r errors · 10c echo
SUBMIT 08r, 10c
|
||
| 5 |
Sep 22
Tuesday
|
||
|
Sep 24
Thursday
|
EXERCISE 11c cat
SUBMIT 11c
|
||
|
Sep 25
Friday
|
EXERCISE 12c wc · 13c grep · extra credit 14c head
SUBMIT 12c, 13c · 14c extra credit
|
||
| 6 |
Sep 29
Tuesday
|
||
|
Oct 1
Thursday
|
EXERCISE 20a asm_bridge — QEMU deadline
SUBMIT 20a
|
||
|
Oct 2
Friday
|
EXERCISE 21r unsafe_bridge · 30k kernel_basics
SUBMIT 21r, 30k
|
||
| 7 |
Oct 6
Tuesday
|
||
|
Oct 8
Thursday
|
EXERCISE 31k boot · 32k physical_memory
SUBMIT 31k, 32k
|
||
|
Oct 9
Friday
|
EXERCISE 33k paging
SUBMIT 33k
|
||
| 8 |
Oct 13
Tuesday
|
LEC Week 9's lecture: Processes, the Context Switch, and Scheduling
Sec01:
Recording
|
|
|
Oct 15
Thursday
|
EXAM MIDTERM 1 — Module 1 + kernel through 33k paging |
||
|
Oct 16
Friday
|
NO CLASS No class — exam week |
||
| 9 |
Oct 20
Tuesday
|
NO CLASS Fall Break — no class |
|
|
Oct 22
Thursday
|
EXERCISE 34k processes
SUBMIT 34k
|
||
|
Oct 23
Friday
|
EXERCISE 35k context_switch · 36k scheduling
SUBMIT 35k, 36k
|
||
| 10 |
Oct 27
Tuesday
|
LEC Locks, Semaphores, and Turning the MMU On |
|
|
Oct 29
Thursday
|
EXERCISE 37k spinlocks · 38k semaphores
SUBMIT 37k, 38k
|
||
|
Oct 30
Friday
|
EXERCISE 39k virtual_memory
SUBMIT 39k
|
||
| 11 |
Nov 3
Tuesday
|
LEC Files, Boot Order, and Traps |
|
|
Nov 5
Thursday
|
EXERCISE 40k filesystem · extra credit 41k devices
SUBMIT 40k · 41k extra credit
|
||
|
Nov 6
Friday
|
EXERCISE 42k boot_to_life · 43k traps · 44k interrupts
SUBMIT 42k, 43k, 44k
|
||
| 12 |
Nov 10
Tuesday
|
LEC The Console, the Shell, and User Mode |
|
|
Nov 12
Thursday
|
EXERCISE 45k console · 46k shell · extra credit 47k file_commands
SUBMIT 45k, 46k · 47k extra credit
|
||
|
Nov 13
Friday
|
EXERCISE 48k user_mode
SUBMIT 48k
|
||
| 13 |
Nov 17
Tuesday
|
LEC Midterm 2 Review |
|
|
Nov 19
Thursday
|
EXAM MIDTERM 2 — 34k processes through 48k user mode |
||
|
Nov 20
Friday
|
NO CLASS No class — exam week |
||
| 14 |
Nov 24
Tuesday
|
LEC Week 15's first lecture: exec and File Descriptors |
|
|
Nov 26
Thursday
|
NO CLASS Thanksgiving — no class |
||
|
Nov 27
Friday
|
NO CLASS Thanksgiving — no class |
||
| 15 |
Dec 1
Tuesday
|
LEC fork, wait, and the User Shell |
|
|
Dec 3
Thursday
|
EXERCISE 49k exec · 50k file_descriptors
SUBMIT 49k, 50k
|
||
|
Dec 4
Friday
|
EXERCISE 51k fork_wait · 52k userland · 53k ship_your_commands · extra credit 54k elf_loader
SUBMIT 51k, 52k, 53k · 54k extra credit
|
||
| 16 |
Dec 8
Tuesday
|
EXAM FINAL EXAM — cumulative, weighted toward 49k–53k |
How this course runs
Tuesday is lecture. Thursday and Friday are exercise sessions. Every
line of code in this course is written in the room, on the classroom
network — join cs326 and sign in once per laptop at
signin.cs326. Read the Prep page before
each session. The session's
exercise is released when the session starts; run oslings submit
before you leave, passed or not. SUBMIT lists what each session
releases.
Each week's Lecture is linked on its Tuesday row and is about that week's Thursday and Friday exercises: read its Essentials before Tuesday. Week 9's lecture is given on Tue Oct 13, before fall break, and its sessions link back to it.
An Explainer on an exercise row is an interactive page, on claude.ai,
about what that session works with: its exercise, or the ulib code it
builds on. Most walk through code, for review; Week 7's show the machine's
state and no solution code, and are for before the lecture and the
session, in the order Watch first gives on the lecture's row. An
explainer opens without a Claude account, and it is for use outside a
session: the cs326 network does not reach it. A Video is a
narrated walk through an explainer, served from this site, but it too is
for use outside a session.
Did not finish? Complete it at a make-up session — office hours, on the cs326 network — for three quarters of the exercise half, or anywhere else for half, until the solution ships with the next session.
Last updated: October 13, 2026