SCHEDULE IS VERY PRELIMINARY AND LIKELY TO CHANGE!

 

Date

Topic

Reading

Lecture notes

Homework

Fri Aug 30

Introduction

Syllabus, Hutton Chs.1 and 2

Lecture_Week1

 

Fri Sep 6

Basics on Types and Functions

Chs. 3, 4 and 6

Lecture_Week2

PS1

Tue Sep 10 /
Fri Sep 13

List Comprehensions; ADTs

Chs. 5, 8 and 9

Lecture_Week3

PS2, Ps2.hs, error.log, sample.log

Tue Sep 17 /

Fri Sep 20

Higher-order Functions and

Recursion Patterns; Higher-order Programming

Ch. 7

Lecture_Week4

Quiz 1

PS1 and PS2 due Tuesday,

PS3

Tue Sep 24 /

Fri Sep 27

Ad-hoc Polymorphism and Type Classes

Ch. 8

Lecture_Week5

PS3 due Tuesday,
PS4, Ps4.hs, Ps4MergeSort.hs, error.log, sample.log

Tue Oct 1 /

Fri Oct 4

Interactive Programming with IO; Monad type class; Maybe, List, and IO monads

Chs. 10 and 11

Lecture_Week6

PS4 due Tuesday,

PS5, Ps5Connections.hs, Ps5Vector.hs

Tue Oct 8 /

Fri Oct 11

Catch-up:

Monoid, Foldable and Monad in-class exercises.

Ch. 14

Quiz 2 on Tue

Lecture_Week7

Lecture6'.hs

Tue Oct 15 /

Fri Oct 18

Lambda Calculus; Lazy Evaluation

Ch. 15

Lecture_Week8

PS5 due Tuesday,

Project Proposal due Tuesday

PS6

Tue Oct 22 /
Fri Oct 25

Parametric Polymorphism and Simple Type Inference

Quiz 3 on Fri

Lecture_Week9

PS6 due Friday

Tue Oct 29 / Fri Nov 1

Classical Hindley Milner and Type inference in Haskell

Lecture_Week9'

Lecture_SPJ_Week10

PS7, Data.hs, Ps7.hs

Start work on project this week (or earlier)

Tue Nov 5 /
Fri Nov 8

The State Monad

Ch. 12

Quiz 4 on Fri

Lecture_Week11

Lecture11.hs,

Lecture11'.hs,

State.hs

PS7 due Tuesday

Tue Nov 12 /

Fr Nov 15

Monadic Parsing

Ch. 13

Lecture_Week12

Parser.hs, Lecture12.hs

PS8

Checkpoint #1: attend office hours this week (or earlier)

Tue Nov 19 / Fri Nov 22

Parsec

Quiz 5 on Fri

 

5-8 min presentation in class on Friday

Tue Nov 26

Property Testing; QuickCheck

PS8 due on Tuesday

Tue Dec 3

Fri Dec 6

TBD

Quiz 6 on Fri

 

 

Checkpoint #2: attend office hours this week (or earlier)

Tue Dec 10

Project presentations

Project due

5-8 min presentation in class