CSCE 544 Schedule


Lecture date Topics Notes
August 20 Syllabus, Lists and Tuples Program file, command line log. Recommended reading: A History of Haskell: Being Lazy With Class. A youtube video on history of Haskell is available here.
August 22 Currying, Pattern matching and Recursion, Higher-order functions Program file, command line log.
August 27 Higher-order functions, folds, infinite lists and laziness Program file, command line log. Homework 1 is available here.
August 29 Primes, Fibonacci and Algebraic data types Program file, command line log.
September 3 Binary tree and traversals Program file. Homework 2 is available here.
September 5 Type classes in Haskell Program file, command line log. Recommended reading: "How to make ad-hoc polymorphism less ad hoc" by Wadler and Blott.
September 10 Monoids, categories and functors Program file, lecture note.
September 12 Examples of functors, natural transformations and functor category Program file, command line log, lecture note. Homework 3 is available here.
September 17 Monad, monad type classes Program file, lecture note.
September 19 Maybe monad, List monad, do-notation Program file, command line log.
September 24 State monad Program file, command line log. Homework 4 is available here.
September 26 State monad and IO monad Program file, command line log.
October 1 Parser monad and parser combinators Program file, command line log.
October 3 More parser combinators and a simple CSV parser Program file, command line log. Homework 5 is available here.
October 8 Monad transformers, state transformer Program file. Recommended reading: "Monad transformers and modular interpreters" by Liang, Hudak and Jones.
October 10 Monad transformers, MonadState and MonadPlus Program file.
October 15 Midterm
October 17 Fall break (No class)
October 22 Foldl revisited, foldM, mapM and CSV parser command line Program file.
October 24 CSV parser command line continued, QuickCheck introduction CSV parser file, Program file.
October 29 QuickCheck: generator combinators Program file, command line log.
October 31 QuickCheck: generating random binary trees Program file.
November 5 General election day (no class) Homework 6 is available here.
November 7 QuickCheck: binary search trees Program file. Homework 7 is available here.
November 12 QuickCheck: binary search trees continued Program file.
November 14 Properties about insert and delete, start of concurrency monad Program file. Recommended reading: "A poor man's concurrency monad" by Claessen.
November 19 Continuation Passing Style, a concurrency monad Program file, command line log.
November 21 Concurrency monad: a client-server example Program file.