Programming with Scala

Programming with Scala

Public courses


- Anyone can join the training
- Course outline as presented on the website
- Small groups, 3-10 people

Private courses

Price set individually

- Training workshop just for your team
- You choose date and location of the training
- Course outline tailored to your needs

About the training

This training was created for programming teams who are considering using Scala. The authors of the training expect from participants the basic knowledge of programming languages but not necesserily Java. Our training is a perfect introduction to the Scala. Participants will learn the advanced concepts that are connected with this language of programming. We pay a lot of attention to the practical aspects and thanks to that you will be able to use Scala as soon as you finish the training.

Scala is a language which makes use of object-oriented programming – especially functional programming – while preserving the simplicity and brevity of the code. The scalability, integration with Java, expressive syntax and a number of advanced functions are only a few features of Scala. Numerous leading companies using it on a daily basis is just another proof of its usefulness.

Who is this training for?

  • Developers
  • Java Programmers

What will I learn?

  • Learn all important features of the Scala syntax
  • New programming elements not available in other languages
  • The most important components of the Scala language such as conditional execution, loops, variables, system types, classes and methods
  • Learn how to compile programs in Scala
  • Integrate Scala with Java and get the best of two languages
  • Learn frameworks for development of applications like big data systems
  • Good programming practices in line with functional programming paradigm
  • Learn Akka and start developing powerful applications

Course outline

  1. Introduction to Scala
    • Scala as a hybrid language – functional meets object orientation
    • Object-oriented programming
    • Functional Programming
    • Scala Environment
    • Scala IDE, Shell
    • Scala REPL
    • Compilation and program execution
  2. Classes and Objects
    • Classes – constructors,definitions, variables, methods, parameters, inheritance
    • Objects – constructors, declaration, inheritance
    • Methods – method declaration, invocation, parameters
  3. Basic types and operators
    • Basic types
    • Literals
    • Operators are methods
    • Arithmetic operators
    • Logic and relational operators
    • Bitwise operations
    • Order of precedence
  4. Control structures
    • Conditional expressions
    • Nesting ifs
    • For, While expressions
    • Exception handling
    • Try catch construct
    • Scope
  5. Packages
    • Constructing packages, options, access to package code
    • Imports and options
    • Package objects
    • Scope rules
    • Package visibility
  6. Functions
    • Function refresher
    • Functions as Methods/Values
    • Anonymous functions
    • Higher order functions
    • Closures
    • Currying
    • Control abstractions
  7. Traits
    • Traits as interfaces
    • Trait construction order
    • Multiple Inheritance
    • Trait members and traits with implementations
    • Abstract fields in traits
    • Traits extending classes
  8. Pattern Matching
    • Basic Pattern matching – any type, matching in lists
    • Variables in patterns
    • Matching arrays, lists and tuples
    • Patterns in variable declarations
    • Matching nested classes
  9. Collections Framework
    • Mutable vs immutable collections
    • Sequences, Lists, Sets, Maps, Tuples
    • Operators for managing elements
    • Common methods
    • Interoperability with Java collection
  10. New concepts in Scala
    • Implicit conversions and parameters
    • Annotations
    • Type declarations
    • Lazy evaluation
  11. Actors
    • The components of Actors
    • Creating actors
    • Life cycles
    • Child Actors
    • Akka Actor API
    • Futures
    • Dispatchers
  12. XML Processing
    • Description of XML
    • XML in Scala
    • Serialization and Desarialization
    • XML literals
    • Loading and Saving
    • Pattern Matching
  13. Testing
    • Types of tests
    • Runtime tests in Scala
    • Libraries for testing– ScalaTest, Spec, ScalaCheck
    • Testing Framework Scalatest
  14. Java interoperability
    • Using Java in Scala code
    • Java and Scala generics
    • JavaBeans specification compliant Scala classes
    • JavaBean properties
    • Inheritance
    • Compiling Scala and Java together
  15. Application design
    • Simple Build tool – SBT
    • Scala and Maven
    • Web frameworks – Lift, Play2

Course Curriculum

Curriculum is empty


Send an enquiry

I am interested in


Enquire about the private (on-site) training course

I am interested in


Enquire about the public training course

I am interested in

Szybki kontakt