Final grades are posted on Canvas.
Assignment I, handed out on 08/26 and due on 09/07
Introductory tutorial on ML functions
Introductory tutorial on ML datatypes
Assignment II, handed out on 09/09 and due on 09/21
Assignment III, handed out on 09/09 and due on 09/23
Assignment IV, handed out on 09/25 and due on 10/12
Assignment V, handed out on 09/25 and due on 10/14
Practice Test I Test I (given on 09/30)
Assignment VI, handed out on 10/14 and due on 10/26
Assignment VII, handed out on 10/14 and due on 10/28
Assignment VIII, handed out on 10/28 and due on 11/30
Assignment IX, handed out on 10/28 and due on 12/02
Practice Test II Test II (given on 11/04)
Practice Test III Test III (given on 12/09)
Please use Canvas 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, an 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.)
Proofs are Programs: 19th Century Logic
and 21st Century Computing
by Philip Wadler (2000).
This optional reading briefly covers the works of Frege, Gentzen, and Church, as well as the Curry-Howard Isomorphism.
SML# in industry: a practical ERP system development
by Ohori et al. (2014)
This optional reading describes experiences using an ML-style language to develop business software.
(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/26, 08/28 | Introduction; ML basics; Polymorphism | 1-3.1, 5.3 |
2 | 09/02, 09/04 | Functions | 3.2-3.6.3, 4.1-4.2, 5.1, 5.4 |
3 | 09/09, 09/11 | Functions; Datatypes; Deductive systems | 5.5-5.6, 6.1-6.3 |
4 | 09/16, 09/18 | Deductive systems; Syntax | Class notes |
5 | 09/23, 09/25 | Syntax; Dynamic semantics; Review | Class notes |
6 | 09/30, 10/02 | Test I | Class notes |
7 | 10/07, 10/09 | Lambda calculus | Class notes |
8 | 10/14, 10/16 | Static semantics | Class notes |
9 | 10/21, 10/23 | Type safety | Class notes |
10 | 10/28, 10/30 | Aggregate data types; Review | Class notes |
11 | 11/04, 11/06 | Test II | Class notes |
12 | 11/13 | Aggregate data types | Class notes |
13 | 11/18, 11/20 | Side effects | 7.3, 5.2, 7.2 |
14 | 11/25 | Side effects | Class notes |
15 | 12/02, 12/04 | Side effects; Review | Class notes |
Final | 12/09 | Final Exam, 3-5pm | All tests are cumulative |