TTSCL2104: Fast Track to Scala Programming Essentials for OO / Java Developers

Become an EPIC Affiliate

To view the class schedule you need to become an Affiliate

  • Largest “Guaranteed To Run” public technical training schedules available
  • Easy to become an Affiliate – no charge or fee
Become an EPIC Affiliate

already an Affiliate?  Login

About this Course

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.

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.

Audience Profile

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

At Course Completion

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.

Outline

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.

2. 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

3. 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.

4. 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.

5. 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

6. 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

7. 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.

8. 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.

9. 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.

10. 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

11. 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

Prerequisites

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.