• The University of Kent logo

Concurrent Programming in Erlang

Learn the theory and practice of concurrent programming in Erlang, through practical exercises and suggested projects.

3,537 enrolled on this course

Concurrent Programming in Erlang
  • Duration

    4 weeks
  • Weekly study

    5 hours

Concurrent functional programming is increasingly important in providing global-scale applications on the internet.

We combine the theory of concurrent programming with the practice of how that works in Erlang. You’ll get the opportunity to reinforce what you learn through practical exercises and more substantial, optional practical projects.

Functional programming has been a strength the University of Kent for the last 30 years. Throughout the course, you’ll learn with Simon Thompson – co-author of one of the standard introductions to Erlang, O’Reilly Media’s Erlang Programming.

Download video: standard or HD

Skip to 0 minutes and 7 seconds SIMON THOMPSON: The real world is concurrent, it’s natural to think of different activities going on independently, interacting only by passing information between them. In a similar way, this is a great way of writing programs. We think of writing programs as a collection of separate processes which only communicate by passing messages. And this was the model that the Ericsson programming team chose to use when they wanted to build the ideal programming language for programming telecom systems. Erlang is now used to program all sorts of web-scale applications which need to be fault tolerant, robust, and reliable. For example, it’s been used to program the WhatsApp Messenger which processes billions of messages a day.

Skip to 0 minutes and 53 seconds Why is Erlang concurrency having such an impact at the moment? It provides a clean model for programs that interact with the world, where we have multiple requests coming in, for example. These can be handled by multiple processes inside an Erlang virtual machine. Erlang also maps very well onto modern hardware. We can see processes being executed concurrently on a multi-core chip, and also the Erlang model scales to work in a distributed way across a network of processes. We expect you’ve got some programming experience coming into this course and we’ll teach you the basics of concurrency, scalability, and robustness. We also expect that you can write simple Erlang functions, put them into modules, and run them.

Skip to 1 minute and 38 seconds Once you’ve installed Erlang, you’ll be able to write some programs that put these ideas into practise. As well as myself, Joe Armstrong, who’s one of the inventors of Erlang, and Francesco Cesarini, who is a founder of Erlang Solutions, a big consultancy company in the area, will be helping us. They’ll present sessions and they’ll also, with myself, be taking part in some wide-ranging discussions about Erlang and concurrent programming in general. At the end of three weeks, you should have an appreciation of message passing concurrency in Erlang, also how to build robust and scalable systems in Erlang and OTP. And you’ll also have experience of writing Erlang concurrent programs for yourself.

What topics will you cover?

  • Processes and messages in Erlang
  • Message-passing concurrency
  • Designing for robustness
  • Handling errors and dealing with exceptions
  • Testing and fixing concurrency
  • Multicore and distributed Erlang
  • OTP: The Open Telecom Platform

Learning on this course

On every step of the course you can meet other learners, share your ideas and join in with active discussions in the comments.

What will you achieve?

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

  • Develop concurrent programs in Erlang using processes and message-passing communication between them
  • Describe the mechanisms underlying message processing in Erlang
  • Explain the life-cycle of an Erlang process and the handling of errors
  • Design and implement robust systems in Erlang
  • Summarise the design principles underlying the Open Telecom Platform (OTP)

Who is the course for?

This course is designed for anyone with prior experience of functional programming and the Erlang language, who wants to learn more about concurrent programming.

You can gain this experience on the University of Kent’s other Erlang course, Functional Programming with Erlang.

This course is ideal if you are a developer or computing professional seeking to understand and gain experience with this technology; a computer science undergraduate studying functional programming as part of your degree; or a self-taught programmer looking to take your knowledge to the next level.

What do people say about this course?

"This course was amazing, again! (I also participated in the previous one - functional programming in Erlang). Thank you, Simon and the whole Team, for such a high-quality course. It was really challenging, but I think this is why it was so valuable and time well-spent. I am looking forward to hearing from you about the next courses to come! I can see new opportunities emerging on the horizon! The adventure does not end here - it is just the beginning! Ahoy! :)"

Who will you learn with?

Academic at the University of Kent, where I am Professor in Logic and Computation in the School of Computing. You can find out more at my www.cs.kent.ac.uk/~sjt/

Who developed the course?

The University of Kent

The University of Kent, the UK’s European university, is one of the country’s most dynamic universities. Established in 1965, it now has 19,850 students studying at its various campuses.

Endorsers and supporters

supported by

The Erlang Ecosystem Foundation logo

supported by

Erlang Solution logo

Learning on FutureLearn

Your learning, your rules

  • Courses are split into weeks, activities, and steps to help you keep track of your learning
  • Learn through a mix of bite-sized videos, long- and short-form articles, audio, and practical activities
  • Stay motivated by using the Progress page to keep track of your step completion and assessment scores

Join a global classroom

  • Experience the power of social learning, and get inspired by an international network of learners
  • Share ideas with your peers and course educators on every step of the course
  • Join the conversation by reading, @ing, liking, bookmarking, and replying to comments from others

Map your progress

  • As you work through the course, use notifications and the Progress page to guide your learning
  • Whenever you’re ready, mark each step as complete, you’re in control
  • Complete 90% of course steps and all of the assessments to earn your certificate

Want to know more about learning on FutureLearn? Using FutureLearn

Do you know someone who'd love this course? Tell them about it...

You can use the hashtag #FLerlangconc to talk about this course on social media.