For the past several years, I’ve participated in school-wide Hour of Code events with several of my Geometry and Algebra classes. We’ve done beginner lessons using blocks with Minecraft and Frozen. Generally, the students enjoy it. I’m excited to look at it from a more technical point of view and see how it fits with the four components of computational thinking.
According to Jeannette Wing, “computational thinking is a way of solving problems, designing systems, and understanding human behavior by drawing on the concepts of computer science.”
Wow. That sounds intense and a little overwhelming, but when you break it down into the four main components, it’s a lot easier to digest and apply to problem solving in everyday life. I think most educators would agree, problem solving is a skill that is underdeveloped in many of our students.
I headed over to code.org to hoping to find an activity I could use for the upcoming school year. I ended up choosing the Recoloring the Universe activity since I’ll be picking up an Earth Science class in the Fall. First, I think it’s important to understand the four components of computational thinking:
Algorithmic Thinking: When “students create or use a well-defined series of steps to achieve a desired outcome.” (Sheldon).
Pattern Recognition: Students use pattern recognition when they “analyze trends in data and use that information to work out solutions.” (Sheldon). The ability to generalize information and both solve problems and apply that knowledge to novel situations is crucial.
Decomposition: Decomposition is “breaking down a complicated problem into its components and working on one component at a time. (Sheldon). This is something that comes up in my classes ALL the time. Do I call it decomposition? No. But how many times have you said to a frustrated student, “Okay, let’s break this down together.” Imagine empowering a student to be able to do that on their own. Fantastic.
Abstraction: According to Sheldon, “Abstraction refers to stripping away unnecessary details to develop a generic solution, or representing a complicated system with a simple model or visualization.” (Sheldon).
If you’d like to see how my Hour (and a half) of Code fits into the idea of computational thinking, keep reading! If not, I understand – but I would encourage you to check out Recoloring the Universe. I learned so much about coding, but even more about stars. It was fascinating.
So, let’s discuss Recoloring the Universe in terms of the four components of computational thinking.
The lesson begins with a very simple explanation of how colors are created on the computer screen using R(ed),G(reen),and B(lue). I was directed to change my 100×100 square red, blue, green, then white and black and finished by experimenting and creating other colors. Next, I applied that knowledge to recolor an image of tulips then to combine two images to create a mash up (left).
The side by side video tutorial encourages the learner to play and experiment to reach their goal.
Now for the real world application, using RGB values to recolor images of stars. I was presented with 4 different images of the same star: Kes73: an x-ray image, a radio image, an infrared image, and an optical image. The goal is to recolor the images to bring out certain features of Kes73.
After looking at the remnants of a star, it was time to color and combine six images of a star forming region in our own Milky Way Galaxy. Here, the goal is to combine the different images and recolor certain phenomena (ex: gas and dust) to help understand how stars are born.
The lesson concludes by sharing a few ideas on computer science and how a similar program could be used in other science based professions like a biologist coloring a specimen under a microscope or a neurologist coloring images of the brain. I was left to colorize and combine images of Kepler’s Nova with no instructions or guidance given. I think this is THE perfect way to wrap up this lesson. Students can let their imagination run wild as they work on the final image and I expect they will.
Decomposition: There is a reason this lesson started by coloring a 100×100 block and increased difficulty and complexity with each lesson ending with Keplar’s Nova. The 100×100 block is “easy.” But as the images increased in number and elements of code were added, the goal – though more difficult – can be achieved by going back to the basics of adjusting the RGB values one at a time on one image at a time.
Abstraction: Students can use abstraction throughout this lesson. Depending on the goal, or desired output, students can create a code allowing them to look at one or two combinations of images, giving them a simpler model to work with.
Pattern Recognition: This entire program relies on pattern recognition. Students use pattern recognition when they begin to adjust the RGB values to create a desired outcome.
Algorithmic Thinking: Students use algorithmic thinking when they “create or use a well defined series of steps to achieve a desired outcome.” (Sheldon). For Recoloring the Universe, students do this by choosing RGB values to represent or highlight certain features in the Milky Way galaxy.
In conclusion, computational thinking is not just for the math and computer science classroom. These are skills students need to develop to tackle assignments in all classes and will serve them well in all areas of their lives.
PS: I came across this video in one of the articles I read – and It’s amazing. I encourage you to listen to Trevor Muir’s TEDx talk: School Should Take Place in the Real World. I’ve already sent it to my principal and one of my co-teaching partners.
Sheldon, E. (2017, March 30). Computational Thinking Across the Curriculum. Retrieved from https://www.edutopia.org/blog/computational-thinking-across-the-curriculum-eli-sheldon.
Wing, J. (2006). Computational Thinking. Communications from the ACM, 49(3). Retrieved from https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf