Scala Development

Scala is an object-oriented language that runs on the Java Virtual Machine. Scala is also a functional language, and combines the features and benefits of OO and functional programming. This course provides a fast-paced introduction to the language for developers with experience in similar languages (e.g. Java, C#, or C++), and then delves deeper into idiomatic uses of Scala in practice.

What you will learn:

  • Writing and running Scala programs
  • Object orientation in Scala
  • Functional programming in Scala
  • Using concurrency
  • Implementing Domain-Specific Languages
  • Best practices and advanced techniques

    Target audience

    Developes who wants to learn to develop using the Scala language.


    Experience using a contemporary object-oriented language such as Java, C#, or C++.

    Introduction to Scala

    • Overview of Scala
    • Installing Scala
    • Writing a simple Scala program
    • Using the Scala interpreter

    Core Scala Syntax

    • Types and variables
    • Literals
    • Tuples
    • Organising code
    • Importing types
    • Abstract types and parameterised types

    Operators and Flow Control

    • Operators and operands
    • Decision making
    • Looping
    • Pattern matching
    • Enumerations


    • Overview of traits
    • Using traits as mix-ins
    • Constructing traits
    • Traits vs. classes

    Object-Oriented Programming in Scala

    • Classes and objects
    • Visibility
    • Overriding members of classes and traits
    • Companion objects
    • Case classes
    • Object equality

    The Scala Object System

    • The Predef object
    • Statics
    • Sealed class hierarchies
    • The Scala type hierarchy

    Functional Programming in Scala

    • Overview of functional programming
    • Recursion
    • Function literals and closures
    • Functional data structures
    • Pattern matching
    • Partial functions
    • Implicits

    Concurrency and Actors

    • The problems of shared, synchronized state
    • Actors
    • Sending messages to actors
    • The Mailbox
    • Threading and events

    Domain-Specific Languages

    • Overview of DSLs
    • Internal DSLs
    • External DSLs
    • Examples

    The Scala Type System

    • Reflection
    • Parameterised types
    • Variance under inheritance
    • Type bounds
    • Abstract types
    • Path-dependent types
    • Value types

    Application Design

    • Annotations
    • Enumerations
    • Exceptions
    • Design trait usage
    • Design patterns

    Related articles

    • New courses - Azure, Spring Boot och Scala

      Now that spring has really started, it is time to release 4 new courses!

      Read more

    Course info

    Course code: T195
    Date: 2 Dec
    Location: Malmö
    Duration: 4 days
    Price: 31 500 SEK
    Language: English


    Andy OlsenAndy Olsen


    Contact us for details

    +46 40 61 70 720

    All prices excluding VAT