Haskell logo CIS 5520: Advanced Programming

Fall 2024

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

Lecture Schedule

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