The calendar below provides information on the course’s lecture, recitation, one-on-one meeting, project, and quiz sessions. For the one-on-one meetings, students read assigned papers and discuss the papers in individual meetings with the professors or teaching assistants.
Calendar Legend
L: Lecture
P: Project
R: Recitation
Q: Quiz
M: Meeting
(S): Session taught by Professor Saman Amarasinghe
(M): Session taught by Professor Martin Rinard
| WeEK # | DAY 1 | DAY 2 | DAY 3 | DAY 4 | 
|---|---|---|---|---|
| 1 | L1: Course Administration Information and Overview (S) | 
P1: Scanner/Parser Assigned
 R1: Scanner Parser Project  | 
||
| 2 | L2: Overview of Programming Languages (M) | L3: Regular Expressions, Language Specification by Formal Grammars (M) | L4: Parse Table Construction (M) | L5: Top-down Parsing (M) | 
| 3 | 
P1: Scanner/Parser Project Due
 P2: Semantic Checker Project Assigned  | 
R2: Project Information Session | ||
| 4 | L6: Intermediate Representations (M) | L7: Semantic Analysis (M) | ||
| 5 | Q1: In-class Quiz | M1: One-on-One Meeting | M1: One-on-One Meeting (cont.) | 
P2: Semantic Checker Project Due
 P3: Code Generator Project Assigned  | 
| 6 | R3: Project Information Session | 
L8: Unoptimized Code Generation (S)
 M2: One-on-One Meeting  | 
||
| 7 | 
L9: Unoptimized Code Generation (cont.) (S)
 M2: One-on-One Meeting (cont.)  | 
|||
| 8 | P3: Code Generator Project Checkpoint | |||
| 9 | 
P3: Code Generator Project Due
 L10: Introduction to Program Analysis and Optimization (M) P4: Data-flow Optimizer Project Assigned  | 
L11: Data-flow Analysis (M) | 
L12: Data-flow Optimizations (M)
 M3: One-on-One Meeting  | 
L13: Foundations of Data-flow Analysis (M)
 M3: One-on-One Meeting (cont.)  | 
| 10 | Q2: In-class Quiz | R4: Project Information Session | ||
| 11 | P4: Data-flow Optimizer Project Checkpoint | |||
| 12 | 
P4: Data-flow Optimizer Project Due
 P5: Instruction Optimizer Project Assigned  | 
|||
| 13 | R5: Project Information Session | L14: Instruction Scheduling (S) | L15: Instruction Scheduling (cont.) (S) | L16: Register Allocation (S) | 
| 14 | L17: Putting it all Together (S) | Q3: In-class Quiz | ||
| 15 | P5: Instruction Optimizer Project Due | L18: Compiler Derby (S) |