Lecture Notes

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