I got a phone call one evening from a troubled mother from my eldest son's school telling me

Your son has hacked my son!

I did not know if I was more proud or more embarrassed, but my kid has become a hacker at the age of 8.

Lets start to learn our kids programming and security when they are young...

I got inspired by Troy Hunt (@troyhunt) for being a fabulous and interesting security blogger, and Le Grecs (@grecs) in a BSides Tampa talk “Teaching Kids (and Even Some Adults) Security Through Gaming”.

I have 3 kids, now 5, 8 and 10 years old, all of them are boys. As a parent, I wish all the world for my kids and I want to give them a head start in life with programming and security. I am pretty sure the security and programming industry will be a safe place to work in the future and luckily all my boys seem interested in science subjects.

How it all started

I wanted to start the kids learning how to make some simple programs, teaching them the basics with a while and for loop and if tests and so on. It was important for this "project" that it should be fun for both the kids and for me.

Step one - Scratch

I did some googling and found the Scratch programming language which seemed promising for kids with it's easy to make, drag and drop programming. I bought my two eldest kids one laptop each with windows 8, and installed Scratch for them. They really went into it and made some quite cool functionality like making a drawing move across the screen, and when it hit the edge og the screen it reflected with a certain angle, and so on. They were quite enthusiastic in the beginning but soon their interest waned. I think the kids needed a more step by step approach for making even more cool and inspirational programs. Children now a days need action all the time and maybe they do not have enough patience. I soon realised that we had to move on and try something else to ensure and move further with the coding inspiration.

As shown in the picture above it is possible to watch a how-to video when trying to make a program that e.g will make the cat move in a direction. Great way to learn programming for kids.

Step two - code.org

I did some more googling and found code.org which had an excellent "watch video and try at the same time" solution. They started making simple programs like, move this angry bird through a simple labyrinth and hit the pig at the end. They really loved this and they kept on programming for hours. With exercise themes like e.g. angry birds, plants vs zombies and frozen it's not hard to make the kids have fun programming. Kids also love to come to the next level with a slightly more difficult task to solve. Because of the way code.org is built the kids made almost all the progress themselves without much help from me.
A rumor started to spread at my eldest son's school and suddenly we were a programming party of 5, four kids and a teacher. All 4 kids started programming at our house each Friday after school, from 2:30pm to 4:00 pm.

A very intuitive and fun way to learn programming.

Step three - Minecraft and Learntomod

All kids love Minecraft right? My son came home from school and told me that he and his coding friends wanted to make Minecraft mods. I thought this was far too ambitious and told him that he had to go to school and learn Java and become a decent Java programmer first. How wrong could I be? A friend of mine told me about the learntomod project and I was quite amazed. It was actually possible to make mods using the same drag and drop principles as in Scratch and code.org. The coding kids were thrilled and started programming at once. To use learntomod you have to have a license both for minecraft and for learntomod. Minecraft costs 19.95€ for a permanent licence, and learntomod costs $80 for a year. IMHO this is money well spent. They make the mod in learntomod and imports it into the Minecraft game, trying out the new functionality they've made.

As I write this, it's still summer holiday in Norway, but when school starts, we will start programming again each Friday. I am quite sure that all the programming kids are eager to start coding again, and we will continue with the Minecraft - Learntomod coding for quite some time.

Overview of the exercises in learntomod:

Example of a "Hello World!" program that can be imported in Minecraft. Note that you can view a presentation bottom left, and you can try to program when seeing the how-to.

Excellent for teaching your kids how-to code in an easy way.

Building security awareness

As I wrote in the beginning, one evening I got a phone call from one of the mothers in my eldest son's class telling me that he had hacked her kid. I was quite surprised by this because my son was only 8 at the time, and I had never taught him anything about hacking. I asked her what he had done, and she told me he had defaced his itslearning page making the background pink, and some other stuff just for phun. I told this mother that me and my son would have a moral talk, and that he had to tell her kid that he was sorry for what he had done.
Sure it's not legal what he had done, but I have to admit I was a bit impressed by how he did it. I told him that people could get in jail for hacking. He promised that he'd never do it again.
In Norway children in primary school uses itslearning as a learning framework where the children can go and find what's for homework, test themselves in glossaries etc. To log into the students Itslearning uses Feide, which is a simple and secure way to access the web resources.
Each student was given a unique username and password for this service. With the class list of each student and som deduction a hacker would easily find the pattern in both usernames and passwords for all students. I will not disclose details here but the quality of usernames and passwords were pretty bad. I told my eldest kid that I was quite proud of him to have discovered this pattern for usernames and passwords, What is the use of a secure login mechanism when giving the children bad usernames and passwords? Sure, it's possible to change the password if you want to, but the ones I've asked have not changed the password yet, accept....you know.. :-)

Learning security through gaming

We have tried different computer games and I would like to point out three of them.

1. Cryptoclub

My eldest son has always enjoyed riddles and games so I decided to try out the games in cryptoclub on him to se if he could learn basic crypto and even some english as well. We started trying out the Desert Oasis Treasure hunt game.

And the first challenge is to decrypt a message to move on into the city. Fun right?

2. Combat hacking

My eldest really enjoyed Combat hacking, hacking networks, deploying viruses in computers etc. In the picture you can see red nodes (computers) that are controlled by your opponent (Skorpios) and the blue once are yours. The orange nodes are infected by viruses and are trying to take over the network.

3. Ingress

I introduced Ingress to my two eldest. They were quite excited to try out this new game and basically ran and fetched their bikes to try it out. This is a excellent game and will keep your kids active "hacking" portals that are placed around. They use the GPS to navigate to the portals. When they arrive a portal they will try to hack it.

Above you can see two screen shots of the game with information of a portal you are supposed to hack and what it contains.

The picture to the left shows the portal at Berger stadion. When at the location it is possible to hack it, but watch out, other hackers can attack you when you try to hack it. The picture besides it shows a map where you are (green arrow) and where the nearest portals are.

To sum up

With this blog post I wanted to make you want to try out the same and maybe go even further with our own kid(s). If you as a parent can make room for the kids to try out programming and security games, they will manage pretty much on their own if you get them up and running with the tools/games.

It would be cool to hear from you if you try!

Good luck trying, it's fun! :-)


http://www.kidsakoder.no/ (In Norwegian)