• Online, Self-Paced
Course Description

Interacting with and managing data is an important aspect of Clojure applications. This course covers working with data in Clojure, including using primitive types and data collections. You'll also learn about state management with Clojure.

Learning Objectives

Primitive Types

  • start the course
  • work with strings in Clojure
  • work with numbers in Clojure
  • work with boolean values, characters, and keywords in Clojure


  • use lists in Clojure
  • use vectors in Clojure
  • use maps in Clojure
  • use sets in Clojure


  • construct sequences in Clojure
  • use lazy sequences in Clojure
  • work with Clojure sequence APIs


  • read and write Clojure metadata
  • work with Clojure metadata

Refs and State Management

  • understand how state management is implemented in Clojure
  • create and access refs in Clojure
  • update refs in Clojure

Atoms, Agents, and State

  • use atoms in Clojure
  • create and update agents in Clojure
  • handle agent errors in Clojure
  • work with agents synchronously in Clojure
  • shut down Clojure agents

Vars and State Management

  • use thread-local var bindings to change state in Clojure

Validators, Watchers, and State

  • use validators in Clojure
  • use watchers in Clojure

Practice: Working with State Management and Data

  • use Clojure state management features and work with data in Clojure

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.