Scala: Advanced Object-Functional Programming Training Course
Scala is a concise, object-oriented language with functional programming features, including currying, type inference, immutability, lazy evaluation, and pattern matching. Scala code runs on a JVM and was designed to address some of the shortcomings of Java.
In this instructor-led, live training participants will learn how to use Scala's advanced features, including its type system, to write better code using an object-functional approach.
By the end of this training, participants will be able to:
- Leverage Scala's type system to maximum benefit
- Handle exceptions functionally
- Create libraries and DSLs with Scala
- Use Scala's advanced features for pattern matching
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Course Outline
Introduction
- Scala as a JVM language
- Objection-oriented programming vs functional programming
Overview of Object-Functional Programming
- Tail recursion
- Partial functions
- Currying and partial function application
- Closures
- Lazy evaluation
Mastering the Scala Type System
- About traits
- Structural types
- Path dependent types
- Self types
- Covariance and contravariance
- Type bounds
Advanced Pattern Matching in Scala
- Deep matching
- Using extractors
Using Scala Implicit
- Implicit conversion, classes and parameters
- Type class pattern
- Context and view bounds
Libraries and DSLs
- Custom control structures with by-name parameters
- Building well-designed libraries and internal DSLs
Working with Scala Collections
- Working with Streams
- Manifests and class tags
- Builders
- CanBuildFrom
- Building custom collections
Functional Exception Handling
- Traditional exception handling
- Functional exception handling
- Using Try with For comprehensions
Closing Remarks
Requirements
- Hands on experience in Scala programming
- Familiarity with pattern matching and traits
Audience
- Scala programmers who wish to learn the more advanced and nuanced features of Scala
Open Training Courses require 5+ participants.
Scala: Advanced Object-Functional Programming Training Course - Booking
Scala: Advanced Object-Functional Programming Training Course - Enquiry
Scala: Advanced Object-Functional Programming - Consultancy Enquiry
Upcoming Courses
Related Courses
Programming in Scala
14 HoursThe training aims to provide opportunities Scala language, learning the syntax of programming paradigms, and space applications.
Machine Learning Fundamentals with Scala and Apache Spark
14 HoursThe aim of this course is to provide a basic proficiency in applying Machine Learning methods in practice. Through the use of the Scala programming language and its various libraries, and based on a multitude of practical examples this course teaches how to use the most important building blocks of Machine Learning, how to make data modeling decisions, interpret the outputs of the algorithms and validate the results.
Our goal is to give you the skills to understand and use the most fundamental tools from the Machine Learning toolbox confidently and avoid the common pitfalls of Data Sciences applications.
Scala: Advanced Functional Programming
14 HoursScala is a concise, object-oriented language with functional programming features, including currying, type inference, immutability, lazy evaluation, and pattern matching.
In this instructor-led, live training participants will learn how to use Scala's advanced features to develop well-constructed software that is easy to write, read, test, and change. The focus of this training is on functional programming, using real-world case studies and discussion as a reference for lab exercises and activities.
By the end of this training, participants will be able to:
- Implement advanced functional programming techniques
- Make sense of complex type signatures
- Understand code through types and substitution
- Handle exceptions functionally
- Create libraries and DSLs with Scala
- Use Scala's advanced features for pattern matching
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Akka - from Beginner to Intermediate
21 HoursThis training outline is intended to bring attendees from a beginner to an intermediate/advanced level in the understanding and knowledge of the Akka framework.
The entire course is hands on, mostly driven by the trainer in the beginning and progressively shifting towards the attendees producing code themselves (and downloading implementations/solutions written by the trainer).
Attendees are not expected to have prior knowledge of Scala, the trainer will take the necessary time to explain and clarify all the intricacies that relate to the Scala code used.
Apache Spark Streaming with Scala
21 HoursThis instructor-led, live training in Finland (online or onsite) is aimed at software engineers who wish to stream big data with Spark Streaming and Scala.
By the end of this training, participants will be able to:
- Create Spark applications with the Scala programming language.
- Use Spark Streaming to process continuous streams of data.
- Process streams of real-time data with Spark Streaming.