Scala Programming Training

Designed to address the challenges in Java, Scala is a general purpose programming language for Functional Programming.

  • Program in Scala and understand Scala’s approach to object-orientation
  • Participants will be able to m aster the use of functional programming techniques in Scala
  • Understand how to perform TDD using Scala
  • Manipulate XML in Scala and Write concurrent applications that are thread-safe

4 Days

Participants should be strong Java developers who are planning to develop Scala applications

  • History of the Java platform to date
  • Distinguishing between the Java language and platform
  • Pain points when using Java for software development
  • Possible criteria for an improved version of Java
  • How and why the Scala language was created
  • Everything is an object
  • Class declarations
  • Data typing
  • Operators and methods
  • Pattern matching
  • Functions
  • Anonymous and nested functions
  • Traits
  • Built in types, literals and operators
  • Testing for equality of state and reference
  • Conditionals, simple matching and external iteration
  • Working with lists, arrays, sets and maps
  • Throwing and catching exceptions
  • Adding annotations to your code
  • Using standard Java libraries
  • A minimal class declaration
  • Understanding primary constructors
  • Specifying alternative constructors
  • Declaring and overriding methods
  • Creating base classes and class hierarchies
  • Creating traits and mixing them into classes
  • How a Scala inheritance tree is linearized
  • Advanced uses of for expressions
  • Understanding function values and closures
  • Using closures to create internal iterators
  • Creating and using higher order functions
  • Practical examples of higher order functions
  • Currying and partially applied functions
  • Creating your own Domain Specific Languages(DSL’s)
  • Using the match keyword to return a value
  • Using case classes for pattern matching
  • Adding pattern guards to match conditions
  • Partially specifying matches with wildcards
  • Deep matching using case constructors
  • Matching against collections of items
  • Using extractors instead of case classes
  • Writing standard JUnit tests in Scala
  • Conventional TDD using the ScalaTest tool
  • Behavior Driven Development using ScalaTest
  • Using functional concepts in TDD
  • Working with XML literals in code
  • Embedding XPath like expressions
  • Using Pattern Matching to process XML data
  • Serializing and deserializing to and from XML
  • Issues with conventional approaches to multi-threading
  • How an actor-based approach helps you write thread-safe code
  • The Scala architecture for creating actor-based systems
  • Different coding styles supported by the actor model