| Date | Material Covered | Reading | Problem Set  | Out | Due | |
|---|---|---|---|---|---|---|
| WEEK 1 | ||||||
| Mo | 8/25 | Administrative details, Course overview | Ch 1 |   |   |   |
| We | 8/27 | Information storage (code) | Ch 2 (2.1) | 2.43, 2.44 |   |   |
| WEEK 2 | ||||||
| Mo | 9/1 | No class |   |   |   |   |
| We | 9/3 | Representing integers (code) | Ch 2 (2.2-2.3) | 2.46, 2.50, 2.54 |   Lab 1   |   |
| WEEK 3 | ||||||
| Mo | 9/8 | More on integers, Representing floats (code) | Ch 2 (2.4-2.5) | 2.56, 2.59, 2.60 |   |   |
| We | 9/10 | x86 machine model (code) | Ch 3 (3.1-3.5) | 3.31 |   |   |
| WEEK 4 | ||||||
| Mo | 9/15 | Representing control flow, gdb debugger (code)   | Ch 3 (3.6, 3.12) | 3.32 | Lab 2 | Lab 1 |
| We | 9/17 | More on control flow, Representing procedures | Ch 3 (3.6-3.7) | 3.34 |   |   |
| WEEK 5 | ||||||
| Mo | 9/22 | Array allocation and access | Ch 3 (3.8) | none |   |   |
| We | 9/24 | Structures, Data alignment, Buffer overflow | Ch 3 (3.9-3.11, 3.13, 3.16) |
3.36 |   |   |
| WEEK 6 | ||||||
| Mo | 9/29 | Review for midterm exam 1 (sample exam, soln) |   |   | Lab 3 | Lab 2 |
| We | 10/1 | Midterm exam 1 |   |   |   |   |
| WEEK 7 | ||||||
| Mo | 10/6 | Optimization | Ch 5 (5.1-5.8) | 5.14 |   |   |
| We | 10/3 | More on optimization | Ch 5 (5.9-5.16) | 5.15, 5.19 |   |   |
| WEEK 8 | ||||||
| Mo | 10/13 | No class |   |   |   |   |
| We | 10/15 | No class |   |   |   |   |
| WEEK 9 | ||||||
| Mo | 10/20 | Memory hierarchy, Locality, Cache memory | Ch 6 (6.1-6.4) |   | Lab 4 | Lab 3 |
| We | 10/22 | More on caches, Writing cache-friendly code | Ch 6 (6.5-6.8) |   |   |   |
| WEEK 10 | ||||||
| Mo | 10/27 | Linking | Ch 7 (7.1-7.6) |   |   |   |
| We | 10/29 | More on linking | Ch 7 (7.6-7.14) |   |   |   |
| WEEK 11 | ||||||
| Mo | 11/3 | Exceptions, Processes, Process control | Ch 8 (8.1-8.4) |   | Lab 5 | Lab 4 |
| We | 11/5 | More on process control, Signals | Ch 8 (8.4-8.8) |   |   |   |
| WEEK 12 | ||||||
| Mo | 11/10 | Review for midterm exam 2 (sample exam) |   |   |   |   |
| We | 11/12 | Midterm exam 2 |   |   |   |   |
| WEEK 13 | ||||||
| Mo | 11/17 | Virtual memory | Ch 10 (10.1-10.7) |   | Lab 6 |   |
| We | 11/19 | Dynamic memory allocation | Ch 10 (10.9) |   |   |   |
| WEEK 14 | ||||||
| Mo | 11/24 | More on malloc | Ch 10 (10.9) |   |   | Lab 5 |
| We | 11/26 | Garbage collection, Memory-related bugs in C | Ch 10 (10.10-10.13) |   |   |   |
| WEEK 15 | ||||||
| Mo | 12/1 | Network Programming | Ch 12 |   |   |   |
| We | 12/3 | Concurrent programming, Threads, Sharing | Ch 13 (13.1-13.4) |   |   |   |
| WEEK 16 | ||||||
| Mo | 12/8 | Semaphores, Concurrency issues | Ch 13 (13.5-13.8) |   |   |   |
| We | 12/10 | Review for final exam |   |   |   | Lab 6 |
Final Exam: 1:00-3:00p Monday, December 15 in 101 WEB