J. Paul Gibson began teaching programming to teenagers with annoyance. A computer science teacher at the State University of Ireland, by 1998 he was fed up with the ignorance of his students. “I was watching 18 and 19 year olds having difficulty mastering elementary programming concepts that I learned at the age of 12,” recalls Gibson, who independently learned how to program in the Sinclair ZX81. “I realized that I had not yet seen programming in the school curriculum, and I thought that maybe one of our problems was that we were approaching him too late.” When rumors about the Gibson course had spread, elementary schools in Suburbs of Dublin are also interested in his services.
By the early 2000s, Gibson was using game development puzzles to teach eight and nine year old children the basics of Java. His success in this age group gave rise to the question: what age is it too early to program?
Gibson read work on the psychology of learning, which stated that it was impossible to achieve this from children who had not yet learned to read and write. But when he made a couple of test forays into the collectives of five- and six-year-olds, the children learned his lessons with amazing ease.
With the help of a small Java applet, kindergarteners were able to write a program for playing tic-tac-toe based on simple rules that the children formulated in the group. Using colored balls and thread, he taught children to create algorithms on graphs - one of the important components of programming. “In our opinion, our work demonstrates that you can start learning programming even before students have mastered reading and writing,” Gibson (who now teaches in France) wrote in his 2012 article. “Children aged 5-11 years have such potential abilities to learn algorithms and calculations that it would be a shame to wait until they become adolescents to start teaching them basic concepts.” However, this thought seemed too radical to most educators. While the idea of teaching children and teens is becoming popular — thanks to the efforts of people like Bill Gates or basketball star
Chris Bosh — not many people believe that kindergarteners can learn to subordinate computers to their will.
')
The general opinion is that so young children simply do not have the ability to understand such an esoteric topic as programming.
A sorting game developed by computer scientist J. Paul Gibson for teaching children the concept of algorithms.But such pessimism contradicts not only the experience of Gibson and other pioneering teachers, but also the experience in linguistics. Extensive research has shown that since the young brain easily learns languages, it is best to acquaint children with foreign languages as early as possible. That is why many ambitious parents are now actively promoting kindergartens with intensive Chinese teaching - they want to give their children the best opportunity to learn the key language of the upcoming "Asian century".
What these parents apparently do not realize is that the very same biological mechanisms by which children can literally absorb the Chinese language probably make them susceptible to computer languages as well. Of course, kindergarteners will not become b-plus-plus gurus, but they can definitely begin to develop skills that will provide them with a lifelong ability to write code fluently.
And the promotion of this ability should be a priority for American schools, because the code - and not Chinese - will become the present "
lingua franca " of the future.
You may remember the turtle. In the early 1980s,
the Logo programming language, with its famous cursor in the form of a turtle, was a "trick" of the American elementary school. It was expected that by creating intricate pictures with the help of simple commands for the Logo team, children would develop skills to work with
Apple IIe , which just began to appear in their rooms.
But Logo did not meet expectations. The main reason for this was not the language itself, but poorly developed teaching methods: many teachers simply sat students for computers once a week for computers and hoped that everything would work out by itself.
The collapse of illusions coincided with the advent of funds that turned school computers from research into electronic librarians. “There were CDs, then the World Wide Web - and it was no longer necessary to teach the teams to communicate with the computer,” says
Yasmin Kafai , a professor at the University of Pennsylvania.
For decades, programming has disappeared from elementary school, even as computer science has become an increasingly popular topic of study in college. It seemed that there was a cultural consensus: children should be taught certain "computer handling skills", and programming is for adults.
However, in the past five years, a number of breakthrough projects have begun to refute this consensus. In addition to Gibson’s lessons on tic-tac-toe and graph theory, there is Scalable Game Design, a training course developed by the University of Colorado, in which children are invited to develop their own version of the game
Frogger . At school
PS 185 Harlem, children from four years old use the Cherp language to program robots doing housework. Similarly, they are engaged in overseas: in Estonia there is an initiative called ProgeTiiger, which is aimed at teaching first-graders basic programming.
The common feature of all these initiatives is not to concentrate on memorizing, how certain tools are used, but to get familiar with the general concepts that are the basics of programming: sequential execution, branching, debugging.
So, helping students develop their first Frogger, Scalable Game Design teachers encourage them to first think about the elements of the game - the frog and the deadly machines - and then about the possible interactions between these elements. Children gradually learn to create rules and conditions that add up to a logical, functioning whole.
Games created by junior high school students during the Scalable Game Design training course. Comments from young programmers: (1) “The goal is to get to the helicopter.” (2) “Avoid stones and collect coins.” (3) “We play as zombies and try to get to the diamond. Walk with the arrow buttons. Avoid ghosts, and not lose. "The fact that young children can cope with such complex tasks should not be a surprise - given the fact that we know about their ability to master languages. Five-year-olds are far superior to older children when studying Inspani or Chinese, because the younger brain is better (in theory, anyway) adapted to the formation of “procedural” memories - those that penetrate the psyche so deeply that they are called into life rather reflexively, rather than effort of will.
Evidence is beginning to emerge that as the brain matures, its ability to form procedural memories is impaired in favor of the declarative memory, which we use to memorize facts. The lack of the latter is that access to it requires a sensible effort - this is a big minus when you try to add a sly foreign verb on the fly. Much better if all these conjugations became natural to you, because you learned them when your procedural memory worked best.
It seems that no one has researched exactly how programming languages are taught, but there are reasons to suspect that they are best perceived by students at the time when they are set to form procedural memories.
“I would suggest that the same general-purpose memory systems that underlie language learning in children and adults are also probably the basis for teaching programming languages,” said Michael Ullman, director of the brain and language laboratory at Georgetown University Medical Center. The key reference in favor of this viewpoint is evidence from the field of music: great violinists began to study the instrument not at the age of 20, but being three or four years old - at the age when procedural memory is most susceptible.
And what is music, if not the form of the code - a series of abstract signals that must be ordered in a special way to give pleasure to the human ear?
In the ideal world, kindergarteners should be taught both programming and a foreign language. But if an educational institution is forced to choose one of two things, then you can find strong arguments in favor of programming. The most obvious argument, of course, is economic: the demand for software developers is already significantly higher than supply — and is expected to increase by 30 percent by 2020 — which is two times higher than the average for all other professions. (It is difficult to imagine a scenario in which these vacancies will be surpassed by vacancies that require in-depth knowledge of Chinese.)
In this case, the goal of learning programming is not to create an army of bydlokoderov for Facebook and Google.
Just as a second language mastered in adolescence is believed to provide cognitive advantages at a more mature age, so early mastering of programming improves what teachers call “computational thinking” - the ability to solve problems using abstract thinking. And even for students who will never start programming seriously - whose innate passion lies in the field of philology, not programming - the ability to understand code has value.
As Douglas Rushkoff says, ignoring programming is like relying on taxi drivers instead of learning to drive. After half a century, we will most often communicate not with the Chinese, but with machines. So let's teach children to command them - and not vice versa.