|
This course is about functional programming, emphasizing functional-programming skills and techniques that apply to all programming languages. Roughly one-third of the course meetings provide a conventional lecture; in the remaining meetings, we study example programs written and presented by students who are taking the course.
Mailing ListJan 9: | Course setup, functional computation; slides |
Jan 11: | How to design programs; slides |
Jan 16: | Holiday |
Jan 18: | Abstraction; slides; HW1 |
Jan 23: | Graph-layout programs; HW1a |
Jan 25: | No meeting |
Jan 30: | Graph-layout programs |
Feb 1: | Dominion; protocol v1 [pdf] |
Feb 6: | Dominion initial players |
Feb 8: | Dominion tests/examples |
Feb 13: | Recursion, loops, stacks, tail calls, and space safety; slides |
dominion1-tests; protocol v2 [pdf]; example v1 implementation | |
Feb 15: | Languages and macros in Racket; slides; example; article |
example v2 implementation | |
Feb 22: | Dominion players |
Feb 27: | Continuation-passing style; slides; success-fail-k |
protocol v3 [pdf]; example v3 implementation | |
Feb 29: | Closure compilation; clos-comp; Feeley87 |
Mar 5: | Dominion v3 players |
IMAP project | |
Mar 7: | Monads |
Mar 12: | Spring break |
Mar 14: | Spring break |
Mar 19: | Compiling an interpreter; slides; comp-interp |
Mar 21: | IMAP mail readers |
Mar 26: | Purely functional data structures; Okasaki96; avl; queue |
Mar 28: | No meeting |
Apr 2: | IMAP mail readers |
Apr 4: | Project plans |
Apr 9: | Concurrent ML; notes/code; refs |
Apr 11: | No meeting |
Apr 16: | Lambda Calculus |
Apr 18: | Project presentations |
Apr 23: | Project presentations |
Apr 23: |
The University of Utah conforms to all standards of the Americans with Disabilities Act (ADA). If you wish to qualify for exemptions under this act, notify the Center for Disabled Students Services, 160 Union.
Last update: Sunday, April 15th, 2012mflatt@cs.utah.edu |