Computational Thinking

Back to Primers

Authors: Satabdi Basu, Eni Mustafara, and Katie Rich. Special thanks to the Cyberlearning 2016 Working Group for readings and resources (see Citation).
Printer-Friendly PDF | Google Doc for Comments | Questions? Contact CIRCL.

Overview

Computational thinking (CT), a term that experienced a surge of popularity in the 2000s, refers to a broad range of mental processes that help human beings find effective methods to solve problems, design systems, understand human behavior, and leverage the power of computing to automate a wide range of intellectual processes. Definitions vary, but there is general agreement that CT skills include the following:

  • Formulating problems so that their solutions can be represented as computational steps and algorithms;
  • Defining multiple layers of abstraction, understanding the relationships between the layers, and deciding which details need to be highlighted (and complementarily, which details can be ignored) in each layer when trying to understand, explain, and solve problems in different domains;
  • Decomposing large complex tasks into manageable modular subtasks that supports parallel execution and multiple problem solvers;
  • Iteratively developing solutions and systematically detecting and correcting errors;
  • Analyzing the efficiency of various solutions;
  • Reformulating seemingly difficult problems into solvable forms using reduction, transformation, recursion, and simulation.

While most existing definitions of CT describe it as a ‘thought process’, researchers in the field have increasingly realized the importance of focusing less on computational “thinking” and more on computational “doing”. CT becomes evident only in particular forms of practices that involve the generation and use of external representations (i.e., representations that are external to the mind) by computational scientists. This pedagogical perspective is important since it means that engaging students in computational representational practices like the process of developing abstractions is required in order to support the development of their CT skills. This perspective also aligns with the ‘learning-by-design pedagogy’, which suggests that students learn best when they engage in the design and consequential use of external representations for modeling and reasoning.

Discussions of computational thinking emerged, in large part, out of desire by computer scientists to communicate the ways in which their discipline was more than programming. Coding or programming is one way to apply and practice aspects of computational thinking, but many aspects of computational thinking — and therefore, computer science — can take place without engaging in coding. CT emphasizes conceptualization and developing ideas and algorithms for solving a problem rather than dealing with the rigid syntax of programming languages for producing artifacts that represent the solution to the problem. However, this does not mean that CT skills can be taught divorced from the use of computers. Though some CT concepts and principles can be introduced and explored through unplugged activities without the use of computers, prolonged use of such an approach deprives learners of crucial computational experiences. In other words, computers and other computational devices may not be synonymous with CT, but they are enablers of CT.

Also, it is noteworthy that though CT is often defined to draw on concepts fundamental to computer science, several CT skills are not exclusive to the field of computer science. For example, abstractions are used in all disciplines where modeling is a key enabler for conceptualization and problem solving, such as in science, engineering, mathematics, and economics. Similarly, logisticians and management scientists have studied scheduling extensively, and notions of tradeoff are central to the work of economists and engineers. Most disciplines involve problem solving, information retrieval and representation, modeling, debugging, testing, and efficiency considerations in some form or the other. Today, the wide spectrum of CT applications encompasses disciplines as diverse as science, mathematics, music, poetry, archaeology, and law.

Not surprisingly, CT is considered to represent a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use. With the proliferation of computers in our society, understanding the fundamentals of how computational solutions are designed is important for everyone. Jeannette Wing, who coined the term ‘Computational Thinking’ in 2006, argued that it should be included as a determinant of every child’s analytical ability along with reading, writing, and arithmetic by the middle of the 21st century. Just like young students initially learn to read so that they can later read to learn, they also need to learn to think computationally at an early age so they might later use it to learn complex concepts, represent solutions as computational steps, and solve problems using computational models and methods. It is no longer sufficient to wait until students are in college to introduce them to CT concepts. Students must begin to work with algorithmic problem solving and computational methods and tools during their K-12 years.

Increasing access to CT instruction is now widely discussed as a social justice issue. The stereotypical image of a computer scientist is that of a young white male bent over a keyboard, working in a room by himself. Focus on CT as a much broader, collaborative problem-solving process has potential to break this stereotype and broaden participation in the computer science field. Beyond broadening participation within computer science, CT skills can prove to be beneficial for all career fields. However, in spite of recognizing the need to introduce all students to CT concepts and practices from an early age, several CT-based programs and learning environments are still primarily used in informal and extracurricular settings like summer camps and after-school computer clubs. Engaging students in CT through motivational extracurricular CT-based activities may be a good first step, but CT eventually needs to be integrated into the K-12 curricula, either as a stand-alone discipline or integrated with existing disciplines like science and mathematics. Curricular integration will help remove the variables of self-selection, confidence, and willingness to opt for elective and extracurricular programs from the equation. This will provide all students, irrespective of gender and ethnicity, equal access to CT concepts and practices.

Next »