Scala Online Training Course Content


  • Introduction to Scala Programming
  • Scala and Java - which to use, when and why
  • Overview of Scala development tools (Eclipse, Scalac, Sbt, Maven, Gradle, REPL, ScalaTest)
  • Overview of Scala Frameworks
  • Scala Syntax Fundamentals
  • Data types
  • Variables
  • Operators
  • Functions and lambdas
  • Scala Statements / Loops / Expressions
  • Extending Builtins
  • Easy I/O in Scala
  • Object-Oriented Programming with Scala
  • Defining and using classes
  • Companion objects
  • val and def
  • Exception Handling
  • Inheritance and the Object Hierarchy
  • Traits
  • Packages and package objects
  • Test-Driven Development (TDD) with Scala
  • Writing good JUnit Tests
  • Using ScalaTest
  • Functional Programming with Scala
  • What is functional programming?
  • Pure & First Class Functions
  • Anonymous Functions
  • Higher Order Functions
  • Currying, Closures & Partials
  • Functional concepts & TDD
  • Collections and Generics
  • Java and Scala Collections
  • Mutable and immutable collections
  • Using generic types
  • Lists, tuples and dictionaries
  • Functional programming and collections
  • map, fold and filter
  • Flattening collections and flatMap
  • The "For Comprehension"
  • Pattern Matching with Scala
  • Using "Match"
  • Case Classes
  • Wildcards
  • Case Constructors & Deep Matching
  • Using Extractors
  • Serialization using Scala & XML
  • Parsing XML
  • Native Scala XML API
  • Converting objects to and from XML
  • Mini Project to test the awareness of the students

Advanced Scala Course Contents

  • Working with Types in Scala
  • Review of traits
  • Structural types
  • Self types
  • Path-dependent types
  • Covariance and contravariance
  • Type bounds
  • Functional Programming
  • Tail Recursion
  • Currying and Partial Function Application
  • Closures
  • Partial Functions
  • Lazy evaluation
  • Scala Collections
  • Working with Streams
  • Manifests and class tags
  • Advanced Pattern Matching in Scala
  • Deep Matching
  • Using Extractors
  • Scala Implicits
  • Implicit arguments
  • Implicit conversions
  • Context and view bounds
  • Type classes
  • Functional Exception Handling
  • Traditional exception handling
  • A functional alternative
  • Using Try with for comprehensions

Enquiry Form