Date | Topic | Videos | PLAI | Slides | Programs & Notes | In Class | Homework | Solution |
M | | Racket and plai-typed | | §1 | slides | | quick ref | HW 0 | available |
W | | How to Design Programs | HtDP videos | | slides | HtDP | fuel, turns, u-turns | HW 1 | available |
M | | Labor Day | | | | | | | |
W | | Arithmetic and functions | Interp videos | §2-5 | slides | arith, ariths, function | multiplus | HW 2 | available |
M | | Local binding and environments | Binding videos | §6 | slides | let, env | if0 | | |
W | | Functions as values | Function videos | §7 | slides | lambda | example traces | HW 3 | available |
M | | Mutable state | Store videos | §8.1 | slides | box, store, store-with | swap, trace | | |
W | | Variables | Variable videos | §8.2 | slides | variable | midterm | HW 4 | available |
M | | Records and encodings | Record videos Encoding videos | | slides | record, record-mutable | | | |
W | | Mid-term 1 | | | | practice midterm | | HW 5 | available |
M | | Recursion | Letrec videos | §9 | slides | letrec-mc, letrec | lambda-clos | | |
W | | Lazy evaluation | Lazy videos | §17.1 | slides | lazy, more-lazy | lazy-record | HW 6 | available |
M | | Continuations | Continuation videos | | slides | lambda-k | lambda-cons-k | | |
W | | Errors, exceptions, continuations | Control videos | §14 | slides | error, try, letcc | trace, letcc-cps, amb | HW 7 | available |
M | | Fall break | | | | | | | |
W | | Fall break | | | | | | | |
M | | Objects | Object videos | §10 | slides | object | object-set | | |
W | | Classes | Class videos | | slides | class, inherit, inherit-parse | in-class | HW 8 | available |
M | | No class | | | | | | | |
W | | Types | Type videos | §15.1-2 | slides | typed-lambda | typed-record | HW 9 | available |
M | | Type inference | Inference videos | | slides | infer-lambda | infer-record | | |
W | | Typed recursion | Typed recursion videos | §15.2.3-4 | slides | typed-letrec, type-case | equals | HW 10 | available |
M | | Parametric polymorphism | Polymorphism videos | §15.3.1 | slides | poly-lambda | poly-tree, midterm | | |
W | | Mid-term 2 | | | | practice midterm | | HW 11 | available |
M | | Subtyping | Subtyping videos | §15.3.7 | slides | typed-record, subtype, subtype-mut | if0 | | |
W | | Classes and type checking | Typed class videos | | slides | typed-class, typed-parse | class-in-class | HW 12 | |
M | | Compilation | Compilation videos | | slides | 0, 1, 2, 3, 4 | minus, unbox | | |
W | | Garbage collection | GC videos | §11 | slides | 5 | gc-unbox | HW 13 | available |
M | | Pattern-based macros | Macro videos | §13 | slides | cbr | lazy1, lazy2 | | |
W | | Procedural macros | Syntax videos | | slides | | record-macro | HW 14 | |
M | | Macro-based languages | Language videos | | slides | method-macro, class-macro, class-lang | lang-in-class | | |
W | | Typed and infix languages | #lang videos | | slides | type-class-lang, type-class | | HW 15 | |