| Date | Topic | Notes | Homework | Solution |
| August | 22 | Scheme - Intro (algebra) | EoPL 1.1, slides | HW 1 | Solution |
| | 27 | From algebra to Scheme | slides | HW 2 | Solution |
| | 29 | How to design programs in Scheme | slides, code, EoPL 1.2, HtDP | | |
| September | 3 | Using define-datatype | code, EoPL 2.2 | | |
| | 5 | Lexical scope | slides, code, EoPL 1.3 sortof | HW 3 | Solution |
| | 10 | Environment-Passing Interpreters | slides, code, EoPL 3.1-3.4 | | |
| | 12 | Procedures | slides, code | HW 4 | Solution |
| | 17 | Local Procedures | slides, code, EoPL 3.5 | | |
| | 19 | Recursion | slides, code, EoPL 3.6 | HW 5 | Solution |
| | 24 | Recursion, Environments, Compilers | slides, code, EoPL 3.6 | | |
| | 26 | Lexical Addresses and Compilation | slides, mid-term, code, EoPL 1.3 | | |
| October | 1 | Mid-Term 1 | | | |
| | 3 | Fall Break | | | |
| | 8 | Assignment | slides, code, EoPL 3.7 | HW 6 | Solution |
| | 10 | Call-by-value, -reference, -name, -need | slides, a, b, c, d, EoPL 3.8 | | |
| | 15 | Types | slides, EoPL 4.1-4.2 | | |
| | 17 | Type checking and inference | slides, check, infer, EoPL 4.2, 4.4 | HW 7 | Solution |
| | 22 | Inference and polymorphism | slides | | |
| | 24 | Datatypes and Checking | slides, code | HW 8 | Solution, ML |
| | 29 | Objects and Classes | slides, code, EoPL 5.1-5.4.1 | | |
| | 31 | Implementing objects | slides, a, b, EoPL 5.4.1-5.4.4 | | |
| November | 5 | Classes and types | slides, mid-term, code, EoPL 6.1-6.2 | | |
| | 7 | Mid-Term 2 | | | |
| | 12 | Classes review, typing, and compiling | slides, code, EoPL 6.3 | HW 9 | Solution |
| | 14 | Compiling classes | code | HW 10 | |
| | 19 | Continuations | slides, code, EoPL 7.1 | | |
| | 21 | Exceptions, threads, and let/cc | slides, code, threads, EoPL 7.4-7.5 | HW 11 | Solution |
| | 26 | Garbage Collection | slides, code | HW 12 | Solution |
| | 28 | Thanksgiving | | | |
| December | 3 | Interpreters from Scratch | slides,code | | |
| | 5 | Final review | notes | | |