Key: PA = Programming Assignment, WA = Written Assignment
| Date | Lecture | Topic | Assigned | Due |
|---|---|---|---|---|
| 4/1 Tuesday | 1 | Course Overview | ||
| 4/3 Thursday | 2 | Cool: The Course Project | ||
| 4/8 Tuesday | 3 | Lexical Analysis | PA1 | |
| 4/10 Thursday | 4 | Finite Automata | WA1 | |
| 4/15 Tuesday | 5 | Introduction to Parsing | ||
| 4/17 Thursday | 6 | Syntax-Directed Translation | PA2, WA2 | PA1, WA1 |
| 4/22 Tuesday | 7 | Top-Down Parsing & Bottom-Up Parsing I | ||
| 4/24 Thursday | 8 | Bottom-Up Parsing II | ||
| 4/28 Monday | WA2 | |||
| 4/29 Tuesday | 9 | Semantic Analysis and Type Checking I | PA3 | PA2 |
| 5/1 Thursday | In-class Midterm | |||
| 5/6 Tuesday | 10 | Type Checking II | ||
| 5/8 Thursday | 11 | Runtime Organization | ||
| 5/13 Tuesday | 12 | Code Generation | WA3 | |
| 5/15 Thursday | 13 | Operational Semantics | PA4, Optimizer | PA3 |
| 5/20 Tuesday | 14 | Local Optimization | WA3 | |
| 5/22 Thursday | 15 | Global Optimization | WA4 | |
| 5/27 Tuesday | 16 | Register Allocation | ||
| 5/29 Thursday | 17 | Garbage Collection | PA4 | |
| 6/3 Tuesday | 18 | TBD | WA4 | |
| 6/4 Wednesday | Last Day of Classes | PA5 |