Scala Programming Language
Duration
2 Days
Level
Basic Level
Design and Tailor this course
As per your team needs
The Program is focussed on learning Scala. Scala course is aimed at object-oriented and functional programming idioms carry over to and are deepened in this exciting new language. It covers Scala from basic syntax and language constructs, through its distinctive object-oriented characteristics and on to functional programming styles and pattern matching as applied to Scala’s extensive collections framework.
The intended audience for this course:
- Data Engineers
- Data Scientists
- Integration Engineers
- Architects
- What is Scala?
- Where did it come from?
- Why should I use Scala?
- Scala syntax
- Scala REPL
- Create and usage of classes
- Fields and methods
- Singleton objects
- Companion object
- Immutable objects
- Case classes
- Overview and usage collection library(List,Map,Set,Array,tuple)
- Immutability, persistent data structures and structural sharing
- Functions and high-order functions
- Monads
- Scala testing ecosystem
- Introduction to Test Driven Development
- ScalaTest
- Difference between for loops and for expressions
- Composing high-order functions
- By-name parameters
- Local functions
- Short forms of function literals
- Placeholder syntax
- Partially applied functions
- Currying
- Closures
- Recursion & Tail recursion
- Folding/Reducing
- Scala type system
- Parameterized and abstract types
- Structural types
- Mix-in traits
- Linearization
- Putting code in packages
- Imports
- Access modifiers
- Package objects
- Implicit conversions
- Rules for implicits
- Implicit parameters
- Context bounds
- Usage and benefits
- Pattern guard
- Variable binding
- On constants
- Catch exceptions
- Using Case classes
- Deconstruct tuples
- Introduction to Option
- Usage and benefits
- Introduction to Either
- Introduction to Try
- Usage and benefits
- Write own with Try function
Participants should preferably have 1-2 years experience with an object-oriented (eg. Java, C#) or functional (eg. Haskell, Scheme) programming language and a good general understanding of object-oriented or functional programming language concepts.