Final grades are now posted on Blackboard.
Assignment I, handed out on 08/24 and due on 09/12
Introductory tutorial on ML functions
Introductory tutorial on ML datatypes
Assignment II, handed out on 09/14 and due on 10/10
Assignment III, handed out on 09/14 and due on 10/12
Practice Test I Test I (given on 09/28)
Assignment IV, handed out on 10/12 and due on 10/24
Assignment V, handed out on 10/12 and due on 10/26
Test II (given on 11/02)
Assignment VI, handed out on 11/09 and due on 11/30
Assignment VII, handed out on 11/09 and due on 12/03
Test III (given on 12/09)
Please use Blackboard to check your grades.
Textbook webpage (including errata)
Caml trading - experiences with functional programming on Wall Street
by Minsky and Weeks (2008).
This optional reading describes one company's use of OCaml, which is a dialect of ML.
(This paper should be accessible on campus; off campus you might try an Internet search for the paper's title.)
The Singularity system
by Larus and Hunt (2010).
This optional reading describes Singularity, a new operating system based on type-safe programming languages.
(Again, this paper should be accessible on campus; off campus you might try searching for the paper's title.)
Week | Dates | Topics | Reading (in ML book) |
---|---|---|---|
1 | 08/24, 08/26 | Introduction; ML basics; Polymorphism | 1-3.1, 5.3 |
2 | 08/31, 09/02 | ML functions; I/O; Higher-order functions | 3.2-3.6.3, 4.1-4.2, 5.1, 5.4 |
3 | 09/07, 09/09 | Currying; ML value restriction; Datatypes; Deductive systems | 5.5-5.6, 6.1-6.3 |
4 | 09/14, 09/16 | Deductive systems; Induction on derivations; Syntax | Class notes |
5 | 09/23 | Higher-order abstract syntax; Review | Class notes |
6 | 09/28, 09/30 | Test I; Dynamic semantics | Class notes |
7 | 10/05, 10/07 | Dynamic semantics; Lambda calculus | Class notes |
8 | 10/12, 10/14 | Lambda calculus; Static semantics | Class notes |
9 | 10/19, 10/21 | Type systems; Type safety | Class notes |
10 | 10/26, 10/28 | Type safety; Review | Class notes |
11 | 11/02, 11/04 | Test II; Intro to aggregate data types | Class notes |
12 | 11/09 | Product and sum types | Class notes |
13 | 11/16, 11/18 | Recursive types; Intro to side effects; References | 7.3 |
14 | 11/23 | Control-flow effects; Evaluation contexts | 5.2 |
15 | 11/30, 12/02 | Control-flow effects; Review | 7.2 |
Final | 12/09 | Final Exam, 5:30-7:30pm | All tests are cumulative |