First things first

Setting up a development environment

As you may guess from the name of the course we will be doing quite a lot of programming. Every week you will be working on new exercises, mostly in Scala, and it is therefore important that you have a working programming environment.

In the appendix of these notes we show you how to set up and import the exercises in the two popular development environments: VS Code and IntelliJ IDEA.

If you are having trouble using either, come ask in the exercise sessions. We will try to help you get things working, or help you use the Aalto Workstations, if you cannot get things running on your own computer.

Which one should I pick?

This is up to your taste, and what you find easy to set up and use. Especially on a personal computer. The exercises were mainly developed using VS Code, but we have also tested them with IntelliJ.

No matter which one you choose, make sure to reinstall or update it if you already have an older version on your computer (for example, if you still have IntelliJ after CS-A1110 and want to keep using it). This is important because older versions is not always compatible with updated containers.

Danger

Whichever way you work on the course, do not activate or use and AI/LLM tools for coding. Because this is a course where you are supposed to learn programming, such tools are not allowed and considered cheating.

Can I use something else than Code or IntelliJ?

Yes, if you’d like to use an environment of your own choice, this is also possible. The exercise packages are configured as sbt projects, so you could use other IDEs, or any build server that can read sbt, or even sbt from the command line to test and run the code. However, note that you are on your own in that case, and we trust that you are able to configure everything yourself.

About sbt (for the interested)

sbt is a standard tool used to configure and Scala projects. Projects are configured in a subset of the Scala language itself, and allows for complex dependencies, sub-projects, and automated installation of specific versions of libraries and compilers, for example. All that power also create quite a bit of complexity however, and some efforts have been put in alternatives. One such tool, now also distributed with Scala, is scala-cli. While this course currently still uses sbt, scala-cli could be worth considering if you plan to set up your own small project.

If you want to have a look at the configuration of the exercise projects, open the file build.sbt once you have your environment set up and an exercise package open. (If you change things here and save the file, you could stop the project from building properly, so better make a copy of the original file first, if you plan to play around with it.)