Here you find the lectures and exercises for the Scala Summer School. It is still Work In Progress (WIP) and only a subset of all lectures and exercises are available.
- Introduction
- Scala 101
- Functional Programming 101
- Standard Library
- Type Classes
- Type Class Incarnations
All lectures are based on [reveal.js]. Therefore, to navigate use your arrow keys. Chapters are organized in columns, slides in rows. To get an overview of all slides within a lecture press ESC.
Before you can start you have to install the following tools:
- JDK 8 or newer (I think the latest stable version is 10)
- Scala
- SBT - it is the build-tool we will use
git clone
this repository
You have to install it in that order because each tool relies on the tools installed before.
- Ammonite - this is an enhanced REPL which makes it easier to fiddle around with some code. But you don't need it. Scala comes already with a REPL. But it isn't that great :).
Here, you find a list of useful SBT commands:
# start SBT in the repo root and keep it running
sbt
# show all sub-projects
sbt> projects
# switch to a sub-project
sbt> project <name of sub-project>
# compile
sbt> compile
# compile on every file change
sbt> ~compile
# run test
sbt> test
# run a certain test
sbt> test:testOnly <name of test>
If you want some more information take a look into the introduction slides.
To build a lecture go through the following steps:
$> cd /path/to/repo
$> sbt
# select one of the shown lecture
sbt> project
sbt> project scala101-lecture
# minimum JS optimizations
sbt> fastCompile
# maximum JS optimizations (Github page)
sbt> fullCompile
sbt> exit
# opens lecture in default browser
$> open lecture1_scala_101/index.html
As stated in the License file all lecture slides are provided under Creative Commons BY-NC 4.0. The exercise code is released under a MIT license.
The following people are authors of the content in this repository:
- Paul Heymann
- David Krentzlin
- Christian Stein
- Florian Sachse