09-22 |
Introduction and basic Scala Syntax (types, functions, parametric polymorphism) |
@jurisk |
Basics (t) |
09-24 |
Classes & Traits and some Control Structures: if -else , pattern matching |
@jurisk |
Classes & Traits (t) |
09-29 |
Control Structures: recursion, map , flatMap , filter , for -comprehensions |
@jurisk |
Control Structures (t) |
10-01 |
Data Structures ([im]mutable, Array , List , Map , tuples) |
@jurisk |
Data Structures (t) |
10-06 |
Functions ([im]pure, total/partial) & Algebraic Data Types - role in functional design, using them |
@apavlovics |
Functions (t) , ADTs (t) |
10-08 |
Implicits & Type Classes - defining them in Scala, Higher Kinded Types |
@migesok |
Implicits (t) |
10-13 |
Error Handling - Option , Either , Try , Validated , encoding errors as ADTs |
@apavlovics |
Error Handling (t) |
10-15 |
Processing JSON using Circe, writing custom coders and decoders |
@arixmkii |
JSON (t, hw) |
10-20 |
Unit Testing - Benefits, testing pyramid, ScalaTest, structuring code to be testable |
@rtar |
Testing |
10-23 |
Cats - cats-core introduction, Monad Transformers |
@Nbooo |
Cats (t) |
10-27 |
Questions & Answers - covering gaps, design & coding practice |
@jurisk |
|
10-29 |
Asynchronous Programming - JVM threads, perils of critical sections using synchronized , Atomic* |
@migesok |
Presentation (examples) (hw) |
11-03 |
Effects - Cats Effect IO |
@jurisk & @fr3akX |
Effects (t) |
11-05 |
Effects - continued, Shared State in FP |
@fr3akX & @Kvitral |
|
11-10 |
Shared State in FP - continued |
@Kvitral |
|
11-12 |
HTTP REST with http4s |
@apavlovics |
HTTP (t) |
11-17 |
WebSocket with http4s |
@apavlovics |
WebSocket |
11-19 |
Containers - Docker and Kubernetes |
@arixmkii |
|
11-24 |
Akka - Actors and other Akka features |
@migesok |
Lecture (examples) (hw) |
11-26 |
Structure of Scala Applications - SBT, single- vs multi-module projects, "package-by-feature" |
@rtar |
|
12-01 |
Working with Databases from Scala: JDBC, Slick, Doobie |
@mr-git |
Databases |
12-03 |
Event Sourcing using Akka Persistence and CQRS |
@mikla |
|
12-08 |
Development Practices & Processes - Agile, Code Reviews, Testing, CI/CD |
@jurisk |
|
12-10 |
Work on Course Projects and Q&A sessions - joint or with mentors |
N/A |
|
12-15 |
Work on Course Projects and Q&A sessions - joint or with mentors |
N/A |
|
12-21 |
Presentation of Course Projects to mentors & each other |
@jurisk |
|
12-22 |
Presentation of Course Projects to mentors & each other - continued |
@jurisk |
|
12-29 |
Graduation - Discussion of course results, free form Q&A session |
@jurisk |
|