Fast Track to Scala Programming for OO / Java Developers
Retail Price: $2,495.00
Next Date: 03/03/2025
Course Days: 4
Enroll in Next Date
Request Custom Course
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.
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.
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.
- 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.
- 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
- 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.
- 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.
- 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
- 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
- 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.
- 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.
- 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.
- 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
- 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 Dates | Course Times (EST) | Delivery Mode | GTR | |
---|---|---|---|---|
3/3/2025 - 3/6/2025 | 10:00 AM - 6:00 PM | Virtual | Enroll | |
6/9/2025 - 6/12/2025 | 10:00 AM - 6:00 PM | Virtual | Enroll | |
8/4/2025 - 8/7/2025 | 10:00 AM - 6:00 PM | Virtual | Enroll | |
10/20/2025 - 10/23/2025 | 10:00 AM - 6:00 PM | Virtual | Enroll | |
12/1/2025 - 12/4/2025 | 10:00 AM - 6:00 PM | Virtual | Enroll |