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.

0:12Skip 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'. All major tech companies are adopting functional programming techniques, whether it's Scala at Twitter, MapReduce at Google, or Haskell at Facebook.

1:03Skip to 1 minute and 3 secondsIn 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. 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.

1:50Skip to 1 minute and 50 secondsFunctional 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.

Justify why a program uses common standard monads (including IO and Maybe)

Explore standard combinators for operating on lists

Who is the course&nbspfor?

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.

What do people say about this course?

I would like to sign off from this course by expressing my thanks to all the gang at Glasgow for their work and enthusiasm in making this all happen. I really enjoyed being part of the genesis of a new functional programming course. I'll be sure to drop into any future re-runs to see how the course evolves.

Course Learner

I enjoyed taking this course a lot because it provided a structured framework for getting to grips with the language and a very friendly and collaborative atmosphere which made it fun. The camaraderie seemed to embrace everyone, including lecturers, mentors, and fellow students --- we had a great bunch of people. This very constructive interaction with others and their many helpful suggestions made all the difference versus just working through a book. Being able to help others occasionally just made it that much better.