Scala Programming for Java Developers

26 Ratings

Course Number: SCA-100
Duration: 4 days (26 hours)
Format: Live, hands-on

Scala Training Overview

Accelebrate’s Scala training teaches Java developers how to build applications using Scala. Scala is a programming language built on top of the JVM that integrates functional programming with Java’s object-oriented programming model, with a goal of enabling developers to build applications more rapidly and efficiently.

Location and Pricing

Accelebrate offers instructor-led enterprise training for groups of 3 or more online or at your site. Most Accelebrate classes can be flexibly scheduled for your group, including delivery in half-day segments across a week or set of weeks. To receive a customized proposal and price quote for private corporate training on-site or online, please contact us.

In addition, some courses are available as live, instructor-led training from one of our partners.

Objectives

  • Program in Scala
  • Understand Scala's approach to object-orientation
  • Master the use of functional programming techniques in Scala
  • Understand how to perform TDD (test-driven development) using Scala
  • Manipulate XML in Scala
  • Write concurrent applications that are thread-safe

Prerequisites

Attendees should be strong Java developers planning to develop Scala applications.

Outline

Expand All | Collapse All

Introduction to Scala
  • A brief history of the Java platform to date
  • Distinguishing between the Java language and platform
  • Pain points when using Java for software development
  • Possible criteria for an improved version of Java
  • How and why the Scala language was created
Key Features of the Scala Language
  • Everything is an object
  • Class declarations
  • Data typing
  • Operators and methods
  • Pattern matching
  • Functions
  • Anonymous and nested functions
  • Traits
Basic Programming in Scala
  • Built in types, literals and operators
  • Testing for equality of state and reference
  • Conditionals, simple matching and external iteration
  • Working with lists, arrays, sets and maps
  • Throwing and catching exceptions
  • Adding annotations to your code
  • Using standard Java libraries
OO Development in Scala
  • A minimal class declaration
  • Understanding primary constructors
  • Specifying alternative constructors
  • Declaring and overriding methods
  • Creating base classes and class hierarchies
  • Creating traits and mixing them into classes
  • How a Scala inheritance tree is linearized
Functional Programming in Scala
  • Advanced uses of for expressions
  • Understanding function values and closures
  • Using closures to create internal iterators
  • Creating and using higher order functions
  • Practical examples of higher order functions
  • Currying and partially applied functions
  • Creating your own Domain Specific Languages(DSL's)
Pattern Matching in Depth
  • Using the match keyword to return a value
  • Using case classes for pattern matching
  • Adding pattern guards to match conditions
  • Partially specifying matches with wildcards
  • Deep matching using case constructors
  • Matching against collections of items
  • Using extractors instead of case classes
Test Driven Development in Scala
  • Writing standard JUnit tests in Scala
  • Conventional TDD using the ScalaTest tool
  • Behavior Driven Development using ScalaTest
  • Using functional concepts in TDD
XML Manipulating in Scala
  • Working with XML literals in code
  • Embedding XPath like expressions
  • Using Pattern Matching to process XML data
  • Serializing and deserializing to and from XML
Writing Concurrent Apps
  • Issues with conventional approaches to multi-threading
  • How an actor-based approach helps you write thread-safe code
  • The Scala architecture for creating actor-based systems
  • Different coding styles supported by the actor model
Conclusion

Training Materials

All students receive comprehensive courseware and a related textbook.

Software Requirements

  • JDK 8 or later
  • A recent version of Scala installed
  • Scala-compatible IDE of your choice


Learn faster

Our live, instructor-led lectures are far more effective than pre-recorded classes

Satisfaction guarantee

If your team is not 100% satisfied with your training, we do what's necessary to make it right

Learn online from anywhere

Whether you are at home or in the office, we make learning interactive and engaging

Multiple Payment Options

We accept check, ACH/EFT, major credit cards, and most purchase orders



Recent Training Locations

Alabama

Birmingham

Huntsville

Montgomery

Alaska

Anchorage

Arizona

Phoenix

Tucson

Arkansas

Fayetteville

Little Rock

California

Los Angeles

Oakland

Orange County

Sacramento

San Diego

San Francisco

San Jose

Colorado

Boulder

Colorado Springs

Denver

Connecticut

Hartford

DC

Washington

Florida

Fort Lauderdale

Jacksonville

Miami

Orlando

Tampa

Georgia

Atlanta

Augusta

Savannah

Hawaii

Honolulu

Idaho

Boise

Illinois

Chicago

Indiana

Indianapolis

Iowa

Cedar Rapids

Des Moines

Kansas

Wichita

Kentucky

Lexington

Louisville

Louisiana

New Orleans

Maine

Portland

Maryland

Annapolis

Baltimore

Frederick

Hagerstown

Massachusetts

Boston

Cambridge

Springfield

Michigan

Ann Arbor

Detroit

Grand Rapids

Minnesota

Minneapolis

Saint Paul

Mississippi

Jackson

Missouri

Kansas City

St. Louis

Nebraska

Lincoln

Omaha

Nevada

Las Vegas

Reno

New Jersey

Princeton

New Mexico

Albuquerque

New York

Albany

Buffalo

New York City

White Plains

North Carolina

Charlotte

Durham

Raleigh

Ohio

Akron

Canton

Cincinnati

Cleveland

Columbus

Dayton

Oklahoma

Oklahoma City

Tulsa

Oregon

Portland

Pennsylvania

Philadelphia

Pittsburgh

Rhode Island

Providence

South Carolina

Charleston

Columbia

Greenville

Tennessee

Knoxville

Memphis

Nashville

Texas

Austin

Dallas

El Paso

Houston

San Antonio

Utah

Salt Lake City

Virginia

Alexandria

Arlington

Norfolk

Richmond

Washington

Seattle

Tacoma

West Virginia

Charleston

Wisconsin

Madison

Milwaukee

Alberta

Calgary

Edmonton

British Columbia

Vancouver

Manitoba

Winnipeg

Nova Scotia

Halifax

Ontario

Ottawa

Toronto

Quebec

Montreal

Puerto Rico

San Juan