Scala Programmeren
Lesgeld
Scala Intro
De cursus Scala Programmeren gaat van start met een bespreking van de concepten en karakteristieken van de Scala taal in vergelijking met Java. Scala levert net als Java code op die in de Virtual Machine wordt geladen.
Scala Syntax
Vervolgens wordt aandacht besteed de syntax de data types, variabelen, control structures en packages van Scala, evenals de mogelijkheden om Scala uit te breiden en het gebruik van Scala Frameworks zoals het Lift Web Framework e
Scala Intro
De cursus Scala Programmeren gaat van start met een bespreking van de concepten en karakteristieken van de Scala taal in vergelijking met Java. Scala levert net als Java code op die in de Virtual Machine wordt geladen.
Scala Syntax
Vervolgens wordt aandacht besteed de syntax de data types, variabelen, control structures en packages van Scala, evenals de mogelijkheden om Scala uit te breiden en het gebruik van Scala Frameworks zoals het Lift Web Framework en het Play Framework.
Functions and Closures
Speciale aandacht gaat uit naar de functionele aspecten van Scala zoals first-class functions, higher order functions en de verschillende manieren van parameter overdracht in Scala. Ook andere typische taal elementen van Scala komen aan de orde zoals closures en deferred execution.
Data Structures
Vervolgens wordt stil gestaan bij data structures en collection types in Scala zoals lists, maps en tuples en hun respectievelijke higher order functions.
Classes en Traits
Ook de object georiënteerde aspecten van Scala zoals inheritance, constructors, companion objects en overriding worden besproken. Hierbij komt de ondersteuning van duck typing aan de orde. Uitgebreid wordt eveneens stil gestaan bij het concept van Scala Traits and het gebruik van mixins.
Pattern Matching
Een aparte module is gewijd aan pattern matching in Scala. Hierin passeren Match expressions, Match met variables en Match met Sequences de revue. Ook komen wildcards aan de orde en wordt besproken hoe met any kan worden omgegaan.
Akka en Actors
Tot slot wordt aandacht besteed aan concurrency in Scala met het Akka Framework en met gebruikmaking van Actors en Mailboxes en asynchrone communicatie.
Doelgroep Cursus Scala Programmeren
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 Cursus Scala Programmeren
Om aan deze cursus te kunnen deelnemen is kennis en ervaring met een object georiënteerde programmeertaal zoals Java of C# vereist.
Uitvoering Training Scala Programmeren
De theorie wordt behandeld aan de hand van presentatie slides. Demo's worden gebruikt om de concepten te verduidelijken. De theorie wordt afgewisseld met oefeningen. Er wordt gebruik gemaakt van een moderne IDE. De cursustijden zijn van 9.30 tot 16.30.
Certificering Scala Programmeren
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Scala Programmeren.
Modules
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 and Scopes
- Scala Data Types
- Scala Type Hierarchy
- If and Else Statements
- Multiple Selection
- For and While Loops
- For Yield Filtering
- Breakable Blocks
- Formatted Strings
- Scala Arrays
- Multidimensional Arrays
- Ranges
- Scala Operators
- Reserved Symbols
Module 3 : Functions and Closures
- Scala Functions
- Call by Value and 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 : Data Structures
- Scala Collection Hierarchy
- Scala Lists
- Nills and Cons
- Head and Tail
- List Concatenation
- Scala Sets
- Concatenation Min and Max
- Intersections and Unions
- Scala Maps
- Keys and Values
- Scala Tuples
- Scala Options
- GetOrElse
Module 5 : Classes and Traits
- Scala Object Orientation
- Scala Classes
- Preventing State Change
- Object Singleton
- Constructors
- Companion Objects
- Inheritance
- Abstract Classes
- Traits
- Partial Trait Implementation
- Abstract Members
- Mixins
- Implicit Classes
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 : 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