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.

**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.