The 2022 Q1-Q3 bootcamp has the following tentative schedule:
2022-* | Topics | Responsible | Materials |
---|---|---|---|
04-05 | Introduction and basic Scala Syntax (types, functions, parametric polymorphism) | @jurisk | Basics (t) |
04-07 | Classes & Traits and some Control Structures: if -else , pattern matching |
@vijexa | Classes & Traits (t) |
04-12 | Control Structures: recursion, map , flatMap , filter , for -comprehensions |
@vijexa | Control Structures (t) |
04-14 | Data Structures ([im]mutable, Array , List , Map , tuples) |
@jurisk | Data Structures (t) |
04-19 | Functions: first- and higher-order, total and partial, [im]pure, currying | @AiiR42 | Functions (t) |
04-21 | Algebraic Data Types: role in functional design, using them | @MrKustra94 | ADTs (t) |
04-26 | SBT, single- vs multi-module projects | @mr-git | |
04-28 | Structure of Scala Applications, "package-by-feature" | @janiskomuls | |
05-03 | Implicits | @rtar | Implicits (t) |
05-05 | Higher Kinded Types - "kind projector" | @Odomontois | HigherKindedTypes |
05-10 | Type Classes | @Demosfen92 | CodecsExercise, FoldableExercise (hw, hwt) |
05-12 | Error Handling - Option , Either , Try , Validated , encoding errors as ADTs |
@pizzaeueu | Error Handling (t) |
05-17 | Processing JSON using Circe, writing custom coders and decoders | @arixmkii | JSON (t, hw) |
05-19 | Unit Testing - Benefits, testing pyramid, ScalaTest, structuring code to be testable | @Kvitral | Testing |
05-24 | Cats - cats-core introduction, Monad Transformers |
@xicmiah | Cats (t) |
05-26 | Unit Testing - testing async code, etc. | @Kvitral | Testing |
05-31 | Tagless Final | @Demosfen92 | |
06-02 | Asynchronous Programming - JVM threads, perils of critical sections using synchronized , Atomic* |
@migesok | Presentation (examples) (hw) |
06-07 | Effects - Cats Effect IO | @Demosfen92 | Effects (t) |
06-09 | Effects continued - Fibers, Resources, ContextShift | @Demosfen92 | |
06-14 | Shared State in FP - Ref-s, MVar-s, etc. | @MrKustra94 | |
06-16 | IO monad and Tagless Final practice | @Demosfen92 | |
06-21 | Streaming - FS2 and others | @xicmiah | |
06-28 | HTTP REST with http4s | @Demosfen92 | HTTP (t) |
06-30 | WebSocket with http4s | @Demosfen92 | WebSocket |
Containers - Docker and Kubernetes | Cancelled | Project (Presentation) | |
07-05 | Working with Databases from Scala: JDBC, Slick, Doobie | @mr-git | Databases |
07-07 | Akka - Actors and other Akka features | @migesok | Lecture (examples) (hw) |
07-12 | Event Sourcing using Akka Persistence and CQRS | @mikla | |
07-14 | Development Practices & Processes - Agile, Code Reviews, Testing, CI/CD | @jurisk | |
Work on Course Projects | N/A | ||
08-16 | Presentation of Course Projects to mentors & each other | @jurisk | |
08-17 | Presentation of Course Projects to mentors & each other - continued | @jurisk | |
08-18 | Presentation of Course Projects to mentors & each other - continued | @jurisk | |
08-23 | Graduation - Discussion of course results, free-form Q&A session | @jurisk |
The schedule will be adjusted according to learning progress.