Summary Friday Overview ClojureBridge London Schedule Introducing Clojure What is Functional Programming Powerful - many uses of Clojure Simple - Small Syntax Fun - Coding in the REPL Rich terminals Creative Arts Generate HTML with Hiccup Generative Graphics Data Science SVG Graphics - reagent 2D Games Preparing for the Workshop Development Tools Java Leiningen Editor install guides Atom.io - ProtoREPL Atom.io - Proton VS Code - Calva Emacs - Spacemacs IntelliJ - Cursive Create a project Editor User Guides Atom.io - Protorepl Atom.io - Proton Emacs - Spacemacs VS Code - Calva IntelliJ - Cursive Example project Getting Help Saturday Overview Colours and Shapes Colours & Shapes Clojure Essentials Clojure Essentials Level 1- Simple Values Numbers Arithmetic Exercise: Age of Languages Exercise: Time to Numbers Theory: Prefix Notation Strings Exercise: String of Colours Exercise: Spell Checking Exercise: Palindromes Level 2 - Assignment let - Local assignment def - shared assignment Level 3- Collections Vectors Reading values by index Exercise: Weather Forecast Reading values sequentially Exercise: Average age of languages Adding values to vectors Comparing Vectors Maps Keywords Map Syntax Map Creation Map Update Map Extraction with get Map Extraction with keys & vals Collection of Collections Exercise: Model People Level 4 - Functions Defining Functions Local Assignment with let Exercise: Name Smash Higher Order Functions map function reduce function Exercise: Find the average Exercise: Map Reduce Sandwich Exercise: are we there yet? Level 5 - Flow Control & Logic Boolean values if truthiness Exercise: positions Exercise: positions continued cond Exercise: Temperature conversion Theory: Boolean Logic Level 6 - Iteration Exercise: Combination Lock More Challenges & Projects More Challenges & Projects Kata challenges Recent Song Playlist Testing code Clojure Test Additional Projects Most Common Word Celebrity Name Smash Clack Messages Responsive Websites ClojureBridge website Create project Add Bulma CSS Run the project Live reloading Hiccup for HTML mount lifecycle management Organising the code Add welcome message Add welcome section Responsive design App State section GitHub pages deploy Deploy build Add Content namespace Add more sections Navigation bar Interacting Bootstrap website Learning Resources Learning resources Miscellaneous content Reference Clojure strengths Concurrency & Parallelism Theory: Simplicity with Pure Functions Pure function examples Impure function examples Anonymous Functions Named or anonymous functions Calling anonymous functions Arguments to functions Predicate Functions Generating Wallpaper Recap: What does Clojure look like Comments Contribute Fancy Keyboard Keys Klipse Klipse Scope Klipse issues