• Online, Self-Paced
Course Description

Scala mixes programming paradigms, and so presents a challenge to programmers coming from any other language. This course explores the use of pattern matching, Java interoperability, and concurrency.

Learning Objectives

Scala Pattern Matching

  • start the course
  • describe the key aspects of pattern matching in Scala
  • demonstrate how to apply pattern matching to lists in Scala
  • utilize pattern matching and case classes in Scala
  • explore the use of pattern matching with functions in Scala
  • compare OOP and functional programming

Java Interoperability

  • explore how to work with Java and Scala classes
  • create and use JavaBeans with Scala
  • demonstrate how to use Java interfaces and Scala traits
  • create static members with Scala objects
  • demonstrate how to deal with exceptions in Java and Scala
  • explore how to work with annotations in Java and Scala

Scala Concurrency

  • compare Scala and Java concurrency
  • describe the use of asynchronous execution in Scala
  • specify the various ways to transform futures in Scala
  • troubleshoot and test with Scala futures
  • register and use Scala callbacks
  • implement Scala blocking with futures
  • demonstrate the use of promises in Scala concurrency
  • explore the utilities associated with Scala concurrency

Practice: Classes and Functions

  • create a Scala application that utilizes functional programming to work with collections and Strings

Framework Connections

The materials within this course focus on the Knowledge Skills and Abilities (KSAs) identified within the Specialty Areas listed below. Click to view Specialty Area details within the interactive National Cybersecurity Workforce Framework.

Feedback

If you would like to provide feedback for this course, please e-mail the NICCS SO at NICCS@hq.dhs.gov.