The joy of coding

At school in England in the early 1980s I was given the opportunity to join an afterschool computer club. The only problem was that, being the early 1980s, our school didn’t actually have a computer. We had to write our programs in thick, dark pencil on stacks of cards that were taken away to a mysterious place, which we never got to see, where they would be fed into a computer.

Our teacher would bring the output to class the following week (or the week after that if there had been a glitch, or someone else needed the computer that week) and we would pore over the results with eager anticipation. Usually we quickly realised that we had made a fundamental error, and set about re-writing our program before waiting another week (or two) to see how things turned out. It was a glacially slow process, but an almost magical one. I don’t think I ever knew where this semi-mythical computer was, or what it looked like, but I imagined a strange colossal machine the size of a small house, similar to those depicted in Cold War science fiction films such as War Games, which were popular at the time.

Obviously, things are very different now. We are living in the age of the so-called digital native (although this may be a myth), but arguably because computers are so advanced now, we actually have fewer opportunities to tinker under the hood than we did in the early days of home computing. Early computers often required their users to manually input programs (written in languages like BASIC) before you could run them. You could buy magazines full of code for various simple games that you could type into your computer and then run. You could even change the code to alter the parameters of the game. This meant that we learned much more about how computers worked, and how to get them to do what we wanted, than is usually the case these days.

Modern computers are much less amenable to this sort of tinkering. Messing about with the code on your computer is likely to lead to a catastrophic system failure, so although computers are now embedded in almost every aspect of our lives, we often have very little idea about what makes them tick.

The ubiquity of computers in society, coupled with the general ignorance of most people as to how they work, has been recognised as a serious problem. Recently, there has been a strong push among educators to get kids coding. Code clubs have sprung up all over the place, digital technology is set to become part of the New Zealand curriculum, and lots of books have been published aimed at getting kids coding, with varying degrees of success.

CoverCoverCover

Recently, my 9-year-old daughter and I read a series of three graphic novels called Secret Coders, which aim to teach coding through the medium of storytelling. These books centre around Hopper, a young girl who finds herself at a strange new school. Along with two new friends, Josh and Eni (many of the names in the book reference famous computers or computer scientists, such as Grace Hopper and ENIAC), Hopper falls into a series of adventures that require the gang to solve various puzzles to figure out what’s really going on at the school.

Many of these puzzles require them to program turtle-like robots to perform particular tasks. The puzzles get increasingly complex. As the reader is encouraged to solve these puzzles for themselves before reading on, almost without realising it, by the end of the first book we were writing programs in a computer language called Logo. There are also some owls living in the school who have a very unusual way of communicating in binary, which adds to the air of mystery. The story is genuinely captivating, and kept us turning the pages. The graphics are engaging, the characters are delightful, and the puzzles are intriguing.

At the end of each book there is a link to a website where you can download a version of the Logo programming language and use it to write your own programs to create computer graphics. We tried it, and within minutes we were making snowflakes and other images using what we had learned from the books. A world of warning though – computer code is very unforgiving and one small typing error can give unexpected results, or even stop a program from working at all, which can be frustrating for young children; nevertheless, the necessary concepts were well within the grasp of my 9-year-old daughter. There’s also a nice website with extra activities, and you can even download a file for 3D printing your own replica of one of the robots from the book.

CoverCoverCover

We had a lot of fun with these books, and I think we learned a lot too. Each volume follows directly on from the previous one, in a continuous narrative, usually beginning with the answer to a puzzle that was set at the end of the last book. We’ve read the first three books, and it seems that there will be more in the series. There are still lots of loose threads to tie up in the story, and there is clearly a lot more to learn about coding. We’ve looked at a few other coding books aimed at kids, but these were the ones that captured our imaginations the most, and it’s not just about learning a particular programming language, but understanding computational thinking – how to break a problem down into its smallest discrete units, each of which can be translated into a simple instruction to a computer, which is a skill that is likely to be applicable to other areas of modern life.

We’re really looking forward to reading the rest of the series. This feel like the start of what could be a long journey to understanding more and more about computers and coding. We intend to keep learning about this stuff, and if we find other useful library resources along the way we will tell you about them in future posts on this blog.

CoverCoverCover

In the meantime, if you’d like to know more, there is an excellent new biography of Grace Hopper, namesake of the protagonist in “The Secret Coders” books, aimed at a similar age group.

For younger children, My First Coding Book makes a wonderful introduction to computational thinking, with ingeniously creative use of flaps, pull-out tabs, and other devices that kids will be familiar with, to illustrate coding concepts with various games and puzzles…

More about coding