All over the world, there are boys and girls who are learning to program, and in fact now in December one of the main events is held around the world to promote this subject. Today we want to go even further, and as a complement to our tips and recommendations for learning programming for children and adults, Aark Learnings is going to talk about how to start a child in programming… from scratch.
The tools and software have been modernized for this new stage of programming, and with all this, the methodology and proposals must also be adapted to the teaching of this new subject. What programs or platforms to use? How to do it? Today we explain how to introduce a child to programming.
A look back
It wasn’t many years ago that the field of programming was exclusive to the most professional world. Computer scientists (and before computing as such existed, mathematicians and physicists) were in charge of dealing with computers, of creating programs that other workers then took advantage of.
Society has adjusted to the changing times. The first uses of programming as an educational tool date back to the ’60s and ’70s with LOGO, a language that was characterized by the possibilities of creating small drawings and tours through simple commands and programming instructions, about a turtle.
Programming as an educational tool today is based on LOGO, a language created in the 60s and 70s. That LOGO was the seed of what later, in the 90s, germinated in the form of multiple tools intended for education and training of programming for children and young people, whether in the form of specific languages or toys, such as
LEGO Mindstorms, which was a development of LEGO together with MIT. He began to see the importance of programming as a tool to have fun and also to learn certain concepts related to computational thinking.
We already know from LEGO that they continue their Mindstorms saga with great success, with the third generation called EV3 – launched in 2013 – and the First LEGO League being held around the world.
For its part, at the end of the 90s, a series of block-based programming languages began to be developed, extremely intuitive and easy to use and understand, and which, due to their nature, have allowed any kid to start learning to program.
The main asset of these block-based languages is Scratch, which, as we said, began to be developed at MIT’s Lifelong Kindergarten in 1997, but it was not until 2003 when it was released in its first public version.
After him, and with the arrival of both the Internet and the new categories of devices (smartphones, tablets) in homes, many companies and entities have taken advantage of this new field of knowledge to propose their own languages, tutorials, platforms, or even games for learning to program.
What programming bring to a child?
The path in the past is clear. First, the small glimpses that programming could be something more than a professional tool, and over the years (many years!), in the end, multiple initiatives have emerged that strengthen the topic of education, both in terms of classes, workshops, and other extracurricular activities as well as official curricula.
But why learn to program? The important idea in this field, in our opinion, is computational thinking. The way of thinking, of learning to solve problems and create algorithms and solutions, both particular and – above all – general to those problems.
We computer scientists are clear about this concept that allows us, for example, to have a problem of a certain magnitude in front of us, and to know how to divide it and solve each of the parts, generalizing this solution.
However, I always like to say that it is not programming for the sake of programming; In the end, programming is an excuse for much more. In the Young Programmers Club of the University of Valladolid, a workshop in which I have been participating since 2011, we use programming as a tool for much more.
This is partly due to our methodological proposal, which many will call peculiar. Without individual desks, with large spaces and tables with which to promote cooperative work, for the proposed projects that we propose and that seek creativity and different solutions in each child.
Programming is a tool that can foster creativity at extraordinary levels, as long as you know how to do it. It is not just about solving problems, but about using the resources and tools available to make the creations that we have in mind.
It’s not just about knowing how to program a Pong, but once you have programmed it you know how to go one step further. You know how to add markers to each player, you intend to add a ranking with the best players or give the possibility to choose the color of the game.
Because programming shouldn’t just be about writing code, programming allows us so much more … as long as we know how to get there. Computational thinking is a common trait that all of us who are involved in teaching this subject agree on, but there is much more. Creativity – which is precisely one of the shortcomings of the current system -, sociability in classrooms, group courses or workshops, or even public presentations, can be some of the characteristics that we improve thanks to programming. Which, I insist, should not just be programming for the sake of programming.
Forget about teaching programming like you teach a professional. It is not teaching programming to learn to program, it is much more. Key concept, computational thinking -> learning to solve large problems, dividing them into parts and addressing them separately so that as a whole they provide an answer to the problem initially posed.
Play with various concepts such as abstraction (imagination, concentration) and automation (proposing solutions that are not only particular to a specific problem but also general to any related problem).
It encourages creativity if the method is correct (more on this later). It is not just about solving problems, but about using the resources and tools available to make the creations we want; Imagination must be our limit.