Обучение детей программированию
Hello. My name is Mikhail Kapelko. I am engaged in professional software development for more than 10 years. Of these, recent years are associated with iOS. In my free time I develop games and tools for creating them.
Today I want to talk about my experience in teaching children programming, in particular, we will consider:
- organization of the learning process
- training program
- memory game
- programming tool
- the lessons
- results and plans
Organization of the learning process
Training takes place within the framework of social responsibility of business: the company provides a room with equipment, and also unites employees who want to try themselves in the role of teachers, with employees who want to educate their children. All this is entirely on a voluntary basis.
Potential teachers are divided into groups in such a way that a group of three teachers consists of one experienced and two beginners. One group of teachers leads one group of students. Pupils are divided by age and skills.
In 2018, I participated for the second time in a training program for children aged about ten years. Our group worked from October to December 2018 on Saturdays from 10:00 to 12:00. Taking advantage of my official position, I also dragged onto courses and my wife.
When I participated for the first time, our group taught children programming rather aimlessly: we invented the simplest tasks for a lesson to explain operators. As a result, at the end of the training, we did not have anything concrete that could be evaluated, boasted or analyzed.
This second time I decided that we and the children are implementing the so-called memory game. I defined the following condition as a criterion for learning success: by the end of the course each student creates the simplest memory game from scratch in 1 hour.
To achieve this criterion, I decided to check the statement "Repetition is the mother of learning", so we created every lesson from scratch. I emphasize that we did not save anything in the student account. The task was to save the game creation skill in the head, not in the computer.
Let's look at what a memory game is.
1) In the simplest case, we have 16 cards, and only 8 are unique, the other 8 are their pairs.
In the presented image we have only two cards with a cat, a dog, etc.
2) At the beginning of the game, we shuffle the cards and fold them face- down.
3) The first of the game participants opens two cards.
4) If the cards are different, return them to their original position: put them face down.
5) The next participant in the game opens another pair of cards.
6) If the cards are the same, remove them from the playing field.
The goal of the game is to remove all cards from the field. The game in this form does not include competition, so you can play one person.
On the one hand, the memory game is quite simple, on the other hand, the implementation of the game affects the main functionality necessary to create any more or less complex game:
- creating items
- their placement on the field
- selection of items
- comparison of selected items
- hide matching items
As a tool, we used the Scratch environment . It is designed to teach children programming, so every action, every operator in it is presented graphically.
For example, the following script can turn a cat 360 degrees per second:
Here is the result:
I note that this is a fairly successful solution for presenting the code graphically. For example, a paid solution, promoted today by SAP, involves the use of so-called cubes for programming:
Here you can only enter the required values in the required fields. If you need something non-standard, it will only help the script, which is again represented by the cube.
From personal experience I will say that the Scratch decision does not slow down the word at all, which cannot be said about the SAP decision.
The first lesson was introductory, so we did not use computers.
The plan was as follows:
- Become acquainted
- Play memory game
- Examine the concept of the algorithm
- Write the game algorithm
- Analyze lesson
Teachers with students stand in a circle. It equalizes everyone and makes everyone a member of the team.
The first participant calls his name and tells why he decided to attend this course. The second and subsequent participants first repeat the name and story of each previous participant, after which they call their name and tell.
It looks like this:
- Vasya: "My name is Vasya, I want to learn Scratch, because my dad made me"
- Dima: “This is Vasya, Dad makes him engage in Scratch. My name is Dima, and this is my fourth year of Scratch”
- Olya: “This is Vasya, his parents are forcing him. This is Dima, he is practically a veteran of Scratch. My name is Olya, I teach for the first year, I will study with everyone”
This dating format has the following objectives:
- Each team member should know by the name of the other team members.
- Common space
- All participants in the circle, not behind the workplace, which reduces the distraction to the games in the computer
- Both teachers and students in the same circle that balances everyone as team members without a hierarchy
- Each team member should carefully listen to the other members in order to correctly repeat what they said.
- Each team member must clearly state his idea as much as possible, otherwise the others will simply not be able to repeat it.
- Problems with remembering the names of all the fun
2) Memory Card Game
- We take two decks of cards and choose from them 8 identical ones.
- Lay the cards in a 4 x 4 grid, face down on the table
- Pupils stand around the table
- Each student in turn turns over a pair of cards
4.1. If the cards match, then remove them from the field
4.2. If the cards are different, then turn them face down
Pupils like to play board games. In the course of the game, the teachers speak what is happening.
After a couple of batches proceed to the study of the concept of the algorithm.
3) The concept of the algorithm
- We ask students first, we give the opportunity to speak, we recognize the level of each student.
- If necessary, correct the statements, if they are close to the expected answer.
- We propose to write an algorithm for transferring a person from the state "behind the door of the office" to the state of "working at the computer in the office"
Pupils like to approach the board and write on it, so we call each student in turn, so that he writes one item of the algorithm. The most active student is used as a performer of the algorithm.
4) Algorithm of the game
We propose to write the algorithm of the game, again we call everyone to add one item on the board. After completing the description of the algorithm, we again play with the cards, but this time each student must pronounce the step of the algorithm.
It looks like this:
- Vasya: "Fold 16 cards face down"
- Dima: "Turning over a couple of cards"
- Pasha: "If the two cards are different, turn them face down"
- Philip: "Turning over a couple of cards"
- Misha: "If two cards match, we remove them from the field"
5) Lesson analysis
This concludes the first lesson, and the teachers will have the opportunity to discuss both their impressions of the lesson and the students, develop approaches to the people of Chechnya and activists, and agree on future plans for the following lessons.
We had the following solutions:
- Sit quietly and activists through one to keep the balance of noise and silence. Otherwise, a group of activists creates a storm center, and a group quietly - a desert center, which slows down the learning process.
- Require students to be accurate, because activists love ape that bad for discipline.
Second and third lessons
Subsequent lessons, we again started with a warm-up: we stood in a circle, called the name and told who had done what. And if not, then why. As before, each participant first repeated what was said before, and only then spoke about himself.
In the second lesson, we created the requirements for the game field element and tried to create this element in Scratch. It is quite possible.
In the third lesson, we tried to create 16 elements and arrange them in a 4x4 grid. Here we have stalled, because pupils could not understand the coordinate system to arrange the 16 elements in the grid. It became obvious that lesson plans are only plans, and reality makes its own changes.
We had two ways to solve the problem with the coordinate system:
- Continue to teach the coordinate system with the risk of not having time to create the game until the end of the course
- Modify game requirements so that the coordinate system is not needed.
We decided to go the second way, because after all we are not a school and our goal was to teach us how to create a game, i.e. apply knowledge in practice, not in theory. Therefore, we decided to replace the 4 x 4 grid of elements with a circle of 16 elements.
This decision led me to the following conclusions:
- To solve the problem, you can often find a simpler way.
- This way is easier to understand, though less flexible.
- Go for a difficult path to increase flexibility can be later, when it is really necessary
- Simplification brings it closer to its final goal, complexity complicates it from it.
Fourth and subsequent lessons
From the fourth lesson, we canceled the stage of writing requirements, because she began to occupy most of the lesson: we again made a bias in practice, not theory, to meet the deadlines. This time all the requirements were written in advance and issued "from above". But still no one read them.
We spent the fourth and fifth lessons on creating 16 elements in the form of a circle, highlighting a pair of elements and checking for their coincidence.
From the sixth lesson to the ninth inclusive, we each time recreated the game from scratch. Each time it happened faster and faster, so from the eighth lesson we entered the standings, where we recorded the stages of creating the game and the time of each student.
By the last lesson, everyone mastered the creation of a game from scratch more or less independently in an hour or two.
Such is the table of the last lesson (names are hidden):
And below you can look at the creation of a memory game in Scratch of the student who created the game the fastest: in 30 minutes.
Results and plans
The result of learning exceeded my expectations:
- three students managed in about an hour or less
- two in about half an hour or less
This year I plan to conduct training not using Scratch, but using the Opensource Game Studio toolkit: students will work with Lua, Git and GitHub Pages.
PS Russian version is available here