Teaching material for our future Scala course

The programming language course will probably be dismantled into individual programming language courses. Among others, we will definitely want to have a course about a multi-paradigm language, such as Scala. It would be really great to have teaching materials about some of the advanced libraries used in industry. There are at least two-three advanced topics we would like to add to a future Scala course:

  • Advanced functional/generic programming: Cats and Shapeless. There are some exercises for inspiration here: scala-exercises.org. The main deliverable here would be a readable tutorial (preferably Estonian) with a small selection of exercises, taking a student that understands functional programming at the level we thought this year to an appreciation of what these libraries do.
  • Similarly, we should consider the topic of meta-programming: Scala Macros and scala.meta.
  • Reactive programming with the Lightbend reactive platform. This is now the modern form of Akka with a lot of buzzwords added, e.g., the sbt with some custom rules is called the Lightbend Activator. You need to peal away the marketing layers and produce some simple exercises and an introduction we could use in our course.