CIS 552: Advanced Programming

Fall 2017

  • Home
  • Schedule
  • Homework
  • Resources
  • Style guide
  • Syllabus

Lecture Schedule

Date Module Topic
Wed, Aug 30 Lec1 Basics
Wed, Sep 6 Lec2 Structured Data and Lists
Mon, Sep 11 Lec3 Higher-Order Programming Patterns
Wed, Sep 13 SecretCode In class Exercise: SecretCode
Mon, Sep 18 Lec4 User-defined datatypes
Wed, Sep 20 DList Exercise: Difference lists
Wed, Sep 20 Kata Exercise: Kata code review
Mon, Sep 25 Classes Type Classes
Wed, Sep 27 MonoidFoldable Exercise: Monoid and Foldable
Mon, Oct 2 QuickCheck Type-directed Property Testing
Wed, Oct 4 QuickList Exercise: QuickCheck properties for lists
Mon, Oct 9 Persistent A Persistent Set Interface
Mon, Oct 9 RedBlack Red Black Trees
Wed, Oct 11 Queue Exercise: Purely Functional Queues
Mon, Oct 16 GADTs GADTs
Wed, Oct 18 RedBlackGADT Red-Black Trees with GADTs
Wed, Oct 18 RedBlackGADTBlackHeight Red-Black Trees with GADTs (BlackHeight)
Mon, Oct 23 Monads The Maybe and List Monads
Wed, Oct 25 GenericMonads Exercise: General Monadic Functions
Mon, Oct 30 Monads2 The State Monad!
Mon, Oct 30 STMonad The ST and IO Monads
Mon, Oct 30 State A Generic State Transformer
Wed, Nov 1 RandomGen Exercise: Using the State monad for Random Generation
Mon, Nov 6 Parsers Parsing with Applicative Functors
Wed, Nov 8 Xml Exercise: XML parsing
Mon, Nov 13 Transformers Monad Transformers
Wed, Nov 15 TransExercise Transformers Exercise
Mon, Nov 20 DependentTypes Dependent Types in Haskell
Mon, Nov 27 Client Concurrency client
Mon, Nov 27 Concurrency A Poor Man's Concurrency Monad
Wed, Nov 29 TransC Exercise: Concurrency Monad Transformer
Design adapted from Minimalistic Design | Powered by Pandoc and Hakyll