Some days ago, I found myself explaining to my sister, born in 1989, what home computers were and how I used to program them when I was 10 years old. In fact, I quickly downloaded an emulator of ZX Spectrum, my first computer, and showed her how to build a very simple program to compute the age of the user according to its year of birth. She quickly picked up some instructions of Spectrum’s BASIC programming language and realized how the program worked. When I asked her — didn’t you learn this stuff at school? She shacked her head and told me that she has never learnt something like we just did. As a computer scientist, her answer intrigued me and also made me curious about how informatics is taught in elementary schools. In particular, if children between 10 and 13 years old learn programming.
Why should be important to teach programming in elementary schools? Generally speaking, computer programming is a purely intellectual activity that often requires reasoning and systematic thought — skills that can be easily translate to many other domains not directly connected with computers. Therefore, children’s analytic reasoning could be significantly boost by teaching them how to program regardless if they become professional programmers in the future. However, elementary schools seem to neglect such opportunity.
“It is not common to teach programming at elementary schools” says María Nelida Declerk, who has been an Argentinean teacher in informatics for 20 years. Declerk emphasises that “New teachers do not know programming! Nowadays, lessons for children are oriented to play with the computer.” Declerk, different from other teachers, gives lessons on the LOGO programming language for students between fourth and sixth grade. She uses a version of LOGO that displays a turtle on the screen capable to move and draw lines with different colours. “It is impressive to see what students are capable of doing with LOGO. To command the turtle, children need to master four quadrants in Cartesian coordinates, while they have only seen one in the mathematics class! When introducing four quadrants, mathematics teachers note that children already master the concept and that is because they have been programming with LOGO!”
As another indication that programming is not present in elementary schools, there seems to be a lack of books dedicated to teach programming to children. If fact, there seems to be only one recently published book in Amazon, Hello world! by Warren and Carter Sande, dedicated to teach programming to teenagers. Clearly, this situation is different from the one lived in the 80s, where there were several books written to teach programming to young students. As a 10 years old kid, I learned to program using a book with a sympathetic cartoon called Arturo (see picture), who was supposed to be of pedagogical importance for the young readers. The book covers several features of BASIC as printing on the screen, variables, inputs, branching, loops and comments. Surprisingly, these topics are also covered, with another intensity of course, by first informatics courses at certain universities. After studying 3 hours a week for two years, my class mates and me were able to finish the book. By then, we were modest BASIC programmers and only 11 years old.
I personally believe that one of the main reasons for not teaching programming at schools comes from the huge progress that informatics has been doing for the last 20 years. During the 80s, people needed to know the programming language BASIC in order to use home computers. Nowadays, computers provide beautiful and intuitive graphic interfaces that make easier to use them. I am not against progress. Nevertheless, I think that sometimes progress replaces some good traditions by not necessarily better ones.
I consider that it is time to put programming as part of elementary schools’ agendas. However, to achieve that, there are several initial questions to answer. For example, what is the programming language that should be taught? What is the programming language that could play the same role as BASIC in the 80s? I personally believe that a good candidate for this task is Python. This programming language is very light-weight in syntax compared with other mainstream languages like C or Java. Children should not be distracted by remembering to place a semi-colon at the end of every instruction or to write the right class-hierarchy path in order to use a function. In addition to that, the dynamic features of Python make programs more compact and simpler, e.g. variable declarations or type signatures are not necessary. It would be also beneficial to rely on a good textbook to drive children’s learning. Perhaps, adapting the contents of Basic for children for modern computers and the programming language Python is not a bad starting point. A simple and easy to learn programming language as well as a good textbook are a necessary combination to start pushing programming in elementary schools and benefit children from such a wonderful intellectual activity.