Programming in Haskell

Haskell is an advanced, purely-functional programming language. Functional programming allows for the development of robust, concise programs in a short amount of time. It is a programming style radically different from the currently dominant imperative programming.

Course description

Our Programming in Haskell course gives an introductory but thorough treatment of Haskell programming. The course starts with language constructs and types, moves on to higher-order functions and algebraic data types, and concludes with IO data streams and the legendary monads. Students learn the basic concepts of functional programming and develop their Haskell programming skills by solving a variety of problems, as part of in-class hands-on exercises, regular homework assignments, and a final project.

The ultimate goal of this course is not only to teach a new programming language, but also to teach a new programming paradigm that fosters a different, mathematically sophisticated, and arguably a more elegant approach to programming. By learning Haskell, students widen their perspective on programming and become better programmers, regardless of the language they program in. We feel fortunate and humble to be able to catalyze such a transformation with our course.