Haskell logo CIS 5520: Advanced Programming

Fall 2022

  • Home
  • Schedule
  • Homework
  • Resources
  • Software
  • Style guide

Lecture Schedule

Date Module Topic
Wed, Aug 31 Lec1 Slides: Introduction
Wed, Sep 7 Lec2 Slides: Announcements
Wed, Sep 7 Basics Haskell Basics
Mon, Sep 12 HigherOrder Higher-Order Programming Patterns
Wed, Sep 14 Foldr In class exercise: foldr
Wed, Sep 14 SecretCode In class exercise: SecretCode
Mon, Sep 19 Datatypes User-defined datatypes
Wed, Sep 21 DList In class exercise: Difference lists
Wed, Sep 21 TreeFolds Extra practice: Tree folds
Mon, Sep 26 Classes Type Classes
Mon, Sep 26 IOExercise In class exercise: IOExercise
Wed, Sep 28 Lec8 Slides: Monoid and Foldable classes
Wed, Sep 28 MonoidFoldable In class exercise: Semigroup, Monoid and Foldable
Mon, Oct 3 QuickCheck Type-directed Property Testing
Wed, Oct 5 Lec10 Video: How to Specify It
Mon, Oct 10 Queue In class exercise: Purely Functional Queues
Wed, Oct 12 RedBlack Red Black Trees
Mon, Oct 17 GADTs GADTs
Wed, Oct 19 RedBlackGADT0 Red Black Trees (Redux)
Wed, Oct 19 RedBlackGADT1 Red Black Trees (with GADTs 1)
Wed, Oct 19 RedBlackGADT2 Red Black Trees (with GADTs 2)
Wed, Oct 19 RedBlackGADT3 Red Black Trees (with GADTs 3)
Mon, Oct 24 Monads The Maybe and List Monads
Wed, Oct 26 EitherMonad In class exercise: The Either Monad
Wed, Oct 26 GenericMonads In class exercise: General Monadic Functions
Wed, Oct 26 MaybePractice In class exercise: Practice with Maybe Monad
Mon, Oct 31 RandomGen In class exercise: Random Generation
Mon, Oct 31 State A Generic State Transformer
Mon, Oct 31 StateMonad The State Monad!
Wed, Nov 2 Graph Optional exercise: DFS using the state monad
Mon, Nov 7 Parsers Parsing with Applicative Functors
Wed, Nov 9 Xml In class exercise: XML parsing
Mon, Nov 14 Freer Optional module: The Freer Monad
Mon, Nov 14 Transformers Monad Transformers
Wed, Nov 16 FreerExercise Optional in class exercise: Freer Monad
Wed, Nov 16 TransExercise In class exercise: Monad Transformers
Mon, Nov 21 LiquidHaskell LiquidHaskell
Mon, Nov 28 Client Concurrency client
Mon, Nov 28 Concurrency A Poor Man's Concurrency Monad
Wed, Nov 30 TransC In class exercise: Concurrency Monad Transformer
Mon, Dec 5 Demo1 Project Presentations
Wed, Dec 7 Demo2 Project Presentations
Mon, Dec 12 ProjectWorkday Project Workday
Design adapted from Minimalistic Design | Powered by Pandoc and Hakyll