| Date | Topics | Readings |
| Feb 4 | Introduction (OCaml slides) | Appel 1 |
| Feb 6 | X86lite | Appel 6 |
| Feb 11 | Intermediate representations I (example code) | |
| Feb 13 | Intermediate representations II (example code) | Appel 8 |
| Feb 18 | LLVM I | |
| Feb 20 | LLVM II | |
| Feb 25 | Lexing (example code) | Appel 2 |
| Feb 27 | Parsing I (example code) | Appel 3 |
| Mar 3 | Parsing II (web demo, example code) | |
| Mar 5 | Parsing III (web demo) | |
| Mar 10 | Midterm review | |
| Mar 12 | Midterm | |
| Mar 17,19 | Spring break | |
| Mar 24 | Types I (example code) | |
| Mar 26 | Types II | |
| Mar 31 | Types III | |
| Apr 2 | Data Flow Analysis & Optimization I | Appel 17 |
| Apr 7 | Data Flow Analysis & Optimization II (web demo) | |
| Apr 9 | Data Flow Analysis & Optimization III | |
| Apr 14 | Register Allocation | Appel 10 |
| Apr 16 | Control flow (web demo) | |
| Apr 21 | Loop Optimizations | Appel 18 |
| Apr 23 | High-level languages I (example code) | Appel 13,14,15 |
| Apr 28 | High-level languages II | |
| Apr 30 | Wrap-up |
| Component | Weight |
| Assignment 1 | 10% |
| Assignment 2 | 12% |
| Assignment 3 | 13% |
| Assignment 4 | 13% |
| Assignment 5 | 12% |
| Midterm Exam | 20% |
| Final Exam | 20% |