Veronika Jandová

​​​​Let’s be honest, when you show your code to the kids for the first time, they probably won’t find the jumble of characters very interesting. If you explain to them that for the code to work it is very important to follow the syntax, they’ll most likely just walk away. At the same time, programming is your world and you’d like to share it with your children. We know just how to do that! This problem can be elegantly solved by block-based (i.e., visual) programming.

The prepared blocks that represent cycles, variables or other programming elements are simply put together by dragging them with your mouse into the final program. They are arranged visually as if they were Lego bricks. The have different colours, based on the area and structure, and the app can even suggest if a code combination doesn’t work or if something is missing. This will teach your kids logic and how to build a program, what depends on what, how the commands follow each other – they can easily learn the basic principles themselves.

Logical operators, variables and cycles are a bit more tricky but the learning curve in this case can be supported by an explanation by a teacher or a parent skilled in programming. This game with colourful blocks of code gradually eases your kids into the context and helps them understand the spirit of programming. After they master structure, learning syntax is much easier.

Scratch, Lego, Microbit

Probably the best known application of block-based programming is Scratch, but you might have also seen programmable Lego robots or heard about the Microbit project of the British BBC.

Scratch was created in 2003 by MIT. In it children can learn event driven programming with various active objects called “sprites”. These are simple two-dimensional pictures that can be imported or directly drawn in a simple editor included in Scratch. The young programmers then choose and assign command blocks to these sprites (there are ten different blocks of different colours based on their function) and they fit together like building blocks. The end result is an animation or a game that runs on the logic of the child’s code.​

A big advantage is that there are many tutorials and guides available for Scratch. After mastering programming in Scratch, users often switch directly to Python. When is a good time to start with Scratch? Basically as soon as children learn to read and understand, i.e., around the third grade in elementary school. There is even a study​ that confirms Scratch to be a suitable language for the introduction to programming at elementary and high schools. At Cleverlance we also tried programming for children in Scratch in the past and it was a great success.

Lego has prepared several projects for technically-minded children: Lego Boost, Lego Mindstorm and Lego Education​, based on the age category and situation. The advantage is that the children can build a 3D object using the building blocks, such as a robot, a car or some tool, and then use block-based programming to make it move the way they want.

Microbit is not as popular here, but in Great Britain almost every kid knows about it. It is a project by BBC, which came up with the idea of a simple microcomputer – essentially a programmable desk with several diodes and a USB. Since 2015 over a million of these microcomputers has been given out to schools all over the United Kingdom and children use it to write their first simple programs in the native makecode​ environment; however, Scratch, Javascrip or Micropython can also be used.

HTML for kids in Cleverlance

Even though there are WISIWYG editors today which mean that don’t have to know all the HTML tags by heart, it’s good to at least understand the basics. This is why Cleverlance has prepared a HTML course for children. Thanks to the obtained basic knowledge they will be able to build better websites and make small adjustments that are not supported by out-of-the-box applications. They will also spot an errors more easily when inspecting a code.

At Cleverlance, children are taught HTML by Vítek Červinka, who prepared a simple Ffau web application for this purpose based on a Google library called Blockly. It’s available at https://html.cleverlance.com/ and you can try it yourself to see how block-based programming works.

We asked Vítek about his previous courses (in addition to HTML for children he also teaches a course on Microbit programming in Cleverlance and a programming course at a grammar school).

What do children enjoy the most about the programming courses?

When they get to a phase where they can influence what the code does, for example change the appearance. In general, they like creating stuff – and when they get a solo assignment, they enjoy thinking about how to achieve the desired result, for example based on the visual instructions.

What was the hardest part for the children?

The coding logics gets progressively more complex and sometimes kids can get lost. Surprisingly, the most challenging part is for them to recognize that they got lost. For example, during an online course it is a bit more difficult to tell even for me, the teacher.

What did you enjoy the most?

The most fun for me is the “Oh, I see” moment – when the kids suddenly understand get logic, when it all clicks. It's like some chemical reaction in the brain... when you overcome a problem, solve the riddle. I still experience this myself. You can see it in the kids and this is the internal drive of programming, a reward for the effort, something that makes them continue with programming.

Are there disadvantages to block-based programming?

It is worth mentioning that more complex programs would be hard to make in this environment, as they would become too complicated. The pre-defined blocks are a certain limiting factor as well, as you have a limited set of commands. That’s a good thing though, because when it starts to be too limiting for the children, they move on to normal programming.

What would you like the kids to take away from your courses?

I would like them to start thinking about how to get from an idea to its implementation in a step-by-step process. Of course I would also be happy if they find programming interesting and continue learning this skill. However, the main goal is for them to understand the principles. They don’t have to become programmers, all they need is to do understand it. It might come handy one day when they’re preparing instructions for someone who will program software for them.

Thank to block-based programming, everyone can start programming and see what it’s like. And if they like it, it is easy to continue from there. After all, it is one of the best investments into the future (yours and the child’s).​