This course is about functional programming, emphasizing programming skills for functional languages and techniques.
| Jan 10: | How to design programs; slides |
| Jan 12: | How to design programs; slides; HW 1 |
| Jan 14: | How to design programs; Gobblet; HW 2 |
| Jan 17: | Holiday |
| Jan 19: | Function abstraction; slides |
| Jan 21-Feb 2: | Gobblet presentations |
| Feb 4: | Continuation-passing style; cps.ss |
| Feb 7: | Initial GUI presentations |
| Feb 9: | Functional drawing; Slideshow paper software & examples |
| Feb 11: | More GUI presentations |
| Feb 14: | Concurrent ML; refs |
| Feb 16: | GUI conclusions; notes |
| Feb 18: | Compiling an interpreter |
| Feb 21: | Holiday |
| Feb 23: | Project descriptions |
| Feb 25: | Class cancelled |
| Feb 28: | Macros |
| Mar 2-4: | Project reports |
| Mar 7: | Purely functional data structures; queue.ml |
| Mar 9: | FP, OOP, and the extensibility problem |
| Mar 11: | Project reports |
| Mar 14-18: | Spring break |
| Mar 21: | Contracts |
| Mar 23: | Continuations; explore.ss; server.ss |
| Mar 25-28: | Project reports |
| Mar 30: | Monads |
| Apr 1: | Class cancelled |
| Apr 4: | Types and inference |
| Apr 6-8: | Project reports |
| Apr 11: | Server project planning |
| Apr 13: | Class cancelled |
| Apr 15: | Tail calls and space safety; Proper Tail Recursion and Space Efficiency, Compiling with Continuations |
| Apr 18-20: | Server project reports |
| Apr 22: | Modules, components, and language extension; macros and phases |
| Apr 25: | Course summary (instructor) |
| Apr 27: | Final project reports and course summary (students) |