Programming at school, grade 3 and 4.
When asked to teach programming lessons at school I immediately thought of how great it would be to teach young children to use Kotlin. Directly after that though the challenges popped up:
- grade 3 and 4 are children age 6 and 7
- most of the children are on a starting level in learning to read
- I had no idea what to do
- I could not find any help in teaching children to code at this age
So I started to investigate by talking to other fathers and mothers who teach programming to children and by talking to their teachers. I've learned three important lessons from these talks.
- It is vitally important to have a well-defined, reachable goal before starting to teach programming
- There is an incredible amount of material available on the web for teaching to children to program
- Attention span of children this age averages around 15 minutes
So after careful considerations I have written down the following goals:
- Learn from making mistakes
- Break down large problems into smaller problems
- Learn to see patterns / repetitions in programs
With these goals I quickly decided that I did not want to spend time teaching children a programming language. They first need to learn to read, let alone learn a programming language. So there goes my Kotlin aspirations, but it also protected me from snakes, especially the poisonous Phyton.
The obvious "go to" would have been of course Scratch from MIT. Although the people from MIT did a great job in creating a platform for children to easily program in, the size of the platform makes it unusable for my purpose. Fortunately I got lucky here, a mother drew my attention to the Hour of Code from Disney, which was exactly what I was looking for. It reduced the amount of building blocks significantly and added a highly entertaining fun factor.
Now the only problem to solve is the attention span issue, which turned out te be either unsolvable or non-existent depending on the interest of the child in question.
Lesson one, unplugged coding
This lesson I started with peanut butter and sandwiches. I converted myself to a basic sandwich making robot and the children could program me. Which resulted in a lot of fun and not many sandwiches, because the robot was not so bright. All the children had fun in writing short instructions for the robot (me) and I had more fun in following those instructions to the letter. The result was a hole in the lid of the peanut butter jar (you should first open the jar before you get the peanut butter), peanut butter on the bag containing the bread (you should get a sandwich out of the bag before you spread the peanut butter on your sandwich), etc. The good thing is all kids laughed at the silly mistakes the robot made.
Second part of the lesson was a maze (chalked down on the floor) in which one child could program the other to reach the center. Luckily the children were a lot smarter than the robot, otherwise the center would have been difficult to reach. So I increased the fun again, by having four children program one other child which had to do the first thing he heard. Which resulted in a big mess in which the four started shouting contradictory instructions.
Again we had fun with making mistakes but also started to learn how to create small commands from a large path.
Lesson two, Moana
Now the "real" work started. We started with the Moana Hour of Code from Disney. The first task is to move Moana's boat two steps forward, but my first assignment was to send your boat in the wrong direction. This turned out to be quite a challenge, most children went directly for the finish spot. Luckily the exercises get more difficult quickly and even the more adept children made some mistakes. And learned from them. It started to become a standard response when children asked questions to ask them "What did you try?" and "What can you learn from that?".
Lesson three, repeat
Quickly in the Moana lessons the children run into the problem that their programs did not fit on their screen anymore (the small Chome book screens are very helpful here). This enabled the second big goal: breaking down large problems into smaller problems. If you want to sail following a square pattern, you can program that step by step. Or by programming the first leg and then repeat.
This quickly becomes a challenge during the Moana hour of code but it actually becomes an art during the next Hour of code with Anna and Elsa but that is lesson four. When the exercises got more difficult the best approach for the children was to try a solution for the first part. Check if this worked. If not improve, if it did continue. It almost became actual development with iteratively improving the product.
#Lesson four, repeat repeat With the Hour of code with Anna and Elsa it is all about the repeat and identifying the right steps to repeat. And while practicing this the children create some nice images by moving Anna around the screen.
#Lesson five After Moana, Elsa and Anna the boys in the group were very happy to see the last hour of code from Disney: Star Wars Although this started with simple moving around the screen it quickly developed into an actual game which the child could play as reward after programming it correctly.
Although most kids did not finish this hour of code, it was very stimulating for them to see how they can create their own games with some simple programming tools.
#Conclusion In the end I can say we reached the following goals:
- The kids loved to work in the Disney hour of code
- The kids learned a (little bit) that making a mistake is better than not trying
- A good basis was created for a next step in learning to program