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 | | |