• Online, Self-Paced
Course Description

Clojure includes a number of features that enable you to optimize your applications. In this course you'll learn about optimization of Clojure projects with multimethods and hierarchies, parallelism, and macros. You'll also learn about profiling and unit testing of Clojure applications.

Learning Objectives

Multimethods and Hierarchies

  • start the course
  • use multimethods in Clojure
  • use hierarchies in Clojure

Java Interoperability

  • call Java from Clojure and call Clojure from Java
  • use proxy Java classes in Clojure

Parallel Programming

  • use parallelism in Clojure
  • implement concurrency with agents in Clojure
  • use concurrency functions in Clojure
  • work with futures and promises in Clojure

Macros

  • understand how macros work in Clojure
  • work with macros in Clojure
  • implement macros in Clojure
  • work with Clojure DSLs

DataTypes and Protocols

  • understand how protocols and datatypes work in Clojure
  • work with protocols and datatypes in Clojure

Performance

  • using profiling in Clojure projects
  • optimize Clojure functions

Testing

  • perform unit testing in Clojure projects

Practice: Optimizing your Clojure Project

  • apply various techniques to optimize your Clojure code

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.