Scala in Practice

Język wykładowy Angielski
Semestr Letni
Status W ofercie
Opiekun Michał Kowalczykiewicz
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj Kurs inżynierski
ECTS 5
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

Scala is currently one of the most popular programming languages, with a [high demand](https://survey.stackoverflow.co/2022/#section-top-paying-technologies-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://docs.scala-lang.org/scala3/reference/)]   **Entry Recommendations**: Java, Object Oriented Programming & basics of Web Development. ###### Lectures (remote, via [meet.google.com](https://meet.google.com/)): ###### * All students have cameras & mics disabled * All questions are asked via mic or chat-box * After online session slides from lectures will be available in SKOS ###### Labs (stationary): ###### * The only way to gain points is to present the solution (_demo + code walkthrough_) during lab hours