Tentative Schedule
The schedule will remain tentative all term. If you’d like a preview of coming attractions, check the 2011 schedule.
“Scribe notes” were produced by students (or TFs), 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). You can view the schedule for scribe note assignments by date.
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.
You can also check the 2011 schedule, which has some section numbers for CS:APP1e when they don't match. (But we are rearranging the lectures this year.)
Date |
# |
Topic |
Recommended reading |
Notes |
---|---|---|---|---|
T 9/4 |
1 |
|||
R 9/6 |
2 |
1 A Tour of Computer Systems |
||
T 9/11 |
3 |
Computer arithmetic |
2.2 Integer Representations |
|
R 9/13 |
4 |
Structured data. Memory layout |
3.8 Array Allocation and Access |
|
F 9/14 |
Assignment 0
due |
|||
T 9/18 |
5 |
Dynamic memory management. Memory errors |
9.11 Common Memory-Related Bugs in C Programs |
|
R 9/20 |
6 |
Buffer overruns, Automatic memory management |
9.10 Garbage Collection |
|
T 9/25 |
7 |
Automatic memory management |
9.9 Dynamic Memory Allocation, from 9.9.5 Implementation Issues |
|
R 9/27 |
8 |
Machine programming 1: Arithmetic, data |
3 through 3.5 Arithmetic and Logical Operations |
|
F 9/28 |
Assignment 1
due |
|||
T 10/2 |
9 |
Machine programming 2: Control, calling conventions |
3.6–3.7 Control and Procedures |
|
R 10/4 |
10 |
Machine programming 3: Loops; Memory attacks |
3.12 Out-of-Bounds Memory References; refresh 9.11 |
|
T 10/9 |
11 |
Memory attacks 2; Process isolation |
8.2 Processes |
|
R 10/11 |
12 |
Process isolation; Multiprocessing |
8 Exceptional Control Flow: 8.1 Exceptions |
|
F 10/12 |
Assignment 2 due |
|||
T 10/16 |
13 |
Memory protection |
9 Virtual Memory: 9.1 Physical and Virtual Addressing |
|
R 10/18 |
— |
Midterm (in class) |
||
T 10/23 |
14 |
Process virtual memory; Process control |
9.6 Address Translation |
|
R 10/25 |
15 |
Virtual memory and performance |
9.3 VM as a Tool for Caching |
|
T 10/30 |
16 |
Caching and the memory hierarchy |
6.1 Storage technologies |
|
R 11/1 |
17 |
Input and output |
10 System I/O (but not 10.4) |
|
F 11/2 |
Assignment 4 posted |
|||
T 11/6 |
18 |
Caches |
6.4 Cache Memories |
|
R 11/8 |
19 |
Cache eviction, Processor caches |
N/A |
|
T 11/13 |
20 |
System optimization |
5 Optimizing Program Performance, particularly 5.1-5.6, 5.13-5.14 |
|
W 11/14 |
Assignment 4 due |
|||
R 11/15 |
21 |
Advanced processor cache optimization |
N/A |
|
T 11/20 |
22 |
Analyzing processor caches, Networking |
11 Network Programming through 11.2 |
|
R 11/22 |
— |
Thanksgiving holiday |
||
T 11/27 |
23 |
I/O parallelism |
12 Concurrent Programming through 12.2 |
|
R 11/29 |
24 |
Threaded parallelism |
12.3 Concurrent Programming with Threads, 12.4, 12.6, 12.7 |
|
T 12/4 |
25 |
Advanced concurrency |
N/A |