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