The course introduces the principles and practice of parallel programming in a functional programming language.
In this course, the term parallel programming means using multiple hardware cores or processors in order to gain speed. Functional programming is one of the most promising approaches to the problem of how to program in parallel, as the computers around us inevitably become more and more parallel.
The course covers approaches to parallel functional programming in both Haskell and Erlang. It covers current research on these topics, and relies heavily on scientific papers as its source materials. However, we stress that the emphasis in the course is practical, rather than theoretical. Several of the lectures are given by leading external experts from both academia and industry.