Course 494:
Basic Programming with Scala

(3 days)


Course Description

This course gives you a good foundation to start programming in Scala. It teaches you the basics of the syntax, but also looks at the concepts and principles behind the language and introduces you to Scala with hands-on practical experience.

Learning Objectives

  • Gain a working knowledge of the Scala programming language
  • Understand the basics of object-oriented programming in Scala
  • Understand the basics of functional programming in Scala
  • Become comfortable writing Scala code through hands-on labs

Who Should Attend

Although everyone is welcome to try this course, the intended audience consists mainly of professional developers of any background who are looking to learn and specialize in Scala development.


In order to make the most of this course, prospective students should have a couple of years of professional experience in at least one object-oriented programming language.

Course Outline

  • Overview
    • Scala Overview
      • About Scala and Its Uses
      • REPL, IDEs, and sbt
      • Statements, Expressions, Blocks
      • Variables (val and var) and Type Inference
      • Declaration, Initialization, Assignment, Reference
  • The Basics
    • Data Types and Operators
      • Numeric Types and Operators
      • Boolean Values and Operators
      • Strings, Characters, and Operations on Them
      • Tuples
    • Flow of Control
      • The If Expression
      • For, Generators, and For Comprehension
      • While and Do-While
      • Simple Pattern Matching
  • Classes
    • Instantiation
      • Primary Constructor and Constructor Overloading
    • Defining and Using Classes
  • Objects
    • Objects vs. Classes
    • Companion Objects
  • Inheritance
    • Basic Examples
    • Constructor Inheritance
    • Abstract Classes and Methods
    • Protected Modifier and Access Modifier Recap
  • Custom Operators
    • Operators as Methods
  • Traits
    • The Need for Traits
    • Using Traits
      • Declaring and Mixing-In
      • Overriding Traits
  • Generic Types and Methods
    • Declaration, Reference, Assignment
    • Upper Bounds
  • Collection Types
    • Scala Collections API
      • List, Vector, Set
      • Map
      • Default Implementation Classes
    • String and Array Wrapping
    • Mutable vs. Immutable Collections
    • External vs. Internal Iteration
    • Main Collection Operations and the Cons Operator
  • Exception Handling
    • Traditional Approach
    • The Union Type Approach
    • The Try Type
  • Functional Programming
    • An intuitive Approach
    • Functional Syntax and Lambdas
      • Lambda Shortcuts
    • Closures
    • Higher-Order Functions
    • Functions vs. Methods
      • Eta Expansion
    • Recursion and Tail Recursion
    • Partial Application and Currying
  • Functional Programming and Collections
    • List Pattern Matching
    • map, filter, flatMap
    • Folding and Reductions

Please Contact Your ROI Representative to Discuss Course Tailoring!