Date | Topic | Notes | Homework | Solution |
T | | Racket | PLAI §1, slides, quick ref | HW 0 | available |
Th | | How to Design Programs | slides | HW 1 | available |
T | | Arithmetic, binding, substitution | PLAI §2-3, slides, ae, wae | | |
Th | | First-order functions | PLAI §4, slides, f1wae | HW 2 | available |
T | | Deferred substitution | PLAI §5, slides, f1wae-ds | | |
Th | | Compilation and lexical scope | slides, cf1wae | HW 3 | available |
T | | First-class functions | PLAI §6, slides, fae, trace | | |
Th | | Dynamic scope, recursion | PLAI §9, slides, cfae | HW 4 | available |
T | | Encodings, metacircular recursion | slides, frfae | | |
Th | | Implementing recursion | PLAI §10, slides, rcfae | HW 5 | available |
T | | Mid-Term 1 | sample | | |
Th | | Lazy evaluation | PLAI §7-8, slides, plai-lazy, cfal | HW 6 | available |
T | | Mutable structures | PLAI §13, slides, bcfae | | |
Th | | Variables | PLAI §14, slides, bmcfae | HW 7 | available |
T | | Fall break | | | |
Th | | Fall break | | | |
T | | Store-passing practice | (code in class only) | | |
Th | | Canceled | | HW 8 | available |
T | | Continuation-passing style | PLAI §15-18, slides, server | | |
Th | | Continuations | PLAI §19, slides | HW 9 | available |
T | | Implementing continuations | PLAI §20, slides, kcfae, delim | | |
Th | | Compiling an interpreter | slides, code | HW 10 | available |
T | | Garbage collection | slides, gc | | |
Th | | Mid-Term 2 | sample | (none) | |
T | | Types | PLAI §24-26, slides | | |
Th | | Type Checking | PLAI §25-26, slides, plai-typed, demo, kcfae-t, tfae-t | HW 11 | |
T | | Objects and classes | slides, cae-t | | |
Th | | Thanksgiving | | | |
T | | Subclasses and type checking | slides, ticae-t | HW 12 | |
Th | | Types and recursion | PLAI §26-27; slides, trcfae-t, tvrcfae-t | | |
T | | Type soundness and inference | PLAI §28, 30; slides; tifae-t | | |
Th | | Polymorphism | PLAI §29, 31, slides | | |