Contact FutureLearn for Support Functional Programming in Haskell - Online Course Skip main navigation
We use cookies to give you a better experience, if that’s ok you can close this message and carry on browsing. For more info read our cookies policy.
We use cookies to give you a better experience. Carry on browsing if you're happy with this, or read our cookies policy for more information.
Online course

Functional Programming in Haskell: Supercharge Your Coding

Get an introduction to Haskell, the increasingly popular functional programming language, with this University of Glasgow course.

Free:

  • Access to the course for its duration + 14 days, regardless of when you join (this includes access to articles, videos, peer review steps, quizzes)
  • No certificate

Upgraded:

  • Unlimited access to the course, for as long as it exists on FutureLearn (this includes access to articles, videos, peer review steps, quizzes)
  • A Certificate of Achievement when you complete the course

Find out more

Functional Programming in Haskell: Supercharge Your Coding

Why join the course?

Do you want to develop software using the latest programming language paradigm? Haskell is a functional programming language, based on formal mathematical principles. As such, it is easy to reason about and develop, and it executes efficiently on modern multicore machines. From investment banks to social networks, everyone is adopting Haskell.

Get an introduction to functional programming in Haskell

On this introductory course, you will discover the power, elegance and simplicity of functional programming in Haskell. By the end, you will be able to:

  • characterise the differences between imperative and functional programming paradigms;
  • implement small-scale functional programs in elementary Haskell;
  • apply standard combinators for operating on lists;
  • create new algebraic data types and use recursion to define functions that traverse recursive types; and reason in a mathematical manner about data types, functions, recursion and similar functional constructs.

Learn with developers from the birthplace of Haskell

This course has been created by the School of Computing Science at the University of Glasgow – the virtual birthplace of the Haskell language, where many of its original developers worked. It will give you the opportunity to learn with these experts and join the growing, global community of Haskell programmers.

Download video: standard or HD

Skip to 0 minutes and 7 secondsImagine programming with only pure functions.

Skip to 0 minutes and 12 secondsImagine programs that are shorter, more elegant, easier to reason about, and better to execute in parallel on modern manycore processors and massive datacenters. You've just imagined functional programming. In this introduction to functional programming in Haskell you will learn powerful functional programming techniques such as immutable data structures, higher order functions, and lambdas. Learning functional programming will make you a better programmer whatever the language you use. These are just some of the reasons why functional programming is growing in popularity. Smashing Magazine describes functional as 'the hipster of programming paradigms'.

Skip to 0 minutes and 54 secondsAll major tech companies are adopting functional programming techniques, whether it's Scala at Twitter, MapReduce at Google, or Haskell at Facebook. In fact, early work on the Haskell functional programming language took place here at the University of Glasgow, and we've been teaching it to our undergraduate Computing Science students for many years. This course is aimed at people who have some prior programming experience but want to discover functional programming for themselves. We introduce the Haskell language with interactive tutorials and practical programming exercises. We'll take you from the basics through to advanced features of functional programming. And don't worry, we'll deconstruct all the alarming buzzwords and phrases from lambda calculus to monads.

Skip to 1 minute and 40 seconds Also, in a series of exclusive interviews with key Haskell language designers, we will explore the history, present status and future prospects of functional programming. Functional languages are becoming more and more popular. All mainstream languages are incorporating functional constructs. So now is the time to begin functional programming in Haskell. We hope you'll join us on this course.

What topics will you cover?

  • Evaluation via expression reduction
  • Semantics of function abstraction and application
  • Operations involving basic types including integers, characters and booleans
  • Definition and traversal of recursive data types including lists and trees
  • Techniques for structuring programs of non-trivial size
  • Developing custom parsing tools with library support
  • Automated testing with the QuickCheck tool
  • Infinite data structures and lazy evaluation
  • Type classes
  • Principles of Lambda calculus
  • Monads

When would you like to start?

  • Date to be announced

What will you achieve?

By the end of the course, you'll be able to...

  • Develop simple programs involving basic Haskell techniques, including pure function definitions
  • Produce definitions of algebraic data types and apply recursion to define functions that traverse such types
  • Interpret data structures and function interfaces using types
  • Apply formal methods to prove properties of functional programs
  • Develop, modify, and explore code using standard Haskell platform tools
  • Justify why a program uses common standard monads (including IO and Maybe)
  • Explore standard combinators for operating on lists

Who is the course for?

This course is intended for learners who already have experience of at least one programming language, such as Python or Java. You might be a computer science student, a software developer who wants to learn a new programming style, or somebody considering university study in computer science or information technology.

Who will you learn with?

Wim Vanderbauwhede

Senior Lecturer in Computing Science at the University of Glasgow. I program mainly in Haskell, C++ and Perl and love parallel and heterogeneous programming. http://www.dcs.gla.ac.uk/~wim/
@HaskellMOOC

Jeremy Singer

I am a lecturer in Computing Science at the University of Glasgow. I am moderately fluent in the following languages: Haskell, Java, C, Scouse and New Testament Greek.

* http://dcs.gla.ac.uk/~jsinger

Who developed the course?

Founded in 1451, the University of Glasgow is the fourth oldest university in the English-speaking world. It is a member of the prestigious Russell Group of leading UK research universities.

Buy a personalised, digital and printed certificate and transcript

You can buy a Certificate of Achievement for this course — a personalised certificate and transcript in both digital and printed formats, to prove what you’ve learnt. A Statement of Participation is also available for this course.

Certificate of Achievement + transcript £59.00

Statement of Participation £34.00

Estimate prices in preferred currency

Charges to your account will be made in GBP. Prices in local currency are provided as a convenience and are only an estimate based on current exchange rates.

Course highlights Get a taste of this course before you join:

  • Brief History of Haskell
    Brief History of Haskell
    article

    What are the origins of the Haskell programming language? In this article, Dr Jeremy Singer explores the history of Haskell.