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 math, science, and the humanities. Students who learn CT across the curriculum can begin to see a relationship between subjects as well as between school and life outside of the classroom.
CT involves a number of skills, including:
-
Formulating problems in a way that enables us to use a computer and other tools to help solve them
-
Logically organizing and analyzing data
-
Representing data through abstractions such as models and simulations
-
Automating solutions through algorithmic thinking (a series of ordered steps)
-
Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
-
Generalizing and transferring this problem solving process to a wide variety of problems
These skills are supported and enhanced by a number of dispositions or attitudes that include:
-
Confidence in dealing with complexity
-
Persistence in working with difficult problems
-
Tolerance for ambiguity
-
The ability to deal with open ended problems
-
The ability to communicate and work with others to achieve a common goal or solution
CT concepts are the mental processes (e.g. abstraction, algorithm design, decomposition, pattern recognition, etc) and tangible outcomes (e.g. automation, data representation, pattern generalization, etc) associated with solving problems in computing. These include and are defined as follows:
-
Abstraction: Identifying and extracting relevant information to define main idea(s)
-
Algorithm Design: Creating an ordered series of instructions for solving similar problems or for doing a task
-
Automation: Having computers or machines do repetitive tasks
-
Data Analysis: Making sense of data by finding patterns or developing insights
-
Data Collection: Gathering information
-
Data Representation: Depicting and organizing data in appropriate graphs, charts, words, or images
-
Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
-
Parallelization: Simultaneous processing of smaller tasks from a larger task to more efficiently reach a common goal
-
Pattern Generalization: Creating models, rules, principles, or theories of observed patterns to test predicted outcomes
-
Pattern Recognition: Observing patterns, trends, and regularities in data
-
Simulation: Developing a model to imitate real-world processes
See our Computational Thinking Concepts Guide for a printable version of this list, along with teaching tips for each concept.