Teach Programming with Scala

Julien Richard-Foy, Scala Center

Scala is more than a great programming language for building software. It is also a great tool for teaching programming!

We are happy to announce that we have published a new page on the website to explain the benefits of using Scala to teach programming, and to show a map of the universities who use Scala around the world (also shown below).

Teachers who use Scala in their course.

Motivation

Since Scala embraces several programming paradigms, it can be used to introduce many important concepts involved in computational thinking, from the most basic ones to the most advanced ones. It is suitable to teach programming to beginners, as well as to teach advanced software engineering courses.

However, until now it was not easy to know which institutions use Scala. This information can be useful for students, PhD candidates, teachers looking for possible teaching connections, and companies interested in hiring new Scala developers.

Teach with Scala

In the new “Teach” page, we explain why we think Scala is a great tool for teaching programming, with evidence from several teachers around the world:

  • Scala supports multiple programming paradigms, which helps compare and contrast different solutions to programming problems,
  • Scala is expressive: students can focus on the intent of their program without being distracted by low-level concerns or syntactic noise,
  • Thanks to its type system, the Scala compiler helps the students to find bugs before run-time,
  • Scala’s constructs are regular and principled,
  • Best practices are the norm (e.g., limited usage of null),
  • Scala runs on the JVM and on JS runtimes,
  • Scala’s ecosystem is large, and it can leverage the JVM and JS ecosystems,
  • Scala is versatile, it can be used to build many kinds of programs.

The page also shows a map of teachers who use Scala in their courses.

Finally, it provides several pointers to educational material.

Join the Movement

We welcome all the teachers who use Scala to contribute to this page by:

  • adding themselves to the map of teachers,
  • refining the content,
  • providing testimonials, such as a single short sentence that summarizes why you like using Scala to teach, or a sentence about a specific aspect of the language that works well for you.

Last but not least, we have set up a community of teachers where you can exchange best practices and work together on tools to improve your experience as teachers.