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!
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.
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.
I love this idea! I have wanted something like this for a long time. I taught a high school CS/logic course and I have many pedagogical problems with Java which was the instructional language we used. I'm also a new father and I have been daydreaming about how I would homeschool my daughter when the time comes (if she is receptive to the idea).
I have already sought out something like this and I came across Project Bootstrap which uses Racket:
Their goal is to reinforce mathematics education with programming. Their resources are quite good from what I have seen! Take a look at an early sample lesson from their algebra course:
I love this idea! I have wanted something like this for a long time. I taught a high school CS/logic course and I have many pedagogical problems with Java which was the instructional language we used. I'm also a new father and I have been daydreaming about how I would homeschool my daughter when the time comes (if she is receptive to the idea).
I have already sought out something like this and I came across Project Bootstrap which uses Racket:
Their goal is to reinforce mathematics education with programming. Their resources are quite good from what I have seen! Take a look at an early sample lesson from their algebra course:
Another vaguely similar project to check out is codeworld, where a guy was using Haskell to teach kids math and have them make pictures, animations, and games.
Honestly, while you probably want to hide some of the more complex bits from kids, functional programming is a good model to teach them math because mutation isn't part of math.