Halloween is packed away, Christmas looms on the horizon, report cards are consuming way too much time…all of which means it is almost one of my favourite weeks of the year: Hour of Code week!
This year Hour of Code officially runs from December 4th to 10th. Last year our teachers and administrators worked really hard to ensure that students in all grades and across all of our schools got a chance to try one or two coding activities during Hour of Code week. I hope we do even better this year and for the next several weeks my blog posts will be dedicated to helping teachers prepare for Hour of Code in their classroom.
However, in any discussion about coding, I think it is important to start off by discussing Computational Thinking. Computational Thinking is the basis for all coding. More importantly, it provides a great base for problem solving in any arena of life, from getting dressed for the snow to building a gingerbread house to completing a school project.
At its heart, Computational Thinking involves breaking a problem down into its parts, deciding which parts are important and which aren’t, looking for patterns that can help solve the problem and then creating a series of steps to solve the problem. These steps are called Decomposition, Abstraction, Pattern Recognition and Creating an Algorithm. Let’s try using them.
So, you’re 6 years old. It’s just snowed all night and all morning, and the problem you want to solve is “how to get outside as quickly as possible once the recess bell rings.”
Using Decomposition, you might realize that the parts of the problem are: getting my snowsuit on, getting my boots on, getting my school shoes off, getting my hat on, getting my mittens on, eating my snack, getting in line, getting my toboggan and pushing my chair in.
Using Abstraction, you think that maybe your snack is not that important. After all, you can eat it at lunch, right? From past experience, you know that forgetting to push your chair in means the teacher will call you back, so you’d better make sure not to forget that step!
If you look for Patterns, you will hopefully see that you need to take your school shoe off before putting your boot on, and you need to do that twice – once for each foot! Can you spot any other patterns?
Once you’ve broken down the problem, taken out the parts that aren’t important and looked for patterns that might help you get out the door more quickly, you are going to make a plan (an Algorithm) for solving the problem! It might look like this:
- Push in chair
- Take off school shoes, put on snow boots (left foot then right)
- Pull on snow suit
- Add hat
- Add mittens
- Get toboggan
- Line up
Once you have carried out your Algorithm (run the program), you can see if it worked. Maybe you should have put on your snowsuit before your boots? This is an important step and it’s called “De-bugging” – find the “glitch” in your algorithm or plan, fix it and then test the plan again! (Anyone recognize the design cycle here?!)
Now, I realize that this is a very simple look at computational thinking, but I use it to show that even very young children can be taught the necessary skills to become computational thinkers. And the great news is that if we start teaching them these skills when they’re little, it will become second nature as they get older and the problems become bigger and more impactful.
As a teacher, you don’t need to know anything about computer coding to teach Computational Thinking. In fact, you probably do some of it already! Here are ways you can encourage these skills, regardless of the age you teach.
- Think Out Loud – Explain your own thinking to your students and show them how you solve problems. Work through the steps of CT together on a relevant problem.
- Use Flow Charts – Flow charts are a great visual way to illustrate CT. You can create flowcharts about regular daily activities like lunch procedures and keep them up in the room for kids to refer to.
- Use Real World Models – The first time I give my students an independent project, I map out a timeline and plan for completion on the whiteboard with them. We break the project down into its steps and decide on a plan for how to get everything done on time.
And finally, as a thank you gift for hanging in until the end of this post, here are 5 Computational Thinking posters I created. Feel free to make copies to use in your classroom! Computational Thinking (1)