In my last EdSurge article, “Computer Science Goes Beyond Coding,” I wrote about the difference between coding and computer science, to help us understand what we mean by phrases like “Teach kids to code” and “Computer science for all.”
In that article and in many other articles, there is another term that appears often: “Computational thinking.” Well, what is Computational Thinking (CT), and how does it differ from Coding and Computer Science—especially when it comes to classroom practice and instruction?
What is Computational Thinking (CT)?
My short definition: CT is a strategy that uses many of the powerful ideas in computer science to solve problems.
Let’s get into a simple, but longer definition. When given any problem, can we formulate it so that it can be solved using the power of computers? A computational thinker is one who collects data and analyzes it to understand the problem. That person then decomposes (breaks it down) into simpler problems. Instead of solving only that problem, you look for patterns, remove details and abstract so you can solve all problems of that type. You define the steps to solve the problem (the algorithm) and if possible, build a model to simulate, test and debug the solution. See my doodle below explaining these components of computational thinking.
The Background on Computational Thinking
Computational thinking was a term that became popular in 2006 with computer scientist Jeannette Wing’s article in Communications of the ACM, in which she called computational thinking a fundamental skill for all. She wrote:
CT education (especially at the K-8 level) is definitely not about turning out coders or computer scientists. It is about teaching everyone to succeed in the new digital world, enabling them to solve problems using this powerful strategy. For this reason, many education programs prefer to use the term computational thinking—and not computer science or coding—in their resources and instruction. Take ISTE and CSTA, who collaborated to create an operational definition and advocate for CT in the classroom. More recently, Google created an online course on CT in addition to providing valuable CT resources for integration in different content areas. And for a number of years, Scratch, a popular block based programming language—explains CT with a discussion on computational concepts, practices, and perspectives.
One note: It is important to recognize that the term “computational thinking” was used much earlier than all this by the late Seymour Papert in his 1980 book, Mindstorms. However, his definition may not mean the same thing as Wing’s definition and subsequent use.
Computational Thinking Resources: How Can You Add CT to Your Classroom?
Do students have to learn to code to learn computational thinking? While some may argue that the answer is definitely yes, others discuss how it is more about solving the problem, and not necessarily about designing and implementing it in code. Coding for a new project or debugging/remixing code is definitely a fun and obvious way to learn many components of CT. However, there are many CT lessons teachers can use in any subject area that do not require coding. See some examples below:
- English Language Arts and History: Lesson plan using Google spreadsheets and Google Ngram viewer. Students use of spreadsheet functions to evaluate common usages in language.
- Math: Problem-solving with the use of Desmos education resources. This Desmos lesson plan shows students how to predict how long it will take a phone to charge by looking at data and creating a model.
- Social Studies: Check out a lesson from the many Wolfram Alpha education resources. Students use the computational knowledge engine Wolfram Alpha to find the shortest flight plan around the world, and study data on these cities along the route in this lesson plan.
- Science: Students experiment with several built computer models of simulations of science systems like Water cycles, ecosystems etc using the MIT tool Starlogo Nova. They can use simulations to understand science and modify code, if needed. See curriculum resources at Code.org’s CS in Science page.
These days, it is critical that we give every student an opportunity to be creators of technology and understand how to solve problems, using the powerful ideas behind computational thinking. But at the end of the day, whatever term you decide to focus on with your students—computer science, coding, computational thinking—is less important than pushing students to move beyond the mere consumption of technology, and into creation and problem-solving.