Key Concepts of Computational Thinking - Digital Promise

Key Concepts of Computational Thinking

Our “Key Concepts of Computational Thinking” framework supports teachers in identifying where their students can leverage computational thinking to enhance their learning. Within these eight key concepts, teachers in every subject have found intersections with what their students are expected to know and know how to do.

Drawing from both learning sciences research and feedback from educators, the key concepts of computational thinking are divided into two categories: foundations and practices. Foundations are the cognitive processes necessary to write computer programs. Practices combine the foundations with additional skills and knowledge to solve an applied problem, whether that end result is a computer program, a better comprehension of a biological ecosystem, or an increased appreciation of how human migration patterns relate to geographical landscapes.


  • Abstraction is the process of identifying and representing only the most important parts of a system. When students order the steps of a process, sort things into categories, or any other technique to simplify a complex idea or system, they are creating an abstraction.
  • Decomposition is closely related to abstraction, in that it is the process of breaking a system down into its component parts. This is a necessary step to be able to abstract these parts by selecting the most important elements, sorting them into categories, and placing them in a structured order.
  • Pattern recognition is when we identify the arrangements and relationships between parts of a system or data set. Pattern recognition is key to identifying causes and correlations and ultimately allows us to make predictions about future behaviors of a system or component of a system.
  • Testing and debugging is vital to any or learning practice or production process. Whether we are building knowledge or artifacts, the final part of the process is to ensure that these new constructs function, and to fix parts that do not work. Testing is a well understood term as a check for learning accuracy or functioning of a creation. Debugging is a term from computer science that also includes the idea that we will fix anything our tests discover as inaccurate or not functional.


  • Creating algorithms: Whether coding a computer program or building a flowchart to share a complex process, algorithms can be used to represent procedures important to any subject.
  • Working with data: Computation can support the collection, structuring, analysis, and presentation of data, allowing students more tools to investigate questions important to their learning.
  • Understanding systems: Applying the computational thinking foundations give us a framework to break down and understand complex and dynamic systems, which can be made even more effective when we can use computational tools such as simulations to learn from.
  • Creating computational models: Computational models and simulations help others understand systems and data. When students create new computational models they are applying not only all the computational thinking foundations, but are also combining all the applied practices generate algorithms that allow a computer to represent our understanding of a system and the data that informs it.

Practices are typically applied to create or use a computational tool (computer program, simulation, data visualization, etc), but may also be applied to create analog tools as well (flowcharts, system diagram, data graph, etc).

Each of these practices requires application of all the foundations, to varying degrees. For example, when creating an algorithm, students will have to apply all the foundations as they decompose a process into its component parts, recognize patterns between those parts to identify causes and effects or repeated elements (loops), develop an abstraction that can represent the procedure in a way that can be replicated by a computer or another person, and then test and debug their algorithm to ensure the procedure delivers the expected result time and time again.

Educator Micro-Credentials for Computational Thinking Practices

The Computational Thinking: Practices stack of educator micro-credentials recognizes educators for creating learning experiences where students can build competencies with these practices. These micro-credentials are framed around practices because the degree to which students have built foundational skills cannot be assessed until they are manifested through the applied practices.

To earn a micro-credential, teachers submit evidence of student work from classroom activities where they have applied one of the computational thinking practices (working with data is divided into two micro-credentials), as well as documentation of lesson planning and reflection. Visit Digital Promise’s micro-credential platform to find out more and start earning micro-credentials today!

Sign Up For Updates! Sign Up For Updates

Sign up for updates!