Hi folks,
is anyone of you teaching their kids Clojure as I do? A couple of years ago I decided to home school my kids because I wanted to teach them programming in a lispy language in conjunction with mathematics as early as possible (7+ years of age, after finishing their first year in the elementary school). So, I made a private course for my kids and created a series of hand-drawn comic textbooks full of maths combined with all the lispy goodness.
I thought it would be a nice experiment as I was not sure if the concept of LFL—Lisp as First (programming) Language can really work. You know, there are these theories that before fully appreciating a lispy language, you have to experience the horrors of ‘garbage languages’ first… Also, Clojure is not exactly a pedagogical language, is it? At some point, I was thinking about creating my own Lisp dialect for the purpose. But I wanted something to support functional approach, lazy evaluation, and having a collection of nice data structures, so why bother making another language if Clojure suits my needs (almost) perfectly (there are some features that I do not like that much but I guess nothing is perfect) and, yes, my spare time was also a limiting factor.
I have been doing this for five years now and it has been a fascinating journey. I really like how it works together with teaching maths and boosts abstract thinking. Some of my friends showed interest in what I was doing (apparently, they wanted the same fine education for their kids), so I decided to make an official series of books, the first was just published and can be purchased on Lulu (the plan is to make 3 volumes per year). In addition to that, I will be posting ‘my pedagogical notes’ (and later problem-oriented web-based programming environments) on Patreon for those who would like to follow this path. This project takes a substantial amount of my time, so any support from you fellow lispers is highly appreciated!
Project home with book preview: https://prog-mat.com
Any thoughts?
There was a time, about 30 years ago, when Lisps were used as first languages in education. This was driven by the simplicity of syntax and execution model, so you could get to the heart of a CS education much more quickly. It started at MIT using Scheme as a first language and branched out from there. Of course, after a few years, Java came about and OO was starting to be seen as the dominant paradigm, so schools started to switch to that. These days, it’s Python. This shows that our educational institutions, at least as far as CS goes have seriously devolved over the years. A sad, but true tale.