All Projects → scalasummerschool → lectures

scalasummerschool / lectures

Licence: other
Learn Functional Programming in Scala

Programming Languages

scala
5932 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to lectures

git 4 sci
A 3.5 hour introduction to basic shell and git/GitHub workflow for ACMES researchers.
Stars: ✭ 26 (-77.19%)
Mutual labels:  workshop
dapr-workshop
Workshop that teaches how to apply Dapr to an existing .NET, Java or Python based microservices application.
Stars: ✭ 118 (+3.51%)
Mutual labels:  workshop
kc-sofastack-demo
SOFAStack Demo for SOFAStack Cloud Native Workshop on KubeCon China 2019
Stars: ✭ 37 (-67.54%)
Mutual labels:  workshop
pandas twitter
Analyzing Trump's tweets using Python (Pandas + Twitter workshop)
Stars: ✭ 81 (-28.95%)
Mutual labels:  workshop
Annif-tutorial
Instructions, exercises and example data sets for Annif hands-on tutorial
Stars: ✭ 21 (-81.58%)
Mutual labels:  workshop
pwa-workshop
Workshop: Turning a regular website into a Progressive Web Application
Stars: ✭ 41 (-64.04%)
Mutual labels:  workshop
WHU FinTech Workshop
武汉大学金融科技研讨班
Stars: ✭ 56 (-50.88%)
Mutual labels:  workshop
trouble-training
FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend.
Stars: ✭ 271 (+137.72%)
Mutual labels:  workshop
kubernetes-workshop
Kubernetes Workshop
Stars: ✭ 20 (-82.46%)
Mutual labels:  workshop
CSSclasses
The homepage for CSSclasses, a free CSS workshop series
Stars: ✭ 19 (-83.33%)
Mutual labels:  workshop
workshop-edsl-in-typescript
Code template for workshop "Building eDSLs in functional TypeScript"
Stars: ✭ 49 (-57.02%)
Mutual labels:  workshop
streams-workshop
A workshop on Node.js Streams
Stars: ✭ 176 (+54.39%)
Mutual labels:  workshop
bsidessf-2020-workshop
Materials for a live workshop at BSidesSF on deployment-level Kubernetes security controls
Stars: ✭ 38 (-66.67%)
Mutual labels:  workshop
Intro-to-R-with-DGE
hbctraining.github.io/intro-to-r-with-dge/
Stars: ✭ 51 (-55.26%)
Mutual labels:  workshop
learnp2p
https://learnp2p.org
Stars: ✭ 22 (-80.7%)
Mutual labels:  workshop
AUXify
Introduces macro/meta annotations @ aux, @ self, @ instance, @ apply, @ delegated, @ syntax and String-based type class LabelledGeneric
Stars: ✭ 25 (-78.07%)
Mutual labels:  typeclasses
workshop-sustainable-productivity
Workshop: the basics of stress, productivity, flow, focus, meditation and sustainability.
Stars: ✭ 20 (-82.46%)
Mutual labels:  workshop
techlab
This repository contains the APPUiO and OpenShift Techlab tutorials.
Stars: ✭ 51 (-55.26%)
Mutual labels:  workshop
start-here
You should open this repo first
Stars: ✭ 86 (-24.56%)
Mutual labels:  workshop
react-workshop
Practical Introduction to React (with Redux & React Router v4)
Stars: ✭ 17 (-85.09%)
Mutual labels:  workshop

License: CC BY-NC 4.0

Scala Summer School

This repository contains the course materials we used for a five days workshop on Functional Programming in Scala. You find lecture slides, exercises, and projects here. Taking a look at the Table of Contents shows you the range of topics you will cover. The workshop starts with a basic introduction into Scala and Functional Programming and continues into more advanced concepts like type-classes and how to handle side-effects.

Since all lecture slides are based on reveal.js you have to use your arrow keys to navigate. And you have to navigate in two dimensions. Chapters are organized in columns, slides in rows. To get an overview of all slides within a lecture press ESC.

Table of Contents

  1. Introduction
  2. Scala 101
  3. Functional Programming 101
  4. Standard Library
  5. Midterm Project
  6. Type Classes
  7. Type Class Incarnations
  8. Side Effects
  9. IO
  10. Final Project

Follow-Up Materials

This workshop will give you a first introduction to Scala and the Functional Programming paradigm. If you want to go into greater details you might be interested in the free books provided by underscore.

Preparations

Mandatory

Before you can start you have to install the following tools:

  1. JDK 8 or newer (I think the latest stable version is 10)
  2. Scala
  3. SBT - it is the build-tool we will use
  4. git clone this repository

You have to install it in that order because each tool relies on the tools installed before.

Optional

  • 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 :).

SBT

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 need some more information take a look into the introduction slides.

Build the Lectures

To build a lecture go through the following steps:

$> cd /path/to/repo
$> sbt
# select one of the shown lecture
sbt> projects
sbt> project scala101-lecture

# minimum JS optimizations
sbt> fastCompile

# maximum JS optimizations (Github page)
sbt> fullCompile
sbt> exit

# opens lecture in the default browser
$> open lecture1_scala_101/index.html

License

As stated in the License file all lecture slides are provided under Creative Commons BY-NC 4.0. The exercise code is released under an MIT license.

The following people are authors of the content in this repository:

  • Paul Heymann
  • David Krentzlin
  • Christian Stein
  • Florian Sachse
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].