Scala Development

Scala Development
Start Date27th February 2018
Course CodeSS17-99
Full Fee
Network Member Subsidised Fee€660.00
  Course expired

Programme Overview
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. 
Course Objectives and Learning Outcomes
  • Writing and running Scala programs
  • Object orientation in Scala
  • Functional programming in Scala
  • Using concurrency
  • Implementing Domain-Specific Languages
  • Best practices and advanced techniques
Who should attend
Professionals experienced in using a contemporary object-oriented language such as Java, C#, or C++. 
Course Content

Introduction to Scala

Overview of Scala

Installing Scala

Writing a simple Scala program

Using the Scala interpreter 

Core Scala Syntax

Types and variables



Organising code

Importing types

Abstract types and parameterised types

Operators and Flow Control

Operators and operands

Decision making


Pattern matching



Overview of traits

Using traits as mix-ins

Constructing traits

Traits vs. classes 

Object-Oriented Programming in Scala

Classes and objects


Overriding members of classes and traits

Companion objects

Case classes

Object equality

The Scala Object System

The Predef object


Sealed class hierarchies

The Scala type hierarchy

Functional Programming in Scala

Overview of functional programming


Function literals and closures

Functional data structures

Pattern matching

Partial functions


Concurrency and Actors

The problems of shared, synchronized state


Sending messages to actors

The Mailbox

Threading and events

Domain-Specific Languages

Overview of DSLs

Internal DSLs

External DSLs


The Scala Type System


Parameterised types

Variance under inheritance

Type bounds

Abstract types

Path-dependent types

Value types

Application Design




Design trait usage

Design patterns

About the Trainer

Andy Olsen - Andy is an experienced software consultant and instructor based in the UK, working mostly in the UK & Ireland. He spends his time developing commercial software applications, delivering advanced software development courses (primarily Java and .NET) and creating training materials.
With .NET his experience goes back to the Beta 1 days and he has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. He’s been working in IT for more than 25 years now and has been actively involved in web development for the past decade.
Andy has also spent a lot of time working in the enterprise Java arena, using standard Java EE as well as popular frameworks such as Spring, Hibernate, and JSF.
Andy has been creating and delivering training courses in the UK, Europe, the United States, and Asia since 1990. During that time, he has authored many official courses for major software vendors including Microsoft and Oracle. He has also written and reviewed books for Apress and Wrox Press on a variety of technical subjects. In recent years, Andy has been immersed in HTML5 and mobile development. In November 2011 he wrote and delivered a series of HTML5 webcasts for Microsoft for global delivery.