Fast Track to Scala Programming for OO / Java Developers (TTSCL2104)

Explore Scala Essentials, Functional Programming, Scala Testing, Akka Concurrency, AI with Scala, Best Practices & More

TTSCL2104

Introductory and Beyond

4 Days

Course Overview

Overview

Discover the power of Scala programming in our comprehensive, hands-on technical training course designed specifically for experienced object-oriented (OO) developers. Scala is a versatile programming language that combines the best of both OO and functional programming paradigms, making it ideal for a wide range of projects, from web applications to big data processing and machine learning. By mastering Scala, you'll be able to develop more efficient, scalable, and maintainable applications.

Fast Track to Scala Programming for OO / Java Developers is a four day hands-on course covers the core principles of Scala, functional programming, web application development, database connectivity, concurrency programming, testing, and interoperability between Scala and Java. Additionally, you'll explore cutting-edge generative AI and GPT technologies, learning how to integrate them into your Scala applications for intelligent suggestions or automation.

Throughout the course you’ll explore the latest tools and best practices in the Scala ecosystem, gaining valuable knowledge and experience that can be directly applied to your day-to-day work. With 50% of the course content dedicated to hands-on labs, you'll gain practical experience applying the concepts you've learned across various projects, such as building functional web applications, connecting to databases, designing modular components, and implementing concurrency.

Upon completing the course, you'll have a solid understanding of the language and its features, empowering you to confidently apply your new skills in data science and machine learning projects. You'll exit well-prepared to create efficient, scalable, and maintainable Scala applications, regardless of the complexity of your projects.

 

Learning Objectives

Working in a hands-on learning environment led by our expert instructor you’ll:

  • Get comfortable with Scala's core principles and unique features, helping you navigate the language confidently and boosting your programming skills.
  • Discover the power of functional programming and learn techniques that will make your code more efficient, maintainable, and enjoyable to write.
  • Become proficient in creating dynamic web applications using the Play Framework, and easily connect to databases with the user-friendly Slick library.
  • Master concurrency programming with Akka, empowering you to build scalable and fault-tolerant applications that excel in performance.
  • Enhance your testing skills using ScalaTest and ScalaCheck, ensuring the reliability and quality of your Scala applications, while having fun in the process.
  • Explore the fascinating world of generative AI and GPT technologies, and learn how to integrate them into your projects, adding a touch of innovation and intelligence to your Scala solutions.

If your team requires different topics, additional skills or a custom approach, our team will collaborate with you to adjust the course to focus on your specific learning objectives and goals.

Course Objectives

Learning Objectives

Working in a hands-on learning environment led by our expert instructor you’ll:

  • Get comfortable with Scala's core principles and unique features, helping you navigate the language confidently and boosting your programming skills.
  • Discover the power of functional programming and learn techniques that will make your code more efficient, maintainable, and enjoyable to write.
  • Become proficient in creating dynamic web applications using the Play Framework, and easily connect to databases with the user-friendly Slick library.
  • Master concurrency programming with Akka, empowering you to build scalable and fault-tolerant applications that excel in performance.
  • Enhance your testing skills using ScalaTest and ScalaCheck, ensuring the reliability and quality of your Scala applications, while having fun in the process.
  • Explore the fascinating world of generative AI and GPT technologies, and learn how to integrate them into your projects, adding a touch of innovation and intelligence to your Scala solutions.

If your team requires different topics, additional skills or a custom approach, our team will collaborate with you to adjust the course to focus on your specific learning objectives and goals.

Course Prerequisites

Audience & Pre-Requisites

This course is geared for experienced skilled Java developers, software developers, data scientists, machine learning experts or others who wish to transtion their coding skills to Scala, learning how to code in Scala and apply it in a practical way.  This is not a basic class.

In order to be successful in this course you should possess:

  • Familiarity with object-oriented programming concepts: Attendees should have a basic understanding of object-oriented programming principles, such as inheritance, encapsulation, and polymorphism, as the course builds upon these concepts while introducing Scala and functional programming.
  • Experience in at least one programming language: Participants should have experience working with at least one programming language (preferably Java) to ensure they can grasp Scala's syntax and features more quickly.
  • Basic understanding of data structures and algorithms: Participants should have a foundational knowledge of data structures (e.g., arrays, lists, and trees) and algorithms (e.g., searching and sorting) to better comprehend Scala's functional data structures and programming techniques.

Please see the Related Courses tab for Pre-Requisite course specifics and links, links to similar courses you might review as an alternative, as well as suggested Next-Step Follow-On Courses and Learning Path recommendations.

Course Agenda

Course Topics / Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most. Topics, agenda and labs are subject to change, and may adjust during live delivery based on audience skill level, interests and participation.

 

  1. Introduction to Scala 
  • Scala features and benefits
  • Comparing Scala with Java and other OO languages
  • Installing Scala and setting up the development environment
  • Lab: Setting up Scala Environment & Exploring Basic Features; create a simple Scala project.
  1. Object-Oriented Programming in Scala
  • Classes and objects
  • Traits, mixins, and inheritance
  • Companion objects and factories
  • Encapsulation and polymorphism
  • Lab: Building a Simple OOP Application in Scala
  1. Functional Programming Basics
  • Pure functions and referential transparency
  • Higher-order functions and currying
  • Immutability and persistent data structures
  • Pattern matching and recursion
  • Lab: Implementing Functional Programming Concepts in Scala: Develop a small application that uses functional programming concepts such as higher-order functions and pattern matching.
  1. Having Fun with Functional Data Structures
  • Lists, sets, and maps in Scala
  • Folding and reducing operations
  • Stream processing and lazy evaluation
  • For-comprehensions
  • Lab: Create an application that uses Scala's functional data structures and common operations like map, filter, and reduce.
  1. Building Web Applications in Functional Style
  • Introduction to Play Framework
  • Functional web routing and request handling
  • JSON handling with Play-JSON
  • Middleware and functional composition
  • Lab: Developing a Functional Web Application with Play
  1. Connecting to a Database
  • Introduction to Slick library
  • Database configuration and setup
  • Querying and updating with Slick
  • Transactions and error handling
  • Lab: Integrating a Database with a Scala Application
  1. Building Scalable and Extensible Components
  •  Modular architecture and design patterns
  • Dependency injection with MacWire
  • Type classes and type-level programming
  • Implicit parameters and conversions
  • Lab: Develop a modular and scalable Scala application using dependency injection, type classes, and other design patterns.
  1. Concurrency Programming & Akka
  • Introduction to Akka framework and Actor model
  • Actor systems and message passing
  • Futures and Promises
  • Supervision and fault tolerance Lab: Create a concurrent application using the Akka framework, Actor model, and Scala's Futures and Promises.
  1. Building Confidence with Testing
  • Introduction to ScalaTest and ScalaCheck
  • Unit testing and property-based testing
  • Test-driven development in Scala
  • Mocking and integration testing
  • Lab: Write unit tests and property-based tests for a Scala application using ScalaTest and ScalaCheck.
  1. Interoperability between Scala and Java
  • Calling Java code from Scala
  • Using Java libraries in Scala projects
  • Converting Java collections to Scala collections
  • Writing Scala code that can be called from Java
  • Lab: Integrating Java and Scala in a Project
  1. Using Generative AI and GPT Technologies in Scala Programming
  • Overview of GPT and generative AI
  • Integrating GPT with Scala applications
  • Use cases and practical examples
  • Lab: Implementing a GPT-Integrated Scala Application

Course Materials

Setup Made Simple with our robust Learning Experience Platform (LXP)

All applicable course software, digital courseware files or course notes, labs, data sets and solutions, live coaching support channels and rich extended learning and post training resources are provided for you in our “easy access, no install required” high-speed SkillJourneys™ Learning Experience Platform (LXP), remote lab and content environment. Course materials, software, resources and post-training platform access periods vary by course.

 

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Attend a Course

Please see the current upcoming available open enrollment course dates posted below. Please feel free to Register Online below, or call 844-475-4559 toll free to connect with our Registrar for assistance. If you need additional date options, please contact us for scheduling.

Course Title Days Date Time Price
Fast Track to Scala Programming for OO / Java Developers (TTSCL2104) 4 Days Jul 9 to Jul 12 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Fast Track to Scala Programming for OO / Java Developers (TTSCL2104) 4 Days Sep 3 to Sep 6 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Fast Track to Scala Programming for OO / Java Developers (TTSCL2104) 4 Days Nov 12 to Nov 15 10:00 AM to 06:00 PM EST $2,495.00 Enroll

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More