Tuesday 21 May 2019 Julien Richard-Foy

In this article, I want to share with you the current state of our online Scala courses (MOOCs) and introduce our plans for the future.

How it all started

We stepped into the world of MOOCs with the Functional Programming Principles in Scala course. It was launched in 2012 and was a success, with more than 100,000 participants in the first two years, and a notably high completion rate (Miller et. al.)!

We believe that we were able to manage this load of learners because our assignments grading system was an automated process: when a learner submitted his/her work, our grading infrastructure analyzed the submission’s source code, ran the tests and produced detailed feedback for each observed error. In addition to this automated infrastructure, our team of (human!) teaching assistants was present on the discussion forums to answer other requests.

Encouraged by this success, one year later we launched our second course: Principles of Reactive Programming.

Where we are

We currently have 6 running courses, ranging from the basics of the language to more specific programming techniques:

In practice, we are able to deploy our grading infrastructure on both the Open edX and the Coursera platforms. The benefits are twofold: we can test and improve our next courses internally at EPFL on an Open edX based platform before making them public, and we believe that by having more freedom on where we eventually publish our courses (edX or Coursera) you will be more likely to get the best online learning experience.

The content of our courses is available for free. In addition, a paid version allows you to receive a grade for the whole course as well as a certificate of completion. Statistics revealed that this paid version is mostly used by companies to train their employees. The MOOCs revenues allow us to pay one engineer (myself) and a team of teaching assistants.

What we plan to do

Our goal is to ease the adoption of Scala and, beyond the language, to turn new, innovative, programming techniques into familiar practices.

We will keep making our material accessible for free and we will continue selling certificates of completion to sustain our activity.

More concretely, the next steps in our roadmap are the following:

teach more advanced concepts (implicits, path-dependent types, etc.),

give ready-to-use recipes for common programming tasks (manipulate files, perform HTTP requests, etc.),

update the material to recent Scala versions and Dotty.

And you, what would be your expectations for our next MOOCs? Please share your thoughts on the following discussion thread.