Haskell logo CIS 5520: Advanced Programming

Fall 2023

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

Lecture Schedule

Date Module Topic
Wed, Aug 30 Lec1 Slides: Introduction
Wed, Sep 6 Basics Haskell Basics
Mon, Sep 11 HigherOrder Higher-Order Programming Patterns
Mon, Sep 11 SecretCode Optional exercise: SecretCode
Wed, Sep 13 Foldr In class exercise: foldr
Wed, Sep 13 Sum Optional exercise: foldr vs. foldl
Mon, Sep 18 Datatypes User-defined datatypes
Wed, Sep 20 DList In class exercise: Difference lists
Wed, Sep 20 TreeFolds Extra practice: Tree folds
Mon, Sep 25 Classes Type Classes
Mon, Sep 25 IOExercise In class exercise: IOExercise
Wed, Sep 27 MonoidFoldable In class exercise: Semigroup, Monoid and Foldable
Mon, Oct 2 Lec9 Slides: QuickCheck
Mon, Oct 2 QuickCheck Type-directed Property Testing
Wed, Oct 4 QuickList In class exercise: QuickCheck properties for lists
Mon, Oct 9 Lec11 Slides: RedBlack trees
Mon, Oct 9 RedBlack Red Black Trees
Wed, Oct 11 Lec12 Optional class: HW Workday
Mon, Oct 16 GADTs GADTs
Wed, Oct 18 RedBlackGADT0 Red Black Trees (Redux)
Mon, Oct 23 MaybePractice In class exercise: Practice with Maybe Monad
Mon, Oct 23 Monads The Maybe and List Monads
Wed, Oct 25 EitherMonad In class exercise: The Either Monad
Wed, Oct 25 GenericMonads In class exercise: General Monadic Functions
Mon, Oct 30 State A Generic State Transformer
Mon, Oct 30 StateMonad The State Monad!
Wed, Nov 1 Graph Optional exercise: DFS using the state monad
Wed, Nov 1 RandomGen In class exercise: Random Generation
Mon, Nov 6 Parsers Parsing with Applicative Functors
Wed, Nov 8 Xml In class exercise: XML parsing
Mon, Nov 13 MtlExample MtlExample
Mon, Nov 13 Transformers Monad Transformers
Wed, Nov 15 LSyntax In class exercise: LSyntax
Wed, Nov 15 TransformersExercise In class exercise: Monad Transformers
Mon, Nov 20 LiquidHaskell LiquidHaskell
Mon, Nov 27 Client Concurrency client
Mon, Nov 27 Concurrency A Poor Man's Concurrency Monad
Wed, Nov 29 ConcurrencyTransformer In class exercise: Concurrency Monad Transformer
Design adapted from Minimalistic Design | Powered by Pandoc and Hakyll