Schedule

The day-by-day schedule is shown below, including all deadlines. You can import it into Google calendar or other apps using the ‘ics’ link to the right.

ics
Meeting 1 at 12 pm. What is FP? Intro to REPL and evaluating expressions.
Meeting 2 at 12 pm. Tuples, Booleans, partial application, operator sections, pattern guards.
Meeting 3 at 12 pm. Recursive functions, evaluating expressions.
Assignment 1 due at 23:59.
Meeting 4 at 12 pm. List constructors and pattern matching.
Meeting 5 at 12 pm. Implementing list operators, syntax of list comprehensions.
Assignment 2 due at 23:59.
Meeting 6 at 12 pm. Review solutions for list assignment, intro to type syntax and some built-in type classes.
Meeting 7 at 12 pm. Type classes including Show, Eq, Ord, Enum, Bounded. Defining type synonyms and enumerated types. Brief intro to Maybe type.
Meeting 8 at 12 pm. More on the Maybe type, including lookup and fmap. The case expression, field selectors, and recursive data types.
Assignment 3 due at 23:59.
Meeting 9 at 12 pm. Function composition using . and <=<, the Either type.
Meeting 10 at 12 pm. Defining a bounded stack type, Functor and Bifunctor type classes.
Assignment 4 due at 23:59.
Meeting 11 at 12 pm. Solutions to assignment 4, Monoid type class.
Meeting 12 at 12 pm. The Ordering type, laziness, infinite data structures.
Meeting 13 at 12 pm. Help on assignment 5, abstract syntax tree.
Assignment 5 due at 23:59.
Assignment 6 SKIPPED due at 23:59.
Meeting 14 at 12 pm. Variable environments for expression trees, applicative functors.
Meeting 15 at 12 pm. Stack evaluation, compiling expressions to stack instructions.
Meeting 16 at 12 pm. Midterm exam.
Assignment 7 due at 23:59.
Meeting 17 at 12 pm. Solutions to assignment 7. PRNG and threading state.
Meeting 18 at 12 pm. Generalizing generator operations, leading to always / andThen.
Assignment 8 due at 23:59.
Meeting 19 at 12 pm. Solutions to assignment 8. Monad operations for Maybe and List.
Assignment 9 due at 23:59.
Meeting 20 at 12 pm.
Meeting 21 at 12 pm.
Meeting 22 at 12 pm.
Meeting 23 at 12 pm.
Meeting 24 at 12 pm.
Assignment 10 due at 23:59.
Meeting 25 at 12 pm.
Meeting 26 at 12 pm.
Meeting 27 at 12 pm.
Assignment 11 due at 23:59.
Meeting 28 at 12 pm.
Assignment 12 due at 23:59.