• Online, Self-Paced
Course Description

Clojure - a dialect of Lisp - is a dynamic programming language that compiles to JVM bytecode. In this course, you'll learn the fundamentals of programming with Clojure including basic syntax and using Leiningen to build Clojure programs. You'll also learn about program flow and working with functions and namespaces.

Learning Objectives

Beginning with Clojure

  • start the course
  • recognize the basic features of Clojure
  • install and use Leiningen to build Clojure programs
  • recognize the basic language features of Clojure

Program Flow Fundamentals

  • describe functions in Clojure
  • use local bindings in Clojure
  • use conditional expressions in Clojure
  • use looping and recursion in Clojure
  • use tail recursion in Clojure
  • use loop in Clojure
  • work with side effects in Clojure

Working with Functions

  • consume first class Clojure functions
  • produce first class Clojure functions
  • use partial to curry Clojure functions
  • use comp to compose Clojure functions


  • describe Clojure namespaces
  • use namespace-qualified symbols and keywords in Clojure
  • switch namespaces in Clojure
  • load Clojure namespaces from a file or stream
  • query Clojure namespaces
  • manipulate Clojure namespaces

Practice: Programming Fundamentals in Clojure

  • make decisions involving fundamental programming concepts in a Clojure application

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.