logo

Development Course

course overview

View dates & book now

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.

Audience

Each participant will leave with a recognised certificate

Outline

  • 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

Talk to an expert

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. Its a cost effective option. One on one training can be delivered too, at reasonable rates.

Submit an enquiry from any page on this site, and let us know you are interested in the requirements box, or simply mention it when we contact you.

All $ prices are in USD unless it’s a NZ or AU date

SPVC = Self Paced Virtual Class

LVC = Live Virtual Class

Please Note: All courses are availaible as Live Virtual Classes

Trusted by over 1/2 million students in 15 countries

Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well as public sector institutions such as the Department of Defence and the Department of Health.