Scala Programmeren


Scala is een moderne programmeertaal voor de Java Virtual Machine (JVM), die de beste eigenschappen van objectgeoriënteerde en functionele programmeertalen combineert. Scala heeft het toegang tot elke Java-bibliotheek en is compatibel met Java-frameworks.

In de cursus Scala Programmeren worden de syntax en mogelijkheden van de programmeertaal Scala besproken. Scala combineert de kracht van objectgeoriënteerd en functioneel programmeren en maakt het mogelijk om met aanzienlijk minder code een vergelijkbare functionaliteit te leveren als Java of C#.

Aandacht wordt besteed aan de datatypes, variabelen, control structures en packages van Scala, de mogelijkheden om Scala uit te breiden en het gebruik van Scala frameworks, zoals het Lift Web Framework en het Play Framework. Speciale aandacht gaat uit naar de functionele aspecten van Scala, zoals first-class functions, higher order functions en de verschillende manieren van parameteroverdracht in Scala. Ook andere typische taalelementen van Scala komen aan de orde, zoals closures en deferred execution.

Vervolgens wordt stil gestaan bij collection types, zoals lists, maps en tuples, en hun respectievelijke higher order functions. Ook de objectgeoriënteerde aspecten van Scala, zoals inheritance, constructors companion objects en overriding, worden besproken. Hierbij wordt ook stil gestaan bij de ondersteuning van duck typing. Uitgebreid wordt stil gestaan bij het concept van Scala Traits en het gebruik van mixins.

Een aparte module is gewijd aan hoe Scala omgaat met XML- en JSON-data. Tot slot wordt aandacht besteed aan concurrency in Scala met het Akka Framework met Actors en Mailboxes en asynchrone communicatie.

De theorie wordt behandeld aan de hand van presentatieslides. Demo’s worden gebruikt om de concepten te verduidelijken. De theorie wordt afgewisseld met oefeningen. Er wordt gebruik gemaakt van een moderne IDE.

Cursusmateriaal en lunch zijn bij de prijs inbegrepen.

Doelgroep

Deze cursus is bestemd voor Java, C# en andere developers, die willen leren programmeren in Scala, of die de mogelijkheden van Scala willen onderzoeken.

Voorkennis

Om aan deze cursus te kunnen deelnemen is kennis en ervaring met een objectgeoriënteerde programmeertaal, zoals Java of C#, vereist.

Duur

De duur van deze cursus is drie dagen.

Groepsgrootte

De maximale groepsgrootte bedraagt acht personen.

Certificaat

De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Scala Programmeren.

Module 1: Scala Intro
Introducing Scala
Basic Syntax
Scala Concepts
Semicolons
Scala Keywords
Scala Characteristics
Comments in Scala
Interactive Shell
Compiling Scala
Scala HelloWorld
Variables and Constants
Java versus Scala
Scala versus Java
Scala Resources

Module 2: Language Syntax
Variables
Variable Scopes
Scala Data Types
Scala Type Hierarchy
If and Else Statements
Multiple Selection
For Loop
For Yield Filtering
While Loops
Breakable Blocks
Formatted Strings
Scala Arrays
Processing Arrays
Multidimensional Arrays
Ranges
Scala Operators
Reserved Symbols

Module 3: Functions and Closures
Scala Functions
Void Functions
Call by Value
Call by Name
Named Parameters
Variable Arguments
Default Parameters
Recursive Functions
Nested Functions
Methods versus Functions
Anonymous Functions
First Class Functions
Higher Order Functions
Partially Applied Functions
Currying Functions
Simple Closure

Module 4: Collections
Scala Collections
Scala Collection Hierarchy
Scala Lists
Nills and Cons
Head and Tail
List Concatenation
List Fill andTabulate
Scala Sets
Concatenation Min and Max
Intersections and Unions
Scala Maps
Maps Concatenation
Keys and Values
Scala Tuples
Tuple Access
Scala Options
GetOrElse

Module 5: Classes and Traits
Scala Object Orientation
Scala Classes
Preventing State Change
Object Singleton
Constructors
Visibility of Constructor Fields
Companion Objects
Inheritance
Abstract Classes
Traits
Partial Trait Implementation
Abstract Members
Mixins
Implicit Classes
Scala JavaBeans

Module 6: Pattern Matching
Unit returning Expressions
Dealing with Any
Match Expression
Example Match Expressions
Matching using case Classes
Match with Variables
Match with Sequences
Extended Wildcard _*
Scala versus Java
Pattern Matching in Assignments
Match with Types
Matching on Tuples
Pattern Matching with Option

Module 7: Data Access
Unit returning Expressions
Dealing with Any
Match Expression
Example Match Expressions
Matching using case Classes
Match with Variables
Match with Sequences
Extended Wildcard _*
Scala versus Java
Pattern Matching in Assignments
Match with Types
Matching on Tuples
Pattern Matching with Option

Module 8: Scala Concurrency
Concurrent Programming
Akka Framework
Actors in Akka
Hello Akka World
ActorSystem
Actor Hierarchy
Actor Information
Supervision
Supervision Strategies
Top Level Supervisors
OneForOneStrategy
Location Transparency
Akka Guidelines

Voor deze cursus zijn momenteel geen data gepland. Neem via onderstaand formulier contact met ons op voor meer informatie over de mogelijkheden.