Online Courses (MOOCs) from The Scala Center


The Scala Center produces online courses (a.k.a. MOOCs) of various levels, from beginner to advanced.

If you are a programmer and want to learn Scala, there are two recommended approaches. The fast path consists of taking the course Effective Programming in Scala. Otherwise, you can take the full Scala Specialization, which is made of four courses (covering advanced topics such as big data analysis and parallel programming) and a capstone project.

You can learn more about the courses in the following video:

Scala Learning Path

The diagram below summarizes the possible learning paths with our courses:

The “foundational” courses target programmers with no prior experience in Scala, whereas the “deepening” courses aim at strengthening Scala programmers skills in a specific domain (such as parallel programming).

We recommend starting with either Effective Programming in Scala, or Functional Programming Principles in Scala followed by Functional Program Design. Then, you can complement your Scala skills by taking any of the courses Programming Reactive Systems, Parallel Programming, or Big Data Analysis with Scala and Spark. In case you take the Scala Specialization, you will end with the Scala Capstone Project.

Learning Platforms

Currently, all our MOOCs are available on the platform Coursera, and some of them are available on edX or the Extension School. This section explains the differences between these learning platforms.

On all the platforms the full material is always available online. It includes video lectures, text articles, quizzes, and auto-graded homeworks. All the platforms also provide discussion forums where you can exchange with the other learners.

The difference between the Extension School and the other platforms is that it provides live meetings with instructors, and code reviews by Scala experts.

On the other hand, on Coursera or edX it is possible to take our courses for free (a.k.a. “audit” mode). Optionally, a subscription gives you access to a certificate of completion that attests your accomplishments.

Learn more about Coursera certificates, edX certificates, or Extension School certificates. Note that your subscriptions also supports the work of the Scala Center, whose mission is to create high-quality educational material.

If you prefer learning in autonomy, we recommend you to choose the Coursera or edX platform, but if you are looking for more support, we recommend you to choose the Extension School. Here is a table below that compares the learning platforms:

  Coursera / edX (audit) Coursera / edX (subscription) Extension School
Video lectures, quizzes Yes Yes Yes
Auto-graded homeworks Yes Yes Yes
Discussion forums Yes Yes Yes
Self-paced Yes Yes Yes
Price $0 $50 to $100 per course $420 per month
Certificate of completion No Yes Yes
Supports the Scala Center No Yes Yes
30 min of live session with instructors per week No No Yes
Code reviews by Scala experts No No Yes

Effective Programming in Scala

This course is available on Coursera and the Extension School. Please refer to this section to know the differences between both learning platforms.

Effective Programming in Scala teaches non-Scala programmers everything they need to be ready to work in Scala. At the end of this hands-on course, you will know how to achieve common programming tasks in Scala (e.g., modeling business domains, implementing business logic, designing large systems made of components, handling errors, manipulating data, running concurrent tasks in parallel, testing your code). You can learn more about this course in the following video:

This course is also a good way to upgrade your Scala 2 knowledge to Scala 3.

After taking this course, you might be interested in improving your skills in specific areas by taking the courses Parallel Programming, Big Data Analysis with Scala and Spark, or Programming Reactive Systems.

Scala Specialization

The Scala Specialization provides a hands-on introduction to functional programming using Scala. You can access the courses material and exercises by either signing up for the specialization or auditing the courses individually. The specialization has the following courses.

These courses provide a deep understanding of the Scala language itself, and they also dive into more specific topics such as parallel programming, and Spark.

Programming Reactive Systems

Programming Reactive Systems (also available on edX) teaches how to write responsive, scalable, and resilient systems with the library Akka.

Scala 2 Courses

The above courses all use Scala 3. If needed, you can find the (legacy) Scala 2 version of our courses here:


Other Online Resources

You can find other online resources contributed by the community on this page.

Contributors to this page: