Contact FutureLearn for Support 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

Concurrent Programming in Erlang

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

What’s the difference between a free course and an upgraded 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 access to course tests
  • 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)
  • Access to course tests
  • A Certificate of Achievement when you complete the course

Find out more

Concurrent Programming in Erlang

Why join the course?

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 secondsSIMON 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 secondsWhy 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 secondsOnce 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

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 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! :)

Michal Grygierzec

Who will you learn with?

Simon Thompson

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 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.

What’s the difference between a free course and an upgraded 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 access to course tests
  • 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)
  • Access to course tests
  • A Certificate of Achievement when you complete the course

Find out more

Get extra benefits, upgrade this course. For $84 (+ shipping) you'll get:

Unlimited access

Upgrading will mean you get unlimited access to the course.

Image access mobile

  • Take the course at your own pace
  • Refer to the material at any point in future

If you’re taking a course for free you have access to the course for its duration + 14 days, regardless of when you join. If you upgrade the course you have access for as long as the course exists on FutureLearn.

Access to tests

When you upgrade you’ll have access to any tests during the course.

Image tests mobile

  • Validate your learning
  • Ensure you have mastered the material
  • Qualify for a certificate

To receive a Certificate of Achievement you need to take any tests and score over 70%. You don’t get access to tests if you choose to take a course for free.

Certificate of Achievement

Upgrading means you’ll receive a Certificate of Achievement when you complete the course.

Image certificate mobile

  • Prove your success when applying for jobs or courses
  • Celebrate your hard work
  • Display on your LinkedIn or CV

To receive a Certificate of Achievement you need to mark 90% of the steps on the course as complete, and score over 70% on any course tests.