Schedule.md

May 24, 2023 ยท View on GitHub

The 2023 Q1-Q2 bootcamp has the following tentative schedule:

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