Sharing code-love with youngsters

a.k.a. I WANT THEM TO LEARN AND NOT JUST PLAY MINECRAFT ALL DAY

I’m writing my post mainly to moderately desperate parents seeing their children in front of computer screens flooded with seemingly useless games. I’m also writing my post to excited older brothers/older sisters/uncles/aunts whose lives’ are devoted (~committed, ha ha.) to making the world a better place with programming. And this post is definitely for all of those who wish to share their love of computers with kids. This post surely won’t give you any kind of magic spell to suddenly make everyone interested in exactly the field you personally prefer, but it may help with some useful advice on how to get started, and I will also try to expand your perspective to understand the learning process and people better. We will start with a little psychology with the aim of turning out a list of platforms and software suitable for children to improve their skills of algorithmic thinking, game-creating by themselves and generally translating their ideas to code.

I’ve been teaching children of age 7 up to 14 about various kinds of topics, but in the last few years I’ve concentrated on informatics. During this time I experienced how the “perfect” learning process can be different for each person, but we can surely find some stuff in common. The first thing that you probably want to discover is the main motivators of the child who you wish to teach.

Tips About Motivation:

  • In my opinion, the most valuable part of any game is the time you spend together. Once you have their strong interest, children might continue on their own. But before that, the first motivator is your presence; the time you invest really helps.
  • After that, kids usually hope for their parents to be proud of them. A few nice words to acknowledge their projects can help them associate programming with positive feelings. This will be very important later on.
  • And to make those positive feelings even better, make sure you pay attention to their personality while choosing the platform. There are tons of possibilities so it’s not a big deal to give them a chance to work with robots, cars, ponies, Lego, fairies or even kitties if they prefer. You needn’t be too serious about it. If their favorite character is Batman, then definitely get damn Batman on the screen for them.
  • I also advise to adapt to their priorities. By this, I mean: find out what the most important is for Them in the project.
  • If they think the best thing to do is to program real playable games, then the task they receive should follow this line.
  • If they think, most of all coding should be useful, then you need to actually use the note-taking app they made you… or, of course, whatever the project they made you may be. This way, they will feel that they’ve done serious work and it is truly important to you.
  • Adapting to children’s world during development is the way to go. Colorful user interfaces, including animals and lots of pictures might keep their interest longer.
  • While explaining any code, try to keep it clear and simple (which is the case with adults, too). It is always a good idea to use examples with which they are familiar. (Tips on imagining Classes and inheritance: Animal is the parent class, with common characteristics like health points, number of legs as variables, moving and turning around as functions. All of these inherited into Birds with place of nest as a local variable and a singing function.)
  • Pay attention to the fact that kids have a shorter frustration tolerance. Under the age of 9 – 10 years, you will face an impossible challenge with keeping their focus longer than ~30 – 40 minutes. When you see them getting bored, give them a break to run around, do something which involves moving (or anything fun, but unrelated).
  • And finally, show interest towards the game they play by themselves; listen to them. I’m sure they’ll be overjoyed by explaining it to you. You may not have the time to join there as well, but at least you can contribute a little by setting goals. If they do play Minecraft, ask them to build something specific for you. If it’s possible, suggest to measure the time it takes them to complete a level or choose quests together and congratulate them when they succeed.

Tips About the Platform:

  • www.tynker.com
    This is a coding website and the registration is free. You can have your own account and let your creativity be free, by creating your own projects. These can be games or animated movies. The coding is available in block language. This is good for younger children, because it can be disappointing to search for that one syntax error to no avail. But if your kid is a bit older and is familiar with using the keyboard you can switch to implementing in JavaScript. (Good chance to practice typing!)
    how to teach coding with tynkerThe topics and the appearance is suitable for both kind of gender stereotypes. They offer a surprisingly wide area of character personalization. This is cool, but of course at least half of the costumes are locked at first. The figures and the backgrounds are beautiful. Tynker also shows tutorials and examples to give you a basic knowledge about using the block language. Moreover, you can publish your work and explore the community around you. If your eyes are sharp enough, you can find a Teacher Guide included for some of the tutorials. I found the amount of physics-related options included in the block library very interesting. For example: using gravity, applying forces, detecting distance and collisions. They also happen to have a lot of MineCraft-specific content and games with very teenage girlish looks. I would recommend it from age 8 and up, because reading is not a problem by then.
  • codecombat.com
    This is a website for a medieval-themed fighting game. No registration is needed to start, so you can jump in right away. It contains nice, kid-friendly graphics, several levels of tutorials and campaigns, and you can choose from four languages including JavaScript and Python. You actually have to type in the commands. So first, anyone who wants to play has to learn how to use the keyboard comfortably. The editor window has an auto-code-complete feature, so it kinda feels like you do the programming in a higher level environment. During the game, you get gems and you can buy nice new items for your character, which will improve its velocity or fighting skills. The game offers 6 worlds, and 4 extra for “Game Development”, and each of them teaches different parts of the language. You can check the topics and the parts you can learn there at the main page. I found it very thoughtful, that they also inform you about how much time it usually takes to complete all the levels there. The first few levels are suitable for any kid who knows how to type but after an hour and a half it gets more difficult. (My class lost it at the introduction of Strings, but they were really young: 8 and 9 year olds.) I like this site because it gives detailed explanations and hints about each task, not just leaving them to you to solve however you can. This helps the little ones a lot, but you have the option to skip the explanations as well. I would recommend it above the age of 10.

    teaching coding with codecombat
  • robozzle.com
    This one is kind of tricky. It is a puzzle game with a level creator, but clearly uses the “theory” of programming. A few basic commands are available for you to control the “robot” on the stage, like moving forward, turning, and jumping to a function. The tricky part is that you can use 3 kinds of colors to allow the command to run only above a specific floor tile. The campaign is longer than 100 levels. Additionally, you can also try the levels created by other users, or make your own. So it is like 7th heaven for the improvement of algorithmic thinking, BUT after the very short tutorial, there are no hints or tips. The community leaves a lot of comments, so you can check that for ideas, but nothing more. The design is pretty simple and gray. There are no actual robots going around, the character looks like a little gray arrow. Though it does not require reading NOR typing, I could only recommend it to a bit older children who are attracted to puzzles. There is surely no eye-candy here to keep their attention. I suppose it wasn’t intended as visual pleasure, but as a functioning game.
    how to teach coding with robozzle
  • cipherprime.com/games/auditorium
    Auditorium shows a different kind of perspective of puzzles with the beautiful interface and the pleasant sounds. It’s not a usual coding game but if you think about it, auditorium has a lot to do with this type of mindset. You have a limited amount of “tools” to use, and you have to manipulate the sound wave to fill up all the instruments on the screen. I’ve found it to be a very good exercise to practice problem solving and the whole game is super easy to control, so even young kids can play it. Make sure you turn the sound on when you try it!
    teaching coding with auditorium
  • playcodemonkey.com
    Our little fellow, the monkey, got in trouble with a gorilla and needs to get his bananas back. Fortunately he happens to be listening to commands, so a programmer hero can save the day! The graphics look happy and colorful, and the campaign’s difficulty level grows slowly, so the feeling of success is alive for a long time. It is delightful entertainment for kids of all ages and a good starting point. I appreciate how they included buttons on the bottom of the screen so you can choose to paste the command you need instead of writing it down. It is possible to register and save your process for later. The story mode offers 200 stages where the gorilla is waiting for you at the end, but you can switch to skill mode, where the specific topic that you want to learn is your choice. For example: objects, loops, variables, arrays and also functions. The first 30 levels of story mode are free, but after that I’m afraid they will ask you to spend money on the game to continue.
    how to teach coding with codemokey
  • unity3d.com
    This is not some funny game. This is a real game engine and developers around the world spend tons of time to create different kinds of software in it. However I had a fun-filled week at informatics camp last summer, interested in a new challenge; so I sat down with 13/14ish kids, taught them the basic methods, and gave the game a try. I was amazed at how fast they adapted to the complexity they faced in the new environment. We created terrains, made hills and lakes, downloaded 3D models from the internet, and saved some textures to use. I taught importing character controlling assets, so they could move around in the world they made. They spent two days playing with it, and at the end, when I arrived back to the computer room, they’d already included codes for shooting and basic artificial intelligence so the enemy figures would follow you. It’s not a starting platform at all! But if your son or daughter is reaching the teenage years and is interested in game making , I would surely advise to download this one.
    teaching coding with unity3d

Well, these were my ideas about code-love sharing… and the 6 year old self inside me was doing somersaults while playing with these cool things. I wouldn’t really be able to choose a personal favorite, because it should be different for every age group, but I hope it will be useful to bring the family together and I wish all of you good luck raising smart new programmers everywhere!

And by the way! MineCraft is not bad at all! Join your kid, try it and you will also see the opportunities!

Réka Bujdosó

Réka Bujdosó

Android Developer at Wanari
I love unicorns. They are real. Deal with it.

Latest posts by Réka Bujdosó (see all)