The schedule will remain tentative all term.
Recommended readings are generally from the textbook, CS:APP3e. Problem set deadlines are for college; DCE students’ deadlines are 1 day later.
Unit 6: Networking
- Tu 11/17: Sockets (net1)
- We 11/18: Networking (net2; activity)
- Th 11/19: WeensyDB and increment (net3)
- Fr 11/20: Threading and synchronization (net4; activity)
- Tu 11/24: Condition variables (net5; activity)
- Tu 12/1: Condition variables redux (net6)
- We 12/2: Large numbers of connections (net7; activity)
- Th 12/3: Matrices (net8; activity)
- Tu 12/1: Due date for process control review question
- Sa 12/12: Extended due date for problem set 6
- Problem set 6
Unit 5: Process control
- Tu 11/2: Forking and stdio (process1)
- We 11/3: Exec, wait, pipes (process2)
- Th 11/4: Pipelines in general (process3)
- Fr 11/5: Setting up a pipe (process4)
- Tu 11/9: Waiting, signals (process5)
- We 11/10: Signals, combined waiting (process6)
- Th 11/11: Command line representation (process7; activity)
- Fr 11/12: Pipe examples (process8; activity)
- Sa 11/14: Due date for storage review question
- Sa 11/21: Due date for problem set 5
- Problem set 5
Unit 4: Storage
- Tu 10/20: Storage hierarchy (storage1)
- We 10/21: Cache concepts (storage2; activity)
- Th 10/22: IO system calls (storage3; activity)
- Fr 10/23: Stdio cache (storage4)
- Tu 10/27: Access patterns (storage5; activity)
- We 10/28: Cache consistency (storage6)
- Th 10/29: Memory mapping (storage7; activity)
- Fr 10/30: Embedded EthiCS
- Sa 10/31: Due date for kernel review question
- Sa 11/7: Due date for problem set 4
- Problem set 4
Unit 3: Kernel
- Tu 10/6: Kernel setting, sharing processor time (kernel1; activity)
- We 10/7: Timer interrupts, exceptional control transfer (kernel2)
- Th 10/8: Process isolation, memory protection (kernel3)
- Fr 10/9: Virtual memory iterator exercises (kernel4; activity)
- Tu 10/13: Multi-level page table design (kernel5)
- We 10/14: In-kernel process representation, exceptional control transfer (kernel6)
- Th 10/15: Confused deputy, process creation exercises (kernel7)
- Fr 10/16: Blocking implementation (kernel8)
- We 10/14: Due date for asm review question
- Sa 10/24: Due date for problem set 3
- Problem set 3
Unit 2: Assembly
- Tu 9/22: Overview, basics, name mangling, instruction sizes (asm1)
- We 9/23: Registers, addressing modes, calling convention introduction (asm2; activity)
- Th 9/24: Section material on how to have fun (asm3)
- Fr 9/25: How to succeed with bitwise arithmetic (asm4)
- Tu 9/29: Calling convention and stack (asm5; activity)
- We 9/30: Callee- and caller-saved variables and optimization (asm6)
- Th 10/1: C++ data structures (asm7; activity
- Fr 10/2: System calls and debugging (asm8)
- Sa 10/3: Due date for problem set 2
- Readings: CS:APP3e §3–3.9, §6.1–6.2, §7 (skim), §8.1 (preview)
- Lecture notes
- Problem set 2
Unit 1: Data representation
- We 9/2: Overview, integer representation (datarep1; activity)
- Fr 9/4: Memory layout, segments, storage durations, addresses (datarep2)
- Tu 9/8: Collection layout, alignment, pointer arithmetic (datarep3; activity)
- We 9/9: Array layout, array performance (datarep4; activity)
- Th 9/10: Arena allocation (datarep5; activity)
- Fr 9/11: Pointer arithmetic (datarep6; activity)
- Sa 9/12: Ungraded intermediate checkin of problem set 1
- Tu 9/15: Undefined behavior 1 (datarep7; activity)
- We 9/16: Problem set questions, section material (datarep8)
- Th 9/17: Undefined behavior 2: Stack buffer overflow (datarep9; activity)
- Fr 9/18: Bitwise arithmetic (datarep10)
- Su 9/20: Due date for problem set 1, except for heavy hitters
- Sa 9/26: Final due date for problem set 1
- Readings: CS:APP3e §1, §2.1–2.4, §3.7–3.9, §9.9–9.11
- Lecture notes
- Problem set 1