Scala is currently one of the most popular programming languages, with a [high demand](https://insights.stackoverflow.com/survey/2019?utm_source=Iterable&utm_medium=email&utm_campaign=dev-survey-2019#top-paying-technologies) amongst software development companies, globally.
It’s functional & object oriented dual nature, static typing, high expressiveness & JVM integration makes it a perfect choice for many companies. User’s include the likes of Twitter, LinkedIn, Infor, Netflix & Amazon, amongst others. These companies use Scala to create web portals, big data applications... and code-generators [[ScalaUA 2019](https://www.youtube.com/watch?v=DLjALS_Lbn8&feature=youtu.be)].
The goal of this course is to introduce students to the syntax of the language, along with the frameworks and libraries associated with it, which are a standard in the industry.
**Course Syllabus:**
#### I. Scala syntax
* Code standards
* Types
* Classes & objects
* Traits
* Functions & closures
* Collections
* Case classes & pattern matching
* Lambdas
* Implicit parameters
* Futures
* Cooperation with Java
#### II. Frameworks & libraries
* Scala in commercial applications
* Build tool - [[Sbt](https://www.scala-sbt.org)]
* Testing - [[ScalaTest](http://www.scalatest.org/)]
* Database access - [[Slick](http://scala-slick.org/)]
* Web applications - [[Play Framework](https://www.playframework.com)]
* Concurrent and distributed applications [[Akka](https://akka.io)]
* Functional Programming - [[Cats](https://typelevel.org/cats/)]
#### III. Glimpse into the future of Scala [[Dotty compiler](https://dotty.epfl.ch/)]
**Entry Recommendations**: Java, Object Oriented Programming & basics of Web Development.
**Process during (possible) remote studying:**
All lectures & labs are online via [meet.google.com](https://meet.google.com/).
###### Lectures: ######
* All students have cameras & mics disabled
* All questions are asked via chat-box
* After online session slides from lectures will be available in SKOS
###### Labs: ######
* The only way to gain points is to send the code to email (michal.kowalczykiewicz@cs.uni.wroc.pl) before the deadline
* Lab hours are optional Q/A sessions