As noted in the preface, NRC workshops are not designed to produce consensus. However, although there was little general agreement among workshop participants about the essential nature of computational thinking, a number of questions did emerge that are worthy of attention in the future.
WHAT IS THE STRUCTURE OF COMPUTATIONAL THINKING?
Throughout the course of the workshop, participants expressed a host of different views about the scope and nature of computational thinking. But even though workshop participants generally did not explicitly disagree with views of computational thinking that were not identical to their own, almost every participant held his or her own perspective on computational thinking that placed greater emphasis on particular aspects or characteristics of importance to that individual. (These different perspectives are described in Chapter 2.)
Given this divergence in individual emphases, one possibility concerning structure is that computational thinking is simply the union of these different views—a laundry list of different characteristics. On the other hand, such a perspective would be both incoherent and deeply unsatisfying to most workshop participants, and there was general agreement that a more coherent perspective is needed. Further thought about
many questions emerging from the workshop is thus warranted; these questions include:
What is the core of computational thinking?
What are the elements of computational thinking?
What is the sequence or trajectory of development of computational thinking?
Does computational thinking vary by discipline?
Some of the logical subquestions that follow include:
What are the logical relationships between the various elements of computational thinking?
What elements of computational thinking were not discussed in the workshop that should be included in subsequent discussions?
How and to what extent, if any, is the ability to program an essential aspect of computational thinking? What should be the definition of “programming” in this context?
Answers to these questions would provide some structure to computational thinking as a systematized mode of thought. In a 2007 article,1 Thomas Cortina of Carnegie Mellon University suggests that David Harel’s Algorithmics: The Spirit of Computing2 is a good point of departure for developing a coherent structure for how different elements of computational thinking relate to one another.
HOW CAN A COMPUTATIONAL THINKER BE RECOGNIZED?
Workshop participants grappled with the question of how to determine an individual’s competence with computational thinking. Some workshop participants asked how one would determine that a student has mastered basic elements of computational thinking, just as one might master basic reading, writing, or arithmetic skills. Others asked how one might certify teachers as having both competence in computational thinking and the ability to teach computational thinking. In Ursula Wolz’s words, “What does it mean to create teachers who have that kind of
literacy, both to read the languages and so that they can think about it and express it to their students, and also so that they become facile writers?… to make sure that what we are doing is teaching them how to read and write, not how to do phonics.”
Several workshop participants noted the importance of context in computational thinking, expressing the view that just as learning arithmetic goes beyond more than knowing the algorithms of addition and multiplication to being able to apply these algorithms in real-world situations, being a competent computational thinker must include the ability to apply computational thinking to actual problems. That is, even if it is feasible to articulate clearly the content of computational thinking, such content becomes meaningful only in some specific context. One must use computational thinking in a context and must understand the nature of the context to apply computational thinking skills effectively.
The question of generalizability is also important. Experts in one field are not necessarily successful in exploring other fields. Experts may be more facile at learning in related domains than students who are not yet expert in any particular domain, but a lack of understanding of the related domain will limit the success even of experts. So, arguably, another part of computational thinking is the ability to apply its content to multiple domains and to recognize the connections between those applications.
Along these lines, Richard Lipton expressed this sentiment as follows: “The greatest challenge to a computational thinker, to any thinker, is stating the problem in a way that will allow a solution.” What are you really trying to accomplish? The ability to recognize when “the same question is being asked” or “the same problem presented” can facilitate use of computational thinking in new disciplines.
WHAT IS THE CONNECTION BETWEEN TECHNOLOGY AND COMPUTATIONAL THINKING?
Workshop participants were divided on the centrality of technology to computational thinking. Some expressed the view that at its core, computational thinking was independent of technology—that being a competent computational thinker did not necessarily imply anything about one’s ability to use modern information technology. Some participants argued that computational thinking is an emergent property of technological advance. As technologies develop they enable new forms of computational thinking. Others believed that the connections between information technology and computational thinking were so deep that it effectively makes no sense to regard the two as separate. In this view, the computer—and notions of computer programming—can make the con-
cepts, principles, methods, models, and tools of computational thinking tangible, in much the same spirit that LOGO was first inspired.
WHAT IS THE BEST PEDAGOGY FOR PROMOTING COMPUTATIONAL THINKING?
A great deal of education research in recent years suggests (1) that students can learn thinking strategies such as computational thinking as they study a discipline, (2) that teachers and curricula can model these strategies for students, and (3) that appropriate guidance can enable students to learn to use these strategies independently. In many cases, a key element of “appropriate guidance” consists of the capabilities afforded by a suitable computational environment and toolkits, such as programming languages for computing and modeling languages for noncomputing domains that are particularly helpful in promoting computational thinking.
Recent exploratory research on technology-enhanced learning suggests that computers can facilitate this process by guiding students as they explore complex problems, use scientific visualization, and collaborate with peers.3 Such learning environments may also increase the effectiveness of teachers by synthesizing results from embedded assessments, allowing teachers to monitor progress in real time, and by handling routine tasks.
Exploring these questions will be a major focus of the committee’s second workshop.
WHAT IS THE PROPER INSTITUTIONAL ROLE OF THE COMPUTER SCIENCE COMMUNITY WITH RESPECT TO COMPUTATIONAL THINKING?
Although there is obviously a close (though not fully understood) cognitive and intellectual connection between computational thinking and computer science as a subject of study, the role of computer science as a discipline and as a community of individuals who call themselves computer scientists in defining and structuring the content of computational thinking is much less clear.
For example, Robert Constable noted that today, university-level discussions regarding computational thinking education (or, more precisely, computing) are usually set forward by a department of X that believes in the value of computing as a tool for effective study of X—and thus focus on computational thinking in the context of X. But these efforts rarely focus on the abstractions and concepts that computer scientists believe cut across specific disciplinary applications of computational thinking.
Constable further pointed out that even in colleges of computing and information, the discussion of computational thinking does not always reach out to the entire university. This disconnect occurs despite the attempts of some of these colleges to “teach every undergraduate” about computing and digital information by way of general education requirements.
Given this disconnect, he argued, it is thus not surprising that the development of K-12 computational thinking education has a certain inchoate quality—if the leading schools of computing and departments of computer science don’t know how to talk about computational thinking, how can others define the content of “computational thinking for everyone”?
A second issue relates to disciplinary “ownership” of computational thinking. Because computational thinking is a critical skill in many disciplines, there are already a few stakes in the ground from a range of disciplines, such as biology, statistics, and physics. This fact led several workshop participants to note the importance of refraining from turf wars over which disciplines own what with respect to computational thinking.
They felt that there were a number of areas of overlap and that this was a positive sign. These speakers were reassured by the overlap, believing that it might be a strength that everyone wants to claim computational thinking for their own field.
Another set of workshop participants noted concern that a lack of disciplinary ownership could make it difficult to build support and a community sense of responsibility for the education of the next generation. They were concerned that other disciplines claiming ownership of
key components of computational thinking can slow its development as a scientific paradigm in and of itself.
Some argued that computational thinking can help advance a number of disciplines and encourage innovation. The inverse situation—lack of deep computational understanding and lack of technical communication skills—might even give rise to the stifling of innovation. This is a key concern according to columnist Adam C. Engst. In the article entitled “Have We Entered a Post-Literate Technological Age?” he states, “My more serious concern with our society’s odd fluency with a technology that we cannot easily communicate about is that it might slowly stifle innovation.”4 As an example, he notes that a person who is able to fluidly navigate an application does not necessarily understand anything about what is going on underneath the hood.
Others argued that computational thinking is inherently multi-disciplinary. To engage in computational thinking, one must reason about something. By claiming that computational thinking can benefit all disciplines, one endorses the idea that computational thinking will evolve as it is used in varied disciplines. In addition, the disciplines using computational thinking will develop in novel directions as a result of using computational thinking.