Magical presentations. Fast. Easy. Beautiful

View Original

Off topic - teaching kids how to code

As I went through to the process of refreshing my 1990s computer science degree, I am now trying to help to teach my teenage kids the basics of coding as well. Not as obligatory homework, but something that is fun to do. Some observations.

  1. Unlike in 1986, it is actually very hard today to get a basic environment up and running to write a few lines of code. All the stuff you need to install. The HTML screen rendering complexity that is great to produce web sites on different devices, but an absolute pain to put something basic on the screen. So I actually need to deploy a fair share of my own coding horse power to build some basic functions that my kids can use to do something like plotting an ‘x’ in a coordinate system, reading keyboard inputs, getting code to wait for a few seconds. And there is of course the challenge of getting a small web site you build on your own machine to show up on a real URL.

  2. I don’t believe in special kid programming languages or programming tools. I see the big problem with language for grown-ups as described in point 1, understanding the actual concept such as variables and loops is pretty much the same. And once kids get into it, they can continue to build out their skills that are useful in the real world, and are everywhere around them (inspecting code in web sites they visit for example). So HTML, Javascript, and CSS it is.

  3. Coding is all about doing. Watching videos or in-person lessons is boring. Doing algorithm homework-style problems is boring. You want to get that frog move across the screen, and you try everything to get it to work because you want to, not because you have to.

  4. Learning how to learn from others online is an important skill. Answers posted online can be wrong, outdated, not relevant. Sifting through information overload and tolerating ambiguity is important.

  5. I found that the key to getting kids started is the presence of interesting problems for them to solve. Here are a few:

    • Tools that solve complicated formulas that come in handy for math homework

    • Tools that generate practice questions to prepare for tests

    • Retro games (or game elements) on grids with a small resolution: get things to walk around, eat each other, etc.

    • Doing things with huge datasets. For example you can download all the English words in 5MB on your kid’s. machine, put it in an array, and let them have fun with it. (Scrabble cheating, other apps)

All great fun, especially now that we are pretty much stuck at home during the holidays.

Photo by Alexander Sinn on Unsplash