| Date |
Required Reading and Exercises |
Optional Reading |
| Week 1 |
| 09-25-17 |
Introduction |
Introduction |
| 09-27-17 |
Lists |
Lists |
| 09-29-17 |
Abstract Data Types |
User-Defined Types
|
| Week 2 |
| 10-02-17 |
Functions |
Functions |
| 10-04-17 |
Type Classes |
Type Classes |
| 10-06-17 |
Introduction to Haskell IO |
Input/Output |
| Week 3 |
| 10-09-17 |
Records, newtype, and List Comprehensions
|
Records,
newtype,
List Comprehensions
|
| 10-11-17 |
Maybe Monad is Not So Scary
and Exercises |
| 10-13-17 |
Functors |
Types of Types,
Functors
|
| Week 4 |
| 10-16-17 |
Applicative |
Applicative |
| 10-18-17 |
Monads |
Monads |
| 10-20-17 |
Concrete Monads: IO |
Input/Output (continued) The Animal Game (extended code example) |
| Week 5 |
| 10-23-17 |
Monoids |
|
| 10-25-17 |
Concrete Monads: Writer, Reader |
|
| 10-27-17 |
Midterm Exam |
| Week 6 |
| 10-30-17 |
Concrete Monads: State, I |
Stateful Functions |
| 11-01-17 |
Concrete Monads: State, II |
Stateful Functions (continued)
Scalability
|
| 11-03-17 |
Intro to Functional Parsers |
Functional Parsing |
| Week 7 |
| 11-06-17 |
Practical Parsing |
Functional Parsing (continued) |
| 11-08-17 |
Monad Transformers
and Exercises
|
| 11-10-17 |
Monad Transformers (continued)
and NState Example: Sudoku
|
| Week 8 |
| 11-13-17 |
Foldable, Traversable |
|
| 11-15-17 |
Seq, and All That |
|
| 11-17-17 |
Propositional Logic: Preliminaries |
|
| Week 9 |
| 11-20-17 |
Propositional Logic: Tautology Checker |
|
| 11-22-17 |
Propositional Logic: Quine Prover |
|
| 11-24-17 |
No Class (Thanksgiving holiday) |
| Week 10 |
| 11-27-17 |
Sudoku |
Zippers |
| 11-29-17 |
Mutable State |
| 12-01-17 |
No Class (Reading period) |
| Final Exam Week |
| 12-06-17 (Wed) — 1:30-3:30 — Section 02 (Kurtz) |
| 12-08-17 (Fri) — 10:30-12:30 — Section 01 (Chugh) |