| Date | Material Covered | Reading | Problem Set | Out | Due | |
|---|---|---|---|---|---|---|
| WEEK 1 | ||||||
| Mo | 8/24 | Administrative details, Course overview | Chapter 1 | |||
| We | 8/26 | Information storage (code) | 2.1 | 2.43, 2.44 | ||
| WEEK 2 | ||||||
| Mo | 8/31 | Representing integers (code, notes) | 2.2-2.3 | 2.46, 2.50, 2.54 | Lab 1 | |
| We | 9/2 | Representing floats (notes) | 2.4-2.5 | 2.56, 2.59, 2.60 | ||
| WEEK 3 | ||||||
| Mo | 9/7 | No class -- Labor Day | ||||
| We | 9/9 | x86 machine model (code, notes) | 3.1-3.5 | 3.31 | ||
| WEEK 4 | ||||||
| Mo | 9/14 | Representing control flow (code, notes) | 3.6, 3.12 | 3.32 | Lab 2 | Lab 1 |
| We | 9/16 | More control flow, Representing procedures (code, notes) | 3.7 | 3.34 | ||
| WEEK 5 | ||||||
| Mo | 9/21 | Array allocation and access (notes) | 3.8 | none | ||
| We | 9/23 | Structures, Buffer overflow (notes) | 3.9-3.11, 3.13, 3.16 | 3.36 | ||
| WEEK 6 | ||||||
| Mo | 9/28 | Review for midterm exam 1 (sample exam, solns) | Lab 3 | Lab 2 | ||
| We | 9/30 | Midterm exam 1 (sample solns) | ||||
| WEEK 7 | ||||||
| Mo | 10/5 | Optimization | 5.1-5.8 | 5.14 | ||
| We | 10/7 | More on optimization | 5.9-5.16 | 5.15, 5.19 | ||
| WEEK 8 | ||||||
| Mo | 10/12 | No class -- Fall Break | ||||
| We | 10/14 | No class -- Fall Break | ||||
| WEEK 9 | ||||||
| Mo | 10/19 | Memory hierarchy, Locality, Caches (notes) | 6.1-6.4 | 6.21, 6.23 | Lab 4 | Lab 3 |
| We | 10/21 | Writing cache-friendly code (notes) | 6.5-6.8 | 6.25-6.27 | ||
| WEEK 10 | ||||||
| Mo | 10/26 | Linking (notes) | 7.1-7.6 | 7.6, 7.8, 7.9 | ||
| We | 10/28 | More on linking (notes) | 7.7-7.14 | 7.10 | ||
| WEEK 11 | ||||||
| Mo | 11/2 | Exceptions, Process control (notes) | 8.1-8.4 | 8.9, 8.10, 8.14 | Lab 5 | Lab 4 |
| We | 11/4 | Signals | 8.5-8.8 | 8.8, 8.18 | ||
| WEEK 12 | ||||||
| Mo | 11/9 | Review for midterm exam 2 (sample exam, solns, notes) | ||||
| We | 11/11 | Midterm exam 2 (sample solns) | ||||
| WEEK 13 | ||||||
| Mo | 11/16 | Virtual memory (notes) | 10.1-10.7 | 10.11, 10.13 | Lab 6 | |
| We | 11/18 | Dynamic memory allocation (notes) | 10.9 | 10.15 | ||
| WEEK 14 | ||||||
| Mo | 11/23 | More on malloc | 10.16 | Lab 5 | ||
| We | 11/25 | Garbage collection, Memory-related bugs | 10.10-10.13 | 10.19 | ||
| WEEK 15 | ||||||
| Mo | 11/30 | Network programming | Chapter 12 (skim) | none | ||
| We | 12/2 | Concurrent programming | 13.1-13.4 | 13.12, 13.13 | ||
| WEEK 16 | ||||||
| Mo | 12/7 | Semaphores, Concurrency issues | 13.5-13.8 | 13.17, 13.20 | ||
| We | 12/9 | Review for final exam | Lab 6 | |||