| Date | Topic | PFPL Chapters | Homework | |
|---|---|---|---|---|
| Jan | 15 | What Is A Programming Language? Syntax, Statics, Dynamics. | 1-3 | Assignment 0 Out |
| 16 | Inductive Definitions; Abstract Syntax and Binding | 1-3 | ||
| 17 | An Expression Language: Calculation, Structural Operational Semantics | 4-7 | ||
| 22 | Statics; Safety; Run-Time Errors | 7 | Assignment 0 Due, Assignment 1 Out | |
| 23 | Implementing Abstract Syntax; deBruijn representation | 1-3 | ||
| 24 | Function Definitions | 8 | ||
| 29 | Goedel's T and PCF | 10 | Solution 0 Out | |
| 30 | Fixed Points and Recursion | 10 | ||
| 31 | Definability and Undefinability | 10 | ||
| Feb | 5 | Products and Sums | 11-12 | Assignment 1 Due |
| 6 | Pattern Matching | 13 | ||
| 7 | Dynamic Dispatch (Classes and Methods) | 25 | Assignment 2 Out, Solution 1 Out | |
| 12 | Recursive Types | 16 | ||
| 13 | Self-Application | 25 | ||
| 14 | Self-Reference and Self-Application | 16 | ||
| 19 | Dynamic Languages | 18-19 | ||
| 20 | Dynamic Typing | 18 | ||
| 21 | Dynamic Languages are Static Languages | 19 | Assignment 2 Due, Assignment 3 Out | |
| 26 | System F and Polymorphism | 20 | Solution 2 Out | |
| 27 | Polymorphic Church Encodings | 20 | ||
| 28 | Abstract Types and Representation Independence | 21 | ||
| Mar | 5 | Propositions as Types | 21 | |
| 6 | Review for Midterm | |||
| 7 | Midterm Examination | Assignment 3 Due (Fri) | ||
| 12 | (Spring Break) | |||
| 13 | (Spring Break) | |||
| 14 | (Spring Break) | |||
| 19 | Modernized Algol | 35 | ||
| 20 | Scoped Assignables | 35 | ||
| 21 | Modernized Algol | 36 | Solution 3 Out, Assignment 4 Out | |
| 26 | Assignable References | 36 | ||
| 27 | Mutable Data Structures | 36 | ||
| 28 | Benign Effects vs Modal Separation | 36 | ||
| Apr | 2 | Laziness: Call-By-Need | 37 | |
| 3 | Lazy Data Structures | 37 | ||
| 4 | Nested Data Parallelism | 39 | Assignment 4 Due, Assignment 5 Out | |
| 9 | Brent's Principle | 39 | Solution 4 Out | |
| 10 | Cost Graphs; Work and Span | 39 | ||
| 11 | Speculations and Futures | 40 | ||
| 16 | Concurrent Interaction | 41 | ||
| 17 | Events and Synchronization | 41 | ||
| 18 | (Carnival Break) | Assignment 5 Due, Assignment 6 Out | ||
| 23 | Communication: π-Calculus | 41 | Solution 5 Out | |
| 24 | Programming with Process Calculus | |||
| 25 | Concurrent Algol | 42 | ||
| 30 | Concurrent Algol | 42 | ||
| May | 1 | Review | ||
| 2 | Propositions as Types Contd. | 30 | Assignment 6 Due | |