CIS 1904

Course Description
This course is designed to teach fundamentals of functional programming, using Haskell as our medium. Haskell's strong static type system, purity (lack of side effects), and elegant mathematical underpinnings make it an ideal tool for studying key functional programming concepts, while its use of laziness allows for discussion of broader ideas in programming language design.
Prerequisite: CIS 1200 or equivalent.
CIS 1904 is a minicourse, a half-credit course in the CIS department. It is usually taught in the spring. For a full-credit option, consider CIS 5520 (usually taught in the fall).
Topics
This course typically covers the following topics:- Basic Haskell syntax
- Unit testing
- Algebraic datatypes
- Parametric polymorphism
- Higher-order functions
- Recursion patterns
- Lazy evaluation
- Typeclasses
- Monads
- Functors
- Property-based testing