The 2023 Q1-Q2 bootcamp has the following tentative schedule:
2023-* | Topics | Responsible | Materials |
---|---|---|---|
01-24 | Introduction and basic Scala Syntax (types, functions, parametric polymorphism) | @Juris Krikis | Basics (t) |
01-26 | Classes & Traits and some Control Structures: if -else , pattern matching |
@Daniil Eletskii | Classes & Traits (t) |
01-31 | Control Structures: recursion, map , flatMap , filter , for -comprehensions |
@Dzmitry Padvalnikau | Control Structures (t) |
02-02 | Data Structures ([im]mutable, Array , List , Map , tuples) |
@Alexander Baranouski | Data Structures (t) |
02-07 | Functions: first- and higher-order, total and partial, [im]pure, currying | @Andrey Ivaniuk | Functions (t) |
02-09 | Algebraic Data Types: role in functional design, using them | @Marcin Kustra | ADTs (t) |
02-14 | Error Handling - Option , Either , Try , Validated , encoding errors as ADTs |
@Artem Samasadau | Error Handling (t) |
02-16 | SBT, single- vs multi-module projects | @Maxim Fedorov | |
02-21 | Structure of Scala Applications, "package-by-feature" | @Maxim Fedorov | |
02-23 | Implicits | @Denis Fakhritdinov | Implicits (t) |
02-28 | Higher Kinded Types - "kind projector" | @Oleg Nizhnikov | HigherKindedTypes |
03-02 | Type Classes | @Andrey Ivaniuk | CodecsExercise, FoldableExercise (hw, hwt) |
03-07 | Processing JSON using Circe, writing custom coders and decoders | @Alexander Baranouski | JSON (t, hw) |
03-09 | Unit Testing - Benefits, testing pyramid, ScalaTest, structuring code to be testable | @Kamil Podsiadlo | Testing |
03-14 | Cats - cats-core introduction, Monad Transformers |
@Janis Komuls | Cats (t) |
03-16 | Unit Testing - testing async code, etc. | @Kamil Podsiadlo | Testing |
03-21 | Tagless Final | @Raitis Veinbahs | |
03-23 | Asynchronous Programming - JVM threads, perils of critical sections using synchronized , Atomic* |
@Oleg Nizhnikov | Presentation (examples) (hw) |
03-28 | Effects - Cats Effect IO | @Vera Nikalaikina | Effects (t) |
03-30 | Advanced Scala meetup | @Oleg Nizhnikov | |
04-04 | Effects continued - Fibers, Resources, ContextShift | @Vera Nikalaikina | |
04-06 | Shared State in FP - Ref, STM, etc. | @Michal Bednarz | State |
04-11 | IO monad and Tagless Final practice | @Daniil Eletskii | |
04-13 | Streaming - FS2 and others | @Mikita Kharytonau | |
04-18 | HTTP REST with http4s | @Evgeny Kurnevsky | HTTP (t) |
04-20 | WebSocket with http4s | @Evgeny Kurnevsky | WebSocket |
04-25 | Working with Databases from Scala: Doobie | @Anton Voitsishevskii | Databases |
04-27 | Akka - Actors and other Akka features | @Anton Laryionau | Lecture (examples) (hw) |
05-09 | Event Sourcing using Akka Persistence and CQRS | @Olga Shuleiko | |
Work on Course Projects | N/A | ||
05-23 | Presentation of Course Projects to mentors & each other | @Juris Krikis | |
05-24 | Presentation of Course Projects to mentors & each other - continued | @Juris Krikis | |
05-25 | Presentation of Course Projects to mentors & each other - continued | @Juris Krikis |