This is something I’ve been thinking about quite a bit, so I’m gonna start this thread to share my thoughts on it so far, provide a bunch of pointers for people that want to do something similar (maybe over the holiday period), and to hear what other people’s experiences and preferences are.
Holiday season will soon be upon us, at which time I’ll be heading back to Belgium to spend it with the family. My sister’s oldest kid is almost 9, and very curious about techy things. Last year for Christmas I gave him a set of littlebits, and for the rest of the week you couldn’t pry them from his hands if you tried.
I’ve been trying to find a good moment to show him some coding. The tough part is that I’m only around every so many months, so there’s limited guiding I can do in between, and his parents won’t be able to help him much with that either, so I feel like I need to set him up with something that he can then further explore on his own, and that we can dig deeper into the next time I come around.
An extra challenge is that his first language is Dutch. There are plenty of cool online things that he would be able to navigate by himself if he spoke English.
My sister suggested I’d get the Dutch version of Programming with Minecraft for Christmas, but I don’t know… He’s raving about Minecraft so it seems like a great fit, but it also seems far from trivial, something that could get very frustrating very quickly. Maybe it’s better to go there when he knows about variables and ifs and loops. The other thing is, it uses Python. I really don’t feel like teaching him Python. Semantic whitespace when you’re still getting comfortable with the very concept of typing things into a computer… IDK. And then all that OO complexity. Trying to teach adults about classes and objects is hard enough.
So instead I ordered Linda Liukas’s Hello Ruby books and decided to start there. They are engaging children’s books with an actual story line, but along the way you learn about booleans, algorithms, conditionals and more. All just with exercises on paper, like this one where you get to navigate a map.
So I think I’ll start there, and maybe have a look at Scratch, I know some of the schools in the area use it so that might be a plus.
Naturally I’d also love to introduce Clojure it’s a pretty “simple” (if you know what I mean) language, and we could still “graduate” to doing Minecraft with Clojure later on. That said I know Clojure has its drawbacks as well for this kind of thing. You trade semantic whitespace for balancing parens (which is a win in my book but still an obstacle for beginners), but the bigger problem I think is all the accidental complexity around tooling, and dealing with the host environment when you want to start affecting the world outside your little program.
I’d start off with maria.cloud though, which would eliminate most of those problems. The cool thing with Maria would also be that I can send him mini tutorials even when I’m not around.
I also asked on Twitter if people had suggestions for teaching kids Clojure, and I got several interesting replies. I still need to have a better look at some of these, but I’m already going to share them:
- Timothy Pratley’s power-turtle The turtle from Seymore Papert’s Logo language, but with Clojure and in your browser. Try it here. I believe this was written as a prelude for ClojureBridge workshops. It looks pretty cool, and is available for a bunch of languages.
- George, a Universe of Programming I have yet to take this for a spin. It seems to be already used in classrooms, and also contains a “turtle” app, as well as being able to do things like controlling drones. Not sure what the scope of this thing is. There’s also an accompanying book.
- cognitory/turtle Another Logo/Turtle… also in the browser (live demo)
- Klipse for kids This seems like a fairly elaborate and well structured tutorial specifically aimed at kids, using Klipse so you can evaluate snippets inside the text