47 Degrees joins forces with Xebia read more

Functional Programming Fundamentals with Scala and Cats

Learn advanced functional programming concepts in Scala using the cats library.



This course covers advanced functional programming concepts using Cats, a library which provides abstractions for functional programming in the Scala programming language.

In this introductory course, we’ll review the primary concepts used in functional programming including monoids, semigroups, functors, and monads, and, while using Cats, we’ll learn about the main type classes and datatypes.


One year of experience in Scala or any other Functional Programming Programming language.

What you'll learn

Key Functional Programming concepts:

  • Introduction to Functional Programming in Scala with Cats
  • Pure Functions
  • Referential Transparency
  • The Substitution Model
  • Higher Order Functions

Domain modeling with Algebraic Data Types:

  • Data classes and product types
  • Sealed classes and co-product types

How to express abstractions using type classes from the Cats library:

  • Monoid
  • Semigroup
  • Functor
  • Applicative
  • Monad

How to use type classes to solve practical problems in different domains:

  • Error Handling and Data validation
  • Dependency injection
  • Managing the state of your program

Company and Private Group Training

Related courses upcoming in the Academy

Company and Private Group Training


This Functional Programming Fundamentals with Scala and Cats includes:

  • Maximum Class Size of 15
  • Access to Academy EduTools Platform
  • Access to Course Materials
  • Certificate of Completion
  • Access to a Private Channel with Trainers in the Academy Slack
  • A Q&A session one week post-course
  • A pre-and-post meeting with our trainers

Upcoming Academy Events