Week Dates Topics Class Notes
1 1/18 - 1/20 Introduction to FP: Expressions, Types, Functions, Algebraic Data Types (ADTs) Lec1
2 1/23 - 1/27 Higher-order functions, Combinators, Polymorphism, Modules & Functors. Lec2, Lec3
3 1/30 - 2/3 Modules & Functors (Contd.), Functional Data Structures.
4 2/6 - 2/10 Math behind FP: Lambda Calculi
5 2/13 - 2/17 CoreML, Type Checking, Type Inference
6 2/20 - 2/24 Generalized ADTs, Higher-Order Abstract Syntax, Embedding DSLs
7 2/27 - 3/3 References, Side-effects, Monads
8 3/6 - 3/10 Monads (Contd.), Applicatives, Applicative Parsing
9 3/15 Concurrency through LWT
10 3/20 - 3/24 Concurrency through Algebraic Effects, Parallelism
11 3/27 - 3/31 Spring Break
12 4/3 - 4/7 Functional Reactive Programming
13 4/10 - 4/14 Network & Distributed Programming, Unikernels
14 4/17 - 4/21 Reasoning about Functional Programs, Dependent Type Systems
14 4/24 - 4/28 Program Synthesis
14 5/1 - 5/5 Program Synthesis (Contd.)