Principles of Reactive Programming

Learn how to write composable software that is event-driven, scalable under load, resilient and responsive in the presence of failures. Model systems after human organizations or inter-human communication.

About The Course

This is a follow-on for the Coursera class “Principles of Functional Programming in Scala”, which so far had more than 100’000 inscriptions over two iterations of the course, with some of the highest completion rates of any massive open online course worldwide.

The aim of the second course is to teach the principles of reactive programming. Reactive programming is an emerging discipline which combines concurrency and event-based and asynchronous systems. It is essential for writing any kind of web-service or distributed system and is also at the core of many high-performance concurrent systems. Reactive programming can be seen as a natural extension of higher-order functional programming to concurrent systems that deal with distributed state by coordinating and orchestrating asynchronous data streams exchanged by actors.

In this course you will discover key elements for writing reactive programs in a composable way. You will find out how to apply these building blocks in the construction of event-driven systems that are scalable and resilient.

The course is hands on; most units introduce short programs that serve as illustrations of important concepts and invite you to play with them, modifying and improving them. The course is complemented by a series of assignments, which are also programming projects.

Personalized Tutoring by Typesafe: Typesafe offers supervised tutorial sessions accompanying select Coursera classes. In weekly, one-hour tutorial sessions experts from Typesafe provide in-depth answers to questions about the course material, and discuss solutions to homework assignments past the deadline. Tutorial groups are small (10 participants max) in order to meet individual mentoring needs as much as possible. Tutorial session slots are offered in both European and American time zones. Registration for tutoring by Typesafe is open.

Frequently Asked Questions

  • Will I get a certificate after completing this class?

    Yes. Students who successfully complete the class will receive a certificate signed by the instructor.

  • What resources will I need for this class?

    You should have the following installed: - Java Virtual Machine JDK 1.6 or higher. - A Scala distribution version 2.10 or higher The recommended development environment for the course is the Scala IDE for Eclipse. It comes with a Scala distribution so if you intend to work only in Eclipse you just need to install the Scala IDE.

  • What is the coolest thing I'll learn if I take this class?

    You will learn how to write programs which scale from one mobile phone up to thousands of servers.

Recommended Background

You should have a background equivalent to someone who completed the course “Principles of Functional Programming”. We assume you know the fundamentals of functional programming and the Scala language.