Two young boys sit beside their father at the computer desk, one is paying rapt attention while the other stares out of the office window pining for the outdoors where his roller blades and ramp are waiting. The young boy is quickly jolted back to the conversation at hand! “Programming is so important for your future son, so pay attention.” Boy number one grew up enjoying these programming lessons, and eventually became a programming engineer, whereas boy number 2 remained active in sports and didn’t pick up programming till much later in life. Yet those introductory lessons served him well and taught him to think deeply and problem solve in a logical way.
I was boy number two, and my story illustrates a few of the key challenges that we often face when trying to teach computational thinking and coding. For me it was one of ‘Why will I ever have to learn this when I have absolutely no desire to be a programmer?’. The questions and decisions around this affect both parents and teachers alike. How can we get the “actives” interested in computational thinking? How do we impress upon all that computational thinking goes far beyond coding and can develop key career skills for all?
I for one believe that computational thinking is a skill-set and a practice that must be taught early
and taught in such a way that allows all kids, regardless of the activity preference to participate and find enjoyment. Again Computational thinking goes far beyond coding and really does have a place for the jocks and the deeply active child.
I’ll share my experiences of trying to teach my very active niece and nephew how to code, and more importantly teaching them in a way that supported their motivation and passion and didn’t rely on a desire to code or program. I decided to use a tool from Microsoft’s Minecraft: Education Edition called Code Builder. Code Builder is a relatively simple coding application that supports block based coding languages like Scratch, Tynker and of course Microsoft’s new Make Code, and allows players to program a little robot inside the game called an Agent. By choosing blocks tied to Loops, Variables and Events players can make their robots do all sorts of things within the game.
Now of course when player’s program an agent to perform a variety of tasks, there is computational thinking at work, but if we want these skills to be intuitively connected to areas outside of coding or to support the motivations of non-screen-centric families we have to focus less on the screen-time and more on the thought process related to kids passions. In my case my nieces and nephews love Minecraft, but they were also extremely active kids and I didn’t feel that the motivation of simply making an Agent build for them was going to be enough. So, I thought of a solution: Lets combine some physical activity to the mix to develop computational thinking skills. It all started with a question: “How do we get our agent to jump off of a platform and jump back?”. Jumping and running of course is an intuitive skill that all kids understand, however the computational thinking process asks us to break these activities down into it’s key parts. In essence we need to plot the path that our robot will have to take to make it realistic. In physical sports it’s this aspect of plotting the actions that a coach takes when training players to play football.
So, how do we get a Robot to Jump? Well we need to understand what a jump looks like. If you’ve ever asked a 7 and 9 year old to start jump off a couch, you’ll quickly see some dangerous activity happening, and so we took the activity outside and began jumping all around. Not only were we jumping around and having fun, but because our objective was to understand a jump, we had some deeper thinking happening about the entire process of jumping.
The long and short of it is that this activity worked, engaged them in coding, in physical activity, and supported deep meta-cognitive understanding of computational thinking for these kids. An added bonus was the discussion between these two siblings about gravity and weight. But that’s for another time.
The next challenge for them when they arrived home was to practice their favorite sports together, and methodically track for each other, the steps involved in each action, and how to improve upon these. I explained it to them like this: If you look at a soccer field at any point in the game you can use the process of computational thinking to find the patterns that will help you win. But only if you practice, learn and can replicate those steps, and that is how computational thinking and coding can help you succeed with your physical activities.
Now I want my nieces and nephews to learn how to code, not because they should be programmers in their careers, and certainly not because I want them in front of screens for much of their lives. My motivation for having them learn computational thinking and coding is simple: Having the skills and becoming adept at seeing big challenges as a series of smaller pieces, understanding ‘cause and effect’, and being able to quickly solve problems that are going to support them in whatever their career choices are.
Whether you or your child will be a Computer Engineer, a Star Football player or a Car Mechanic, teaching them computational thinking, in line with their motivations and passions, will undoubtedly help them succeed.