The word programming has been used to spread the fallacy that it is the ‘languages of computers’, foreign and hard to read, disconnected from other subjects, and takes years to learn. Maybe this is how sometimes the “experts” use abstract terms while introducing the learners to this concept of programming.
According to Seymour Pappert “Construction that takes place ‘in the head’ often happens especially felicitously when it is supported by the construction of a more public sort in the world” That the children program/ create ideas that can be examined, shown, probed, and even admired by not only themselves but also others?
During one of our virtual programming sessions with 8-year-olds, I met this kid who provoked my perception about learning/teaching programming to kids. In Kenya, the Grade 3 curriculum ”does not allow” them to dive deep into concepts like geometry. When you mention angles and geometry to a grade 3, some might think that you are asking them about their ‘favorite tree’ (Geometry).
In one of the stages in programming, the learners needed to have basic geometry principles understanding to proceed with some programming stages. Needless to mention, the little girl proceeded to change the angles and the bearings in terms of simple number values that we continually changed to program a bird, change their motion to pick a worm. Ideally, this shows how simple programs like Logo or Quilt can help learners develop vital cognitive skills. This young girl was fully aware that making the birds turn at 15 units will not make it pick the worm but when she changes it to 10 units it picks the worm. We progressively changed the values using a 15 units interval, 0,15,30,45,60,75,90. We agreed that it can only pick the worm when the units are between 0-10. But wait, what are we talking about here? ANGLES of course!
Learning about angles during our programming session.
The little one seemed to be aware there exists a ‘right-angled triangle’ (it could be from personal experience) or heard someone mention it somewhere. Having all these tiny pieces of information, I decided to put programming on hold and walk the little one in these vital maths concepts.
We drew a rectangle, which I then diagonally cut. The little programmer was aware that one of them is a triangle (in this case, a right-angled triangle) but the other half is not a right-angled triangle. She was convinced that it was a triangle but she was not sure if it was a right-angled triangle. It made me think for a moment. This showed that she could have only interacted with only one type of triangle.
After this, we got back to programming, where I introduced the concept of Loops and conditions. More than often, this can be so abstract. But when you think of it as crossing the road, you usually look left, right, then left (LRL), and if the road is clear you cross. This is what (Gerhardt, 2000) mentioned as taking a political direction of using ready-made messages with domesticated effects. I found this to be a powerful way to introduce IF and ELSE commands in programming to the young programmers. Why do we need all these and how do you introduce them to young kids? Find out in the next blog!