Haskell logo CIS 552: Advanced Programming

Fall 2021

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

Lecture Schedule

Date Module Topic
Wed, Sep 1 Lec1 Slides: Introduction
Wed, Sep 8 Basics Haskell Basics
Mon, Sep 13 DList In class exercise: Difference lists
Mon, Sep 13 HigherOrder Higher-Order Programming Patterns
Mon, Sep 13 SecretCode In class exercise: SecretCode
Mon, Sep 20 Datatypes User-defined datatypes
Mon, Sep 20 Foldr In class exercise: foldr
Wed, Sep 22 Kata21 In class exercise: Kata code review
Wed, Sep 22 TreeFolds Extra practice: Tree folds
Mon, Sep 27 Classes Type Classes
Mon, Sep 27 IOExercise In class exercise: IOExercise
Wed, Sep 29 Lec8 Slides: Monoid and Foldable classes
Wed, Sep 29 MonoidFoldable In class exercise: Semigroup, Monoid and Foldable
Mon, Oct 4 Lec9 Slides: QuickCheck
Mon, Oct 4 QuickCheck Type-directed Property Testing
Wed, Oct 6 QuickList In class exercise: QuickCheck properties for lists
Mon, Oct 11 RedBlack Red Black Trees
Wed, Oct 13 Queue In class exercise: Purely Functional Queues
Mon, Oct 18 GADTs GADTs
Wed, Oct 20 RedBlackGADT0 Red Black Trees (Redux)
Mon, Oct 25 MaybePractice In class exercise: Practice with Maybe Monad
Mon, Oct 25 Monads The Maybe and List Monads
Wed, Oct 27 GenericMonads In class exercise: General Monadic Functions
Mon, Nov 1 State A Generic State Transformer
Mon, Nov 1 StateMonad The State Monad!
Wed, Nov 3 RandomGen In class exercise: Random Generation
Mon, Nov 8 Parsers Parsing with Applicative Functors
Wed, Nov 10 Xml In class exercise: XML parsing
Mon, Nov 15 MtlExample MtlExample
Mon, Nov 15 Transformers Monad Transformers
Wed, Nov 17 TransExercise In class exercise: TransExercise
Mon, Nov 22 LiquidHaskell LiquidHaskell
Mon, Nov 29 Client Concurrency client
Mon, Nov 29 Concurrency A Poor Man's Concurrency Monad
Wed, Dec 1 TransC In class exercise: Concurrency Monad Transformer
Design adapted from Minimalistic Design | Powered by Pandoc and Hakyll