Workshop Curriculum

NOVICE TRACK
Course Description
This course is for individuals with no or limited coding experience.
Reqirements
  • Laptop
Topics Covered
Simple Values:
  • Strings
  • Booleans and nil
  • Keywords
  • Numbers & Arithmetic
Data Structures
  • Lists
  • Vectors
  • Maps
Functions
  • What are functions?
  • Functions that take other functions
  • Predicate functions
  • Anonymous functions
  • Pure functions
Your First Program
  • Create your first computer program written in Clojure
Flow Control and Logic
  • If
  • Cond function
Sequences

ADVANCED TRACK
Course Description
This course is for individuals with coding experience seeking to translate those skills into Clojure and learn more about Functional Programming.
Reqirements
  • Laptop
  • Java 8 or greater
Topics Covered
Up and running:
  • Introduction to Leiningen (Clojure build tool)
  • Using the REPL (Read Eval Print Loop)
  • Namespaces in Clojure
Basics
  • S-expressions & homoiconicity
  • Primitive operators
  • Conditionals
Functions
  • Named functions
  • Anonymous functions
  • Arguments
  • Recursion
  • Local bindings & lexical scope
Data Structures
  • Immutable state
  • Sequence and collection abstractions
  • Lists, vectors, and hash-maps
  • Sequence functions
  • Key-value functions
  • Lazy evaluation
Higher order functions
  • map, reduce, filter, apply, etc.
  • Solving problems functionally
Advanced Clojure (time permitting)
  • Java interop
  • Mutability
  • OOP
  • Macros