• 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 functional programming in Scala as well as the Collections library and its uses.

Learning Objectives

Functional Programming

  • start the course
  • describe the key aspects of functional programming in Scala
  • demonstrate the use of expression-oriented programming in Scala
  • utilize pure functions in Scala
  • explore the use of literals and anonymous functions in Scala
  • demonstrate how functions can be used as variables and parameters in Scala
  • describe the use of closures
  • create and use partially applied functions
  • demonstrate how to curry a function
  • explore how to compose functions from other functions
  • describe how to best use tail-recursion
  • differentiate between call-by-name and call-by-value

Scala Collections and Strings

  • provide an overview of the collections framework in Scala
  • explore the key differences between mutable and immutable collections
  • use Sets in a Scala application
  • use Maps in a Scala application
  • use Sequences and perform sort operations in a Scala application
  • use Iterators in a Scala application
  • identify the key aspects of concrete immutable collection classes
  • identify the key aspects of concrete mutable collection classes
  • apply arrays in Scala
  • work with Strings in Scala code
  • demonstrate the proper way to test for equality in code
  • work with interpolation when using strings in Scala
  • compare Java and Scala collections

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.