Schedule
The schedule will remain tentative all term. If you’d like a preview of coming attractions, check the 2012 schedule.
“Scribe notes” were produced by students (note taking schedule), and may be incomplete or wrong (although we certainly hope they're awesome). “Thoughts” are instructors’ supplementary notes on the lecture; these will not necessarily be comprehensible on their own (they might build on, or go beyond, actual lecture material).
Recommended readings are generally from the textbook, CS:APP2e. The first edition often has comparable readings; we give section titles to help you match them up.
Date |
# |
Topic |
Recommended reading |
Notes |
---|---|---|---|---|
T 9/3 |
1 |
Course overview: Robustness |
||
R 9/5 |
2 |
Course overview: Performance |
1 A Tour of Computer Systems |
|
Assignment 1 posted |
||||
T 9/10 |
3 |
UNIT I. FUNDAMENTALS |
2.1 Information Storage (2.1–2.1.6) |
|
R 9/12 |
4 |
Stacks, data representation |
9.9 Dynamic Memory Allocation, through 9.9.4 Fragmentation |
|
F 9/13 |
Assignment 1 intermediate due date |
|||
T 9/17 |
5 |
Representation of collections, memory errors |
9.9 Dynamic Memory Allocation, from 9.9.5 Implementation Issues |
|
R 9/19 |
6 |
Memory error protection, other nasal demons |
9.10 Garbage Collection |
|
F 9/20 |
Assignment 1 intermediate due date |
|||
T 9/24 |
7 |
Dynamic memory allocation |
2.1.7–2.1.10 Introduction to Boolean Algebra, etc. |
|
R 9/26 |
8 |
Garbage collection |
6.1 Storage technologies |
|
F 9/27 |
Assignment 1
due |
|||
T 10/1 |
9 |
I/O caching: caching, prefetching, buffer cache |
10 System I/O (but not 10.4) |
|
R 10/3 |
10 |
Cache model |
6.4 Cache Memories |
|
T 10/8 |
11 |
Associative caches, processor caches |
3 through 3.5 Arithmetic and Logical Operations |
|
R 10/10 |
12 |
Application-level caches |
3.6–3.7 Control and Procedures /// 8 Exceptional Control Flow:
8.1 Exceptions |
|
F 10/11 |
Assignment 2 due |
|||
T 10/15 |
13 |
Arithmetic instructions and computer arithmetic |
3.12 Out-of-Bounds Memory References //// 9 Virtual Memory: 9.1
Physical and Virtual Addressing |
|
R 10/17 |
— |
Midterm (in class) |
||
T 10/22 |
14 |
Control flow instructions |
8.2 Processes |
|
R 10/24 |
15 |
Calling convention |
9.3 VM as a Tool for Caching |
|
Su 10/27 |
Assignment 3 due |
|||
T 10/29 |
16 |
UNIT IV. KERNEL PROGRAMMING |
||
R 10/31 |
17 |
Privilege, exceptional control flow, virtual memory I |
||
T 11/5 |
18 |
Virtual memory II |
||
R 11/7 |
19 |
Fork, advanced virtual memory |
N/A |
|
S 11/10 |
Assignment 4 due |
|||
T 11/12 |
20 |
UNIT V. PROCESS MANAGEMENT |
5 Optimizing Program Performance, particularly 5.1-5.6, 5.13-5.14 |
|
R 11/14 |
21 |
Inter-process communication, pipes |
N/A |
|
T 11/19 |
22 |
Process interruption: signals |
11 Network Programming through 11.2 |
|
R 11/21 |
23 |
UNIT VI. CONCURRENCY |
12 Concurrent Programming through 12.2 |
|
F 11/22 |
Assignment 5 due |
|||
T 11/26 |
24 |
Threaded parallelism |
12.3 Concurrent Programming with Threads, 12.4, 12.6, 12.7 |
|
R 11/28 |
— |
Thanksgiving holiday |
||
T 12/3 |
25 |
Advanced concurrency |
N/A |
|
W 12/4 |
Assignment 6 “due” (in reading week) |