Inštalácia potrebných nástrojov/Scaly a úvod
- Inštalácia Scala-cli
 
- Scala v InteliJ Idea (Scala plugin)
 
- Čo je Scala, malá ukážka cieľov a smerovania kurzu aj s praktickými príkladmi
 
- Vytvorenie projektu
 
Základné konštrukcie jazyka a úvod do typov
- Meniteľné vs nemeniteľné premenné - princíp immutable
 
- Základné typy: numerické, reťazce, pravdivostné hodnoty
 
- Podmienky a cykly
 
- For cyklus ktorý vracia výsledok, teória výrazov - čo je výraz a čo nie
 
- Funkcie, rekurzia, tail rekurzia
 
- Interpolácia reťazcov
 
- Typ tuple, "rozbitie" na premenné, pattern matching
 
- Typ option ako jednoprvková kolekcia, reťazenie options vo for cykle, Option(null)
 
- List/Seq/Vector/Set/Map a operácie nad nimi
 
- Mutable varianty kontajnerov
 
Operácie nad kolekciami
- foreach, map, flatMap
 
- rekurzívne počítanie s kolekciami, foldLeft, sum, reduce
 
- find, headOption, filter, exists, contains, collect, groupBy, mkString
 
OOP v Scale
- Trieda a jej atribúty, konštruktor, companion object a apply
 
- case class, metóda copy, pattern matching
 
- Traity a viacnásobná dedičnosť
 
- Anonymné triedy
 
- sealed trait a enumerácie
 
Pokročilejšie konštrukcie jazyka
- Vyššie funkcie, funkcia ako parameter a návratová hodnota
 
- Kedy sa kód skutočne zavolá/vyhodnotí?
 
- Lambdy
 
- Obalenie primitívnych hodnôt do typov namiesto priameho použitia
 
- implicitné funkcie, konverzie
 
- implicitné triedy, doplňanie metód
 
- implicitné hodnoty
 
- Try vs try
 
- Reťazenie potencionálne neúspešných operácii vo for cykle, recover, orElse
 
- Funkcia s typovým parametrom
 
- Ohraničenie typov
 
- Náš vlastný reduce
 
Asynchrónne programovanie
- Future
 
- Await.ready/result
 
- Execution Context (global, fixed thread pool, cached, work stealing pool)
 
- Future neznamená thread, Čo je to thread pool
 
- map, flatMap, skladanie vo for cykle
 
- andThen, recover, transform
 
- lazyness