Unless stated otherwise, readings are from the course text (available online), Programming Languages: Application and Interpretation (PLAI), by Shriram Krishnamurthi. We will use DrScheme for many programming assignments. Other language implementations will be provided when necessary.
| Date | Lecture Topic | Lecture Notes | Due | Extras | |
|---|---|---|---|---|---|
| 9/6 | Overview; Introduction to Scheme | PLAI: CH 1-2 | hwk 0 | ||
| 9/13 | Functions as values, Substitution, Adding Functions to the Language | PLAI: CH 3-4 | hwk 1 | quicksort (deriving filter) Map/filter notes and exercises | |
| 9/20 | Caching Substitution, Scoping, Haskell | PLAI: CH 5-7 | hwk 2 |
||
| 9/27 | Laziness and Recursion | PLAI: CH 8-10 | hwk 3 |
||
| 10/4 | Mutation | PLAI: CH 12-14 | hwk 4 |
||
| 10/11 | Web Programming and Continuations | PLAI: CH 17-18 | hwk 5 |
The conversion exercises from class | |
| 10/18 | Programming with and Implementing Continuations | PLAI: CH 19-20 | The coroutines code, with notes | ||
| 10/25 | Garbage Collection | PLAI: CH 21; Wilson's GC survey | |||
| 11/1 | Introduction to Types | PLAI: CH 24-26 | |||
| 11/8 | Type Inference | PLAI: CH 27, 30 | hwk 7 |
||
| 11/15 | Polymorphism | PLAI: CH 28, 29, 31 | |||
| 11/22 | Thanksgiving: NO CLASS | ||||
| 11/29 | Verification | Notes in myWPI | hwk 8 |
||
| 12/6 | Lambda Calculus, Functional Reactive Programming, Wrap Up, Course Evals | hwk 9 |