Poetry of Programming
summary
A semester-long Clojure course at a small liberal-arts college teaches beginners the functional core in 37.5 hours over 15 weeks, starting from function composition and emphasizing map filter reduce and persistent data structures; teaching uses live REPL coding, pair help, and paper-style reading exercises; class size is small — 14 students finished — and a Collatz exercise finds 871 produces a sequence of length 178, showing concrete, testable results.
AI-written summary · about
chapters (36)
- 0:00Start
- 0:08Topic
- 0:32Overview
- 1:03Who am I?
- 2:25Rationale for programming courses
- 3:07How did it really happen?
- 4:09Poetry?
- 5:07Excellent beginner books on Clojure
- 5:34Teaching total beginners
- 6:47Dependency graph of Clojure functions/programming concepts
- 8:12Starting point: function composition
- 8:56Simple functions
- 10:43Assessment - mass produced koans
- 11:49Function definitions are not urgent
- 12:15Immutability not an issue
- 12:53Metaphors for def
- 13:25Defining functions - abstracting over calculations playing in the REPL: several examples of the same
- 14:13Roadblock
- 15:37what makes filter great
- 17:02Teaching reduce
- 17:38Reimplementing nap: recursion vs. reduce
- 18:38blinded by recursion
- 19:52Class format
- 21:10An example problem: Collatz conjecture
- 22:01Code Transformations
- 23:39Complicated solutions
- 25:25Math Programming
- 26:01Steps of problem solving
- 27:31Play in the REPL!
- 28:16First REPL: clojurescriptio
- 28:51Editor is needed: repl.it interface
- 30:05Documentation
- 31:28Solution spaces
- 32:25Improving the course
- 34:25Summary
- 35:46Conclusion
related talks
37mTeaching Clojure at IBM
41mAdapting Clojure to an Intro CS Classroom
49mTeaching functional programming to noobs
41mHow to Get People Excited about Functional Programming
44mLearning and Teaching Clojure on the job at Amperity
14mEmerging languages: An alternative approach to teaching programming languages
19mJoys and Pains to Write a Clojure Curriculum for Beginners
20mCode Play Repeat: How to learn any Programming Language
