What is Computational Thinking?

What is Computational Thinking?


Stock Footage Credits

Computational Thinking (CT) is a problem solving process that includes a number of characteristics and dispositions. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including the humanities, math, and science. Students who learn CT across the curriculum can begin to see a relationship between academic subjects, as well as between life inside and outside of the classroom.

This course provides an opportunity to experience some of the elements of CT, including:

  • Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
  • Pattern Recognition: Observing patterns, trends, and regularities in data
  • Abstraction: Identifying the general principles that generate these patterns
  • Algorithm Design: Developing the step by step instructions for solving this and similar problems

The International Society for Technology in Education (ISTE), Computer Science Teachers Association (CSTA) and the UK Computing at School working group (CAS) have collaborated with representatives from education and industry to develop computational thinking resources for educators.

ISTE Computational Thinking Page
CSTA Computational Thinking Page
CAS Computational Thinking Page
Google's Exploring Computational Thinking (ECT) page

Use CT in your class tomorrow

The hope is that you will be able to teach CT concepts in your classroom right away. Instead of creating all-new lessons, CT can enhance many of your current classroom lessons.

The chart below shows how computational thinking differs from computer science:


Computational Thinking Concept Computer Science Application
Break a problem into parts or steps Break a computational graph problem into 4 sections, each one to be completed by a different computer processor
Recognize and find patterns or trends Visualize data comparing microchip material and computer speed to notice a trend
Develop instructions to solve a problem or steps for a task Write a computer program to sort data
Generalize patterns and trends into rules, principles, or insights Realize complex data structures require less code than complex programming

Computer science is the study of information: How do you represent it? How do you best store it? How do you process it? Computer science is the study of computation and its application using computers. On the other hand, computational thinking includes the skills and ways of thinking that are used when writing computer programs. Now, look at the following chart:


Computational Thinking Concept Subject Area Application
Break a problem into parts or steps Literature: Break down the analysis of a poem into analysis of meter, rhyme, imagery, structure, tone, diction, and meaning.
Recognize and find patterns or trends Economics: Find cycle patterns in the rise and drop of the country's economy.
Develop instructions to solve a problem or steps for a task Culinary Arts: Write a recipe for others to use.
Generalize patterns and trends into rules, principles, or insights Mathematics: Figure out the rules for factoring 2nd-order polynomials
Chemistry: Determine the rules for chemical bonding and interactions.

In the left column, notice that all of the skills are CT skills or concepts. However, in the right column, those skills are being used in literature, economics, the culinary arts, and music. The basic skills of computer scientists and the way they think are computational thinking. The area in which you apply CT can be any subject area or topic, even the subject area or topic you teach. These ways of thinking can be used anytime you want to develop a process or algorithm to solve a problem.

You might notice in the course that there are lessons that include programming code. CT does not always result in using a programming language, but it is a great way to see what is possible. It is not a goal of the course that you learn how to write code nor is it a prerequisite that you already know how to code. If you get stuck on any part of the course, including the sections with code, please ask questions in the course community.