IntelliJ IDEA


The course project assumes a Linux or macOS environment in some parts. Here are two alternatives for working on Windows (or if you prefer not to use IntelliJ).

Windows Subsytem for Linux (WSL)

If you are working on Windows, one convenient local option is the Windows Subsystem for Linux, which basically provides an integrated Linux system inside Windows.

  • You will do all command-line work inside WSL.
    1. Install and setup WSL. If you do not have a preferred Linux distribution, I suggest Ubuntu.
    2. Your WSL Linux distribution will need a JDK, Git, and Python 3 installed. On Ubuntu: sudo apt install default-jdk git python3
  • You will use IntelliJ from Windows:
    1. Install IntelliJ IDEA Community Edition.
    2. The project setup steps have notes about working across the bridge.

If you need assistance with setup, or if this will not work for you, get in touch about alternatives such as remote access to the CS machines or a virtual machine.

(If you are well-versed in Windows command-line work, you may be able to get many parts of the project running directly in Windows, but I lack the Windows experience to be helpful with that.)


If you prefer not to use IntelliJ or if setup is not working out on your computer, an alternative to IntelliJ is to use VSCode. You can develop locally on your machine (Linux, macOS) or remotely on the CS server (Windows). The remote option is workable with a solid low-latency network connection to campus. It’s not always a great experience from the other side of the globe.

  1. Install VSCode.

  2. If you will work remotely on the CS server: Install the Remote Development extension and connect to

    Otherwise: Install a Java JDK as above if you have not done so yet.

  3. Install the Scala Metals extension. This should give syntax highlighting, live error reporting, and maybe completion for Scala code. (Documentation)

  4. Do Git operations on the command line (or in the VSCode UI if you understand it).

  5. Run command-line builds in the terminal:

    • Over SSH if working remotely (such as in the VSCode remote terminal).
    • Or locally.

Git and GitHub

Command Line Tools