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