“What is coding?” I asked the girls of Gurukulam Tribal Welfare School in Hyderabad.
“Umm..something to do with computers?” a doubtful voice muttered from the corner.
“It’s like a language” stated another.
“Yes, it’s like a language that helps us talk to computers” they all agreed.
“Yup, true” I replied, “it has something to do with languages, and something to do with computers. Today, we’ll try to do some coding”, and we distributed a bunch of sheets with arrows and smiley faces made on them.
The girls looked at the sheets all puzzled. “But sir… where are the computers?!”
Is a computer really necessary to learn to code?
Of course, we need a computer, would be the instinctive answer. After all, coding is meant to talk to these machines.
However, let’s take a step back. Before we use a language to instruct a machine, we need to think about what we need to say, and how to say it. Once we have these two steps figured out, even if partially, we can start thinking about instructing the machine using a language it understands.
The first two steps don’t require a computer. What they require is computational thinking.
The best universities in the world don’t always rely on computers in their computer science classes. They use flowcharts, pseudocode and algorithmic thinking. It’s a system that only needs one of the oldest pedagogical tools known to mankind- the humble pen and paper.
This system is used by the best programmers across the world to ideate and determine the logical flow of their programs long before the first line of code is ever written.
Let’s rephrase the question, do we need computers to train computational thinking?
No, at least not for the basic building blocks of computational thinking and coding skills. These building blocks include concepts such as sequential thinking (algorithms), loops, conditionals, variables, functions, etc. The ability to use these building blocks and stitch them together to achieve the desired outcome lies at the heart of computational thinking. Take a look at the flowchart for determining whether a given number is even or odd.
image 1. A flowchart of the algorithm to identify odd/even numbers.
That is surely interesting but looks a bit complex, dry and jargony for kids, doesn’t it? Why would they be interested in identifying odd and even numbers? Can we circumvent this motivational issue?
It turns out we can.
Using simple games, puzzles and activities is a great pedagogical tool to develop one’s intuition about programming and coding skills as well. These activities are known as “Unplugged” and have been used by various researchers and teachers to impart computer science/coding education to kids as young as 8 or 9 years old.
What did we learn from the experiment in Hyderabad?
We took these ideas from the literature on Unplugged and created our own version of these activities that engage and train computational thinking.
Breaking it down to the bare bones, we used an arrow-based programming language, where the objective was to move a character called ‘Happy’ on the given track. It was similar to the arrow-based unplugged activities used by code.org and other computer science education tools.
image 2: An example of unplugged activity used in our pilot project
Our goal was to pilot out this method in the school on students from grades 6th to 9th.
Will the students like it? Is it too easy, too hard, or boring? Does it take away the focus from learning because it’s too game-like? All these questions ran through our minds in the run-up to the pilot experiment.
We designed three types of worksheets to test these questions.
In the example above (image 2), students had to write code to help Happy (the smiley face) reach the heart. This “code” looks different from what programmers use to write software. However, writing and interpreting this kind of code engages and trains a similar cognitive mechanism. This task is conceptually similar to programming a path for a robot in the real world. The student has to sequentially plan their “program”, i.e. the path that happy needs to take and write the sequence of symbols to help the machine (a character in this) reach the desired goals.
Similarly, we tested the students on two more types of worksheets. The second one was interpreting code. Here a sequence of arrows was presented to them, and students had to trace the path that Happy would take if she follows the provided code.
The third type of worksheet was based on debugging code. Students were given a sequence of arrows containing some errors. Students were tasked to identify the error and correct it.
Despite how novel the concept was, the girls at the school picked it up real fast. In no time, they were solving the puzzles and helping out those who didn’t understand the objective of the worksheet. The girls in 8th and 9th grade barely needed our help. After a brief intro to this new language called “Arrow Code”, they read the instructions and quickly solved all the worksheets we sent their way. With each type of worksheet, the number of students clearing the worksheet increased.
The 6th and 7th graders needed some guidance and needed easier worksheets. Upon solving the easier worksheet, they were able to move on to the next level with ease.
image 3: A pic from the pilot project
This experience answered a lot of questions that were droning in our minds.
The girls were definitely enthusiastic about these activities, and they weren’t hard for them at all. In fact, we can easily scale it up. I am confident that in a few sessions they can solve puzzles requiring more complex concepts such as conditionals, loops, functions, etc.
The game-based context of the session wasn’t taking their attention away from learning either, as the students were improving with each successive sheet.
Why do it this way?
Why not just use computers? They are interactive, languages such as blockly and scratch are available for free, and students can create some great complex projects on them.
The answer to that is multifold:
Access and availability: Computers are expensive. Few schools, especially in countries like India, have access to enough resources. Lack of stable internet and electricity is another major challenge. These activities can easily be printed and distributed at scale.
Supported by research: Three decades of educational research support the use of Unplugged activities to develop computational thinking and coding skills in K12. In a 2017 study , researchers took a group of 73 students from 2 Spanish schools and divided them into two groups: An experimental group, which received training in Unplugged activities for 10 hours over 10 weeks, and a control group which received no training (a passive control group).
Both groups answered a test on Computational thinking before and after the intervention. However, only the experimental group’s performance on the test improved significantly. They saw a gain of nearly 30%!
Another study , by researchers from the Delft University of Technology, compared the impact of training using Unplugged activities with ‘Plugged’ activities i.e. computer-based activities. They randomly divided 35 students into two groups. One group received 4 weeks of training using Scratch programming language, and the other group received training using Unplugged materials. After these 4 weeks, both groups received advanced training on scratch, and they worked on creating games using Scratch.
After a total of 8 weeks of intervention, the experimenters found that both groups had a comparable mastery of programming concepts. However, students in the Unplugged group demonstrated more confidence in their skills and explored the various features and functions of Scratch more. These results demonstrate that Unplugged activities aren’t just a good alternative to computer-based activities, they can also help students be more confident in their coding and computational thinking abilities.
Engages multiple modalities: Students have to write, draw, and in some cases even physically move around to complete a given task. Such multi-modal engagement has been shown to improve learning in multiple subjects and increase student confidence in their learning .
Loved by kids: Computers excite kids, but so do Unplugged activities. Their game-based nature looks very different, and very inviting compared to what they generally learn in school.
Simplification of complex concepts: It strips away the complexities of syntax, and focuses purely on development of computational logic through play. Kids don’t have to fuss over a missed semi-colon anymore, and can instead spend that time on developing their skills.
The greatest innovators in the world have one thing in common – they enjoy learning, and love problem solving.
Sadly, the Indian education system, through its focus on rote learning and craze for marks, has conditioned generations of students to loathe learning and hate problem solving. The game-based nature of these activities might be a step in the direction of making kids enjoy the challenges of problem solving again.
: Brackmann, C. P., Román-González, M., Robles, G., Moreno-León, J., Casali, A., & Barone, D. (2017, November). Development of computational thinking skills through unplugged activities in primary school. In Proceedings of the 12th workshop on primary and secondary computing education (pp. 65-72).
: Hermans, F., & Aivaloglou, E. (2017, November). To scratch or not to scratch? A controlled experiment comparing plugged first and unplugged first programming lessons. In Proceedings of the 12th workshop on primary and secondary computing education (pp. 49-56).
: Xiao, J., Lin, T. H., & Sun-Lin, H. Z. (2020, August). Exploring the effect of multichannel multimodal learning environment on student motivation and self-efficacy. In International Conference on Technology in Education (pp. 164-175). Springer, Singapore.