|
| 1 | +--- |
| 2 | +layout: blog-detail |
| 3 | +post-type: blog |
| 4 | +by: Julien Richard-Foy |
| 5 | +title: "News from the Scala MOOCs" |
| 6 | +--- |
| 7 | + |
| 8 | +In this article, I want to share with you the current state of our online Scala courses (MOOCs) and introduce our plans |
| 9 | +for the future. |
| 10 | + |
| 11 | +## How it all started |
| 12 | + |
| 13 | +We stepped into the world of MOOCs with the **Functional Programming Principles in Scala** course. It was launched |
| 14 | +in 2012 and was a success, with more than 100,000 participants in the first two years, and a notably high completion |
| 15 | +rate ([Miller *et. al.*](https://infoscience.epfl.ch/record/190022/))! |
| 16 | + |
| 17 | +We believe that we were able to manage this load of learners because our assignments grading system was an automated |
| 18 | +process: when a learner submitted his/her work, our grading infrastructure analyzed the submission’s source code, ran |
| 19 | +the tests and produced detailed feedback for each observed error. In addition to this automated infrastructure, our |
| 20 | +team of (human!) teaching assistants was present on the discussion forums to answer other requests. |
| 21 | + |
| 22 | +Encouraged by this success, one year later we launched our second course: Principles of Reactive Programming. |
| 23 | + |
| 24 | +## Where we are |
| 25 | + |
| 26 | +We currently have 6 running courses, ranging from the basics of the language to more specific programming techniques: |
| 27 | +- [Functional Programming Principles in Scala](https://www.coursera.org/learn/progfun1) (Martin Odersky): still our |
| 28 | + most popular course, introduces both the Scala language and the functional programming paradigm, |
| 29 | +- [Functional Program Design](https://www.coursera.org/learn/progfun2) (Martin Odersky): shows how to apply functional |
| 30 | + programming techniques to design large applications, |
| 31 | +- [Parallel Programming](https://www.coursera.org/learn/parprog1) (Viktor Kuncak, Aleksandar Prokopec): teaches |
| 32 | + programming techniques for leveraging multicore machines, |
| 33 | +- [Big Data Analysis with Scala and Spark](https://www.coursera.org/learn/scala-spark-big-data) (Heather Miller): |
| 34 | + teaches how to process datasets that don’t fit into the computer’s memory, |
| 35 | +- [Scala Specialization Capstone Project](https://www.coursera.org/learn/scala-capstone/) (Julien Richard-Foy): the |
| 36 | + four previous courses are grouped in a [specialization](https://www.coursera.org/specializations/scala), and this |
| 37 | + course invites students to apply the previously learned skills by implementing a large project, |
| 38 | +- [Programming Reactive Systems](https://www.edx.org/course/programming-reactive-systems) (Roland Kuhn, Konrad |
| 39 | + Malawski, Julien Richard-Foy, Martin Odersky): teaches programming techniques for implementing scalable, resilient, |
| 40 | + and responsive systems. |
| 41 | + |
| 42 | +In practice, we are able to deploy our grading infrastructure on both the [Open edX](https://open.edx.org/) and the |
| 43 | +[Coursera](https://www.coursera.org) platforms. The benefits are twofold: we can test and improve our next courses |
| 44 | +internally at EPFL on [an Open edX based platform](https://courseware.epfl.ch/) before making them public, and we |
| 45 | +believe that by having more freedom on where we eventually publish our courses ([edX](https://www.edx.org/) or |
| 46 | +[Coursera](https://www.coursera.org)) you will be more likely to get the best online learning experience. |
| 47 | + |
| 48 | +The content of our courses is available for free. In addition, a paid version allows you to receive a grade for the whole |
| 49 | +course as well as a certificate of completion. Statistics revealed that this paid version is mostly used by companies |
| 50 | +to train their employees. The MOOCs revenues allow us to pay one engineer (myself) and a team of teaching assistants. |
| 51 | + |
| 52 | +## What we plan to do |
| 53 | + |
| 54 | +Our goal is to **ease the adoption of Scala** and, beyond the language, to turn new, **innovative**, programming |
| 55 | +techniques into **familiar** practices. |
| 56 | + |
| 57 | +We will keep making our material accessible for free and we will continue selling certificates of completion to |
| 58 | +sustain our activity. |
| 59 | + |
| 60 | +More concretely, the next steps in our roadmap are the following: |
| 61 | +- teach more advanced concepts (implicits, path-dependent types, etc.), |
| 62 | +- give ready-to-use recipes for common programming tasks (manipulate files, perform HTTP requests, etc.), |
| 63 | +- update the material to recent Scala versions and Dotty. |
| 64 | + |
| 65 | +And you, what would be your expectations for our next MOOCs? Please share your thoughts on the |
| 66 | +following [discussion thread](https://users.scala-lang.org/t/what-s-up-with-the-scala-moocs-request-for-feedback/4557). |
0 commit comments