Basic programming basics for children. Game development for children

Those of you who follow my page have probably noticed that in Lately I was teaching children programming. It's amazing how thoughts materialize. After visiting, the idea of ​​trying myself as a mentor in the world of computer programming for children was spinning in my head. And fortunately, such an opportunity appeared very quickly. I was invited as a teacher to a children's camp, the program of which included a programming lesson twice a week for two different groups. The first group consisted of older children (from 8 to 12 years old), the second group mainly consisted of children aged 6 to 8 years.

The fact is that while in the USA, I was lucky enough to purchase a book called Teach Your Kids To Code with a good discount. All examples are given in game form using a programming language. Perhaps in the future I will devote a separate post to it, but for now let’s return to the topic of my teaching experience. So, initially it seemed reasonable to me to build the educational process, drawing information from this book, but later I realized how deeply I was mistaken :-) Why? By the way, the book is intended for children aged 9+.

Firstly, in each individual group there were many children, more than 15 in each lesson. This interfered with the effective presentation of the material, and also limited me in individual assistance to everyone (as it turned out, I couldn’t do without it).

Secondly, in the younger group there were children who either read very slowly or could not read at all. This was a serious limitation, so it was necessary to somehow solve this problem.

Third, the skill of typing on a keyboard was lacking for everyone. What set of program code could we be talking about?

Fourth, I taught in two languages: Russian and English. Communication in the children's camp took place in English, since the groups mainly included children fluent in both languages, as well as those who spoke either Russian or English. I didn't want to leave anyone unattended.

Visual programming

After thinking a little, I came to the conclusion that Python is definitely out of the question :-) With it, learning in such conditions would turn into a nightmare. The solution to the problem did not take long to arrive; it came to the rescue visual programming. The bottom line is that a programmer does not write code, he creates a program by manipulating graphic elements in a suitable environment (IDE). I remember my first programming experience in Borland Delphi and Borland C++ Builder, where it was possible to create a complex graphical interface without writing a single line of code. But especially for children, a group of scientists at MIT invented a tool called Scratch. Its task is to teach the child algorithmic thinking in a playful way. And it’s worth noting that he does his job perfectly! There is a whole community around Scratch, consisting of scientists, teachers, parents and students themselves. The tool comes in two types:

  • How separate application. Installed on a computer running Windows/MacOS/Linux (Scratch 2.0 Offline)
  • Web application available directly on the official website

The big advantage of the latter option is that you can register your profile on the site and start sharing your scratch projects with other members of the scratch programming community. The results of the latest work are already available.

It is noteworthy that the process of programming on Scratch is exciting not only for children. I myself used to get stuck for a long time preparing new material for children.

Scratch: lessons

Let's return to the topic of my teaching. How were the classes structured?

The official Scratch website has a good help section. In it you can find a step-by-step user manual on the basis of which you can actually conduct your first introductory lesson. Smart guys from Harvard High school education wrote a book called Creative computing ( Creative programming), it will help build a full-fledged educational process, since it contains best practics teaching children programming. There is a Russian translation online.

Your favorite YouTube can also help you compile material for your work. Here link to one of the highest quality Scratch tutorials, by the way from the author of the book Automate the Boring Stuff with Python.

conclusions

In the process of teaching, I came up with a number of conditions that contribute to a favorable process for children learning programming.

  • It is advisable to reduce the target group of students. A group of 4-6 people is best. Why? Read below.
  • The duration of the lesson should not exceed 1 hour (ideally, like at school, 45 minutes). It will be very difficult to keep the child’s attention for longer.
  • The child should always be interested. This is one of the most difficult conditions. If children lose interest, they begin to do other things: open other applications, walk around the class, distract children, complain about being hungry :-)
  • All children are different. Some are smart and learn the material very quickly, while others can “hang” over simple tasks for a long time. Always have bonuses in stock for smart children (additional tasks, tricky conditions, etc.).
  • Praise children for their work, even if it is insignificant. This is very important for a child!
  • Encourage children. I recommend using stickers, small toys or something like that as encouragement. There is NO need to motivate with food, candy or cookies., you never know what your child might be allergic to.
  • Ask children for help. If there are children in the class who are ahead of the normal learning process, ask them to become your assistants. Let them, together with you, begin to help those who are lagging behind. Believe me, children really like it.

Cons of Scratch

Scratch doesn't teach real programming. The purpose of this tool is to develop algorithmic thinking skills in a child-friendly way - in a playful way. By the way, not only children will need this skill in life :-) If your goal is to instill real programming skills in your child, try to make the transition from visual programming to the direct coding process using one of the real programming languages ​​as early as possible. For example,

Why teach your child programming? Especially if you have a future ballerina or football player? The answer is simple: in order to teach you to think logically and plan your actions. Parents boast that modern children can turn on tablets and computers almost from the cradle. An interest in technology and a craving for entertainment can be combined with learning and development by offering your child games that will teach you how to create algorithms and even write code.

At what age do you think you should start learning programming? The creators of Kodable claim that their game is accessible to two-year-old children. You can learn code before you learn letters. Even kids can actually make funny faces through the labyrinths, and at the same time master the creation of programs, indicating the sequence of actions. Hints and recommendations are made using graphics, so the child does not have to read anything.

The Code.org website, created by a non-profit organization, the international Hour of Codering movement, contains several educational courses for children and adults. The age at which you can start is four years. There is no one game that will teach you everything at once, but there is a step-by-step game-based learning with various cartoon characters. Moving from level to level, you can learn and create your own short programs.

In the game, available on a smartphone or tablet, a small robot, obeying commands, must light up light bulbs in the right places. The main task that the child will face is to design the path of the toy using simple commands. The parent's task is to explain to the kids what the pictures mean.

It’s not a fact that a child playing Lightbot will grow up to be a brilliant developer, but he will definitely learn to plan actions and create simple algorithms. This application can also be recommended as one of the starters, even for preschoolers 4–6 years old. The developers also offer a more complex version, which is suitable for children over nine years old.

Parents, by the way, can also be happy to spend time planning routes. The robot is funny enough to appeal to children, and serious enough not to bore adults.

“PictoMir”, developed by NIISI RAS by order of the Russian Academy of Sciences, is our answer to foreign analogues. The NIISI RAS has already developed the KuMir system, in which older schoolchildren are introduced to programming, but there is no game element in it. “PictoMir,” designed for preschoolers, turned out to be exciting and very accessible.

The robot paints the fields, and the child learns to create algorithms. All the hints are made using graphics, so PictoMir can be safely given to children who cannot read, starting from the age of five: it is noticeable that scientists have tried to make the actions understandable even for kids. If parents do not know English and do not understand anything about the programs themselves, but really want to develop logical thinking in their children, PictoMir will be a real salvation. Mobile versions are available for iOS, Android and Windows Phone, but you will have to download the last two from the developer’s website.

Complete tasks and create an algorithm for moving the arrow along the puzzle - this is the meaning of the game, which can already be played junior schoolchildren. True, an ordinary arrow is unlikely to captivate seven-year-olds for long, especially if this is the first of such games. But it can seriously interest schoolchildren from the age of ten who are already familiar with algorithmization, because the most interesting puzzles, of course, are found at more complex levels. Robozzle provides almost unlimited possibilities for creating and searching for new tasks, so it is most suitable not for learning the basics, but for constant repetition and practice.

Cargo-Bot

Another easy-to-learn game, at the initial levels of which preschoolers will feel comfortable. Since there is little text in it, children only need to distinguish individual letters in order to complete the first tasks and move the boxes behind them. smaller number moves from place to place. Above complex combinations even adults will be able to think for a long time. Among other educational and entertainment applications Cargo-Bot stands out with a very nice picture. By the way, Cargo-Bot was completely programmed on the iPad.

It’s not entirely fair to include Scratch in this list, because it is not a game, but a specially designed environment for teaching children programming, and it shouldn’t be included because it is an excellent educational tool. The authorship of Scratch belongs to the Massachusetts Institute of Technology, and in the community most of the information is translated into Russian, so Scratch is accessible to a very wide audience.

Scratch's capabilities are truly impressive, although it does not have tasks or levels, but it has a lot of imagination and tools for its use. Since the child must set the goal for each project independently, then universal solutions no, but there is room for creativity, which is lacking in games that teach algorithmization. Scratch is perfect for children from eight years old who are already tired of chasing robots and monkeys along familiar routes.

We must not forget about the classics, even those that are fairly dusty. CeeBot educational games appeared in 2003 as a special development for educational institutions. Initially, the developers created Colobot, a game about the colonization of a new planet, the main feature of which was that to control the characters you had to write your own programs.

CeeBot is a game training course consisting of several tasks with detailed instructions. A story about programmable robots on a new planet destroying the local fauna, of course, is not suitable for children, but for teenagers who have already become interested in computer science and have an idea of ​​what an algorithm is, it will be a good tool. CeeBot looks rather pale compared to modern games, but where else will a child control characters, creating their own programs that are as close as possible to C++ syntax?

CodeCombat is already serious, because in this game you learn real code and the winner will become a ready-made programmer. You choose a programming language in which you will have to write commands for your character (the game offers Python, JavaScript, Lua, or several experimental ones like CoffeScript), and go on a journey to get crystals.

Boys and girls from eight years old can be imprisoned for the game. Training and tips in Russian, for $9.99 you can get new levels to complete every month (the first 70 are free). The game can be used in schools, there are separate bonuses for teachers.

In the game, before the start of each level, the child will read funny and motivating quotes about programming, reminding them that “this code will not teach itself.” CodeCombat is more exciting than the usual "adventure" and "shooter" games, one of best combinations recreation and education.

Children of ever younger ages are beginning to become interested in game development. Nowadays you can find plenty of information, perhaps even in abundance. This guide will help young readers or their parents get introduced to the world of game development. And what does this actually mean? First, I will focus on technologies that are suitable for beginners. Secondly, I will not speculate on the level of your technical knowledge, admitting that it may be zero. Therefore, if it seems that I consider you not smart enough or am speaking condescendingly, this is not so! Conversely, if something is not completely clear, let me know and I will try to clarify everything.

How much is too young?

Probably the most common question. How old do I (or my child) have to be to be introduced to game development? It is impossible to answer this because all children are different. At the lowest level (using the right tools), a truly motivated 6-year-old beginner can already achieve some success. On the other side of the spectrum, at age 12, you should already have enough educational background and mental ability to achieve these achievements. The real age is somewhere in the middle.

First, you need to understand a few critical things.

The first is motivation. It is the lack of motivation, rather than mental abilities, that often becomes an obstacle to success. If your child loves to create (loving to play and loving to make games are not the same thing) and is ready for trial and error, they are perfect for game development!

The second is managing expectations. This is where we lose most of the potential developers, regardless of age. Game development isn't the most difficult thing in the world, but it is quite complex. Your child will not soon be working on large-scale modern games like Call Of Duty or NHL, or making MMO projects. You need to start with something very modest and gradually move on.

If a child convinces himself of what he is going to do new minecraft, a very painful failure awaits him. On the other hand, the "someday I'll make a new Minecraft" attitude can work great. It is very important to understand the difference here. As with any skill, this one should be developed gradually. Trying to take on something too serious will only lead to failure and disappointment. For reference, I myself started programming at the age of 8 on Atari BASIC.

What is game development anyway?

Here we go a little deeper into the technical aspects. Game development is an umbrella term that refers to many skills aimed at creating one big creation. Imagine that you are in the car manufacturing business. Skill alone is not enough for this, you need engineers, designers, assemblers, testers and many other specialists to make one machine. However, the entire list of necessary tasks can be performed by one person. There are many successful games written, drawn and released by one person. However, it is important to understand that these are rare cases. What I'm saying is that the entire development process does not boil down to one task, there are several of them. And if a child likes one thing, he may not like the other. It is important to remember this when choosing programs, checking for the availability of graphics and sound samples, so that you do not have to do absolutely everything yourself.

In the credits of modern games, hundreds of names and specialties of people associated with the project are indicated. However, to get started, you only need two tasks: make the game and its content.

Let's take Monopoly as an example. First, we make the game: we determine the design of the playing field, come up with rules for the dice, write game cards, etc. After that, we create game content: images on the field, drawings on cards, plastic houses, etc.

It's the same with video games. The first task is usually called programming, the second consists of filling the game with graphics, animation, sound and music. All this requires completely different skills, but, as a rule, you cannot do without them. Our article will focus on programming - when children are interested in game development, this is what they think about. If a child wants to draw graphics for games, then most likely they are already making sketches in a notebook! And this, by the way, is the right approach, because the difference between an “artist” and a “game artist” is minimal.

What is programming?

So, when we talk about game development, we most likely mean programming. What it is? The simplest way to say it is the art of telling a computer what it should do. In the context of game development, this means doing things like "if the player presses the up button, do this" or "if health drops to zero, do this."

How to program games is already a difficult question, and you will have to suffer with it. It is even more important to understand that everything depends on your child. We all think differently and express our ideas differently. Someone may choose a style that is completely unattractive to another.

By by and large, there are three ways to tell a computer what to do (it often comes down to a combination of these):

A common approach among beginners, and among developers in general (for example, in the popular commercial engine Unreal Engine 4 has the Blueprints visual programming interface). You shape the game screen by dragging and dropping elements, subsequently linking them together in a flowchart-like manner. If your child is a visual thinker, this is the best choice.

Scripting languages

This is where you explain a task to the computer using small text files. Often you still use a visual editor, like in the picture above, but you let the computer know what to do not by filling out text fields or building diagrams, but by using code.

This piece of text tells the computer to download the image "whale.png" and display it on the screen.

Traditional programming languages

Finally, many games are written in traditional languages: C++, Java, C# and others. I’ll say straight away that I don’t advise young game makers to start with traditional, or, more precisely, compiled languages ​​for a number of reasons.

The main question you may have is: what is the difference between scripting and compiled languages? Most of the differences relate to technical details that are beyond the scope of this article, but overall it all comes down to complexity. Working with a compiled language involves a lot of things that you don't have to think about in scripting languages: compilation (turning the text you write into something the computer can understand), linking (can't be explained here in a nutshell), and much more.

The more important difference is the purpose. Scripting languages ​​are mainly aimed at solving specific tasks to make a developer's life easier. In short, scripting languages ​​are much easier to learn and use.

Ultimately, you'll often see development tools that combine visual programming and scripting languages.

IDE, library, what???

Okay, that's the last introductory point. There will be many terms and expressions that are not very clear in the text, so I will briefly explain them.

Language. This refers to a programming language. We communicate with each other in different languages, and you can also speak different languages ​​with a computer. The example above shows the Lua language.

IDE. Integrated Development Environment is an application that is responsible for many tasks at once. Not all of the programs described include an IDE, which means you may need different software for different jobs. Typically, the development environment contains a text editor, a programming language, and a number of other tools.

Library. Imagine that this is someone doing a lot of work for you. Typically, even “simple things” like displaying things on the screen are not part of the language. Other people create these things and make them available as libraries. In some cases (GameMaker or Construct) it's all already put together for you. In Lua, for example, you are required to choose the library yourself. Each approach has its pros and cons. Gamemaker simplifies a lot for beginners, but Lua allows you to change the library to a more convenient one.

Sprite. These are the graphics used in the game, such as the player character. A sprite can be a picture or contain many animations. The exact meaning of a sprite is different in each engine, but in the game it is always a visible moving object. In Super Mario Brothers it's Mario, turtles, fireballs, etc. The world itself - the sky, pipes, etc. - does not necessarily consist of sprites.

HTML 5. Not everything here may be immediately clear. HTML 5 is the latest HTML version, a web page markup language. When you load a site in your computer or phone browser, you see an HTML document. But HTML5 is also an umbrella term for many technologies that power websites. This includes HTML itself, CSS (another language that defines the appearance of pages) and JavaScript, a scripting language responsible for logic. People often use HTML, HTML5, and JavaScript interchangeably, although technically this is not entirely true. HTML5 can be used to create games, and it doesn't need to be run in the browser itself.

Debugger. When a game doesn't work as it should, it can be difficult to figure out why. In some packages, there is a so-called debugger for this, a tool for identifying problems or “bugs”. For beginners, this is a fairly advanced tool, but when the need arises, the debugger cannot be overestimated.

Game development tools suitable for children

So, let's move on to the immediate essence of the article - tools that can introduce your child to the world of game development. This is by no means a comprehensive list! At each point, I will tell you what is included in the program, show an example of how it works, describe the pros and cons, indicate the price, if any, and provide links to educational literature. One thing left to note... each of the options can be useful, there is no “best” choice. Choose based on your child's preferences. If your first choice doesn't work, try something else.

The list is built in no particular order.

Scratch

This is a project funded by the Massachusetts Institute of Technology and aimed at teaching programming to children from 8 to 16 years old. The program was born in 2006, and since then it has gathered a large community around it. Particular emphasis is placed on appeal to the whole family. Scratch only requires a browser to work, you just go to the site and start coding. Scratch is included in the introductory course on computer technologies Harvard and Yale CS50. Registration is required to save results, but it's simple and doesn't even require email confirmation.

Scratch belongs to the category of visual programming tools. The child carries the actors onto the stage and controls them using Lego-shaped programming blocks. Blocks are a good analogue of the structure of real programming languages, so they will be easier to understand later. There is a lot of documentation available, and there are literally thousands of example programs.

Perhaps the most attractive feature of Scratch is that it has all the content you need to get started. At the same time, there is also the ability to upload your own or downloaded sounds and graphics, which simplifies the transition from programming to creating assets or vice versa.

Above is a script tied to a blue dog. It consists of two parts, the first is triggered by pressing the green flag. The dog appears on the screen in a certain place, then step by step moves to the left. The second script waits for a collision with another dog, after which it returns the dog to its starting position, changes the scene and hides the object. Each sprite has a separate script. Blocks are selected in the programming palette.

Programming in Scratch uses blocks. The image shows the Appearance category. As you can see, the choice of categories is quite wide.

Scratch is an all-in-one solution; you don't need anything else to get started. The set includes many scenes, backgrounds and sounds.

Scratch is completely free and is supported by sponsorships.

Books (yes, they are in Russian):

  • First book young programmer. Learning to write programs in Scratch - Yulia Torgasheva
  • Creative tasks in the Scratch environment. 5-6 grade. Workbook – Yulia Pashkovskaya
  • Programming for children. An Illustrated Guide to Scratch and Python - Carol Vorderman

Scratch also has an iPad app called ScratchJr for kids ages 5-8. Also completely free. You don't need to buy or download anything, you don't even need to register to get acquainted with the program, so Scratch can be called the most affordable option on the list.

Construct2

Construct2 is another engine based on visual programming. Games are created in a drag-and-drop interface, and the logic is controlled by a flowchart-like event system. If the functionality is not enough, you can create your own plugins using JavaScript, although this is quite difficult and not at all necessary - Construct2 is designed so that everything is driven by events. The final result of the work is HTML5, it can be exported to different platforms, including mobile devices (Android, iOS, Windows Mobile), browsers and desktop systems.

Construct2 is a much more comprehensive tool compared to Scratch, which means two important things. First, the steep learning curve makes it unsuitable for young children, and it doesn't emphasize a teaching approach. On the other hand, this is a relatively simple tool not for learning the basics, but for creating games. This means that your child will not soon face any restrictions. Many commercial games have been created in Construct2.

There is a lot of documentation available for Construct2, including detailed reference Information and manual in PDF format. The community is very active, you can always turn to the forum for support.

Construct installs on a Windows computer. Mac on this moment not supported.

This is what programming looks like in Construct2. Here is the code that describes the game character's reaction to input data; taken from a prepared example of a simple shooter.

Allows you to quickly add predefined behavior to an object.

Construct2 is an all-in-one solution; you don't need anything else to get it working. From the very beginning, it is not replete with game resources, but it is available for free download a hefty package of assets (be careful, the link is direct, the archive weighs 38 MB). Additional assets are provided for paid versions.

If you want to make your own plugins, you will need a JavaScript SDK (available for free) and a text editing tool, since Construct does not have one.

Construct2 is available in different versions:

  • Free version - created games can only be launched in a browser, fewer assets and a number of restrictions on the complexity of games. There shouldn't be any restrictions big problem, at least at first.
  • Personal version – costs $129, you can make games for iPhone, Android and desktop systems, more sounds, music, sprites and other assets.
  • The business version is essentially the same as the personal version, only it costs more and is required to be purchased after exceeding the $5,000 profit threshold (if you have this problem, that's good!).

I didn't find any books in Russian. There is a translation of the introductory course. Construct2 lessons in Russian.

Game Maker

GameMaker hybrid system"all-in-one" that combines visual programming with its own scripting language GML. Initially, the games only work on Windows, but in paid version they can also be created for browsers, iOS, Android, Windows Phone and other platforms.

Programming in GameMaker can be based on flowcharts in the style of Construct2. It is possible to write code in the GML scripting language. This is both a plus and a minus. On the one hand, this is a flexible system, on the other hand, it is more difficult to understand. Because this own language GameMaker, many of the skills learned will not be as useful when moving to another development tool. Of course, the basic concepts of programming do not change from language to language, so this is not a particularly serious problem.

In addition to the necessary assets, GameMaker has literally everything you could need, although the quality of the tools varies. In addition to programming, you can create your own graphics, sound and levels - all in one application. Among the games created in GameMaker there are very successful projects - for example, the original version of Spelunky and Hotline Miami (not for children).

This is one of the most difficult programs on the list, and it is better to take it on no earlier than adolescence. But for older kids, it offers good flexibility and the ability to share games and eventually sell them. It all depends on the individual child, so it’s difficult to advise anything here, just keep in mind that compared to the same Scratch, everything here is much more complicated.

GameMaker includes everything you need, whether it's code editing, image creation and editing, map design, or anything else. There is also a built-in debugger included. True, in standard version There are not many examples of work. In fact, there are none at all. However, thanks to the active community, you can easily find a bunch of examples and lessons online. The quality of materials can be very different, and Yoyo Games themselves do not deal with them, so you will have to look for good lessons.

With GameMaker licenses, things are not so simple, since the pricing structure has changed, but not all materials have been updated.

  • The initial version greatly limits the use of resources and scripts. However, upgrading to the Standard version only requires confirmation of the email to which the product key will be sent to you.
  • There is also a Professional version for $100 with collaboration functionality (you don't need it yet). The main difference with this version is that you can buy individual modules to support export to other platforms ($200 each). For example, if you want to develop for Android and iOS, you will have to pay a total of $500.
  • And finally Master version with all available platforms costs $800.

For a novice developer, a simple registered version is enough. If you look at Professional, it often comes on sale on Steam.

Please note that it is not necessary to use all the built-in tools. You can easily draw sprites in another program or import graphics from other sources.

Lua and LÖVE

Lua is a scripting engine, and LÖVE is a library for creating games. Lua was originally a programming language for "non-programmers" and quickly became popular as a scripting language for commercial games such as these. This option has one big advantage over, say, GML. Lua is used everywhere and is familiar to many, so it will be useful to know it. In terms of learning the language is quite simple.

LÖVE is a library for creating games using Lua. It provides almost all the functionality needed to create 2D games - graphics output, sound playback, input data management, file loading, etc.

LÖVE and Lua are not enough on their own; you will also need a text editor for writing and editing scripts, software for creating graphics and recording sound, a map editor for level design and similar things. Fortunately, all this is freely available, and I will give examples below. You just have to download everything separately. LÖVE does not come with any assets, but resources like Open Game Art and FreeSound will help you with this. Again, you have to download everything yourself.

The main disadvantage of LÖVE is the lack of support mobile platforms. At the moment, the library allows you to make games only for computers, although mobile devices are promised in the future.

The LÖVE library contains Lua, so first we go only here, and then here for documentation for beginners. However, you also need a text editor and programs for graphics and sound.

For basic typing, there are two popular options: Notepad++ and Sublime Text.

However, for developing in Lua, I would recommend using it - it’s more of an IDE with support for code completion, debugging and similar things. Oh, yes - it's also free.

The free Tiled editor is great for creating levels and maps.

About alternatives - Lua as a scripting language is used in many popular development tools, for example, Corona, Gideros and Marmalade Quick. All of them are more difficult than LÖVE, which is why I recommend it. However, they do a great job of demonstrating how useful knowledge of Lua can be.

Lua and LÖVE are free, but for ZeroBrane you pay what you want.

Only one of the books describes programming specifically in LÖVE.

  • Programming in Lua - Roberto Jerusalemski

Searching for materials in the library is made difficult by the prevalence of the word love, so add lua to your queries.

Python and PyGame

This is another combination of language and library. PyGame is similar to LÖVE in many ways and is beginner friendly. It uses Python, a popular scripting language, although it is better known in the 3D graphics world than in game development. Often used by IT professionals to automate tasks, knowledge of Python is useful even outside of game development. Several famous games are written in this language.

PyGame has the functionality you'd expect, handling audio, graphics, and input. You need to take care of the text editor and asset creation. However, unlike LÖVE, some assets and samples are already included with PyGame.

Use the tips for LÖVE, most of the tools listed will help here too.

Of course, not counting ZeroBrane - as an analogue, I advise you to familiarize yourself with PyCharm (there is a free version). It's not the easiest editor, but you can always work in regular Notepad++ or Sublime Text.

Python and PyGame are free. PyCharm has a free version.

Stencyl is a visual programming toolkit that calls itself "the simplest and most in a fast way creating games,” which may very well be true! It is similar in functionality to Construct2; you program by constructing a scene and providing it with behaviors. This is an all-in-one solution with built-in graphic editor, although the ability to import images is also present. You can't write scripts in Stencyl, but you can create extensions using the Haxe language if you lack the program's functionality. However, this may already go beyond the child’s current abilities - in this case, extensions available in the store will come in handy.

Stencyl runs on Windows, Linux and Mac and by default creates only Flash applications. Other platforms, including iOS and Android, are available for a fee. The program cannot boast of a lot of assets included, but it provides fast access to them, plus the online help is quite good.

This is an all-in-one solution. If you don't go deep into programming extensions on Haxe, everything you need is either already included or accessible through links directly from the application.

  • Stencyl is free to use, but will only produce Flash games. Released games are provided with a Stencyl splash screen during loading.
  • A Studio version is available for $99, which allows you to create desktop applications. They do not have the Stencyl screensaver.
  • For $199 you can make games for iOS and Android.

Lego Mindstorm

Let me clarify right away that this is a very, very expensive thing. But if your child is interested in robotics or is just a die-hard Lego fan, this is a suitable way to introduce them to coding. Mindstorm Lego is a construction set for creating robots. The kit includes programmable blocks that set the behavior of the robot. Mindstorm offers a gradual progression in learning: first, the robot is assembled from pieces of a construction set, then you can learn to control it using an application (for iPad or desktop systems), and then you can start programming the logic.

Lego Mindstorm allows you to either control your creations yourself or program them in the EV3 app using block diagrams. There are also tools that allow you to do as low-level programming as you like.

This point is out of touch with the general topic, but I decided to mention Mindstorm as a tool for teaching programming, convenient for children who prefer to create something with their own hands. Observing cause-and-effect relationships using material objects as an example can be very useful.

Ready-made fire-breathing dragon Mindstorm, a month to assemble

Expensive! Very expensive!

  • A basic set with incomplete localization can be found from 22,000 rubles
  • You'll have to pay even more for extras
  • From the US available for $350 plus shipping

IN in electronic format(links to pdf files) manual and training material available.

  • We construct robots on Lego Mindstorms Education EV3 - Valery Safuli, Natalia Dorozhkina

It's not exactly "game programming" anymore, but it's definitely convenient way getting to know the many skills it requires. And yes, if my parents had given me one of these as a child, I would have nominated them for Parent of the Year. When my daughter grows up, I’ll buy her one... although maybe it will be a gift for myself?

Special Mentions

Every list has to end somewhere, and this one is no exception. Below is everything that for some reason did not make it into the main points. If none of the options above appeal to you, be sure to take a look at these options.

Mods for Minecraft

If your children are playing computer games, they may already be familiar with Minecraft. Modding is modifying the original game, and Minecraft is especially popular in this regard. Mods can be convenient means learning programming - or at least being motivated to do so. Makes mods for Minecraft Very many people. The downside is that they are written in Java, and this language is not suitable for young children. However, if you are interested in the game, it’s worth a try. You can find out more.

GameSalad

It is a visual programming tool like Stencyl and Construct2. Used to create commercial games, a free version is available, paid versions provide access to other platforms. Personally, I haven't used GameSalad.

Codea

Codea is an application for developing iPad games on the iPad itself. Costs $10, uses Lua and provides its own easy-to-learn library. There is a code editor, a debugger and tools for connecting to a computer. You can connect to a Mac and make a perfectly releaseable game. Typing on an iPad is no fun, so... wireless keyboard practically necessary. Includes tons of examples and is great for kids who have an iPad (especially when that's all they have).

Kodu or Project Spark

This is a game about creating games. In fact, this is a game that can be modified into anything you want. Kodu is a visual programming language from Microsoft. Project Spark modified version Kodu, released for XBox One. This is a far cry from conventional programming, but many of the ideas (as well as the end result!) are the same.

Code Combat

An interesting concept - a browser game where the character is controlled by programming. As you progress through the game you are taught more difficult things. Essentially, you learn to program by playing a game. Originally created for Javascript training, but then other languages ​​were added. I'm convinced that it's completely free, so it doesn't cost you anything to try.

Alice

Alice is a tool for teaching programming with an integrated development environment. Here are the authors' own words:

Alice is an innovative 3D environment in which you can easily work with animation, tell stories, create games or videos. It is freely available educational software designed to introduce students to object-oriented programming. It teaches fundamental programming concepts through the creation of animated videos and simple video games. In Alice virtual world filled three-dimensional objects(people, animals, cars), and students write programs with which they are animated.

Alice is supported by Carnegie Mellon University and is completely free.

RPGMAKER

RPGMaker Ace is a product similar to GameMaker, designed to create specific type games belonging to the jRPG genre. Its slogan is literally: “Simple enough for a child, powerful enough for a developer.” Several commercial games have been made using RPGMaker. Perfect for your child if he is a fan of the genre. It costs $70, but is often on sale on Steam.

Conclusion

Of course, I didn’t go into details, but I went through most of it available options. If you think something should be added to the list, let me know! I tried to make the article understandable to people with any level of knowledge, but, of course, I could not cope with this. If something is unclear, write. The main thing to remember is that all children are different, and the same approach does not work for everyone. Choose what you think is best for your child, and if something doesn’t work out, know that there are always a lot of other options!

Young children easily learn new languages. While the experience and knowledge of older individuals are key to effectiveness, young brains are more malleable. Except spoken languages, children in at a young age It would be great to introduce programming languages ​​as well. The BBC's micro:bit teaches kids the basics of coding, while Kano is a do-it-yourself (DIY) computer for kids to learn the basics of coding.

But, since the minds of children and adults differ in their ability to remember, learning methods for them should also be different. Coding systems provide ample opportunities for teaching children programming. It's a fun but controlled environment. Instead of sending your kids to computer science courses, check out apps for teaching kids how to code.

Kodable's tagline is "programming for kids, made with love." Her simple lessons are aimed at kids from kindergarten to fifth graders. Although the K-3 curriculum only covers the basics of coding, its 4th and 5th levels teach a focused set of topics. Kodable follows the same programming standards as JavaScript, which is a great language for beginners. That's why the Kodable Basic Course provides fantastic results in mastering programming skills.

In addition, the transition from activity to activity occurs in an entertaining way. Elements of the game are manifested in tasks for students, such as navigating a maze. But Kodable doesn't make programming too easy. The course even includes concepts such as loops and branching. The system is based on conditional decisions (if/then statements) as an initial introduction to the programming concept. Additionally, Kodable makes learning JavaScript funny, using a playful approach. Overall, Kodable is effective remedy entry level for teaching children programming.

Advantages: Kodable has a free version that is web-based. It illustrates basic programming concepts such as loops and branching.

Price: Free/paid versions

  1. Think and Learn Code-a-Pillar

Fisher-Price's Think and Learn Code-a-Pillar offers a unique bonus: it's both an app and a stand-alone toy. Practical learning by children information technologies and programming is certainly useful, but many hours spent behind the monitor screen can harm the baby’s health. Therefore, the developers of Think-LearnCode-a-Pillar combined the functionality of a learning system and a toy.

As young users work through the program, they solve puzzles that illustrate basic coding concepts. The system is designed for small children aged 3-6 years. At the same time, the built-in Code-a-Pillar toy is independent of the application. Some of the activities may be too challenging for the youngest students. Therefore, it is best to conduct classes under adult supervision. Although the same can be said about the age group of 5-6 years, for which the riddles from the “CandyLand” section are designed. Sound effects and soundtrack can be turned off. This is a useful feature to help limit your exposure to distractions.

Advantages: The physical toy is an addition to the standalone app. Plus, music and effects can be turned off so they don't distract from your learning.

Price: Paid

  1. Minecraft

Minecraft is a very popular game. The sandbox style, where the rules are created by the player himself, makes it extremely adaptable. Although the program was not developed specifically for children, its content provides a safe programming environment suitable for all ages. The online blog Lifehacker even has a parent's guide to playing Minecraft with kids. Some Minecraft mods are written specifically for children (for example, LearnToMod). You can use Minecraft to explain to your kids what a server is and how to set up a Linux gaming server. In fact, Linux is great for kids and provides valuable life experiences.

However, Minecraft is not designed for an audience of very young learners. For them, adults will have to complete a series initial settings. Once done, a set of programming knowledge will be available through LearnToMod that is very easy to learn. The program is actively discussed in the online community. Due to the large number of additional applications, Minecraft is more expensive. However, it contains many tutorials that help develop real-world programming skills. The MinecraftPi version is a great environment that can be used as a Minecraft mod for kids.

Advantages: Mods like LearnToMod with lessons and instructions teach kids coding skills.

  1. Tynker

Tynker is a great app. Its name is similar to the word “tinkering,” which implies the need to put your hands to work. Overall, Tynker teaches programming brilliantly. Like many apps for teaching computer science to children, the program tries to present the material in an engaging way. The platform boasts a small selection of tasks. Kids can program robots and drones, mod Minecraft, create apps and games, or do science, technology, engineering and mathematics (STEM) research.

Before moving on learning Python and JavaScript, children are encouraged to begin learning to code using visual blocks. But at every stage, programming focuses on projects, which captivates students and focuses them on results. Since Tynker teaches lessons with visual blocks before jumping into real code, his teaching method can be considered very clear. A comprehensive environment broken down into levels corresponding to the degree of knowledge and skill makes the application one of the best among systems for teaching children programming. You may also want to consider the similar program Scratch, which is being developed by the Massachusetts Institute of Technology (MIT).

Advantages: The program is free, but has paid levels. Tynker allows children to implement interesting projects and grows with their skills.

Price: Free/Paid

  1. Nancy Drew: Codes & Clues – Mystery Coding Game

NancyDrew: Codes&Clues – MysteryCodingGame (Nancy Drew: codes and hints - a mysterious game for programmers) offers a game form of learning. Moreover, it includes a separate STEM theme with its own main character.

Completing the game is easy and is an effective learning tool. It's about a tech fair with a riddle to solve. During the game, children drag blocks of visual code to the appropriate locations. Some mini-games require matching costumes. Common Sense Media gave Nancy Drew: Codes & Clues a 3/5 for its educational features and a 4/5 for its ease of play. Another app for learning the basics of coding, Goldieblox: Adventuresin Coding from The Rocket Cupcake, is also STEM-focused. Balanced gameplay makes NancyDrew one of the best software solutions for teaching children programming.

Advantages: Intuitive clear interface, addictive gameplay and STEM themes.

Price: Paid

Platform: iOS/Android

  • Translation

Programming is very popular now. Around the world, 36 million children take part in Hour of Code activities. The goal of these activities is to help children become active rather than passive users of technology, and to gain knowledge that can help them get good jobs in the future in our increasingly technical world.

Even if your children do not want to make a living programming in the future, a basic understanding of programming principles develops thinking and, in the future, the child is better able to solve problems that arise. Bill Gates once said, “Learning to write software develops your mind, helps you think better, and creates a way of perceiving things. In general, I think that this will be useful for a person, regardless of his field of activity.”

Platforms like Scratch and Alice allow kids (and adults) to create their own games and animations using simplified programming techniques. However, not all children are interested in this. And for such children there are many games that teach basic principles programming in a fun and accessible way.


We've rounded up a few available options, including some games that are still in development, so you don't have to frantically search for them. These games are available on different platforms - iOS, Android, PC, Mac, there are even board games - and many of them, and this is a huge plus, are distributed free of charge.

Lightbot and Lightbot Jr.

For whom: ages 4-8 years (Lightbot Jr), 9+ (Lightbot)
Platform: Web browsers, iOS, Android
Price: Free (browser), $3 (iOS/Android)
More information: Browser game, iTunes, Google Play

Expert Opinion: "While seemingly simple, Lightbot illuminates some interesting aspects of advanced programming" - Fritz Ruher, assistant professor of computer science, Willamette University, Oregon.


Caption: Many schools use the Lightbot game to teach the basics of programming. This game is even used in some universities.

Lightbot is a programming puzzle game created by Danny Yaroslavsky, a Canadian student. The goal of the game is to make the robot highlight all the blue tiles on the 3D grid. The difficulty is that this needs to be done in one approach, creating a series of commands for the robot.

Yaroslavsky says Lightbot teaches planning, testing, debugging, procedures and loops. Your kids will definitely love playing with the cute robot, making it light up all the tiles in one go.

You can play the free version of the game, which offers an hour of play time. Moreover, you can play for free both on your computer and on your mobile device. And if that's not enough, then there are two full versions of Lightbot for different age groups now on sale on iTunes and Google Play.

Code Monkey Island

For whom: age 8+
Platform: board game
Price: $40+
More information: Code Monkey Island website, Kickstarter
Expert Opinion: “Code Monkey Island is an amazingly fun game that introduces kids to coding,” educator and technology activist Phil Shapiro.


Caption: Code Monkey Island won't turn your children into programmers with the wave of a magic wand, but it will teach them the basics of programming.

Brooklyn resident Raj Sidhu wanted to teach children the basics of programming in a fun way. He chose a completely non-technical solution to a highly technical problem and introduced the basics of binary logic and conditional commands into a family board game.

Playing Code Monkey Island is quite simple, and the game takes little time - only about 45 minutes. Players use cards with instructions such as “Move each monkey three spaces without stepping on rocks” to move their monkey troops around the island.

Sidhu chose the board game format because such games bring the family together. “I wanted to create something that children, their parents and grandparents could play. However, at the same time, I wanted to help children realize their learning abilities through play,” he says on his Kickstarter page.

Code Monkey Island turned out to be a successful Kickstarter project. This game should already be distributed in August. You can reserve one copy of this game for yourself by donating $40 or more to the project's Kickstarter fund.

Kodable

For whom: ages 5-8 years
Platform: iOS
Price: Free ($7 – Pro version)
More information: Kodable game website, iTunes
Expert opinion: “The Kodable game develops programming skills, as a result of which even small children can learn programming. They don't even need to be able to read to learn." - Terry Eickholtz, K-5 gifted teacher, Texas


Caption: Co-founder Grechen Huebner reports that even two-year-olds can play Kodable.

Kodable is a maze game with 105 levels. This game helps teach children programming basics such as conditions, loops, functions, and debugging.

The game does not use any text at all, so even small children can play it. The heroes of the game are very bright, they look like funny aliens and children really like them.

“Adults are so afraid of programming, they think programming is scary and difficult,” Kodable game co-founder Grechen Huebner tells TechRepublic. “It’s funny that many adults underestimate the capabilities of their children. And the fact that we offer children the opportunity to solve different problems at such an early age proves how smart children are.”

The free version of Kodable has 45 levels. You can purchase additional items in the app itself different levels and configurations. The Pro version, which costs $7, also includes extension lessons vocabulary and instructions for training.

Robozzle

For whom: ages 6+ (and adults)
Platform: web browser, iOS, Android, Windows phone
Price: Free (browser version), $0-$2 (mobile version)
More information: browser version of the game, iTunes, Google Play, Windows App Store
Expert Opinion: “Robozzle is marketed as a social puzzle game, but I see it as a fun and interesting way to teach coding. And perhaps with the help of this game it will be possible to get children interested in programming” - Alfred Thompson, high school computer science teacher.


Caption: At first glance, the Robozzle game is very simple. But soon the player will be able to see that everything is not so simple.

If you're looking for an activity for older kids (or yourself), try playing Robozzle. This is a puzzle game that free time created by Microsoft programmer Igor Ostrovsky.

Robozzle's goal is to guide the robot through mazes using limited commands. The game's difficulty levels vary: some levels are suitable for children, and some challenges will make even experienced programmers scratch their heads.

The browser version of this game is free to play (using Silverlight), and players can create, vote, and comment on new levels.

Robozzle is available on iOS, Windows Phone 7 and Android. Prices vary.

Cargo-Bot

For whom: for children from 5 years old and adults
Platform: iOS
Price: Free
More information: iTunes
Expert Opinion: “Great iPad app for learning to code. I used it to teach my two children.” - Mike Lawrence, teacher and co-founder of Google Teacher Academy.


Caption: Cargo-Bot for iPad was created using the Codea app

Cargo-Bot is the first game written specifically for the iPad. The simple levels of this game are suitable for children aged 5 years and above, but then the really difficult levels begin.

Players must move boxes around the factory using a moving crane. It uses programming concepts such as loops, procedures, and debugging.

“I wanted to create a game where the point is to move boxes around a factory. Forget that you're actually a programmer,” said game developer Rui Viana in an interview with Fast Company.

SpaceChem

For whom: for children from 10 years and adults
Platform: PC, Mac, Linux, iOS, Android
Price: Free demo, $7 (Steam), $3 (iOS/Android)
More information: SpaceChem game website, Steam, iTunes, Google Play
Expert Opinion: “I think SpaceChem is the best game for teaching coding available” - Neil Brown, Computing Education Researcher, University of Kent, UK.


Caption: SpaceChem is used by many schools in the educational process, but at the same time it is a game.

The game SpaceChem is a combination of programming and pseudo-chemistry in a science fiction setting. However, this game received excellent reviews upon its release in 2011.

This game is challenging enough to make both high school students and adults think. The goal of SpaceChem is to build a mechanism to fight monsters using programming concepts such as order execution, loops, jumps, and subroutines. The developer company Zachtronics Industries explained exactly what the value of this game is.

“SpaceChem is the game I wish I could have given my 12-year-old self so I could go crazy solving puzzles,” according to the educational blog Gaming to Learn. “When you hear people talk about the importance of learning to code, they talk about this game. Games like this teach the player to think.”

Robot Turtles

For whom: 3-8 years
Platform: board game
Price: $25
More information: Robot Turtles website, Kickstarter
Expert opinion: “Start learning as early as possible! It's amazing! The future now looks much more exciting." - John Ledger, Chairman, T-Mobile


Caption: Playing Robot Turtles.

The board game, which teaches kids how to code, raised $600,000 on Kickstarter last year. Despite the fact that financing of $25,000 was initially required.

The game turned out to be in demand. And this is not surprising, because Robot Turtles teaches the basics of programming through instruction cards that guide the turtles through the maze. The game's initial 25,000 copies sold out in no time. Children must use limited syntax, command sequences, and debug when they make an error. The game's creator, Dan Shapiro, says it takes a few seconds to figure out how to play.

“I really believe that coding is a superpower that you can offer your children. This is a way to ensure that they are not left behind in the innovations of the future,” Shapiro told TechCrunch.

Robot Turtles was recently acquired by game publishing and distribution company ThinkFun and was made available to the mass market this month.

Code Combat

For whom: 13+ (or younger subject to supervision/instruction)
Platform: web browser
Price: Free
More information: Code Combat website
Expert Opinion: "A very creative and exciting way to teach programming through play" - Jason Battles, Associate Dean for Library Technology Development and Policy, University of Alabama


Caption: Code Combat is a fun mix of wizards, warriors, ogres and programming.

Code Combat is the only game on our list that requires players to use code in pure form(currently Javascript time, experimental support for CoffeeScript, Python, Clojure and Lua). Don't let this fact throw you off your feet, as Code Combat is a great opportunity to learn while having fun.

You can start with the single-player levels of this fantasy game and then apply your acquired programming knowledge to other players.

Code Combat is expected to remain free game, since the main income of developers is offering high-level players to companies. Yes, indeed: by playing this game you can get a job.

Ludos (Puzzlets)
For whom: 4-12 years
Platform: PC, Mac, iOS
Price: $100
More information: Digital Dream Labs
Expert Opinion: “What makes Cloudboard (the Ludos dashboard interface) stand out from other products currently available is not only the combination of the physical and digital worlds, but also the development of collaborative skills” - Terry Eickholtz, K-5 Gifted Program Teacher, Texas


Caption: Ludos uses tiles to make programming tactile for kids.

Ludos is due out this August. The goal of the game is to make programming a real, hands-on experience for children. Ludos allows players to place command tiles directly on the grid, programming the actions of the game's characters.

Cork the Volcano will be the first Ludos game with a strong emphasis on programming fundamentals such as planning, sequencing, and debugging. In the future, other games will appear in the system, because this system is open platform, and therefore everyone can create applications for it.

Codemancer

For whom: 9-14 years old
Platform: PC, Mac, iOS, Android
Price: $20
More information: Important Little Games website, Kickstarter
Expert opinion: “A fantasy game with a main character who teaches kids (and adults!) how to code? I love everything about this game!” - Lauren Scott, Web Developer and Associate Instructor, Dev Bootcamp


Caption: Codemancer game raised 4 times on Kickstarter more money than was originally stated.

Codemancer's developers hope that when it releases next summer, the game's compelling storyline and heroine will help it stand out.

After running this successful project Kickstarter players will use magical runes to control actions as they help heroine Aurora save her father's life. Creator Robert Lockhart hopes the game's accessibility will break down barriers that prevent children from understanding programming.

“Codemancer's game language is very accessible,” Lockhart says on his Kickstarter page, “but it's also easy to translate into different languages programming. Programs become more complex when we introduce programming concepts such as variables, conditions, and functions.”

Machiners

For whom: 8-14 years old
Platform: PC, Mac (iPad version in development)
Price: Free demo version
More information: Machineers website
Expert Opinion: "Machineers looks like it would be the best example of an educational game" - Paul Hayes, Programmer and Game Developer


Caption: Machineers won Best Educational Game at the 2012 Serious Games Showcase and Challenge in Florida.

Machiners is an adventure game where users deal with broken devices. Players must repair devices using programming principles and a drag-and-drop interface.

Enrique Lode, a member of the Danish Lohika Games team behind Machineers, decided to release this puzzle-adventure after one child tester complained that all educational games were like "chocolate-covered broccoli."

“This game is a preparation for further learning,” Lode told Indie Statik. “The game does not have any mathematics or code, so children will not be able to learn how to program. However, the game develops logical thinking and what is called procedural literacy – the ability to read and write processes.”

While the game is in development, a demo version of Machineers for PC and Mac can be downloaded for free. Lohika Games is planning to launch a full-fledged game for iPad.

Bee-Bot

For whom: 4-7 years
Platform: iOS
Price: Free
More information: iTunes
Expert Opinion: “Don't pay attention to the device itself, just trial and error, hypothesize, verify, test and succeed.” - Dog Peterson, Sessional Teacher, Faculty of Education, University of Windsor, Canada

Caption: Many schools use the Bee-Bot game to teach the basics of programming

Educational game developer TSS created BeeBot to help children understand object language programming and sequence of commands in programming. Simple and accessible application has 12 time-limited levels, which are labyrinths with a constantly increasing level of difficulty.

For children over 7 years old there is an additional application called BeeBot Pyramid. It retails for $0.99.