At what age should you learn to program?


If programming languages ​​are much simpler than natural languages, why do human beings speak a mother tongue (Spanish or Chinese) from the earliest years and yet learn to program seems so complex?

Communication with a computer has a certain logical component, but we have verified that already in primary education, from the age of 6, it is possible to learn and use a programming language.

Programming is just about that, talking to a computer, learning its language to give it instructions and modify its behavior. That language is much simpler than the English language, and from childhood the human brain can acquire its rudiments to communicate with machines.

Do computers have their own language?

The answer is “yes, many”, and you can talk to them in those languages. Computers, unlike other machines, have a general purpose. In other words, they do not clean the ground or blend the fruit, they can perform many different functions and for this they have a powerful processor and a language in which to represent those functions; everything they do is controlled by a program. And a program is nothing more than a sequence of instructions in a language, which in Computer Science is known as a “programming language”.

Furthermore, these languages ​​have a very simple structure. For example, the C programming language (one of the oldest and most widely used) consists of only 46 syntactic rules, while the grammar of the English language, as estimated by David Crystal in Making Sense of Grammar , contains some 3,500 rules.

On the other hand, a programming language is precise: its rules admit no ambiguity in interpretation; but a sentence in a human language can lend itself to different interpretations, which complicates its learning.

Of course, they are also used for different purposes. For example, we would not use C to meet at 8 pm at the door of the cinema. But if we have to express a mathematical calculation, a programming language is more appropriate, since it does not allow ambiguity in the calculation.

Python language program to determine if a number is prime. CC BY

However, this language is the most suitable to express any idea of ​​an algorithmic type, and in compulsory education, apart from mathematics, more algorithmic knowledge is taught than it may seem.

For example, physics involves doing calculations in a particular order. In chemistry, the entire formulation of compounds is based on rules. Rules in language are also taught, to write correctly (spelling) or analyze a sentence (syntax). In biology, Mendelian genetics is representable by conditions that occur in the cross.

That is, a good part of the textbooks could contain algorithms expressed in a computer language.

Therefore, knowing a programming language would have the advantage of being able to perform calculations and applications on a computer (on the web or on a mobile) and also understand many of the basic knowledge in different subjects.

Let’s teach programming in schools and institutes

Yes, let’s teach programming at school, although first we must solve an arduous problem: those who teach programming must know how to program. Less than 1% of the population knows a computer language and those who know it surely already have a job and a good salary.

Before integrating computer programming into the educational curriculum, teachers must be trained and accredited, and that is complicated.

There is an alternative solution: if the best way to learn languages ​​is to speak with native speakers, nothing better than a computer to teach us its own language.

This is the option that we have validated at the University of Malaga and we find that, with little effort, students can learn a simple programming language and the basics of computational thinking already in primary education.

A first study in this sense was carried out in 2017, showing that programming teaching can start from the first year of primary school ; and as expected there are no gender differences when learning to code ). What discourages girls from choosing a Computer Science career must depend on other factors, but in no case on their abilities.

The data speaks for itself: records of the activity of 6th grade students in 68 schools in different locations in Spain and on the ToolboX.Academy platform were used , which includes a free programming course that can be done in about 10 hours, also in format of ( children’s series ), with the following results:

Of a total of 820 students, 344 passed all the tasks of the first five units, that is, a third of the programming course proposed by this platform, including concepts of basic commands and loops (command repetition).

Two-thirds of the course was completed by 210 students, who got to use variables, data entry, and conditional structure (“ if…then… ”).

Finally, 43 students managed to pass the entire course, learning to form complex conditions (with relational operators such as different or greater than or equal to, and logical operators such as “ and ”, “ or ” and “ not ”) in indefinite loops of the type “ as long as this condition is met, do… ”.

The most remarkable thing about these results is that this progress is generally achieved without help, that is, the students learn to use these computational concepts by seeing examples and through trial and error. It is not necessary for the teacher or the teacher responsible for the group to assist them.

The conclusion is very significant: with the use of a free web tool, for only 10 hours throughout 6th grade, year after year, in six years we would achieve literacy of 5% of the youth population.

It has also been observed that when students are encouraged and given minimal support, almost the entire group completes the programming course, so, being ambitious, we could aim for complete computer literacy.

It can be deduced from this field work that teaching programming is more a political question than a technical or pedagogical one: if the computer knows how to teach, the students will learn effortlessly.

The boys and girls of today, the digital natives, not only have the opportunity to learn to use mobile phones and applications, they have to know how to program them, create them.

The new languages ​​and computational literacy are here to stay, they will be necessary to be competitive in the future and also, why not, to enjoy the wonderful logical challenge they pose to us.

Author Bios: Francisco Vic is Professor of Computer Science and Artificial Intelligence, Alberto Zamora Jimenez is Head of Technology,Miguel Mejia Jimenez is a Graduated in Computer Engineering and Raimon Segura Morera is Lead Developer – Full Stack Engineer all at the University of Malaga