Computational Thinking
Abstract: Computational thinking, defined by Wing (2011) as the “thought processes involved in formulating problems…so that the solutions are represented in a form that can effectively be carried out by an information-processing agent,” has become the main learning goal for K12 computing education around the world. This article provides a history of computational thinking, a summary of its role in educational policy and practice and its role as a research construct, and concludes by considering the future of computational thinking. The debate over how to define and teach computational thinking can be understood as a proxy for broader questions about education.
Keywords: computational thinking, computing education, computer science, computational modeling, computational literacies
1 Introduction
As the individual and social importance of computing has grown since the end of the second world war, computer science emerged as an academic field in higher education and more recently in primary and secondary education as well. Modern educational institutions require operational definitions of content knowledge as the basis for curriculum standards, graduation requirements, standardized assessments, teacher certification standards, and other forms of setting goals and measuring progress. Computational thinking has emerged as boundary object (Star and Griesemer, 1989) between academic computer science and K12 education, tasked with providing a mutually-intelligible construct to practitioners with different needs, different disciplinary practices, and different contexts of use. Computer scientists have tended to approach computational thinking from the inside, introspectively articulating the kind of thinking made possible by thinking-with-computers which is uniquely characteristic of the field of computer science. Educators and education researchers often approach computational thinking from the outside, asking how these new skills and knowledge should be defined and assessed, and how they might fit into the broader scope of K12 learning goals. The ongoing controversy over how to define computational thinking emerges partly from issues of translation across these contexts and perspectives, but it can also be understood as a proxy for a political debate about the role computers ought to play in society and what children ought to learn in school.
This article provides a history of computational thinking, a summary of its role in educational policy and practice and its role as a research construct, and concludes by considering the future of computational thinking. Throughout, computational thinking is considered in terms of two opposing questions:
- How does computational thinking define the heart of computer science?
- How does computational thinking describe the borderlands?
2 History of computational thinking
The precursors to computational thinking predate the first working computers. Ada Lovelace, credited with writing the first computer program in 1843, recognized that planning processes of symbolic manipulations (algorithms) represented a form of human thought distinct from the machinery which would carry them out. The machine, she wrote, “can do whatever we know how to order it to perform” (1843, p. 722), and imagined a future in which computers would be able to process symbolic representations of mathematics, language, and music. Although no computer capable of running symbolic programs would be build during her lifetime, Lovelace imagined a future in which new forms of thinking would be brought about by “more intimate practical acquaintance with the powers of the engine” (as cited in Fuegi and Francis (2003), p. 24). Lovelace’s famous correspondence with Charles Babbage, who was more concerned with the mechanical details of building a computer, foreshadows the later distinction between computational thinking as a set of abstract knowledge, skills, strategies, and dispositions, and programming as an activity which concretely puts computational thinking to use.
The successful military use of computers in World War II led to speculation about how computers might also transform civilian life. Vannevar Bush, who led the United States’s wartime research and development, anticipated that computers would help people find, remember, and organize the exponentially-growing amounts of information generated by society (1945). Perlis argued in the early 1960’s that programming ought to be a standard part of a liberal education, enabling everyone to frame problems in computational terms (Guzdial, 2008). Engelbart’s (1962) goal of using computers to augment human intellect led to the invention of personal computing and ultimately today’s consumer computer ecosystem. As computers became smaller and less expensive, educator-technologists such as Papert (1980) and Turkle (1984) explored how computers might offer powerful learning experiences to children.
Papert, the first to use the phrase “computational thinking” (1980, p. 182), was interested in using computers not “to put children through their paces” (1980, p. 19) but to serve as partners in thought providing contexts and representations through which children might form personal relationships with powerful ideas. He was dismayed at the tendency of school curricula to focus on the delivery of denatured and decontextualized “content,” similar to Freire’s (1968) critique of the “banking concept of education.” Writing about probability, for example, Papert argued that “one of the most powerful ideas in our intellectual heritage is (not untypically) disempowered in its school presentation, where it is reduced to shallow manipulations that seldom connect to anything the student experiences as important” (1996, p. 4). Papert argued that computers could serve as “micro-worlds” in which children might learn powerful ideas as easily and naturally as children learn French by growing up in France. Building off the work of Piaget and Vygotsky, Papert and later Constructionists hypothesized that computer cultures might produce new developmental trajectories for children and new futures for society.
The current era of computational thinking begins in 2006, when Wing’s argument for computational thinking as a “universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use” (p. 33) catalyzed legislatures, policymakers, researchers, and businesses around the goal of CS for All, or adding computer science to the fundamental competencies every child should develop throughout primary and secondary education. Wing defines computational thinking as involving “solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science” (p. 33). The article offers a long list of examples of computational thinking, starting with concepts such as recursion, parallel processing, type checking, and indirect addressing, which have specific technical meanings in computer science but which could be applied more generally if one were to frame a problem in computational terms. Wing encourages such abstraction, providing several examples of how concepts from computer science can be used to reinterpret situations from everyday life and envisioning a future in which computational ways of thinking about the world have become widespread and privileged: “Computational thinking will have become ingrained in everyone’s lives…when trees are drawn upside down,” imagining a future in which tree-as-data-structure has eclipsed the ecological concept of a tree (p. 34).
Wing offers a number of criteria for locating the boundaries of computational thinking. These have been broadly influential in shaping the development of the concept in policy and research, as well as presciently indexing some of its key definitional tensions. First, she argues that computational thinking is “conceptualizing, not programming” (p. 35), an idea later interpreted by numerous standards documents to mean that computational thinking and programming are disjoint–a starker distinction than Wing may have intended. Furthermore, computational thinking is “fundamental, not a rote skill” (p.35), anticipating the argument that computational thinking ought to be the emphasis in general and interdisciplinary education, leaving programming to the subset of students preparing for specialized careers in computer science and engineering. Wing suggests that computational thinking “complements and combines mathematical and engineering thinking” (p. 35), an assertion explored in subsequent literature on what is distinct about computational thinking and how it relates to other forms of disciplinary thinking. Finally, Wing argues that computational thinking is about “ideas, not artifacts” (p. 35), echoing prior arguments (e.g. Dijkstra, 1989) that computer programs ought to be taught as formal mathematical systems and not in terms of their behaviors.
Wing’s definition of computational thinking would form the basis of a rapid adoption of computational thinking as a primary and secondary learning goal around the world. As the concept was put into practice in educational policy and research, tensions and contradictions emerged around how computational thinking should defined and how it should be taught. Computational thinking found its way into schools through standalone computer science courses as well as through interdisciplinary implementations across the curriculum, leaving researchers to reconcile narrow and broad conceptualizations.
3 Computational thinking in educational policy and practice
The goal of universal K12 computer science education was taken up by a coalition of public- and private-sector advocates of computing education such as the Association for Computing Machinery, Code.org, the Computer Science Teachers association (CSTA), the International Society for Technology in Education (ISTE), the UK’s Computing at School, and the Australian Curriculum, Assessment, and Reporting Authority. These groups pursued a strategy of uniting behind a clear, uniform definition of the essential skills and knowledge of computer science, and they selected computational thinking as this definition despite unresolved details about the meaning and scope of the term (Barr and Stephenson, 2011). Computer science was introduced as a standalone course (particularly at the high school level) as well as an interdisciplinary literacy which could be taught across the curriculum; as a result, computational thinking was tasked with articulating both the essential heart of computer science as well as its interdisciplinary potential.
Major reports commissioned in the United States (Wilson et al., 2010) and the United Kingdom (The Royal Society, 2012) found that schools were far from preparing students with the computing skills they would need in the anticipated digital economy, and called on governments to create K12 computer science standards organized around computational thinking. Following initial standards developed by CSTA (2011) and ISTE (2011) identifying computational thinking as a core strand of computer science, a broad coalition of stakeholders developed the K12 Computer Science Framework (2016) to guide individual states in defining their computer science content standards. This framework proposed seven core practices at the heart of computer science, and identified four of them as comprising computational thinking: recognizing and defining computational problems; developing and using abstractions; creating computational artifacts; and testing and refining computational artifacts (p. 68). The framework largely followed Wing’s earlier definition of computational thinking, emphasizing that computational thinking is distinct from computer science, that computer science is the best context for learning computational thinking, and that computational thinking should be included in standards for other subjects as well.
These efforts to define computational thinking laid the groundwork for computational thinking educational policy initiatives around the world. A 2019 review of global computational thinking educational policy initiatives (Hsu et al., 2019) found that five countries had implemented national computational thinking curricula: the United Kingdom, Australia, the United Arab Emirates, Finland, and Russia. Others, including India, Chile, Japan, China, Korea, Taiwan, and Hong Kong, have processes underway (Hsu et al., 2019; So et al., 2020). Hsu et al. (2019) found wide conceptual variety in how computational thinking is defined, as well as in how computational thinking is understood to relate to computer science and to programming. National curricular reforms vary in the extent to which they implement computational thinking by adding computer science as a new subject area or embed interdisciplinary computational thinking across existing subject areas.
In addition to interdisciplinary applications, computational thinking has been used as a bridge between formal academic computer science and other contexts. Although many authors caution that the mere use of a computer (in or out of school) does not imply the presence of computational thinking, informal contexts such as clubs and online communities have been particularly important places for learners who have been marginalized by formal computer science to develop interest and experience which may serve as the foundations of computational thinking learning (National Academies of Sciences, Engineering, and Medicine, 2021). Informal learning environments have also been particularly welcoming to sociocultural reframings of computational thinking (Kafai and Burke, 2013; Repenning et al., 2010), discussed in more detail below.
A lack of access to early computing experiences also plays a role in inequitable computer science participation (Margolis and Fisher, 2003), leading to increased emphasis on computational thinking learning opportunities earlier in high school (e.g. introductory courses such as Exploring Computer Science (Goode and Margolis, 2011)), the middle and primary grades, and even early childhood education. Wang and Proctor’s (in press) review of computational thinking in early childhood education finds significant tensions between standard framings of computational thinking which prioritize interpreting phenomena in terms of computational models and the holistic developmental priorities of early childhood education. Instead, approaches grounded in Papert’s understanding of computational thinking as a relationship between learners and computers has found more traction in early childhood contexts (Bers, 2017).
4 Assessment of computational thinking
Implementation of computational thinking standards and curricula is still quite recent so standardized assessments of computational thinking are generally not yet in place. As of 2010, “assessments for computer science education [were] virtually non-existent” (Wilson et al., 2010, p. 14). Assessment tends to drive implementation in K12 education (Eisenhart et al., 1996; Grover and Pea, 2013), so it is not surprising that the development of computational thinking assessments has been a policy priority as well as an active area of research. The development of assessments has also helped surface tensions within definitions of computational thinking, as an assessment requires precisely operationalizing a construct and resolving ambiguities in standards.
Brennan and Resnick’s (2012) exploration of how computational
thinking might be assessed remains by far the most cited framework for
assessment of computational thinking. Brennan and Resnick identify three
dimensions of computational thinking–concepts, practices, and
perspectives–and consider process-based strategies for assessing them,
including studying students’ design processes, artifact-based
interviews, and design scenario tasks. Brennan and Resnick’s focus on
the process of artifact creation rather than the product is motivated by
their primary interest in supporting youth in creating
personally-meaningful artifacts, but their argument aligns with other
arguments for attention to process. An artifact created with code does
not constitute evidence of computational thinking without also
considering the process with which it was made (“K-12 Computer Science
Framework,” 2016; Salac and Franklin, 2020).
Similarly, Denning
(2017) argues for understanding computational thinking as a
competency characterized by how people think about problems
(specifically, employing abstractions which represent a problem in terms
of a computational model), not just what they know or what they have
produced.
This view presents a challenge to the decontextualized, content-based
standardized testing characteristic of national policy initiatives.
Another difficulty in assessing computational thinking is that computational thinking appears to be tightly-bound to the modality in which computational thinking has been learned (Weintrop and Wilensky, 2015), reinforcing the importance of the relationship between cognition and the medium of representation (Wilensky, 2010). Despite arguments for the broad applicability of computational thinking, students’ skills do not transfer easily between programming languages or representations, nor is there evidence that computational thinking improves intelligence in general (Guzdial, 2015; Pea and Kurland, 1984). To address this dependence on modality, Werner et al. (2012) developed a performance assessment embedded in the programming environment and task structure students had been using to learn computational thinking.
Several recent reviews conclude that substantial difficulties remain in the assessment of computational thinking. In terms of Brennan and Resnick’s framework of concepts, practices, and perspectives, the vast majority of computational thinking assessments around the world focus on concepts, with little consensus on which concepts are included and how they are defined (Cutumisu et al., 2019). Most assessments are designed to test content knowledge without attending to process, and very few have been validated (Lye and Koh, 2014; McGill et al., 2019). Recent progress has been made in the assessment of early childhood omputational thinking, with efforts to stabilize the construct (Bers, 2017) and a validated assessment (Relkin et al., 2020).
5 Computational thinking as a research construct
As suggested by the uneven state of computational thinking assessment, the uptake of computational thinking in educational policy has outpaced its development as a research construct (Wilson and Guzdial, 2010). Since Wing’s 2006 article, researchers have engaged in a spirited debate about what computational thinking ought to mean and how it ought to be defined, measured, and taught. However, based on the distribution of citations, this debate has had more urgency within the computer science education community than in the broader literature on education (Saqr et al., 2021). Empirical research on computational thinking often begins by recounting the history of these disagreements before proceeding with an ad-hoc measure of computational thinking. The two questions organizing this article, How does computational thinking define the knowledge, skills, and practices of at the heart of computer science? and How does computational thinking describe the borderlands?, represent proximal and distal poles in a fundamental question underlying much of the controversy around computational thinking: how broad is computational thinking? (Proctor and Blikstein, 2018; Voogt et al., 2015)
5.1 How does computational thinking define the heart of computer science?
Between roughly 2006-2013, the academic conversation around computational thinking focused largely on how the construct articulated the heart of the dynamic and loosely-bounded discipline of computer science. In 2009 the US National Research Council convened a workshop aimed at defining the scope and nature of computational thinking. While the participants did not reach consensus on either topic, they did largely agree on the centrality of computational thinking in computer science, and that computational thinking is fundamentally a process of abstraction. In a subsequent article, Wing (2011) developed this idea into a concise definition of computational thinking:
“Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can effectively be carried out by an information-processing agent” (p. 1)
The workshop also considered the relationship between computational thinking and programming. Although examples of “unplugged” pedagogies (by which computational thinking is taught without the use of computers (Bell et al., 2009)) were shared, the workshop appeared to generally agree that while computational thinking is distinct from programming, code is an important representational medium for computational thinking. This is embedded in Wing’s 2011 definition, as programming is the primary (though not the only) mode of representing solutions which can be interpreted by a computer. In the words of Mitchel Resnick, “computational thinking is more than programming, but only in the same way that language literacy is more than writing… programming, like writing, is a means of expression and an entry point for developing new ways of thinking” (p. 13).
These two findings–that computational thinking describes a thought process of applying abstractions to problems, and that programming plays an important role in computational thinking–are notable in retrospect for the extent to which they have been minimized in the implementation of computational thinking in policy and practice. In the decade following Wing’s 2006 article, numerous frameworks proposed taxonomies of what should be included within computational thinking, with substantial variation (Angeli et al., 2016; Barr and Stephenson, 2011; Brennan and Resnick, 2012; Grover and Pea, 2013; Kaleli̇oğlu et al., 2016; Repenning et al., 2016; Seiter and Foreman, 2013; Selby, 2012). Abstraction (the “undisputed” keystone of computational thinking (Grover and Pea, 2013, p. 39)) was always included as a core element of computational thinking; algorithms, data, decomposition, parallelization, testing and debugging, and control structures were often included as well (Zhang and Nouri, 2019). A recent review proposed six facets of computational thinking: decomposition, abstraction, algorithm design, debugging, iteration, and generalization (Shute et al., 2017). Nevertheless, K12 computational thinking curricula and assessments disproportionately address computational thinking concepts, suggesting that computational thinking is taught as a body of knowledge rather than as a process (Lye and Koh, 2014).
Recent implementations of computational thinking have also de-emphasized programming for principled and for practical reasons. In contrast to Resnick’s quotation above suggesting that programming is like writing, Lu and Fletcher (2009) view programming as a specialized practice, unnecessary and uninviting for beginners: “programming is to Computer Science what proof construction is to mathematics, and what literary analysis is to English” (p. 260). Others have suggested that teaching programming focuses students’ attention on low-level details which are becoming less important as interaction with computers progresses to higher-level abstractions (Pears et al., 2021). In primary and secondary education, teaching computational thinking without programming has had an easier time finding purchase in interdisciplinary contexts and as the basis for pedagogical approaches which are manageable for teachers without a background in computer science.
As computational thinking gained widespread adoption in K12 education globally, concerns emerged from within the academic computer science community that the desire for broad applicability had led to an overly-vague definition of computational thinking which had lost its focus on the essential process of framing problems in computational terms (Tedre and Denning, 2022). Denning (2017) envisions computational thinking defined in terms of competencies–skills and sensibilities demonstrated in practice–while noting that assessments of computational thinking are largely focused on static content knowledge. He takes issue with curricula based on these assessments structured as “progressions of increasingly sophisticated learning objectives” rather than sequences of skill acquisition (p. 36). Even if programming is not necessary for computational thinking, Aho (2012) emphasizes the centrality of computational models (formal systems which can run automatically) in computational thinking, arguing that interdisciplinary computational thinking requires a discipline’s constructs to be represented in terms of computational models. Computational models are widely-accepted in adjacent STEM fields such as the life sciences, but in the social sciences and particularly the humanities, whose questions are more often in the mode of interpretation and subjectivity, the role of computational models is less clear.
Grover and Pea’s (2013) review of computational thinking in Educational Researcher marks a milestone in the research trajectory of computational thinking, taking stock of progress and projecting the research agenda ahead, while also mediating the perspectives of the computer science education community and the broader community of educational research. After summarizing the prior research on computational thinking (much of which, they note, was focused on defining computational thinking), Grover and Pea proposed broadening the scope of computational thinking research by focusing on interest, identity, and stereotypes contributing to a lack of diversity in computational thinking enrollment, computational thinking research grounded in sociocultural and situated theories of learning, and interdisciplinary computational thinking. At the same time, they called for more empirical research on K12 computational thinking practice, including the development of evidence-based curricula, pedagogies, and tools for K12 computer science and models for integrating computational thinking into professional development and teacher preparation. While Grover and Pea’s review does not demarcate a clean division, it marks a shift in emphasis from computational thinking as it relates to computer science to computational thinking as it relates to K12 education more broadly.
5.2 How does computational thinking describe the borderlands?
The term borderlands, referencing Anzaldúa (1987), points to liminal spaces and the possibilities of hybridity, crossing, or syncretism drawing on multiple sources. The borderlands of computational thinking are at the edge of what counts from the perspective of computer science, sometimes crossing into other disciplines or communities of practice with their own perspectives and priorities. The borderlands include teachers and students in schools and informal contexts (who may be more interested in creating meaningful experiences than fidelity of implementation), those oppressed by race, gender, or other categories (who may be indifferent or hostile to their powerful computing practices being identified as computational thinking), computational thinking in interdisciplinary contexts (where computational thinking may play an instrumental role in the service). As computational thinking has made its way into K12 practice over the last decade, the community of researchers interested in computational thinking has expanded to include those whose primary concern is these spaces and peoples.
Following the 2009 National Research Council workshop on the scope and nature of computational thinking, another workshop was convened to consider the pedagogical aspects of computational thinking (National Research Council, 2011). Although K12 teachers were not represented, the workshop affirmed the importance of teachers and pedagogical skill, and recognized the potential for computational thinking in formal primary and secondary education, as well as informal spaces. As the visibility of computer science practitioners grew within the computing education research world (led by the Computer Science Teachers Association), an alternative emerged to the theoretical debate over how to define computational thinking. The Use-Modify-Create framework (Lee et al., 2011), in which a group of researchers based in K12 schools and informal contexts chose to focus not on what computational thinking means in theory, but what it looks like in practice. The report aimed to help educators understand and teach computational thinking in the context of children’s socioeconomic and cultural contexts and their developmental trajectories. In the framework, students first use computational artifacts created by others in order to understand their external functionality, then modify artifacts to understand their inner workings, and finally create their own artifacts. This strategy grounds computational thinking in a sociocultural account of learning, aiming to support students’ inbound trajectories of participation and developing a sense of authorship and agency with the artifacts and the code in which they are implemented. The epistemic importance of teachers has only grown, with recent calls to substitute the top-down, “abstract and agenda-driven” processes for defining computational thinking and designing pedagogical approach with emergent definitions grounded in local needs and realities (Wilkerson et al., 2020, p. 265).
A substantial body of literature has documented the persistent inequities present in K12 computer science education. Equity-oriented researchers studying how mainstream computer science learning environments tend to support dominant-culture youth at the expense of their marginalized peers have found it useful to frame learning in terms of sociocultural constructs such as identity-building (Shaw and Kafai, 2020; Vakil, 2020) and participation in communities of practice (Scott and White, 2013), and to examine the relationship between computing and structures such as race and gender (Benjamin, 2019; Margolis and Fisher, 2003). However, these sociocultural and critical perspectives are substantially less present in the literature on computational thinking. The K12 Computer Science Framework (2016) recognizes the importance of practices such as collaboration, communicating, and fostering an inclusive computing culture, but clearly demarcates them from computational thinking. Similarly, the AP Computer Science Principles course, which was designed around computational thinking, views creativity and collaboration as “pedagogical strategies to be used to develop a diverse, appealing, and inclusive classroom environment” rather than as part of computational thinking (College Board, 2020). In empirical research, race, gender, and other categories are more often treated as contextual factors or moderating variables, rather than as formations shaping the nature of activity.
If computational thinking is essentially about the process of formulating problems so that their solutions can be carried out by an information-processing agent, sociocultural and critical constructs are relevant to who is formulating which problems, and to what end. Vakil’s (2018) agenda for a justice-centered approach to equity in computer science education would emphasize the social and political implications of computational thinking, and the disciplinary, civic, and political identities which authorize students and legitimize problems as suitable for computational thinking. Similarly, ethnocomputing applies the processes of computational thinking to the “knowledges, practices, and designs of Indigenous or vernacular cultural systems” (Lachney et al., 2022, p. 112). Several alternatives to computational thinking have also been proposed, such as computational participation (Kafai and Burke, 2013) computational action (Tissenbaum et al., 2019), and computational literacies (Kafai and Proctor, 2021) which view constructs such as identity, interest, power, and formations (Omi and Winant, 2001) such as race and gender as integral to the practices of computational thinking.
Finally, interdisciplinary borderlands of computational thinking have been receiving increasing attention at the K12 level, following the increasing importance of computing in research across disciplines (National Research Council, 2010). Computational thinking has been deployed in an effort to “highlight the integral relationship between computing and other fields” (Wilkerson et al., 2020, p. 264). K12 STEM disciplines have eagerly adopted computational thinking. For example, the Next Generation Science Standards include computational thinking among the core practices of science (Weintrop et al., 2016). Domain-specific “teaspoon languages” have recently been developed which “add a teaspoon of computing to other subjects.” The goal is that by the time that US students take a computer science class (typically, in high school or undergraduate), they will have had many programming experiences, have seen a variety of types of programming languages, and have a sense that “programming isn’t hard” (Guzdial and Shreiner, 2022).
6 Three framings of computational thinking
The two questions organizing this article are positioned respectively within computer science and within K12 education. They represent different stakeholders in the research community, and are oriented toward different future research trajectories, raising the prospect of fragmentation of the computing education research community. In response to a proposal that computing education ought to avoid theory bias by limiting its engagement with educational theory (Nelson and Ko, 2018), Kafai et al. (2020) argued that all accounts of learning are grounded in theoretical frames and instead proposed a commitment to theory dialogue. Their goal was to avoid the so-called “literacy wars” and “math wars” in which researchers committed to different paradigms were unable to find common ground with respect to disciplinary learning goals, what would constitute evidence of success, or sometimes even legitimate methods of research.
Toward this end, Kafai, Proctor, and Lui identified three framings of computational thinking: cognitive, situated, and critical, which distinguish the theoretical underpinnings of various projects within the computer science education research community. Cognitive computational thinking seeks to provide students with an understanding of key computational concepts and competencies. Situated computational thinking understands learning in terms of creative expression, interest development, and identity authorship and participation. Critical computational thinking recognizes that computing is not an unequivocal social good, and proposes an analytical approach to the values, practices, and infrastructure underlying computation as part of a broader goal of education for justice and participation in shaping our shared future.
Kafai, Proctor, and Lui represented these framings as three concentric circles, suggesting units of analysis at the scale of the individual, the collaborative group, and the city or society. These three framings are loosely parallel to the concepts, practices, and perspectives proposed by Brennan and Resnick (2012). Just as the vast majority of computational thinking assessments currently focus exclusively on concepts, cognitive framings of computational thinking remain dominant. As the social importance of computing continues to grow and educational stakeholders from outside of computing education participate in the academic conversation around computational thinking, the authors hope that situated and critical research will be legible to researchers whose work is largely cognitive and dialogue across framings will be possible.
The first decades of the twenty-first century have seen widespread adoption of computational thinking as an educational priority around the world, accompanied by a research base whose growth continues to accelerate (Saqr et al., 2021). As the social importance of computing continues to grow, computational thinking appears to be well on its way toward becoming a fundamental literacy at the heart of K12 education. With this integration the two questions anchoring this article, asking how computational thinking defines the heart of computer science and how computational thinking describes the borderlands, are likely to be increasingly in dialogue with each other.