The Scala Programming Language

  • Duration: 3 days
  • Our price: from £3,239 per person

Course overview:

Scala is an open source language that combines an object oriented approach with a functional programming paradigm. It has become popular due to its scalability, flexible syntax, interoperability with Java and pattern matching.

Pre-Requisites:

Essential: Familiarity with Object Oriented Programming
Useful: Experience with Java

Training Course Overview/Content:

This course will introduce the fundamentals of Scala from the context of a Java background. It covers what is different between the two languages, how they are related and how to adopt a functional, rather than object oriented, approach.

Day 1

Introducing Scala

What is Scala
Advantages and Disadvantages to using Scala
Scaladocs
Scala Libraries
Scala tools - Repl and Eclipse
Basic Scala Syntax

Variables and Data types
Mutable vs Immutable data
Operators
Statement blocks
Conditionals
Loops , Guards and Yielding
Functions
Simple I/O
Objects in Scala

Creating objects
Creating new operators
Companion Objects and Singletons
Val vs Def
Exception Handling: Throwing exceptions and why not to
Inheritance and Traits

Simple Inheritance in Java and Scala
Abstract methods and classes
Traits
Multiple inheritance using traits
Packages
Day 2

Unit Testing and TDD

What is unit testing
Scala Test
Installing and running simple tests
Test styles: Flat Spec and feature Spec
Matchers and Exception catching
Functional Programming

Advantages and disadvantages to the functional programming style
Pure functions
Higher order functions
Lambda (anonymous) functions
Closures
Currying
Combining functions
Recursion
Lazy Evaluation and partially applied functions
Day 3

Collections and Generics

Generic types in Java and Scala
Arrays and the Array Buffer
Ranges
Iterating and transforming collections
Lists
Tuples
Maps
Zipping and unzipping collections
Variance and type bounds
Functional programming with Collections

The map function
forEach
filter
flatMap
Options
Pattern Matching

Case classes
match ... case
Capturing variables
Matching Lists
Matching and Recursion
Deep Matching

This course is running at the following venues:

3rd Floor, International House, London, E1W 1UN
Virtual Live Online, Virtual Live Online, Virtual

Can’t find your perfect course? Contact us for help