What is Computational Thinking?
Computational thinking is the step that comes before programming. It’s the process of breaking down a problem into simple enough steps that even a computer would understand. We all know that computers take instructions very literally, sometimes to comic results. If we don’t provide computers with instructions that are precise and detailed, your algorithm might forget vital actions that most people take for granted.
For example, consider a simple activity like brushing your teeth. At first it sounds like a simple enough task, but in fact, brushing your teeth involves many simple steps. First, you’ll need a toothbrush and toothpaste. You’ll need a sink with cold water. You’ll need to put the toothpaste on the brush. Don’t forget to turn on the water and run your brush underneath. As you see, such a simple activity actually involves many steps, if you miss one step or put one out of order you might end up with a huge mess!
Computational thinking helps students develop skills that are attractive for future employment opportunities. Computer science is the fastest growing job market and students will skills in coding are highly sought after job applicants. While the hard tech skills are very important, it’s the softer skills of reasoning and problem solving that employers really find attractive. These skills for success are the key to understanding why computational thinking is so valuable.
While there are obvious benefits for future employment, it’s the development of critical thinking and emotional competencies that set up students for long-term success. When children learn computational thinking skills, it helps them to develop skills important for not only STEM subjects, but also across the social sciences and language arts. In fact, a recent study demonstrated that computational thinking skills were highly correlated with a non-verbal measure of intelligence.
When children develop computational skills they are able to articulate a problem and think logically. It helps them to break down the issues at hand and predict what may happen in the future. It’s helping them to explore cause and effect and analyze how their actions or the actions of others impact the given situation. These skills can have powerful impacts on children and how they manage their relationships with those around them.
Key Skills for Computational Thinking
There are four key skills in computational thinking:
- Pattern Recognition
- Pattern Abstraction
- Algorithm Design
Decomposition is breaking down complex problems into smaller, more manageable chunks. With young children, you can teach decomposition by getting them to teach you how to perform a simple task. Any simple activity like brushing teeth, making breakfast, or reading a book will work. Students will need to break down the task into small simple steps. Be sure to give them a challenge and only do what is asked of you! With this activity, kids will quickly see how important it is to give the EXACT instructions.
Decomposition allows students to assess the problem at hand and figure out out all of the steps needed to make the task happen. One way to teach older students the skill of decomposition is to have them build something by only showing them the finished project. Give them the supplies needed, and get them to make it without instructions. Students will need to figure out the steps needed to complete the final project.
Decomposition is an important life skill in the future when students and adults need to take on larger tasks. Students will learn ways to delegate in group projects and build time management skills.
Pattern recognition is simply looking for patterns in the puzzles and determining could any of the problems or solutions we’ve encountered in the past apply here? What have we learned in the past that may help us sort out this problem? If you’ve ever built a piece of IKEA furniture, you’ll understand the importance of patterns. When building an IKEA drawer unit it will likely take you much longer to assemble the first drawer than the fourth or fifth. When we repeat steps in our build we learn how to solve the instructions more quickly and learn from our mistakes. The painstaking process of assembling that first part teaches us the skills to perform the process more efficiently in the future.
With young children we can use examples of everyday life to teach the concept of patterns (and loops for that matter), good examples are eating; the repetition of bringing each bite to our mouths, chewing, and swallowing.
There are lots of ways to teach pattern recognition in the classroom. Younger students may benefit from exploring patterns using music or colored blocks. Older students may learn about patterns by looking at the periodic table or exploring the patterns seen in multiplication charts. Students who love LEGO can use their building skills to explore patterns. In LEGO sets there are often repeated patterns for similar parts of a build. For example, a LEGO set may require 4 wheels to be built the same way. Teachers could give students an object to build that has several repeated patterns and only give instructions for the first part.
Check out this video the Computer Science Education Research Group that has some awesome ideas for discovering patterns in the classroom.
Pattern generalization and abstraction
Pattern generalization helps students learn to identify the details that are relevant to solving the problem and ignoring the details that aren’t relevant to the issue at hand. Identifying the crucial information in a problem and disregarding the irrelevant information is one of the hardest parts of computational learning.
Escape rooms are an example of a popular activity that helps to build on the concepts of pattern generalization and abstraction. Participants will have to solve a series of puzzles, riddles, and locks to escape their room in record time. Escape rooms often have lots of irrelevant details and props designed to throw the participants off course. Only the best abstractors will be able to sort out the relevant details for solving their puzzle. A classroom escape room activity is a perfect way to get kids using their abstraction skills while having fun.
Younger students may benefit from a building activity where a variety of extra pieces and objects are given that aren’t part of the design. Students will have to understand which pieces are important to the design and which are irrelevant.
Algorithm design is setting out the steps and rules needed to follow in order to achieve the same desired outcome every time. An easy way to teach this concept to young learners is to give them a task and tell them to write down the steps. A common one is the steps to making a peanut butter and jelly sandwich. Have each student write down all the steps and then have them trade with another student. Using only the directions in front of them have them make their sandwiches. This will comically illustrate the importance of including small directions like “using a knife” or “putting the pieces of bread together” to form the sandwich.
Josh Darnit illustrates this concept beautifully in his viral video where his kids describe the EXACT instructions to make a PB&J sandwich. Check it out below!
Computational Thinking Activities and Lessons
There’s a wide variety of resources available to help educators plan lessons for students working to improve their computational learning skills and many are free! These resources range from basic for beginners (as young as preschool!) to more advanced computational thinking concepts for older or more advanced students.
- Code.org put together this 25-minute lesson as an introduction to computational thinking for students in 5th and 6th grade.
- Hopscotch has a wonderful list of 10 computational learning activities for students in grades K-12.
- Ignite My Future has an in-depth list of resources for k-12 educators teaching computational learning and computer science related topics.
- Indiana Bloomington University offers free lessons and templates for computational learning lessons for students as young as grade 1.
- Here at Teach your Kids Code we designed a LEGO computational thinking activity for Brain Power Boy.
- For high school age students or adults, Harvard’s most popular undergraduate course is a free open source class on computational learning for non-computer science majors
Computational Thinking in The Classroom
It’s easy to get started with learning computational thinking in the classroom. You can use many of the activities and resources listed above to bring the power of computational thinking to your class. However, if you prefer to read more in depth, here are some book suggestions to get you started:
- Computational thinking and coding for every student
- Teaching Computational Thinking in Primary Education
- Coding as a Playground
Computational thinking is important!
As you can see, computational thinking is an important skill for students to understand. The skills students gain from ‘thinking like a computer’ will set them up for future success. Have you brought computational thinking to your classroom? I’d love to hear how it went! Let me know in the comments below.
Pin for later!
Katie is mom of two rambunctious boys and a self-proclaimed super nerd. With a background in neuroscience, she is passionate about sharing her love of all things STEM with her kids. She loves to find creative ways to teach kids computer science and geek out about coding and math. You can find her blogging at Teach Your Kids Code and in her spare time, documenting her families travels at Tear Free Travel.