Lecture Notes

Date Required Reading and Exercises Optional Reading
Week 1
09-28-20 Term not in session
1 09-30-20 Introduction Introduction
2 10-02-20 Lists Lists
Week 2
3 10-05-20 Algebraic Data Types User-Defined Types
4 10-07-20 Functions Functions
5 10-09-20 Type Classes Type Classes, Types of Types
Week 3
6 10-12-20 Introduction to Haskell IO Input/Output
7 10-14-20 Records, newtype, and List Comprehensions Records, newtype, List Comprehensions
8 10-16-20 Maybe Monad is Not So Scary and Exercises
Week 4
9 10-19-20 Functors Functors
10 10-21-20 Applicative Applicative
11 10-23-20 Monads Monads
Week 5
12 10-26-20 Concrete Monads: IO Input/Output (continued)
The Animal Game (extended code example)
13 10-28-20 Monoids
14 10-30-20 Concrete Monads: Writer, Reader Writer and Reader
Week 6
15 11-02-20 Concrete Monads: State, I Stateful Functions
16 11-04-20 Concrete Monads: State, II Stateful Functions (continued)
Scalability
11-06-20 Midterm Exam
Week 7
17 11-09-20 Intro to Functional Parsers Functional Parsing
18 11-11-20 Practical Parsing Functional Parsing (continued)
19 11-13-20 Foldable, Traversable Foldable, Traversable
Week 8
20 11-16-20 Monad Transformers and Exercises
21 11-18-20 Monad Transformers (continued) and NState Example: Sudoku
22 11-20-20 Seq, and All That
Study Week
11-23-20 Term not in session
11-25-20 Term not in session
11-27-20 Term not in session
Week 9
23 11-30-20 Propositional Logic: Preliminaries
24 12-02-20 Propositional Logic: Tautology Checker
25 12-04-20 Propositional Logic: Quine Prover
Final Exam Week
12-09-20 (Wed) - 12-10-20 (Thu) — Final Exam