| Moon's day | Woden' s day | Frigga's day | 
|---|
| 
| Jan 14 |  | Introduction and historySlides
 |  |  
 |  |  | 
| Jan 18 |  | Syntax. Formal languages and the compilation process [2.1] |  |  
 |  | 
|  | 
| Jan 23 |  | Syntax; representing a language in Java and ML [2.2]Slides
 |  |  proj 1, due 1/30
 |  |  | 
| 
| Jan 28 |  | More on parsing algorithms; parser generatorsSlides
 |  |  
 |  |  | 
| Feb 1 |  | Abstract syntax [2.3] |  |  proj 3, due 2/8
 |  | 
| 
| Feb 4 |  | Semantics. Types [3.1] |  |  
 |  |  |  | 
| 
| Feb 11 |  | State transformations, operational semantics [3.(2-3)] |  |  proj 4, due 2/20
 |  | 
| Feb 13 |  | Axiomatic semantics and denotational semantics [3.(4-5)]Slides
 |  |  
 |  | 
| Feb 15 |  | Imperative programming. Imperative languages [4.(1-4)] |  |  
 |  | 
|  |  |  | 
| 
| Feb 25 |  | Memory issues Run-time memory [5.(1-2.2)] |  |  
 |  | 
| Feb 27 |  | Call and return [5.2.3] |  |  
 |  |  | 
| 
| Mar 3 |  | Structs and semantics [5.(5-6)]Slides
 |  |  
 |  |  | 
| Mar 7 |  | Garbage collection [5.7] |  |  
 |  | 
|  |  |  | 
|  |  |  | 
| 
| Mar 24 |  | Object-oriented programming. Introduction to OO [7.1, 7.2.(1-2)]Slides
 |  |  proj 7, due 3/31
 |  | 
| Mar 26 |  | Type checking in OO |  |  
 |  | 
| Mar 28 |  | Polymorphism [7.2.(5-6)] |  |  
 |  | 
|  |  | 
| Apr 4 |  | OO without classesSlides
 |  |  
 |  | 
| 
| Apr 7 |  | Functional programming. Lambda calculus [8.1]For Wed: [ps] [pdf]
 |  |  
 |  | 
| Apr 9 |  | More lambda calculus |  |  proj 9, due 4/23
 |  | 
| Apr 11 |  | Constructing a functional languageSlides
 |  |  
 |  | 
| 
| Apr 14 |  | Recursion and lists |  |  
 |  | 
| Apr 16 |  | Types in a functional languageSlides
 |  |  
 |  | 
| Apr 18 |  | Type-soundness proofs |  |  
 |  | 
| 
| Apr 21 |  | Finishing type-soundness proofs |  |  
 |  | 
| Apr 23 |  | Tail form / continuation passing style |  |  
 |  | 
| Apr 25 |  | Compilation. Compiling Jay |  |  proj 10, due 5/2
 |  | 
| 
| Apr 28 |  | Classfiles and the JVM instruction set |  |  
 |  | 
| Apr 30 |  | "Growing a Language" |  |  
 |  |  |