Date | Topic | Notes | Homework | Solution |
August | 23 | Scheme - Intro (algebra) | EoPL 1.1, slides | HW 1 | Solution |
| 28 | From algebra to Scheme | slides, transcript | HW 2 | Solution |
| 30 | How to design programs in Scheme | slides, code, EoPL 1.2, HtDP | | |
September | 4 | Using define-datatype | slides, code, EoPL 2.2 | | |
| 6 | Lexical scope | slides, code, EoPL 1.3 sortof | | |
| 11 | Recap | slides, code, EoPL 3.1-3.4 | HW 3 | Solution |
| 13 | Environment-Passing Interpreters | slides, code, EoPL 3.1-3.4 | | |
| 18 | Procedures | slides, code, EoPL 3.5 | HW 4 | Solution |
| 20 | Recursion | slides, code, EoPL 3.6 | | |
| 25 | Recursion, Environments, Compilers | slides, code, EoPL 3.6 | HW 5 | Solution |
| 27 | Lexical Addresses and Compilation | slides, code, EoPL 1.3 | | |
October | 2 | Assignment | slides, code, EoPL 3.7, fish | HW 6 | Solution |
| 4 | Fall Break | | | |
| 9 | Call-by-value and call-by-reference | slides, code, EoPL 3.8 | | |
| 11 | Review | notes | | |
| 16 | Mid-Term | old #1, old #2 | | |
| 18 | Call-by-name and call-by-need | slides, code, EoPL 3.8 | HW 7 | Solution |
| 23 | Types | slides, code, EoPL 4.1-4.2 | | |
| 25 | Type checking and inference | slides, code, EoPL 4.2, 4.4 | HW 8 | Solution |
| 30 | Polymorphism and abstractions | slides, code, EoPL 4.3 | | |
November | 1 | Objects and Classes | slides, code, EoPL 5.1-5.4.1 | | |
| 6 | Implementing objects | slides, code, EoPL 5.4.1-5.4.4 | HW 9 | Solution |
| 8 | Classes and types | slides, code, EoPL 6.1-6.2 | | |
| 13 | Compiling classes | slides, code, EoPL 6.3 | HW 10 | Solution |
| 15 | Continuations | slides, code, EoPL 7.1 | | |
| 20 | Exceptions, threads, and let/cc | slides, code, threads, EoPL 7.4-7.5 | | |
| 22 | Thanksgiving | | | |
| 27 | Garbage Collection | slides, code | HW 11 | Solution |
| 29 | ML and compiling an interpreter | slides, OCaml, code | | |
December | 4 | Research on components | slides | | |
| 6 | Final review | notes | | |