Thank your for your subscribe
Oops something went wrong. Please check your entry

Education Series - 5 - Should we all learn to code?

The question first arose in the 1980s, with the advent of the personal computer: were we all going to have to learn to program? The development of the software industry seemed to have given one definitive, and negative, answer to this question. Yet it is coming back, with a vengeance. Why exactly should we take it seriously this time around?

March 2015
lire en français
lire en français
Executive Resume

Paris Innovation Review – Computer literacy is becoming increasingly important in this day. What are the stakes, both for students and for our society?

Serge Abiteboul – The main reason is quite mundane: IT is at the core of the digital world that we are building. To understand this digital world, to learn its ropes and to participate in it, computer literacy is vital. And if we are to be competitive from an economic standpoint, we also need to master computer technology and science. By comparison, it is as important to understand computers today as it was important to know math or physics in the 19th and 20th centuries.

US President Barack Obama has expressed it very well in this video in which he calls on young Americans to learn to program. There are programs in almost all the everyday tools we use and all the objects that surround us. From there, two approaches are possible. One approach is to say: we shall be the ones writing these programs, and in mastering them we will be masters of our destiny. The other is to let others write them and thus decide for us. It is certainly possible to live like that – using the products made by others. But from an economic point of view, it means losing our edge; it means disappearing from the world map of innovation, since innovation is more and more intertwined with coding.

Even from an individual point of view, we may also just be passive in the face of all these items and let them decide for us. Or we can decide to do something that isn’t in the manual. For example, you are managing the website of an association and there’s something that you don’t like. If you do not understand the ten lines of code that determine this one function and if you can’t write the two lines of code that will change it, you remain a slave of technology.

If one wants to fully be a citizen, if one wants to assume control over one’s destiny, one needs for example to understand what the cloud or electronic voting actually are and must be able to program a small application on their phone and customize a few lines of code on a website. And that holds true whatever one’s profession is. It is within anyone’s reach really – not more complicated than writing a report in English or designing a company’s logistics. The challenge is to become real participants and to demystify this whole field, so it does not remain the preserve of the company’s IT department.

Let us clarify the vocabulary: more often than not, computing tends to be confused with digital. What is the difference between these two terms and how do they interact?

There is a digital world and then there is computer science. Instead of reading a paper book, you read an eBook; in class, instead of having a blackboard with chalk, you have a digital table; your camera has become digital and so has your car. The world around you has gone digital. When children are taught to write, one can teach them how to use a spell checker; when they are taught to count, one can teach them how to use Excel. These may be digital tools, however the point is still about learning to write or learning to count. Similarly, people can be familiarized with the use of Google or be made aware about the risks of Facebook but you won’t find lessons about the intricacies of Google’s search engine or of privacy in Facebook. There’s no such thing as « digital lessons ». Digital teaching comes embedded with other subjects.

At the core of this digital world, there are computers and programming. IT is what makes it possible to create all the software that brings the whole digital world to life. So here you truly have a teaching, a science and an art – it’s not just about acquainting people with the tools and practices. Time and again, people will confuse learning to use digital tools with learning how to program, the latter having absolutely nothing to do with the former.

So IT is a science that needs to be taught, just like physics, chemistry or mathematics are taught. But it is also a technique. You must also learn to make your own programs, to solve problems with computers. To forget this is to forget one of the fundamental aspects of computing.

Should we teach IT as a separate course or, given its interdisciplinary nature, distill it in each of the other courses?

Let us be careful not to confuse things here. If you want to acquaint people with digital tools, then it refers to the different courses (tools to design a building for an architect, library tools and search engines for literature, calculation tools for scientists, etc.) But where computer science itself is concerned, there is but one field. There is only one kind of algorithmic thinking. Whether you’re writing a program that calculates the occurrences of certain words in the works of Shakespeare or Marcel Proust, or one that does matrix multiplication, the basic routines are the same (sequencing operations, tests, loops, etc.). It is through practice of this science that one gets to choose different programming projects, based on specific fields, just like the specific interests and experiences each child will have.

So what can be taught?

Computer science has developed a new way of thinking: algorithmic thinking, which explains how things can be carried out by programs. The concept of the algorithm has been known for a long time. When you are taught to calculate an operation, such as an addition, multiplication or division, you are really being taught algorithms. But we are now faced with much more complex situations, with the programming of intelligent tools and smart applications. So, you have to master these concepts in a more abstract manner. For example, one must learn what a loop is, which allows to iterate certain tasks.

However IT is also very practical. The beauty of this science is that you can put into practice what you have learned right off the bat by writing small, simple programs. This works extremely well as early as grade school with languages ​​like Scratch, through which children can be familiarized with programming at a very young age. The point is therefore to understand computational thinking, which is really fundamental to grasp the world around us, and at the same time to get this form of thinking to grow on you right away by writing small programs.

So one can start at a very early age?

One should start at the earliest age, because it is then that children are most receptive to new ideas. There is the slogan “learn to read, write and count.” We could add “and code.” This must be a new dimension of the common core of state education because learning to program has become as essential as it is essential to know how to read, write and count.

Obviously, IT is not just about programming, just as mathematics cannot be reduced to algebra nor literature merely to writing. But programming is nevertheless the foundation of computer science, and it wants to be taught from an early age.

Is school the best framework for this teaching? Or should it be done through initiatives emanating from civil society?

Everywhere, you will come across teachers who have already started to teach children how to program. This is also happening a lot outside of school. There are snacks, clubs, associations such as Magic Makers, which offer awesome activities outside of school. However, even if all that’s going on outside of schools is terrific, we still must realize that if we want to get to reach all children and not leave anyone out of the… loop, regular school curricula will rapidly need to integrate those courses.

And what about those who have already left school without ever having learned computing?

They can learn the ropes on-the-job. There are associations, online trainings, sometimes in the form of serious games to learn programming. People in the engineering professions really must set out to do it now. It is also essential to train teachers who have not had computing in their curriculum.

Once in cruise mode, we could envision three great school time frames, as we strongly suggested in a report for the Academy of Sciences (in French). At first, in grade school, the point is to become familiar with the major concepts, to learn the basics of algorithmic and computational thinking, and, possibly via a game, to have your first hands-on experience with programming languages ​​like Scratch. Then, junior high (middle school) shall truly be the place where every citizen learns the basics of actual computing, that is to say, actual programming along with the basics of algorithms, what information is made of, how the hardware works, etc. It is not a thorough education but let us say one of a level comparable to what junior high students learn in physics or biology. This is the foundation that will later enable them, should they need it, to specialize and acquire further skills.

Once in high school, we could envision computer lessons tailored after the course choices of students. Those who opt for scientific studies will be more interested in the mathematical applications of computing while those embarking in humanities will focus more on other aspects of the trade, such as text indexing, linguistics, etc. In today’s vocational schools, young people are already learning a fair share of computing, more than anywhere else. In fact, it is in these schools that you will find a heightened awareness of the vital necessity of learning computing.

Specifically, are there initiatives in computer literacy that have emerged around the world that lagging countries could draw inspiration from?

Some countries have tackled the challenge head-on. Overall, developed countries are being rather early birds. England in particular decided to introduce computer education by including a computing exam in the final exam at the end of high school. In Germany, where it befalls the responsibility of regions (Länder), Bavaria has reaped the benefits of a very upstream reflection, targeting double skills to recruit its IT teachers before computer science was even in the curricula. Some emerging countries have already entered the race as well, such as Israel and South Korea. The trend that we see today is that computer courses are spreading throughout the world, in developed and emerging countries alike, and increasingly early.

Serge Abiteboul
Senior Researcher, INRIA, PSL Research University