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