EPL: Scala Resources
The programming language used for lab, tutorial and coursework exercises is Scala. Any DICE machine (i.e. any Linux machine in an Informatics computer lab) should have Scala 3.3.1 installed; type scala
at a command prompt to start the Scala interpreter.
If you prefer to work on programming assignments on your own laptop/desktop: as usual, we can provide formal support for DICE and do not support arbitrary computing environments used by students on their own hardware. Be aware that there are nontrivial changes between Scala versions particularly between Scala 2.x and Scala 3.
Scala has many features in common with functional languages (such as Haskell) and object-oriented languages (such as Java). Prior familiarity with Scala is not needed for EPL, and we will investigate many of these features as part of the course. We will not cover all of Scala's more advanced or experimental features.
We will follow a "functional-first" style of Scala programming for most of the course, while most resources on Scala are oriented towards object-oriented programmers familiar with Java, Python or Ruby. Although the lectures, tutorials and lab/assignment handouts should provide all of the information about Scala you need for this course, you might be interested the following resources which cover Scala's features in more depth or from a different perspective.
- Scala for Java Programmers explains how to map some familiar concepts from Java to Scala.
- A Tour of Scala covers most of the major features of Scala in bite-size pieces.
- The Scala Style Guide is also a good source of advice on good Scala coding practice.
- Finally, if you are especially interested, there is a Coursera MOOC on Functional Programming Principles in Scala that looks like fun.