Organizational notes

  • Each lab, starting from the next one, you receive a practice task. Every practice has a one-week deadline.
  • In total labs cost 20% of the final grade
  • Labs submissions will be organized using Github Classroom, where you will get assigments in individual repos. DO NOT PUSH ALL CODE TO MASTER. You should create a new branch, push all code into it and open pull request onto master. Only in this case Github Action job with autotests will run.

Integrated Development Environment

  • You can use any editor to write Scala code. But there are two of the most comfortable IDE:
    • Intellij IDEA
    • VS Code
  • Both requires specific Scala plugins to correctly work with Scala code

Intellij IDEA

  • Pros:
    • Best code navigation
    • Everything works out of the box
  • Cons:
    • High memory consumption

VS Code

  • Pros:
    • Lightweight
    • Fast incremental compilation
  • Cons:
    • Requires additional build tools like Metals to get rich functionality
    • Sometimes unstable having navigation bugs as the tool is a new one
  • It is up to you to choose IDE you like, but I recommend to use Intellij due to its ease of use

SBT: Scala build tool

Most popular and mature build tool for Scala used in most of the projects

Uses Scala to write build specification code

Intellij Idea automatically includes sbt for every project that uses it and has interactive sbt shell

Requires user to have JDK 8/11/16, but Scala does not take much advantage from jdk 8+ features

Practice time