Schedule.md
May 24, 2023 ยท View on GitHub
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 |