Scala Development
Contact Us for Dates
4 days practical workshop for up to 12 people.
Contact us for Onsite Price
Scala is an object-oriented language that runs on the Java Virtual Machine. Scala is also a functional language, and combines the features and benefits of OO and functional programming. This course provides a fast-paced introduction to the language for developers with experience in similar languages (e.g. Java, C#, or C++), and then delves deeper into idiomatic uses of Scala in practice.
Layout
This course is a mixture of lectures and hands on exercises designed to reinforce the topics learnt
Training Course Objectives
- Writing and running Scala programs
- Object orientation in Scala
- Functional programming in Scala
- Using concurrency
- Implementing Domain-Specific Languages
- Best practices and advanced techniques
Who it is for
This course is for programmers who need to develop using Scala
Training Course Prerequisites
- Experience using a contemporary object-oriented language such as Java, C#, or C++
Chapters
Chapter 1 Introduction to Scala
- Overview of Scala
- Installing Scala
- Writing a simple Scala program
- Using the Scala interpreter
Chapter 2 Core Scala Syntax
- Types and variables
- Literals
- Tuples
- Organising code
- Importing types
- Abstract types and parameterised types
Chapter 3 Operators and Flow Control
- Operators and operands
- Decision making
- Looping
- Pattern matching
- Enumerations
Chapter 4 Traits
- Overview of traits
- Using traits as mix-ins
- Constructing traits
- Traits vs. classes
Chapter 5 Object-Oriented Programming in Scala
- Classes and objects
- Visibility
- Overriding members of classes and traits
- Companion objects
- Case classes
- Object equality
Chapter 6 The Scala Object System
- The Predef object
- Statics
- Sealed class hierarchies
- The Scala type hierarchy
Chapter 7 Functional Programming in Scala
- Overview of functional programming
- Recursion
- Function literals and closures
- Functional data structures
- Pattern matching
- Partial functions
- Implicits
Chapter 8 Concurrency and Actors
- The problems of shared, synchronized state
- Actors
- Sending messages to actors
- The Mailbox
- Threading and events
Chapter 9 Domain-Specific Languages
- Overview of DSLs
- Internal DSLs
- External DSLs
- Examples
Chapter 10 The Scala Type System
- Reflection
- Parameterised types
- Variance under inheritance
- Type bounds
- Abstract types
- Path-dependent types
- Value types
Chapter 11 Application Design
- Annotations
- Enumerations
- Exceptions
- Design trait usage
- Design patterns