Programming Education from Early Childhood and its Significance
Introduction
As part of CGK International School's efforts to "raise real global kids", we started programming education in our preschool optional classes from April 2018. As you may know, English education has become a compulsory subject in elementary school, starting from the third grade, and at the same time, programming education has also become a compulsory subject in elementary schools.
For a long time now, English learning has been at the top of the popularity ranking of children's lessons, and many people seem to understand the importance of learning English, even if only vaguely. In fact, the number of foreign visitors to Japan in 2017 was 28.69 million, 31.19 million in 2018, and 31.88 million in 2019, increasing every year before the Covid 19 pandemic, and clearly indicating that Japan is moving in a more global direction.
However, there is still a lack of awareness about the significance of programming, and in particular, many people do not feel the need to start programming education in early childhood.
It's important to be able to speak English, but what is really important is what you can do in English. We believe that it is important for children to develop non-cognitive skills such as perseverance, social skills, self-esteem, and curiosity, and the importance of these kinds of skills seems to be gaining attention worldwide.
CGK believes that it is important to develop non-cognitive skills in addition to language (English), skills, and specific skills (so-called "cognitive skills") in order to "raise real global kids". As a way to develop both of these skills, we have started programming education in our preschool optional classes.
Why Learn from Early Childhood?
First of all, non-cognitive skills (interpersonal skills), which are deeply involved in all aspects of life, are not innate but can be intentionally nurtured. And as with cognitive skills (critical thinking), it is especially important to develop these skills at an early age.
CGK has built a variety of curriculums, but why do we offer programming education? There are two reasons for this.
First, the purpose is to learn Computational Thinking. Computational thinking is the ability to think logically about things, such as what combination of actions is necessary to achieve the series of activities you intend, and how to improve them to get closer to what you intend.
Second, it is to nurture a spirit of deep inquiry through trial and error. It's important to have repeated "experiences" of trial and error so that we can develop a spirit of inquiry to pursue a variety of things; from the very trivial to the very important. Indifference and a mind that gives up easily are things that are detrimental to future growth.
In summary, in order to survive in today's society, programming education is beneficial to improve not only critical thinking skills (cognitive skill) but also interpersonal skills (non-cognitive skills), and it is important to start from early childhood in order to nurture these skills.
Programming education is not the only way to develop these abilities. Since it is also very important to provide activities and education in group life at the school, CGK has introduced programming education as an optional class for those who wish to take it.
The Ministry of Education, Culture, Sports, Science and Technology's Stance on Programming Education
As mentioned above, the New Courses of Study include the field of Information Education. These guidelines call for programming education in the following manner.
"Programming education is designed to give children the experience of being able to instruct a computer to perform a process that they intend, while fostering "computational thinking" and other skills that will be universally required in the future, no matter what kind of job they pursue. The purpose of this program is to give students the experience of being able to code. The objective is not to learn coding."
"Computational thinking is the ability to think logically about what combinations of actions are necessary to realize the series of activities you intend, and how to combine the symbols that correspond to each action. Then how to improve the combination of actions to get closer to the intended activity."
Reference source: 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
Another goal of programming is to help students realize that the world today (and in the future) is supported by information technology, and to help them foster information processing skills by making connections with the knowledge and skills that they have learned in the past.
The idea that in the future, finding needs or problems on one's own and then creating solutions and new values will become increasingly important, has spurred a major transformation in education. The traditional system of a National Testing Center for University admissions is being replaced and the educational curriculum is shifting from a single vertical system of Japanese, mathematics, and social studies to a cross-sectional one. Certainly, education is undergoing a period of great change.
With the implementation of the New Courses of Study, the Ministry of Education, Culture, Sports, Science and Technology (MEXT), the Ministry of Internal Affairs and Communications (MIC), and the Ministry of Economy, Trade and Industry (METI) collaborated to launch the "Future Learning Consortium" with education and IT-related companies in March 2009. The purpose of this consortium is to promote the development of digital teaching materials and to build a support system for instruction in schools so that programming education can be implemented smoothly.
This shows that programming education is an important project for the entire country.
What it Means to Learn Programming at CGK
The children who attend CGK are taking all kinds of lessons outside of CGK, such as preparation for elementary school entrance exams, dance, swimming, music, ballet, etc., and some of them lead busy lives with schedules as hectic as those of adults. Even though we have a long way to go in life, this is the most important time to lay the foundation, so we believe that it is essential to create a more effective and efficient environment.
For this reason, CGK teaches programming in English, so that students can develop their English language skills, as well as their critical thinking skills and spirit of inquiry.
The final goals we are aiming for will include the following:
- For students to actualize the games and rules they have invented in their minds.
- Then explain what they have done in English.
This requires imagination, but also the ability to logically construct and create the steps to express what has been imagined. In addition, explaining what you have created leads to asserting your own opinions, which can be expected to improve self-expression skills, something that Japanese people are not particularly good at.
About Viscuit
Here we would like to explain Viscuit, the programming language used by CGK.
First of all, there are quite a few programming classes for elementary school students, each employing a variety of programming languages. On the other hand, there are very few programming classes for young children. This is not because it’s difficult to teach programming to young children, but because very few programming languages have been developed that can be understood by young children.
There are a variety of programming languages in the world, such as Java and Ruby, but visual programming languages such as Scratch and MOONBlock have been developed so that children can understand them. These languages are mainly for elementary school students, but Viscuit is a more visual language that can be played intuitively even by very young children.
In Viscuit, the numbers and pictures are rewritten from the left side to the right side using what are called "glasses". For example, let's say you want to make a program that sorts the following numbers from 1 to 5 into an ascending order.
Prepare the seven glasses as shown below, and place the numbers on the left and right as you want to rearrange them. If you look at the top pair of glasses on the left side of the diagram below, you can see that there is a number "21" on the left side and a number "12" on the right side. This means that if there is a sequence of the number "21", it will be changed into "12".
When this is done, the ten numbers in the above figure will be reordered as follows. This is the programming of Viscuit.
You can make simple movements or changes in the drawing as shown in the picture below.
↓ ↓ ↓
You can also create simple games as shown in the picture below.
Also, you can easily create geometric patterns as shown below.
In this way, Viscuit's simple mechanism of "rewriting" from left to right using "glasses" sparks the children's imagination and allows them to intuitively create various representations.
Incidentally, the geometric pattern above is just a pattern using one pair of glasses: when there is a green triangle (left side), place a red and blue bar while going slightly down to the left (right side). With just one rewrite, children can create this kind of diagram.
Visual Programming for Elementary School Students
Viscuit can of course be played by elementary school students. Although the term "developmental" is not officially correct, this is a programming language that is generally considered to suitable for elementary school students.
Scratch
This is the best known programming language in the world, and was originally developed by researchers at the Massachusetts Institute of Technology.
The right side of the above figure has the instructions (glasses in Viscuit), and the picture on the left moves according to the instructions. Compared to Viscuit, you can see that it is a little closer to a general programming language.
MOONBlock
MOONBlock is also known as "Maeda Block", and the idea came about when the developer tried to teach Mr. Maeda about the enchant.js system (the foundation environment for making games), and he was unable to understand the conditional branching in programming. The idea for this teaching tool came from this.
It looks and works the same as Scratch, but Scratch's approach is to visualize the flow of the programming language to help you understand the concepts, while MOONBlock's ultimate goal is to make programming applicable to the professional world. It was not intended for educational use. That being said, the programming flow created visually is simultaneously sourced in JavaScript and can be viewed at any time.
The programming shown above, in which a bear falls from above and becomes smaller when it hits a tank moving left or right, is automatically created in JavaScript as well.
Both Scratch and MOONBlock have the same effect in terms of developing logical thinking skills, but if you want to go further in the world of programming, MOONBlock may be the better choice.
Programin
Programin is a language for children developed by the Ministry of Education, Culture, Sports, Science and Technology. The specifications are basically the same as Scratch, with the only difference being the UI (user interface (appearance and usage)). The UI is different, so which one is better would depend on the child's preference.
Summary
This article has been about programming for children, but most people have not consciously been exposed to programming in their daily lives. As for the English language, we use words like spoon, fork, and table without thinking about it, and English signage is abundant around the city, so we feel familiar with it. In fact, the same is true for programming. The home appliances we use in our daily lives, such as refrigerators and microwave ovens, operate only because of programming.
As mentioned in the beginning, the purpose of learning programming from early childhood is not to be able to program. It is said that AI will replace more than half of the jobs in the world in the future, therefore, it is very important to learn programming (or other methods) of developing a spirit of inquiry, critical thinking skills, and higher-level creative abilities.
If you have never been exposed to programming before, you may be skeptical about the usefulness of programming education in early childhood, but at CGK, we want to help create an environment that will nurture "real global kids" by developing their "language skills," "spirit of inquiry," and "critical thinking skills" through this programming education.