SIMON THOMPSON, Professor of Logic and Computation: You’ll have heard a lot about functional programming recently. Languages like Haskell, OCaml, Elixir, and Erlang are becoming more popular. And features from these languages are coming into mainstream languages, too, like Java and JavaScript. Why is there this increase in popularity in these languages? Functional programmes are high level, clean, and effective, and that’s due to a number of the ideas that we’ll find out about in this course. We’re assuming that you’ve got programming experience, but we’re not assuming that you know anything about functional programming at all.

So what we’ll do is treat functional programming from scratch but relate that to the programming experience that you already have in drawing comparisons, say, with how you might do things in Java. Once you’ve installed Erlang, we’ll expect you to start writing programmes using the language. We’ll also expect you to help each other out by commenting on each other’s code but also on other aspects of the course. The great thing about that is you get feedback on your work but, also, you find out about different approaches that other people have used. Also, you learn by explaining your ideas to others. We also monitor the discussions that are going on in the forums.

We’ll be able to help out with general points that are coming up. And we’ll try and give you a summary each week covering the general points that are coming up and our feedback on those. As well as myself, Joe Armstrong, who is one of the inventors of Erlang, and Francesco Cesarini, who runs a big Erlang consultancy, will be taking part in a wide ranging discussion about Erlang and functional programming in general towards the end of the course. So we do hope you enjoy taking part in this course. As well as learning the general principles of functional programming, you’ll get experience of writing functional programmes in the Erlang language itself.