Computer Science is something that should be only taught in universities having big computer labs and all sorts of cool multimedia projectors and stuff, right? Wrong! At least that is what we believed when we decided to teach concepts of computer science to kids as young as 6 at Fulki, a wonderful school in Chittagong. Over the years, we held several day-long sessions for schoolkids and introduced them to many computer scientific concepts like sorting, searching, intelligent decision making and game playing through nothing other than puzzles, magic tricks and games. The result was nothing short of an overwhelming response from the children, whose smiling faces showed that they enjoyed every bit of the sessions.

Our journey started back in 2016, when Moinul Islam Zaber sir introduced us into this wonderful initiative. We travelled to Chittagong and visited the wonderful school of Fulki. For years, Fulki has strived to push the boundaries of conventional education and bring the best out of the students using a fun, free-floating curriculum. From the very first visit, it was immediately clear that Fulki is indeed a very, very special place.

Our sessions were part of a two day workshop which included students who were from outside of Fulki as well. We partitioned the students into three groups-students studying in grades 1-3 were in the junior group, another group consisting of students studying in classes 4 and 5, while students in grades 6 and 7 formed another group.

The sessions were taken in the years 2016, 2018 and 2019, and we hope to continue taking these sessions on an annual basis from here on. While the activities we conducted in these sessions differed through the years, the essence remained the same. We wanted to show that Computer Science is not something that should be reserved for the elders only, nor should it remain confined in the four walls of a laboratory or a classroom. In fact, we started each of the sessions by playing a game in the playground of Fulki.

One time, we drew a sorting network on the playground using nothing other than chalk powder. A bunch of students were lined up in the first layer, standing on each node holding a piece of paper with a number written on it. The numbers were initially scrambled among the students, but we showed them how they could easily run around the network, say hello to each other when they meet at a node, compare the numbers they were holding, and end up with the numbers being sorted among the students from left to right if they followed one simple rule each time they met-the player holding the smaller number goes to the left, and the one holding the larger one goes to the right. This is analogous to how the complex data structure of a sorting network sorts the elements of an array.

Another game we love to play each year is the guessing game. We would write a number at the back of the whiteboard, and they would have a small number of chances to guess what the number was. Each time they made a guess, we would tell them if the secret number was smaller or larger than the one they guessed. Once they were done playing the game, we showed them how the only way to win every single time was to pick the number that was exactly in the middle-the golden rule of binary search.

We showed them the concepts of binary numbers, albeit a bit less formally. We asked for volunteers for them and the only problem we had doing that was selecting a few out of so many hands. We showed them how if some of the volunteers held cards containing 8, 4, 2 and 1 dot on one side respectively, and no dots on the other, then they could show a total of 10 dots quite simply-asking the volunteers holding cards with 8 and 2 to show their dotted sides, while the rest of the volunteers showed the side with no dots (you know, 8+0+2+0=10, quick maths). Pretty soon, they realized themselves that this technique could be used to show any number from 1 to 15, and started chirping away instructions at the volunteers to help them do so.

Another particular fun exercise for us was playing a game with them where we played against them. We used to write a number, and all they had to do was call a number that was one less or two less than the one we called. For example, if we called 15, they could either call 13, or 14. Next, it was our turn to call, and we would alternate turns till someone called 0. The team that called out 0 would be the winner.

Playing this game, they soon figured out how to find an optimal strategy to win the game, and the concepts of winning states and losing states. This process of adversarial search, something that would usually otherwise be taught in an undergraduate level AI course, was grasped pretty quickly by school children when we taught it to them in the form of a playtime game.

The concepts we showed them were by no means limited to searching, sorting, and algorithms only. One particular fun activity showed kids the task of 2-Dimensional error checking using parity bits. The only difference was that instead of the boring bits, we used cards having different colours on two sides. The process was illustrated as a magic trick, where someone would become a magician and leave the room even before the trick began. One child would come up and arrange the rectangular grid using the cards, with each card facing any way he wanted. One of us would then add a few cards, one in each row and each column of the grid, in a manner analogous to how parity bits add redundancy to aid error detection. Another kid would come up and flip any one of the cards he liked. The magician, who had not seen any of this, would then reappear in the room and correctly guess which bit was flipped using the parity cards introduced earlier. A simple game, but one that greatly amused the children.

The best part of the sessions were the reception of the students, every single time. They would make intelligent plays in all of the games, be visibly excited all session long and quite simply never ran out of energy or interest. What we learnt from the sessions was that children are more intelligent and can learn a lot more than what is covered in our conventional educational curriculums. But as in all forms of education, what students learn is dependent on how they are taught. Introducing concepts to them as fun and games helps draw their attention. Through the years, our sessions at Fulki have provided us with numerous opportunities to brainstorm on what can be done to make CS a kid-friendly discipline. Many of the games we played were inspired by CSUnplugged’s videos, a website dedicated to doing much the same thing.

We genuinely hope such efforts continue to flourish, and people recognize how games and tricks are a truly magical way of making even the most difficult activities fun and interesting. We wish the best of luck to Fulki for all their inspiring efforts, and hope that our own venture expands to other schools as well.