Date | Topic | Videos | PLAI | Slides | Programs & Notes | In Class | Homework |
M | | Introduction | Introduction videos Tutorial videos | §1 | slides | Shplait tutorial | | HW 0 |
W | | How to Design Programs | HtDP videos | | slides | HtDP | robot | HW 1 |
M | | Interpreters | Interp videos | §2-5 | slides | arith, parse | divide | |
W | | Functions and substitution | Function videos | §2-5 | slides | function | function_abs | HW 2 |
M | | Labor Day | | | | | | |
W | | Binding and environments | Binding videos | §6 | slides | let, env, HtDP IV | remove, let_q | |
M | | Functions as values | Lambda videos | §7 | slides | lambda | example traces | HW 3 |
W | | Mutable state | Store videos | §8.1 | slides | box, store, store_reslet | swap | |
M | | Records | Record videos | | slides | record, mutable_record | record2 | HW 4 |
W | | Variables | Variable videos | §8.2 | slides | variable, crate | plusplus, fluid_let | |
M | | Encodings | Encoding videos | | slides | just_lambda | lambda_bool_pair | no HW |
W | | Midterm 1 | | | | practice midterm | | |
M | | Encoding recursion | Y videos | | slides | just_lambda | len, lambda_len | HW 5 |
W | | Recursion | Letrec videos | §9 | slides | letrec_mc, letrec, letrec_ubi | letrec_multi | |
M | | Fall break | | | | | | |
W | | Fall break | | | | | | |
M | | Lazy evaluation | Lazy videos | §17.1 | slides | lazy, more_lazy | lazy_box | HW 6 |
W | | Continuations | Continuation videos | | slides | lambda_k | lambda_pair_k, lambda_cps | |
M | | Errors, exceptions, call/cc | Control videos | §14 | slides | error, try, let_cc | trace 1, 2, 3, 4, 5 | HW 7 |
W | | Compilation, no class | Compilation videos | | slides | 0, 1, 2, 3, 4 | 4_abs | |
M | | Garbage collection | GC videos | §11 | slides | 5 | 5_abs | HW 8 |
W | | Midterm 2 | | | | practice midterm | | |
M | | Objects | Object videos | §10 | slides | object, lambda_obj | object-fallback, 2, 3 | |
W | | Classes | Class videos | | slides | class, inherit, inherit_parse | class_abs, inh…, …parse… | HW 9 |
M | | Types | Type videos | §15.1-2 | slides | typed_lambda | typed_box | |
W | | Subtyping | Subtyping videos | §15.3.7 | slides | typed_record, subtype, subtype_mut | subtype_if0, subtype_if0gen | HW 10 |
M | | Classes and type checking | Typed class videos | | slides | typed_class, typed_parse | equal_class | HW 13 |
W | | Type inference | Inference videos | | slides | infer_lambda | infer_abs | HW 11 |
M | | Typed recursion | Typed recursion videos | §15.2.3-4 | slides | typed_letrec, type_case | equals | |
W | | Parametric polymorphism | Polymorphism videos | §15.3.1 | slides | poly_lambda | poly_box | HW 12 |
M | | Macros | Macro videos | §13 | slides | let_macro | | |
W | | Racket, Rhombus, & Shplait | | | | | | |