Paris Innovation Review – First things first. What is code?
Nicolas Danet – Code can be defined in many ways. First of all, codes are programs that run our machines. Our tools, computers, phones would be lifeless without codes. Code is the closest we can find to a machine’s soul. It is what allows us to give it according to our needs and uses. Code is a syntax that can automate tasks by using algorithms. This is the first definition.
But code can also be defined as a language. Since it is based on algorithms, we tend to think that it is only a field for mathematicians and engineers. In reality, many literature specialists have taken interested in coding and invented new programming languages. Some people have even written poetry with code! Students from Stanford University created a club that mixes both poetry and programming. Code can be perfectly considered as a way of talking and expressing things.
In a sense, learning code is similar to learning a foreign language: early stages can be tough, but little by little, we begin to understand the logic of the language – something everybody is capable of, because speech is a universal capacity.
Therefore, we can all learn to code. But do we all have to?
That’s right, anyone can learn to code, including children. With suitable programming interfaces, even children can code without any problem. No need to be a genius in programming or hold a PhD to start programming. To extend the simile of learning a foreign language, no need to be Shakespeare to make yourself understand in English. It’s the same for code! It’s not very complicated to take a few steps in coding or to understand a programming language on a basic level. In fact, most people deal with a few lines of code on a daily basis each tune they type an URL address in their Internet browser. In a browser, it’s the only place where a fragment of text related to programming shows on the surface. Everything else is embedded within the GUI. Everybody knows that removing the entire sequence after .com brings you back to the first page. Understanding this simple fact is starting understanding the basics of programming.
According to Douglas Rushkoff, one of the major authors of cyberculture in the United States, a contemporary dilemma is “program or be programmed.” It is probably slightly excessive: we don’t all need to become mobile phone programmers just because we all have a mobile phone. We will always use tools that we aren’t able to reproduce. However, if we want to be able to interact with an environment increasingly made of code and not be completely passive in this environment, we need to understand the basics of coding. We should definitely not to let this capability in the hands of a caste or elite.
Citizens need basic knowledge and that’s why awareness about programming makes sense. The same way we learn to read and write, it is healthy to have at least some experience with writing code and “reading” the digital world that surrounds us.
To me, it’s almost as necessary as civics. Without a proper teaching of how democracy works, a citizen will never be able to find his place in society. Similarly, if we don’t understand the logic of programming, citizens will feel less free in a world made of code. Let’s take the example of the Google search engine that everybody uses several times a day. If we don’t understand how it works, how the information is indexed, where it comes from, why a query returns many results and so forth, we can easily be deceived by this tool. Never assume that the results given by the search engine grants access to a form a truth whereby, if a result doesn’t appear in the first few lines of results, it is therefore irrelevant.
In short, you are suggesting that it is important to give students a digital culture, to raise their awareness of code. Of course, this is part of the civic mission of schools. But is school really the best place for teaching this subject?
The debate on teaching code at school has emerged during recent years in almost all Western countries, where announcements were made in its favor. However, it is always difficult to change a whole school program and we don’t have enough computer teachers to make programming a core subject, such as maths or English. Similarly, when France introduced algorithmic in 2010 in the high school curriculum, it caused problems for teachers, who weren’t trained for it.
One can also ask why coding should be a specific discipline: if code is like writing, then all disciplines are concerned.
I would express the problem in other terms. In my opinion, it is less important to focus on integrating code into educational curricula than adopting the point of view of the student and understanding what will be most beneficial to him.
We often complain that children spend too many hours in front of screens and that’s probably right. But above all, we need to make sure that once they are in front of the screen, they aren’t only in a passive attitude. This is where coding can play a crucial part. If children are able to start coding, through appropriate interfaces, they will quickly realize that they can have fun through programming. Therefore, they will have a completely different approach to IT tools.
At this point, the question of the learning paradigm is fundamental: is it better to start with theory or to learn through practice and experimentation? Personally, I don’t you can understand code without giving it a go yourself. It’s always best to start by practice rather than by reading books of code theory. That’s how I started to learn by writing lines of code when I was a kid. My codes were far from perfect, but it didn’t matter. The important thing was to understand their context and the way they worked. Algorithmic thinking is better learned through experimentation than in theory books.
But is school the most suitable place for this approach?
Not necessarily. This type of learning can taught outside school, during after-school time. Several initiatives of this kind are under way in France (Coding Goûters, Magic Makers, Devoxx4kids, Tralalère, Kids Coding Club, etc.). The culture of code and computer programming is very different from that of school. At school, there are hierarchies: teachers, students, levels... Conversely, the world of coding is mostly based on autodidacts and networks of support. In any case, this is how this whole universe was created. It would be a shame not to incorporate these ideals of horizontality and collaboration in the teaching of code, keeping it different from traditional academic subjects. In a second phase, these initiatives, in the fringes of traditional school, could be regrouped and labeled to develop them further. Besides, testing new ideas and integrating them in the fringes is a very “digital” way of thinking.
This approach would also allow a partial response to the question of human resources, that is to say, the massive recruitment of teachers or the equally massive effort implied by the introduction of code in the curricula of primary or secondary schools. However, if I understand correctly what you have said, on the medium term, the school system should incorporate these extra-curricular initiatives. One can even imagine that if the digital universe has to change school, code could be used as a Trojan horse to initiate this change, allowing for the development of a different culture of learning. How do you see the future of school?
Ideally, it should be much more collaborative than it is now. Children need to learn through interaction with others. It is a very good way to consolidate knowledge. If a student needs to explain something to his classmates, he will need to strengthen his own knowledge first. In this type of context, the teacher’s position in the class will also change. The teacher will be a kind of catalyst rather than somebody who simply transfers knowledge. Ideally, this collaborative dimension could be extended to exchanges with classes from other countries within the framework of an Erasmus program in primary and secondary education.
The school of the future will also focus on creativity. Learning through experimentation and provide solutions to everyday problems: making a website, designing a small program to automate a set of tasks, programming connected objects, playing with a light sensor, etc. In a sense, code is very similar to other creative fields, such as visual arts or music: in programming, a given problem may very well give rise to different, more or less elegant and effective, solutions. Ultimately, learning coding is a way of discovering and deepening style and developing creativity.