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