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.
Overview
Today I want to talk about my experience in teaching children programming, in particular, we will consider:
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.
Training program
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.
Memory game
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:
Programming tool
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.
First lesson
The first lesson was introductory, so we did not use computers.
The plan was as follows:
1) Acquaintance
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:
This dating format has the following objectives:
2) Memory Card Game
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
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:
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:
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:
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:
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, in order 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.
Last lesson
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:
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
Source: https://habr.com/ru/post/438278/