If we give a boy or girl a smartphone, from a very early age
(many would say surprisingly early) we will see that learning from observing
the interactions of adults with these devices, they manage incredibly well
using these devices. They have been born, raised and learned in an environment
with many technological tools at their fingertips and they know how to relate
They know how to use them. Maybe (surely) better than some adults. And that is an advantage that can be taken advantage. In this blog Aark Learnings has talked about the benefits of programming for children and adolescents.
A FREQUENT MISTAKE IN LEARNING ROBOTICS
Knowing how to use technological tools is not the same as
understanding their use or knowing them, and this also applies to robotics. One
of the things that should worry us the most when teaching robotics concepts is
that, frequently, the difference between understanding its operation, its
implications and its capabilities is not distinguished from the fact of knowing
how to reproduce a certain effect.
Children often learn, through repetition, to be able to
exactly reproduce a procedure in order to obtain a specific result. For
example, they know that 2+2=4. But if they don't understand how the concept of
addition works, they won't know how to get to the result of the operation 1+3=?
I know what I'm saying seems very obvious. But with a high
frequency, I come across texts that teach how to achieve a certain effect and
that completely ignore the reason for the said operation, its relevance in the
context of robotics or the potential it offers. So that's what we'll try to
deal with in this section, or at least that's my intention. Let's hope it can
be said that I have achieved it.
So, in order to talk about robotics for children, adolescents or adults, first of all, we should talk about the concept of programming. Although a robot has to be able to act autonomously in certain situations, it is previously up to us to program the robot so that it can face them and learn in the face of new eventualities.
WHAT IS PROGRAMMING?
Programming is a communication tool. Specifically, one in
which indications are given in a unidirectional way.
Since the purpose of this section is precisely to end up offering
a range of tools and proposals with which to teach robotics when explaining
programming concepts we are going to contextualize them in this field.
In all communication, there are different elements: a
sender, a receiver, a communication channel, a message and a code or language.
If any of these elements fail, we will not be able to consider that there is
functional communication, that is, they will never understand each other.
Thus, these elements could be exemplified in what
programming a robot would be as follows:
- The sender: the programmer
- The receiver: the robot itself
- A message: the list of instructions to follow (which we
will call "code")
- The channel: the method that we use to load the code
- Coding: the programming language
The last two are probably the ones that are most diffusely explained, so we will proceed to analyze them in a little more detail.
THE COMMUNICATION CHANNEL
The communication channel designates the type of
communication that we will use in the interaction between the robot and the
device that we use to write the code (a computer, a tablet, a smartphone,
etcâ€¦). That is to say, the communication channel will be by cable or
Within the communication channel, we should specify that the communication protocol also exists, that is, how the aforementioned channel is going to be used. Wireless communication can be via Wi-Fi, or Bluetooth, to give a few examples. Generally, we usually say that two devices communicate via Bluetooth or wifi, ignoring this differentiation between channel and communication protocol.
THE PROGRAMMING LANGUAGE
The programming language would be equivalent to the language
in which communication between two people was established. We could consider
that, at a basic level, it is nothing more than a tool for communication: they
all serve the same purpose.
However, just as it happens with languages, they all have
their particularities, their evolutions and their characteristics.
For practical purposes, then, the reality is that the use of
each programming language ends up being more or less ideal depending on the
functionalities, devices or protocols with which we want to work.
But let's go to the million-dollar question... Why teach programming?
PROGRAMMING BENEFITS FOR CHILDREN, ADOLESCENTS AND ADULTS
The first thing we must be clear about is that programming
is a tool rather than a purpose in itself. Continuing with the parallelism of
the languages â€‹â€‹that I mentioned earlier, we learn languages â€‹â€‹to be able to
use them in a work environment, read or view works in their original language
or communicate with people. In other words, apart from the cultural richness
that it entails, we learn a language to communicate better with other people
and the very end is that communication.
Therefore, although it is interesting and important that they learn to program, we must not lose sight of their ultimate purpose. We are going to see what are the benefits of programming for children, adolescents and adults, in the same way, that on this website we have seen the benefits of board games or the benefits of role-playing games (and even comics).
Creativity and decision making
The best way to learn to program is to continuously face a
progression of challenges that increase in difficulty level. This implies that
throughout this progression:
- They try to be innovative.
- They stimulate your creativity.
- They apply ingenuity in order to find solutions in the
most efficient way.
Along the same lines, it should also be taken into account that decision-making will be constantly worked on. The reason is that, for each deduction that is made, it will be necessary to search among many possible commands which ones are applied and the way in which they are combined to achieve the desired solution.
Challenge orientation and frustration tolerance
In addition, as programming knowledge progresses, the
understanding of how computers work will increase, thus opening the
understanding of a new paradigm with which to face the challenges of the world.
In this way, the dynamic of trying to improve oneself or tolerating frustration in the face of a problem that one does not know how to solve is generated.
Teamwork and communication skills
On the other hand, the need for cooperation between
different students will necessarily help to improve oral and written
Along the same lines, you will also improve all the communication skills necessary to convey ideas and concepts. All this, of course, while learning to work as a team.
Key competencies in areas of knowledge
In a similar way, we must take into account that for many of
the situations we will have to elaborate from simple to complex calculus or
mathematical approaches. Consequently and, obviously, in a very common way,
these skills will be worked on without this being the purpose itself.
Programming can be used, of course, to enhance knowledge of other areas by contextualizing the exercises for it. The list is as long as one wants: history, geography, languages, etc.
Planning and hypothetico-deductive thinking
Highly complex projects or difficulties will require a
separation of the different functional blocks, as well as defining development
phases and the necessary planning to face them.
Therefore we will be working on formal hypothetical-deductive thought. By learning and improving performance in the programming language, we will have to venture and plan the supposed steps that the robot will have to carry out, or the environment information that the sensors will detect, to formulate a theory about the possible result and re-program depending on how to correct our hypothesis has been until the desired result is obtained.
In short, we will be working on computational thinking through the following tasks:
- Organize and logically analyze information.
- Establish its representation through abstractions (whether
it is to elaborate models and/or simulations, to carry out the planning that we
have previously commented on or simply to be able to communicate the ideas to
the rest of the team that works on the project).
- Seek solutions that automate steps through algorithmic
- Generalize and transfer the processes already carried out in order to subsequently use their implementation to solve a wide variety of families of problems, either by applying the entire solution found or by learning to fragment the solutions (generally the source code) so that said blocks can be used in combination.
Logical thinking and lateral thinking
Finally, through programming and taking care of the
exercises to be carried out, we can work on aspects such as logical thinking or
Although the first is usually very easy to work with through programming, the second will depend on both the exercises proposed and the methodology used as well as the way to deal with the problem, it is not something that is inherent to programming itself.
HOW LEARNING PROGRAMMING SHOULD BE
But above all and despite everything, it is very important
to emphasize that, although it is true that all this knowledge can open the way
to a future job in a programming environment or in engineering or another
similar technical option, in any case, learning programming should be fun.
We are talking about robotics taught to children and young
people who still don't know what they want to do in the future. My firm
recommendation is to let them have fun and learn by playing. And, if this
knowledge ends up opening a door to a certain professional future, fantastic.
If not, all that fun and learning that they will take to the backpack.
We must not forget either that programming will not teach or
exercise all these virtues by itself. Like many other activities that can help
develop or enhance all these abilities and faculties, programming is nothing
more than a tool to work with.
We must not lose sight of the fact that the approach to the
training to be given, as well as the person who acts as an educator, is of
paramount importance in the activity.