Abstract
In this article, we delve into a hermeneutic process that analyzes the term
Four decades on from its first use by an
We, therefore, believe it necessary to analyze the origins of the concept in detail, as it was constructed through Wing’s series of iterations (2006, 2008, 2011 and 2014) and the discursive ecosystem of authors that contributed at that time to conceptualizing the term. This will, then, entail delving into a hermeneutic process that is perhaps more philosophical than investigative in nature but that it can be important to highlight the solid reference points that address what is at the core of Computational Thinking, how it relates to other thought processes, and what should be the framework of the educational interventions that aim its development, independently of the educational tools (such as coding and robotics, among other possibilities) used to achieve it.
The Genesis of the Concept
Two key moments in the history of term CT - not necessarily related - must be taken into consideration. The first is at the end of Papert’s classic
In most cases, although the experiments have been interesting and exciting, they have failed to make it because they were too primitive. Their computers simply did not have the power needed for the most engaging and shareable kinds of activities. Their visions of how to integrate computational thinking into everyday life was insufficiently developed. But there will be more tries, and more and more. And eventually, somewhere all the pieces will come together, and it will ‘catch’ (Papert, 1980, p. 182).
The second key moment, more than a quarter of a century later, was when Jeannette Wing (2006) offered, albeit informally in a Viewpoint article in
However, before analyzing Wing’s first
At this point we open a parenthesis to allow ourselves the license of a certain degree of speculation, which leads us to suggest that the works of Papert and Wing that we refer to, from 1980 and 2006 respectively, can hardly be considered directly related. On the one hand, because in the strictest sense Papert’s mention of CT is collateral, as we have seen; on the other, because, no matter how well it fits chronologically and how often it is explained this way, it is difficult to think that Wing took the conceptual ecosystem that implicitly advanced Papert’s work on CT as a direct reference. In fact, no work by Seymour Papert is cited in Wing’s works that we will use for this article, not even foundationally, no matter how much tradition has often brought them together as textual and conceptual neighbours. So we venture to think that the usual post hoc, ergo propter hoc between Papert and Wing seems to need to be taken with great caution.
Nevertheless, we think it should be understood that some of the following elements are not coincidental: (1) the definition’s formal deficiencies precipitate the breadth of the concept (strictly speaking, neither Papert’s mention nor Wing’s attempt at a definition achieve the accuracy or goodness expected of a canonical definition); and (2) both inevitably look at CT in a way that transcends computer science itself, and therefore goes beyond it (3) no matter how much the link between CT and educational programming and robotics in practice leads them to be, de facto, coupled together, in many cases seemingly inseparably, this is not the basis of the concept.
Wing’s definitions
Wing (2006) and Wing (2011)
Although an obligatory place of pilgrimage within any educational approach to CT, we will not focus on Wing’s (2006) first attempt to define the concept because, a few years later, she again felt the need to provide a definition that sheds light on the indefiniteness of the term (Wing, 2011). What Wing (2006) really posited, which is cited so often and usually taken as the first definition of CT, was to bring attention to the potential of the procedural and epistemical dimensions of computer science as something useful and necessary for the whole population. Our denomination of it as the first “conceptualizing attempt” is fully conscious and avoids considering it, as is usually the case, as the “first definition”. This is coherent with the evidence that, as a definition, it is highly imperfect (among other issues, due to it violating the formal principle of equivalence or substitution between the definition and the defined term; and not containing the semantemes or minimal units of distinctive meaning that make it possible to distinguish what falls within the category and what remains outside it, a difficult but consubstantial task of lexicographical and conceptualizing work). However, this fragment of Wing’s work has become a conceptual anchor that has de facto functioned as a definition, so that justice must be done in acknowledging the role it has been performing.
In Wing’s 2011, applying more lexicographical rigor to the definition, she posited that “Computational Thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent” (p. 20). This definition resulted from the author’s conversations with Jan Cuny and Larry Synder, which had been inspired by the messages that Wing had exchanged with Al Aho the previous year. Then, just to complicate matters further, she also referred to a work in progress at the time, which, as far as we know, was never actually published (and which we will talk about later). Just as important as this definition (a proper definition, at last) is the exegesis that the author herself applied later to the terms “solution” and “problem,” which are understood way beyond mathematical concepts, as well-defined problems whose solutions do not necessarily have a specific analytical result, but also as real-world problems with solutions that could potentially take the form of long and complex software systems. And not only that, but relationships are also suggested between this way of thinking and other ways of thinking, which we will describe below. Maybe we should point out, from the beginning, that reflections about this are complex and, since to a certain extent they are always tangential, it is difficult to assess how complete they are (in the sense that they require a lot of further reflection and, also, definitions of other types of thinking related to CT, so that they can be evaluated precisely). As an example of this, it will suffice to look at the relationships between CT and other types of mental processes mentioned by Wing in her work (see Figure 1), which form the basis of what we will discuss later (Figure 2). Wing’s statements on CT relationships with other types of thought processes that conformed the analysis that, along the years, brought to the final proposed synthesized definition shown at the bottom of the figure. The type of relationship is highlighted in grey shade and the type of thought process is highlighted through an underline. The intersections of CT with other mental processes and ways of thinking.

According to Wing (2008), computational thinking is an analytical way of thinking that overlaps with systems thinking and logical thinking. In both documents, she also mentions points in common between CT (“it draws on”, “it shares”) and engineering thinking, where we include system thinking (understanding that when talking about system thinking we are talking about understanding, regardless of the system, insofar as we can talk about a natural system, an artificial system, or a social system). It would be interesting to see what is behind these two concepts as mentioned by Wing. A priori, we would say that from analysing the system we obtain information about its behaviour, while with engineering thinking we talk more of construction or manipulation (influencing the system) - engineering can be applied to a system, constructing it from scratch or modifying it, manipulating it for a specific purpose. However, with what is mentioned in the paper we cannot go further than that. At the same time as talking about engineering thinking, Wing (2008) and Wing (2011) also referred to (“it draws on”, “it shares”) mathematical thinking. In the Figure 2 diagram, mathematical thinking does not overlap with engineering thinking (or system thinking), because, we believe, engineering thinking draws on mathematical thinking but not the other way round (hence the arrow). In addition, abstraction adds to the difficulty of drawing the diagram. The importance of abstraction, or thinking abstractly, stands out in all of Wing’s works (especially in that of 2008). In our opinion, this is an analytical way of thinking that shares aspects of logical thinking, and completely encompasses mathematical thinking and computational thinking. Added to all of this, Wing (2011) included algorithmic thinking and parallel thinking within computational thinking. These in turn use thought processes such as compositional reasoning, recognition of patterns and recursive thinking. We include these types of thinking in the computational thinking set because they strongly characterize it, even if they are also shared by other types of thinking (system, engineering, mathematical) that overlap it. And this is how we arrived at our final composition of the relationship (included, overlapping, containing, etc.) of CT with other thought processes. Although the reflection it leads us to is unfailingly valuable in identifying the line-up of relationships involved, we should admit the imperfection both of our diagram (because of the graphical limitations) and of our interpretation (to the extent that, as in the case of CT, other types of thinking are not particularly biunivocal or defined in Wing’s work).
Be that as it may, the very title of Wing’s (2011) article “Computational Thinking - What and Why?” states its intentions clearly, and we should acknowledge that the importance of its contribution is as much the “What?” as the “Why?”. Taking the “Why?”, we find allusions, though they may seem only collateral, to the value of abstraction, something that adds to the context in which CT is relevant, the context of generalization (or scalability). Abstraction allows the common and essential characteristics of a set of objects to be extracted and to be represented as a single entity - and that gives us the power to scale systems and manage complexity. These are elements, as we have said, that suggest the size of the importance of CT and the reasons why, in a context of VUCA 1 , CT can be useful when dealing with simplicity, but is essential in the management of highly complex real situations. And perhaps that is why one of the ideas we highlight is a seemingly insignificant coda to the article that goes beyond the specific field of computing, robotics or programming: “Computational thinking is not just or all about computer science. The educational benefits of being able to think computationally - starting with the use of abstractions - enhance and reinforce intellectual skills, and thus can be transferred to any domain” (Wing, 2011, p. 23). It is a statement that is not entirely compatible with previous discussions, which are often too anchored in the facts and figures of the spreading of CT in schools and not in the more transcendental possibilities it offers. However, in our opinion, this is precisely what quantifies the importance of CT from a general educational perspective, something that might go far beyond computer science education.
Abstraction in Wing (2008)
The author’s reference to abstraction in relation to computational thinking is not new. In fact, in Wing (2008) abstraction had an even greater prominence than three years later, to the point that the article stated that “the essence of computational thinking is
Before that, however, it may be interesting to go back to the roots of the matter, since, although it is Wing (2008) who devoted primordial attention to abstraction within CT, reference to it could already be found in Papert (1980, p. 117), when he stated that: […] these questions are very general and touch on fundamental issues of scientific method. Newton “understood” the universe by reducing whole planets to points that move according to a fixed set of laws of motion. Is this grasping the essence of the real world or hiding its complexities? Part of what it means to be able to think like a scientist is to have an intuitive understanding of these epistemological issues and I believe that working with Turtles can give children an opportunity to get to know them.
It is very evident here that epistemological processes (and CT constantly refers to them) require this level of reduction to the essentials that abstraction implies, and that allows, among other things, the generation of patterns and laws, the establishment of algorithms, the consideration of possible solutions, etc.
The above being said, Wing’s (2008) dissertation on abstraction in relation to CT made some very interesting points. On the one hand, in the context of CT abstraction goes even further than in the contexts of mathematics or physics, for two reasons. First, because computational abstractions are not necessarily limited to the properties of algebraic expression but can go further. And, on the other hand, because computational abstractions must be able to function in the real world (Wing speaks of the “physical world”), with all the conditions that this entails. This also implies that abstractions must consider the response to errors and limits (among other relevant boundary conditions). For computational purposes, this opens up a range of solutions (rather than just a single one), which in turn implies choosing which is most correct. But this correctness is not part of a dichotomous category (correct/incorrect), since in this case the word “solution” is associated with a way of arriving at a result, and different solutions may therefore be different ways of arriving at the same result. As we can see, talking about “solution”, in this context, is still problematic (due to the partial synonymity between solution and resolution). In the case of CT, then, we must clarify what we mean by “way” or “solution” (or even “recipe”, more colloquially), that which allows us to solve a problem, and what we mean by “result” or “resolution”, in the general meaning of “resolution” as allowing us to resolve the problem that was the starting point (and here the re- in result and resolution, with the perfective meaning of “until completion”, rather than redoubling, is more than relevant, as meaning the end of the process). In fact, when we talk about “solution”, here we refer to “the recipe” (for “way”) for arriving at a result. The solution for arriving at a result is not unique; solutions, conceptually, are plural, theoretically infinite, largely a priori. This idea, for now just noted, is important for linking this definition with that of 2014, which says “expressing its solutions” and refers to expressing these in different possible ways. Each of these is a way of expressing the general solution to the problem by means of an algorithm that concatenates a series of abstractions in a symbolic language. This general solution is designed so that when specific data (input) are entered, a specific result (output) is obtained resulting from these data. In computational thinking, precisely a process of evaluation and choice of possible solutions is deployed, since we can arrive at the same result in a more or less effective, optimal or elegant way.
This leads to the critical question of defining what is “the ‘right ’abstraction” (Wing, 2008, p. 3718), which in turn involves evaluating important details (and leading us to evaluate the alternatives according to the principle of parsimony, in the Russellian sense, or according to elegance, in the classical mathematical sense).
Another important point lies in the fact that abstraction has different layers (therefore complex in essence; the more complex the system and the more complex the reality it must serve, the more layers. Having reached this point, automation must be added to the concept of abstraction; understanding that computing is precisely “the automation of our abstractions” (Wing, 2008, p. 3718). As always, this statement, which is not at all trivial, takes us in at least two directions. The first has to do with that vision by virtue of which the computing process has to abstract the essential elements of the problem and automate them in such a way that we obtain as general and scalable a solution as possible. This solution must allow the processing of any set of data (input) associated with the problem, to produce a particular result (output) from the input data (“a step-by-step procedure for taking input and producing some desired output”, Wing 2008, p. 3718). Because of its simplicity, this is a very prosaic way of putting it, but it is also charmingly explanatory at the same time. The second direction has to do with an element that we already pointed out when analyzing Wing’s (2011) definition, and that would end up gaining importance in Wing’s (2014) definition: in a context of high complexity, the human-machine relationship (often described in terms of enmity in other contexts), adds (or more) and does not subtract, to the extent that “metal tools” (machines, computers) amplify the power of “mental tools” (the abstractions we humans make). This is an assertion we find throughout Papert’s work: the aforementioned expression of “computer as an object-to-think-with” (Papert, 1980, p. 23).
Here there is another interesting branch that we could consider in depth (except that we cannot due to space limitations), which is the man-machine relationship, with all that that implies. As we have said, the need to automate abstractions in a way that allows the processing of “inputs” and the generation of “outputs” in highly complex contexts opens the door to this digression, which is not at all superficial, on how “metal” and “mental” tools add value (the latter enhance the former). Rhetorically, Wing’s (2008) article ended with the question “What is a computer?” (Wing, 2008, p. 3724). More than philosophical or linguistic, we think the question is rhetorical, and only serves to create problems of discourse (having to specify when the almost univocal “computer” of everyday language, which always refers to the machine, requires defining as “human” or “machine” in technical thinking). However, it does not generate conceptual problems. If we look at the root “comput-” and the ending “-er” it is clear that, beyond what is widely understood by “computer” (in general vocabulary conjuring up the image of a personal computer), a “computer” is an “entity that computes”, regardless of the nature of that entity (machine or human being). This is what leads us to think that the question, which ends the article, is purely rhetorical, since the body of the article specifies that the computer can be a machine (our “computer”) or a human being (a “human”). Consequently, humans compute and computing does not require a machine (two ideas that are also explicit in the text). In our view, the clairvoyance of these statements lies precisely in their obviousness a posteriori, and in the present; but they are undoubtedly a stance that means the question “What is a computer?”, five pages later, (Wing, 2008, p. 3724) (again, the author’s italics) can represent nothing more than a stylistic game with which to end the article.
Wing’s (2014) Reconsideration
It might seem that, with all these reflections, things were clear enough, but the question of how to define CT had still not been fully answered, neither with the approaches of 2006 and 2008 nor with the definition of 2011. In fact, we must wait another three years for Wing (2014) to retrace her steps, state the definition again, and specify that “Computational thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer - human or machine - can effectively carry out”. And while this version is shorter than the previous one, the differences make it significantly more accurate as the definitive definition of the concept of CT, even if it has not necessarily received the recognition or become as widespread as it deserves. Let us now consider what was different about this new version and some of the explanations Wing added to the discussion.
First of all, one of the most interesting questions is the explicit concretion, within the definition, of the nature of the information-processing agent, which becomes lexically concretized as a computer (and, at the same time, opens up the semantic extension to include both humans and machines, or even a combination of the two). If we remember the chronology, the information is not very new: it was not included in Wing’s (2011) definition in the strictest sense but in the subsequent exegesis; and in Wing’s (2008) article, as mentioned above, we saw that this issue received no less attention, to the point that in addressing the importance of abstraction as the essence of CT, Wing’s article on the exponential potential of abstraction together with “mental” and “metal tools” led her to ask – let us say rhetorically - what a computer is at the end of the article. It is interesting to see how Wing’s discourse radiated in different directions until it agglutinated at this point. Her article on abstraction and the essence of the computer came prior (2008) to the formulation of the first definition as such (2011), but it was not until Wing’s last (until today) definition that this idea was integrated, supported by two other ideas that draw on Wing’s (2011) article: humans compute, yes, and to the extent that we can be the machine that requires a computational system (using CT itself to develop it), we can do so without machines (i.e. only with “mental tools”). This brings us back, once again, to Papert (1980), who explained how computers, “metal tools”, can be objects that reflect how we ourselves compute and reflect our thought processes. If we apply this to “computational thinking”, both authors consider it to be a human skill with no need for tools, but that tools can help to develop it. As we have said, Papert expressed this through his phrase “computer as an-object-to-think-with” and Wing through her assertion at the beginning of her 2006 article, which is considered fundamental, “It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use” (Wing, 2006, p. 33).
Another important element of this new definition is the precision implied by the transition from “formulating problems and their solutions” (2011) to “formulating a problem and expressing its solution(s)” (2014). Let us consider what this entails:
(1) “Problem” has become singular, and “solution(s)” can be either singular or plural. Among other things, this highlights that a single problem can have more than one solution (in line with our reflection on the need to integrate choosing from various possible solutions into the problem-solving process). That the problem-solution relationship is not biunivocal is emphasized, and this is important because it highlights that, consubstantially, in CT there is not only the search for a solution, but the ability to choose from among possible solutions, to choose the most optimal solution in terms of efficiency, elegance and considering the boundary conditions.
(2) In the 2011 definition, problems and solutions were “formulated”, whereas here “formulating” only refers to the problem (and not the solution), emphasizing the fact that posing the problem is an essential part of computational thinking and one which permits the possible solutions to be envisaged, whether they are available or not (due to a lack of resources, for example). To formulate the problem is to understand the situation, to break down its elements, to comprehend its relationships, to understand it in depth. Undoubtedly, we are fully immersed in a process of analytical thinking that allows us to encompass CT according to Wing’s (2008) first position; and this, to a certain extent, is independent of whether a solution has been found or not. In short, this “formulating a problem” considers the process in a special way and contrasts with a vision of CT clearly focused on a finalist approach, which targets the result of the process (“solving problems”).
(3) We recover that 2008 meaning of “solution”, which does not refer to the particular result (or particular results, “output(s)”) of the problem depending on the input conditions, but to the algorithm proposed for arriving at these results, chosen according to criteria such as elegance, parsimony, or harmony with the most relevant contextual input variables in each particular context.
And (4), when talking about this chosen solution, way or algorithm, Wing (2014) uses the term “expressing” to refer to the ability to create a linguistic representation of a solution for the purpose of communicating it, whether to people or machines. The possibilities of expression of the language used (for example, a programming language) can mean the solution is expressed more or less elegantly, but, within the limitations of the language, the way in which the subject uses it also plays a role, and this may reflect their degree of development of computational thinking (and here we have an important challenge, insofar as deficiencies in the expression of the solution(s) can have a threefold cause: a low degree of development of CT in the individual; inherent limitations of the language; or limitations of the individual using the language. One, two or three of these circumstances may affect the final expression, making it far from the best expression of the solution imaginable in an ideal world).
The Roots of Wing’s Definitions of CT
As we can see, this analysis focuses on only four documents, all of paramount importance from the points of view of both conceptualization and dissemination. However, in this final section we will have to analyze not only that, but also the possible documentary roots of Jeannette Wing’s four positions on CT. In this regard, to clip the wings of our own speculation, we will only briefly comment on three additional sources, Priami (2007), Denning (2009) and Aho (2011), for the reasons presented below. Despite this limitation, however, we wish to highlight a lost piece in this whole chain, acknowledged as coming before Wing’s (2011) first canonical definition, which, as we have already seen, refers to an email conversation with Alfred Aho and work Wing did with Jan Cuny and Larry Synder. In fact, the definition we reflected on in the first part of this article, which was first published in 2011 in
Timeline of Some of the Influential Works During the First Conceptualization Attempts.
It is most interesting to see how Denning’s reference defined CT in a way that is very harmonious with the whole school of thought: “[CT] means a mental orientation to formulating problems as conversions of some input to an output and looking for algorithms to perform the conversions”, and with the same roots, “today the term has been expanded to include thinking with many levels of abstractions, use of mathematics to develop algorithms, and examining how well a solution scales across different sizes of problems” (Denning, 2009, p. 28). The author had transformed the concept of algorithmic thinking in the 1950s and 1960s and added to it what is today included in computational thinking on different levels of abstraction and the scalability of solutions. In fact, the very title of the article, “The Profession of IT: Beyond Computational Thinking”, is a clear stance, where, above all, the author wants to emphasize that CT is not unique and distinctive from computer science, which, in turn, is not characterized by CT alone.
We therefore already find a definition of CT that focuses on how problems are formulated in 2009, defining these as conversions of input data to an output, and the search for algorithms to perform these conversions. If we analyze this definition and compare it with those proposed by Wing in later years (2011 and 2014), we see that it summarizes the elements that we have been analyzing and dissecting in just a few words. Denning (2009) also defined CT as an ability, “It is the ability to interpret the world as algorithmically controlled conversions of inputs to outputs” (p. 30) and as a style of thinking that brings into play what he called the four practices of computer science: programming, systems engineering, modelling, and application. We will keep these very clear ideas about the algorithmic conversion of inputs into outputs in our thoughts, because we find them more than interesting.
As we have seen from these minimal outlines of the clear relationships between Wing’s work and the most intimately related texts, CT was the subject of constant reflection, not only for our author, but also for her colleagues, from different perspectives and with an eye on different areas of knowledge. Unfortunately, it is not (yet) time to receive the gift of a definition agreed upon by brilliant minds such as Aho, Denning, Priami, Cuny, Synder, and undoubtedly also Wing. Be that as it may, it is delightful to imagine that during the first decade of the century they all bubbled away debating what CT is, and what it is not.
The Dissemination of Wing’s Definitions of CT
We can go beyond these roots and, from our perspective, return to the desire for reflection that gave birth to this article, to the conceptual indefiniteness of this area of knowledge (especially in our field, that of education). That is why it is even more interesting to pay attention to how each of Wing’s voices has spread over time. Citations returned by the academic search engine Google Scholar (we can accept this partially bibliometric index, despite its limitations, since we only wish to target certain ideas), provide us with the data displayed in Figure 3 (only including citations from 2014 onwards, when the four texts we have analyzed had already been published). Citations of Jeannette Wing’s articles referring to CT from 2014 to the present.
Moving beyond the widespread acknowledgement of Wing as an author who has conceptually left her mark on CT as a field of knowledge, there is clear evidence that her first conceptualization, from 2006, has been accepted as a definition (bis dat qui cito dat), and that, in contrast, none of the subsequent adjustments or articles have attained the same renown. This can be seen even more clearly if we follow the trail of each of the publications, and the number of citations during the years after publication, as represented in Figure 4. The reach of the 2006 article is clearly incomparable to the rest: 9 years after their publication, the 2006 article was cited 9140 times, while the 2008, 2011 and 2014 articles were cited 2300, 623 and 326 times respectively. In our view, this is especially significant if we consider that only in the 2011 and 2014 texts do we find true definitions of CT (and not in the 2006 text, where there is a first conceptual approach, nor in 2008, which basically added a very interesting reflection on abstraction, but did not constitute a more precise definition or conceptualization). In contrast, although there was a declaration of intent to take CT out of the domain of computer science and open it up to the world in 2006, the added value found in the precision of the following decades’ definitions has been lost, largely because of their low circulation (at least compared to the reverberation of the 2006 article and without detracting from Wing’s influence, in general terms, on everything we say about CT today). This is confirmed by an initial examination of the citations of the four papers showing that, on one hand, the citations and quotes referring to the 2006 article are generalized in the papers that refer to the role of CT in k12 education (even often the ones that are limited to educational robotics and coding) and they mention to the paper as the introduction of the CT concept assuming that the definition is the type of thought and procedures used by computers engineers and that this can be useful for the whole population. On the other hand, the citations and quotations to the later papers (specially the 2011 one) belong more often to papers that analyze the concept and its implications, and in general, they also contain the citation to the 2006 paper as a starting point. Cumulative citations of Jeannette Wing’s articles, referring to CT, from the time of publication.
We should also reflect on how channels of knowledge dissemination censor the wider reach of some forms of publication and reduce their socialization (or popularization), beyond the currently much-complained-about dictatorship of “open-access”. Wing’s 2006, 2008 contributions were published through the usual academic channels (research papers and proceedings), while those of 2011 and 2014 were published openly in the broadest sense via non-academic channels (a university magazine and a themed blog). To this we should add the common tendency for theoretical introductions to many articles to focus on what has already been cited, simply because it has already been cited, without the imperative to delve deeper and clarify the conceptual reflection (so what is most cited is what has been most read because it has been most cited). Add to this the specific characteristics of the publishing channels of the two later contributions and it is easy to see why precisely the two contributions that provide definitions and reflect deeply on the concept of CT were possibly doomed to a low reach from the outset, or, at least, to a much smaller audience than Wing’s 2006 text.
Reflections and Final Conclusions
Up to this point we have conducted an exhaustive analysis of the process of conceptualizing the term “computational thinking” by Jeannette Wing in the years immediately following its popularization following her founding article in 2006, dissecting the four documents where the author addresses the concept, and the ecosystem of her collaborators. We have also included in our analysis the points of convergence with Seymour Papert’s work. These reflections provide us with a deeper vision, which allows us to interpret all the relevant elements and see how the very concept of CT has been progressively constructed in the educational field.
This whole process helps us build up a vision of CT that unites the elements that characterize it and helps us better interpret the definitions (hence the reason we consciously wanted to call all this a hermeneutic, in the same way that literary criticism is applied to literary texts). To this end, we have broken down Figure 5, imagining the sequence in which it was constructed: Final representation of a general CT process.
(1) We start with a problem that we have to solve or a situation/system that we have to interpret. In doing this, we are conditioned by laws (of nature/mathematics/society/etc.), boundary conditions and resources.
(2) We apply computational thinking to describe, in the best and broadest way possible, the solution (3) to the problem or the system. The characteristics of this computer and the computational language (4) used will condition the way we express the solution and, therefore, our algorithm (5) that must be computable by our computer (either human or machine).
(6) We return to the problem to extract from it the data for a specific case (time, place, situation) that, input into our algorithm, will allow us to compute the concrete solution for that case (7).
In short, computational thinking will have allowed us to obtain a general and abstract solution or description (ideally the best of many possible solutions) for a problem or situation, from which, by entering specific data (input) we extract a specific solution (output).
Thus, do we highlight the idea that computational thinking is the mental process by which steps are formulated that lead to the description of a situation/system and/or the general solution to a problem in an analytical, efficient and concise way. This solution takes the form of a result or useful information based on specific data processed by or introduced into the formula that has been created. Essentially, this idea and the different conceptualizations that we have been analyzing throughout this article were already summarized by Denning (2009, p. 30) in a wonderful exercise in abstraction, when he stated, as we have seen: “[CT] is the ability to interpret the world as algorithmically controlled conversions of inputs to outputs”. Having done the groundwork above, in this short sentence we can now identify many of the elements that we have broken down and analyzed in our reflection, reversing the exercise that we have undertaken so far. Thus, whoever has applied this skill (the “computational thinker”) has been able to formulate the problem (“interpret the world”) to express it as a general and abstract algorithm (“looking for algorithms”, “expressing its solutions”), which will lead to concrete results (outputs) related to specific data (inputs). It appears somewhat paradoxical that we have had to analyze so many documents in order to grasp the depth of such a seemingly simple statement.
Beyond that, it is worth emphasizing a fundamental idea that governs many of the reflections of all the authors we have analyzed here from an educational perspective (with Papert as a pioneer and the rest as strong defenders), and that is the clear focus outside computer science. Denning (2009) pointed out that there can be different levels of mastery and expertise in the practice of computational thinking, and it is precisely this idea that opened the door to Wing’s insistence that developing this mastery is suitable and advisable for the entire population, and a skill that should form part of children’s education in the same way as writing and arithmetic. And here, again, we return to Papert, who always based his reflections specifically on the development of these skills in children as a way of constructing knowledge from an epistemological point of view. All the authors have emphasized the fact that the application and development of computational thinking are independent of the use of technology in general and computer science in particular; there can be no doubt, however, that there are activities (such as programming and robotics) that, depending on how they unfold in the world of education, can help to develop it. This might depend on the degree of awareness of teachers and trainers on the epistemological and metacognitive possibilities of CT related activities, and also in their ability to transfer this awareness to their pupils. Therefore, we think that the whole analysis and final framework presented in the paper (and summarized in Figure 5) can help to the dissection process involved in the application of CT with the aim to foster this metacognitive consciousness and its possibilities of transfer.
Finally, although we are aware that beyond the period we have paid attention to, the scholarly analysis of the term, commenting as well on Wing’s conceptualization attempts, and how it fits (or it does not fit) inside Computer Science, has continued up to these days (see for example Denning and Tedre, 2022; Lodi & Martini, 2021; Mike et al., 2022), in this article we have focused on the first period, around a decade ago, where the definitions posited work as undoubted reference points due to both their solidity and their addressing of what is at the core of CT. We have not yet expanded, however, on what the mastery of CT represents cognitively or how it might be transferred to other skills: open and interdisciplinary problem-solving ability; confidence in dealing with complexity; tolerance of ambiguity; ability to find ingenious-creative solutions; critical spirit; the ability to work in a team; the ability to describe… so vindicated, discussed and debated since the construction of the concept’s first framework. Although a mastery of CT might contribute to the development or practice of these elements, they do not form part of its definition. However, attempts are currently being made to group all these ramifications into other concepts related to “computational” that are broader and reflect or contain these skills and practices, such as “computational mapping” (Guzdial, 2018) or “computational fluency” (Resnick, 2018), which enrich the theoretical and practical approach and are also of great interest.
Footnotes
Declaration of Conflicting Interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: This work was supported by the Departament de Pedagogia. Universitat de Girona (Translation grant).
