| Week 1 (Jan 5-9) | 
  
    | Lecture Topics: | Introduction to the course Introduction to compilers Scanning  | 
  
  | Readings: | Chapters 1, 2 and 3,  Crafting a Compiler | 
  
  | Milestones: | Start to form groups (3 people per group
recommended) | 
  | Week 2 (Jan 12-16) | 
  
    | Lecture Topics: |  More on Scanners   Parsers  | 
  
  | Readings: | Parser slides - Part 1 
      Parser slides - Part 2 
      Chapter 4:  4.1-4.4 recommended; 4.5 optional,  Crafting a Compiler Chapter 5: 5.1-5.2 recommended; 5.3-5.9 optional,  Crafting a Compiler Chapter 6: 6.1, 6.2 and 6.4 recommended; 6.3 and
6.5 optional,  Crafting a Compiler   | 
  
    | Milestones: |  Form groups by the end of the week  | 
  | Week 3 (Jan 19-23) | 
  
    | Lecture Topics: |  OncoTime - Domain Specific Language   Abstract Syntax Trees  SableCC | 
   
  | Readings: |  | 
   
    | Milestones: |  Individual warmup assignment   Add/drop deadline, January 20   Group formation formalization  | 
  | Week 4 (Jan 26-30) | 
  
    | Lecture Topics: |  Introduction to Go   Type Checking  | 
  Readings: | Chapter 8.8,  Crafting a Compiler | 
  
| Week 5 (Feb 2-6) | 
  
    | Lecture Topics: |  More Symbol Tables   Symbols and Types for the Projects  | 
  
  | Readings: | Chapter 8.1-8.7,  Crafting a Compiler   | 
  
  | Milestones: |  Individual Warmup Assignment, Part 2   No Lecture, Feb 3 | 
  | Week 6 (Feb 9-13) | 
  
    | Lecture Topics: |  Virtual Machines  | 
  
  | Readings: |  | 
  
  | Milestones: |  Group Scanner, Parser and Weeding, Monday, Feb 16  | 
  | Week 7 (Feb 16-20) | 
  
    | Lecture Topics: |  Virtual Machines and Code Generation  | 
  
  | Readings: |  | 
  
  | Milestones: |  Group Scanner, Parser and Weeding, Monday, Feb 16  | 
  | Week 8 (Feb 23-27) | 
  
    | Lecture Topics: |  Code Generation   Optimizations  | 
  
  | Readings: |  | 
 
 | Milestones: |  Group Type Checking,  Friday, March 6  | 
  
    | Study Break
 
 
 | 
  | Week 9 (March 9-13) | 
  
    | Lecture Topics: |  Review (Tuesday) and Midterm (Friday)   No class on Thursday  | 
  
 | Milestones: | Midterm, Friday 13th  | 
  | Week 10 (Mar 16-20) | 
  
    | Lecture Topics: |  Garbage Collection and Optimization  | 
  
  | Readings: |  | 
  
  
| Week 11 (Mar 23-27) | 
  
    | Lecture Topics: |  Native Code Generation  | 
  | Week 12 (Mar 30 - Apr 3) | 
  
    | Lecture Topics: |  Static Analysis  | 
  
  | Readings: |  | 
  
  | Milestones: |  Wednesday, April 1, Milestone #3   Thursday April 2, no lecture   Friday April 3, Good Friday, no lecture  | 
  | Week 13 (April 6-10) | 
  
    | Lecture Topics: |  More Static Analysis and Couse recap | 
  
  | Readings: |  | 
-->
  
  | Milestones: |  Monday, April 6, Easter Monday   Milestone #4, Friday April 10  | 
  | Post Weeks (April 13-17 and 20-24) | 
  
  | Milestones: |  Final Report, Tuesday, April 14   Peephole Competition, Tuesday, April 14   Group Presentations to instructor/TA   No classes (no class on April 14)   Final Exams begin April 16   COMP 520 Final Exam: April 21, 2pm  |