2
What Is Computational Thinking?

Most of the workshop’s discussions focused on exploring different aspects of what participants thought about computational thinking. The presentation of topics in this chapter is not chronological—throughout the workshop discussions, participants returned to topics and ideas mentioned earlier. Thus, the presentation below seeks to organize the discussions by theme rather than by order of presentation. Section 2.1 outlines an overview of some of the intuitive notions of computational thinking held by different workshop participants. Section 2.2 discusses computational thinking as a range of concepts, applications, tools, and skill sets. Section 2.3 looks at computational thinking linguistically (i.e., as a language) and explores the role and importance of programming as an essential aspect of computational thinking as a primary and critical mode of precise expression. Section 2.4 examines computational thinking from the perspective of automating computational abstractions. Section 2.5 looks at computational thinking as a cognitive tool set for certain kinds of intellectual endeavor. Section 2.6 explores computational thinking in contexts that do not explicitly require the use of information technology as traditionally understood. A related section (Section 2.7) explores the question of how and to what extent computers per se relate to computational thinking. Section 2.8 examines the collaborative dimensions of computational thinking. Section 2.9 presents views on what computational thinking is not.



The National Academies | 500 Fifth St. N.W. | Washington, D.C. 20001
Copyright © National Academy of Sciences. All rights reserved.
Terms of Use and Privacy Statement



Below are the first 10 and last 10 pages of uncorrected machine-read text (when available) of this chapter, followed by the top 30 algorithmically extracted key phrases from the chapter as a whole.
Intended to provide our own search engines and external engines with highly rich, chapter-representative searchable text on the opening pages of each chapter. Because it is UNCORRECTED material, please consider the following text as a useful but insufficient proxy for the authoritative book pages.

Do not use for reproduction, copying, pasting, or reading; exclusively for search engines.

OCR for page 7
2 What Is Computational Thinking? Most of the workshop’s discussions focused on exploring different aspects of what participants thought about computational thinking. The presentation of topics in this chapter is not chronological—throughout the workshop discussions, participants returned to topics and ideas men- tioned earlier. Thus, the presentation below seeks to organize the discus - sions by theme rather than by order of presentation. Section 2.1 outlines an overview of some of the intuitive notions of computational thinking held by different workshop participants. Section 2.2 discusses compu - tational thinking as a range of concepts, applications, tools, and skill sets. Section 2.3 looks at computational thinking linguistically (i.e., as a language) and explores the role and importance of programming as an essential aspect of computational thinking as a primary and critical mode of precise expression. Section 2.4 examines computational thinking from the perspective of automating computational abstractions. Section 2.5 looks at computational thinking as a cognitive tool set for certain kinds of intellectual endeavor. Section 2.6 explores computational thinking in contexts that do not explicitly require the use of information technology as traditionally understood. A related section (Section 2.7) explores the question of how and to what extent computers per se relate to compu- tational thinking. Section 2.8 examines the collaborative dimensions of computational thinking. Section 2.9 presents views on what computa - tional thinking is not. 

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING 2.1 THE LANDSCAPE OF COMPUTATIONAL THINKING In a 2006 article, Jeannette Wing, then a professor of computer sci- ence at Carnegie Mellon University, discussed computational thinking as “a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer sci - ence.”1 Since then, Wing has assumed the position of assistant director of the National Science Foundation Computer and Information Science and Engineering Directorate. From that podium, she has promoted the idea that as computation, communications, and information become increas - ingly prominent throughout daily life, computational thinking becomes more useful to the economic, intellectual, and social well-being of every - one (Box 2.1). Wing’s presentation at the workshop made prominent mention of the “shotgun” approach to sequencing the human genome as a powerful example of how computational thinking might be useful outside the tradi- tional domain of computer science. The human DNA sequence consists of 3.4 billion base pairs, and the determination of this sequence was com - pleted in 2003, in a significantly shorter time than originally estimated, through the use of the shotgun approach. In general, the sequencing of a long DNA string can be accomplished only by dividing the sequence into a number of short fragments, each of which is sequenced and then assembled into the appropriate order. In the shotgun approach, a long DNA sequence is randomly divided into many short fragments, each of which can be sequenced. To reas- semble the fragments, investigators use overlaps between the ends of the fragments—fragments whose ends do not match cannot be connected to each other. However, the presence of a match between fragment ends does not guarantee that the two fragments in question should necessarily be joined, and additional data are needed to resolve these ambiguities. To obtain the additional data, the fragmentation process is repeated—since the division is random, it is likely that the spot where two fragments were separated in the first fragmentation will in fact be contiguous in the second fragmentation. This fact can be used to confirm or reject the match proposed from the first round. Through a series of successive rounds of fragmentation and analysis, the correct sequence can be determined. The algorithm used to analyze the data resulting from this iterative process is widely known as a shotgun algorithm. This example manifests several aspects of computational thinking. Algorithm embodies the notion of a precisely formulated unambiguous 1 Jeannette M. Wing, 2006, “Computational Thinking,” Communications of the ACM 49(3):33-35.

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? BOX 2.1 Who Is “Everyone”? Workshop participants offered a number of definitions of “everyone.” Many of the examples of computational thinking offered were directed at scientists and engineers. A few examples were connected to the needs of professionals in non- technical fields, such as archeology and law. Thus, by implication, computational thinking was thought to be relevant to a broad swath of individuals with college and postgraduate educations. Others discussed the possibility of computational thinking for K-12 students. Of course, K-12 spans a broad range. High school students take courses that address some topics that involve the same computational-thinking-related activities found in undergraduate courses. K-8 instruction is the focus of modeling and simulation environments such as Scratch and LOGO, and the NetLogo modeling and simulation environment is used primarily in middle and high schools as well as in university courses. Curricular innovations such as the honeybee example of Joshua Danish (see Figure 2.2) illustrate the possibilities. Participants did not explore the relevance of computational thinking to noncollege- educated adults in any detail. (Christopher Hoffmann did recount a tale of a group of thieves that attempted to steal a large piece of construction equipment. While the thieves prepared for most of the basic logistics surrounding the crime, they did not ultimately understand the computational-thinking-based technology at work in the system, and their efforts were ultimately thwarted. In particular, several men attempted to steal a piece of Caterpillar construction equipment by loading it on a truck to haul it away. The equipment had an active condition-based maintenance system within it broadcasting its exact location and condition as the thieves attempted to run off with the machine. They did not get far.) This topic will be explored further in the committee’s second workshop. procedure that is repetitively applied. Search, pattern matching, and itera- tive refinement can also be seen in the example, and the powerful idea of randomization as an asset in repeated fragmentation is a particularly important aspect of computational thinking. Drawing on their own intuitive notions of computational thinking, workshop participants offered a number of additional examples of com - putational thinking in context. For instance, when a device (computer, cell phone, or printer) malfunctions, a reboot is often used to restore it to working condition. A person thinking computationally realizes that by turning it off and restarting it, she can reset the internal state of the device to a known and fresh state and allow the device’s internal processes to execute from that known state. Second, information technology can help to process very large volumes of information. A person thinking compu -

OCR for page 7
0 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING tationally realizes that data-intensive problems such as sequencing DNA may be amenable to solutions based on algorithms and automation. Third, information technology can often be used to help manage complexity in understanding complicated problems. A person thinking computationally realizes that computational modeling can help address complex problems across varied disciplines such as climate change, economic policy, and educational decision making. Responding to the workshop focus on explicating the scope and nature of computational thinking (with the implied goal of being more effective in imparting to students the essentials of computational think - ing), Uri Wilensky offered a caution—that “it is not necessarily the case that the best way to enter into something is to enter it in the way that an expert already understands it.” For those in attendance at the workshop, he noted that “if one is already an expert in computer science, it’s easy to forget what it’s like to enter into the field.” He did not argue that the expli - cation effort was wasted or inappropriate, only that as a community “we should be careful about the process of bringing a lot of people, in a wide - spread way, into computational thinking. We should do more than present to students expert ways of thinking computationally—attention must be paid to the developmental understanding of students.” Roy Pea made a similar point when he cautioned workshop participants against focusing on the prototypes for computational thinking provided by experts in the field, because such prototypes “may lead us away from the professed goal of everyday computational thinking.” 2.2 COMPUTATIONAL THINKING AS A RANGE OF CONCEPTS, APPLICATIONS, TOOLS, AND SKILL SETS Over the course of the workshop discussion, several participants described computational thinking as a collection of mental tools and con - cepts from computer science that help people to solve problems, design systems, and understand human behavior. For example, Wing drew the distinction between “metal tools” and “mental tools,” the former being the hardware/software applications that help solve problems and the latter being cognitive and intellectual skills that human beings can use to understand and solve problems more effectively. Participants argued that these concepts feature prominently in computer science but are not exclusive to the field. Computational thinking was defined in a number of ways. These definitions fell into several categories and are described (in no particular order) below:

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? • David Moursund, along with several other workshop partici- pants, suggested that computational thinking was closely related to, if not the same as, the original notions of procedural thinking developed by Seymour Papert in Mindstorms. Procedural thinking includes developing, representing, testing, and debugging procedures, and an effective proce - dure is a detailed step-by-step set of instructions that can be mechanically interpreted and carried out by a specified agent, such as a computer or automated equipment. • Peter Lee offered a definition of computational thinking as the study of the mechanisms of intelligence that can yield practical applica- tions by magnifying human intelligence. Such a definition includes but is not equivalent to artificial intelligence, which in his view generally consists of efforts to mimic human mental processes. Rather, Lee argued, computational thinking is fundamentally about expanding human mental capabilities through abstract tools that help manage complexity and allow for automation of tasks. Andrew McGettrick supported this view, but went further in saying that computational “thinking” had to involve actual capability and competency with technological artifacts in addition to thought processes. Such an extended view, he noted, would require computational thinkers to constantly immerse themselves and invest in staying technologically current. • Bill Wulf suggested that computational thinking was primarily about process. He noted that other areas of science focus on physical objects, whereas computational thinking focuses on processes and abstract phenomena that enable processes. Wulf objected to the connotations of “computational” as focusing on numbers. Speaking via videoconference, Peter Denning expressed a parallel sentiment, arguing that computer sci - ence itself is the study of information processes and that computational thinking is a subset of computer science. • Dor Abrahamson saw computational thinking as the use of com- putation-related symbol systems (semiotic systems) to articulate explicit knowledge and to objectify tacit knowledge, to manifest such knowledge in concrete computational forms, and to manage the products emerging from such intellectual efforts. He further argued that a semiotic approach had embedded within it a philosophy of the relationship between under- standing and personal meaning and helps guide the construction of per- sonal meaning for these symbols. • Gerald Sussman defined computational thinking as a way of for- mulating precise methods of doing things. Computational thinking is about rigorous analysis and procedures for accomplishing a defined task 2 Seymour Papert, 1981, Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books.

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING efficiently. Sussman pointed to the importance of having precise language for methods and concepts—for this reason, Sussman argued that compu - tational thinking has an “underlying linguistic structure.” For example, situations like “A happens before B” or “do this and then do that” are captured by the general idea of a partial order, and there are techniques for navigating partial orders and reasoning about them. • Wing and Sussman suggested that computational thinking could be seen as a bridge between science and engineering—a meta-science about studying ways or methods of thinking that are applicable across the different disciplines. In this view, computational thinking is the central element of the reasoning that takes place in transitioning from the study of physical phenomena and the application of scientific observation. • Edward Fox emphasized the notion of handling and manipulat- ing intangible abstractions for problem-solving purposes at the core of computational thinking. Fox defined computational thinking as “what humans do as they approach the world [that is, their framing, paradigm, philosophy, or language], considering processes, manipulating digital representations (and [meta] models),” and hence all humans engage in computational thinking to some extent already in their daily lives. Brian Blake argued that computational thinking had to include representations, visualizations, modeling, or meta-modeling. Uri Wilensky pointed out the historical power of representational shifts and argued that, like other such shifts, computational representations would enable greater model - ing power and wider access to scientific models. Janet Kolodner noted that computational thinking plays a role in the manipulation of software in support of problem solving. Kolodner stated that “[a piece of software can be] a tool that is being provided so that somebody can do computa- tional thinking and can do thinking in some domain, but there’s [also] some kind of computational thinking they need to be able to do in order to manipulate that tool to be able to use it for their domain.” • Robert Constable would eschew static definitions of computational thinking—rather than a finite set of skills and thought processes, computa- tional thinking is an open-ended and growing list of concepts that reflects the dynamic nature of technology and human learning, and that combines elements of all the descriptions of computational thinking outlined above such as “automating intellectual processes” and “studying information processes,” among others. What makes computational thinking especially relevant is that computers can execute our “computational thoughts” and that “computers have become partners and collaborators” in dis - covery. He further noted that the list of elements in the first paragraph of Section 1.2 is not merely a list of examples of computational thinking. Rather, it is a partial list of important intellectual concepts and elements that are part of the science of computing and of digital information.

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? Computational thinking is careful reasoning about the methods of doing things. It’s clearly related to, but not identical with, mathematical think- ing. Both [computational thinking and mathematical thinking deeply] are involved with abstraction, and reasoning with simplified models. —Gerald Sussman 2.3 COMPUTATIONAL THINKING AS LANGUAGE AND THE IMPORTANCE OF PROGRAMMING A number of workshop participants advanced the idea that computa- tional thinking could be better understood as a fundamental intellectual skill comparable to reading, writing, speaking, and arithmetic. Function - ally, these fundamental skills are all means of describing and explaining complex problems and situations to others, and computational think- ing serves the same purpose. In other words, computational thinking is comparable to other basic cognitive abilities that the average person in modern society is expected to possess. One participant quoted Niels Bohr, who said, “Science is not to tell us about the universe, but to tell us how to talk about the universe.” Along these lines, computational thinking is another language (in addition to written and spoken language, science, and mathematics) that humans can use to talk about the universe and the complex processes within it. Roy Pea argued that “as soon as we think about the origins of com- putational thinking and computational literacies, programming has been at the heartland of the definition and the abstractions that are created as step-by-step algorithmic procedures.” Ursula Wolz supported the view that computational thinking is as essential a skill as reading, writing, and other basic language arts skills, pointing out that “programming is a lan- guage for expressing ideas. You have to learn how to read and write that language in order to be able to think in that language.” Mitchel Resnick concurred, arguing that “computational thinking is more than program - ming, but only in the same way that language literacy is more than writing. They are both very important. Yes, it’s more, but don’t minimize program- ming just because it’s more.” He went on to say that programming is a particularly important form of expression, and that “programming, like writing, is a means of expression and an entry point for developing new ways of thinking.” Eric Roberts also supported the idea that program - ming is essential to computational thinking and pointed out “a misguided assumption—that just because programming can be badly taught or that

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING it can be difficult and deter people, it needs to be avoided entirely.” (Box 2.2 describes the thoughts expressed in the 1999 report Being Fluent with Information Technology on the closely related question of the role of programming in imparting FITness.) Andrea diSessa emphasized the notion of literacy as a social con- struction and noted that an effort to teach computational thinking (or rather, computational literacy, in diSessa’s terms) to everyone is, in large part, a social problem. Moreover, it is the milieu of today’s society that encourages and/or demands that citizens have this literacy. Owen Astra - chan argued that “computational literacy will allow civilization to think BOX 2.2 The Role of Programming in FITness The 1999 NRC report Being Fluent with Information Technology addressed the role of programming in achieving fluency with information technology (what that report called FITness). The report defined programming as “the construction of a specification (sequence of instructions or program) for solving a problem by an agent other than the programmer. . . . [Programming] entails decomposing the problem into a sequence of steps and specifying them sufficiently precisely, unambiguously, and primitively that the interpreting agent, usually a computer, can effectively realize the intended solution” (p. 42). Computer programming in a standard programming language meets this defini- tion, of course, but programming arises in many other cases in which the agent is a human and the language is English. Giving directions to soccer players to find a particular field in a city, especially one not identifiable by numeric street/avenue coordinates, constitutes programming by this definition. A player is the agent inter- preting or executing the instructions. Recipes with precise quantities of ingredients and precisely described preparation and cooking steps are programs executed by cooks. Toy manufacturers write programs, called assembly instructions, for parents to follow, and the Internal Revenue Service (IRS) writes the program that taxpayers follow for deductible IRA contributions. Critical to the programming enterprise is specification that meets the conditions “precisely” and “primitively.” • “Precise” specifications are essential to provide assurance that the agent can determine which actions are to be performed and in what order, so that the intended result is achieved. Avoiding ambiguity is obviously crucial, but even seemingly u nambiguous commands can fail. For example, “turn right” fails if the soccer players can approach the intersection from either the east or the west, and so “turn north” is preferred. Similarly, “beat” and “fold in” are not synonyms for “stir” when combining ingredients, and so successful recipes use precise terminology selected with great care. An important nontechnology advantage of programming knowledge is that the need for precision can promote precision in everyday communication.

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? and do things that will be new to us in the way that the modern literate society would be almost incomprehensible to preliterate cultures, but it’s a different kind of literacy than what it means to be familiar. By compu- tational literacy, I do not mean a casual familiarity with a machine that computes.” Gerald Sussman built the “computational thinking-as-basic-language” metaphor by citing the process of composing poetry as an exercise in com- putational thinking. A poet’s task or problem is to produce a mechanism that induces an emotion in the reader of the poem. “The skillful poet takes pieces that have parts of that emotional state, puts them together • “Primitive” specifications are essential to provide assurance that the steps to be performed are within the operational repertoire of the executing agent. The programmer may understand the task as “pi times R squared,” but if the execut- ing agent doesn’t know what “squared” means or how to accomplish it, then the programmer must express the task in more primitive terms, perhaps revising it to “pi times R times R.” For many taxpayers, the word “qualifying” in the IRS’s instruc- tion phrase “subtract qualifying contributions” would likely fail the test for primitive- ness, because they would not readily understand what the term means. Although programming can be as simple as giving a few commands—preheat oven to 350 degrees, combine dry ingredients, stir in eggs, press into greased loaf pan, bake for 20 minutes—most solutions require the use of conditional instructions and repetition of groups of instructions. Conditional instructions are those that may or may not be performed, depending on the input to the program. Repeated instruction execution is a second essential programming construct, since it allows a program, for example, to process any number of data items rather than just a fixed number. In addition, FITness also r equires experience with functional decomposition and functional abstraction. These are the powerful mechanisms used by programmers to solve large problems (func- tional decomposition) and to reuse their earlier programming efforts (functional a bstraction). Finally, the 1999 report argued that while FITness does imply a basic program- ming ability, that ability need not be acquired in using a conventional programming language. For example, certain spreadsheet operations and advanced HTML program- ming for Web pages, among others, demand an understanding of enough programming concepts that they can provide this basic programming experience. Such applications will often yield more personally relevant opportunities to learn programming than will programming in a conventional programming language.

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING in the right way—there are going to be bugs and there are going to have to be places where you make interfaces and all that sort of stuff—so as to make a larger structure that has that property.” Sussman went on to cite an essay by Edgar Allen Poe that described the process of composing poetry as an algorithm. Alan Kay was less enthusiastic about the “computational thinking- as-language” metaphor. Although acknowledging the utility of computa - tional thinking as a language for describing certain aspects of the universe, Kay noted that all human beings have an innate capacity for verbal lan - guage, but that the same cannot be said for written language, science, and deductive mathematics, because these are not found in every culture or society. This point suggests that whatever computational-thinking-as-a- language might be, human beings will not learn computational thinking in the same way that they learn to speak. On the other hand, he also noted that a powerful aspect of computational thinking entails the ability to create a language well adapted to a personally relevant purpose—and indeed that this ability could be taught to students. Edward Fox suggested that computational thinking does have a long historical tail. “Computational thinking is innate in the human species,” he said, and “through telling stories our ancestors modeled and repre- sented reality and they passed that on to other people and they enriched those models to carry out exploring, discovering, and sustaining life.” Today, exploration of and discovery in digital information are central activities of human life. Computers enable modern discovery and allow humans to access and organize information in a way that has not been done before. Despite its novelty, accessing digital information is, accord- ing to Fox “still a part of this modeling and representing, something that we do uniquely and have newer ways to explain and enrich.” 2.4 COMPUTATIONAL THINKING AS THE AUTOMATION OF ABSTRACTIONS A number of workshop participants supported the claim that compu - tational thinking focuses on the process of creating and managing abstrac- tions, and defining relationships between layers of abstraction. Robert Constable pointed out that although physics and mathematics are also centrally concerned with abstraction, what is different in computational thinking is that the layers of abstraction are tightly connected in ways that in the natural sciences they cannot yet be connected. In this view, computational thinking is a tool for explaining and rep- resenting complexity through automation. Although mathematics and physics are also centrally concerned with using abstraction to manage and control complexity, computational methods add another dimension

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? to controlling complexity—that of automation. Peter Lee argued that com- putational thinking is about “magnifying people’s intelligence through automation and problem solving, as well as managing complexity.” Others pointed to the role of modeling and simulation in enabling automation of the management of complexity. To complement this view, Andy diSessa argued that abstractions must be paired with grounding if people are to understand the significance of those abstractions. In diSessa’s words, “Abstraction has to connect with their concerns, whether they are menial or whether they are grand. It has to be grounded in people’s beliefs and feelings some way or other.” Owen Astrachan echoed this point, saying that “without the grounded examples, we’ll be talking too abstractly, which might work in a room full of abstract thinkers, but it’s not going to work in rooms full of less abstract thinkers because they need to see what they are really going to do.” Ken Kahn made a related argument that computational thinking provides a concretization—the creation of something concrete and tangible—of subjects that are typically dominated by abstract concepts. Kahn felt that an example of such concretization is computer games—“They are virtual, of course, but they feel very concrete. The important idea is that there is a one-to-one mapping from these concrete things to computational abstractions that are much more difficult for most people to grasp.” Uri Wilensky concurred and described how students interacting with models or participatory simulations of disease spread developed with NetLogo learn to understand logistic growth of infection as an emergent pattern that results from the concrete actions of individuals. 2.5 COMPUTATIONAL THINKING AS A COGNITIvE TOOL David Moursund saw computational thinking as how to think about tools, a view inspired by Donald Norman and David Perkins. In 1988, Norman wrote The Design of Eeryday Things,3 which talks about “the design of everyday objects and affordances—not just physical capabili- ties of the actor, but also their goals, plans, and values, and so on.” An example of affordances created through technology innovation is mass communication through the creation of the printing press, radio, tele- vision, and so on. Information technology and the computer are a set of new tools with affordances of their own, and Moursund noted that realization of affordances depends on the education, training, and expe - rience of the user as well as the design of the tool. Some tools, such as a word processor, require more formal training and skills in order to access the affordances they offer. Others, through their very design or through 3 Donald Norman, 1988, The Design of Eeryday Things. New York: Basic Books.

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING and so “they were challenging his model, saying, we don’t see the part of the bee that’s important for that part of the process.” The teacher is also able to introduce the concepts of sequencing and algorithms by engaging in a dialog with the student: T: All right, well, there isn’t any nectar at that flower. So if you were a bee, would you stay at the flower? S: No. T: What would you do? S: I would go back, and not do a dance because I don’t know where to find nectar. According to Danish, this exchange illustrates how the student is engaging “in a context where he’s able to talk about the sort of if-then choices of the algorithm that the bees follow as they go back collecting nectar. And that can then be phrased in a way that’s incredibly relevant to him.” In the third phase, students engaged in participatory simulation in which they had to instruct other children to carry out the search for nectar as the bees would. As they tried to act the instructions provided by the scout bees, the children engaged in a real-time debugging process by updating their instructions as they went along. This phase forces the students into “thinking about the implications of their modeling choices. As these students are running around and not quite finding the nectar, it’s easy for this boy to say, ‘It’s by the red rake.’ So there’s some online monitoring of whether or not his instructions or his program were suc- cessful. But then there’s also some retroactive consideration, some nice reflection on whether that model did the job. So the student’s then able to say, ‘I should have said by the handle of the rake.’” Only in the fourth phase did students encounter any actual computer technology—with the help of an instructor, students modeled the process and predicted outcomes using a program called BeeSign, developed to provide a simulation environment for students to model bee searches. A second example of computational thinking in a non-IT context was provided by Ursula Wolz, who reported on an effort to teach computa- tional thinking skills to middle school students through the journalistic use of interactive media. She described the project as focusing on a “non- didactic collaborative model of problem solving.” Journalism provides an attractive context for students who do not consider themselves technically inclined. Wolz argued that journalism mirrors many of the processes involved in working with computers, especially programming. “In journalism, one must pitch a story, research it, interview, collect data, shoot video,

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? write, edit, send it to the editor, re-write, add sidebars, resubmit, fact check, debug the story, and loop until the editor signs off on it. If one assumes the computer acts as an editor, then one can take note of a very familiar series of activities involved in computational thinking.” The stu - dents had news teams, supervised by a teacher and guidance counselors, that worked to produce an online magazine. The students researched, interviewed, and wrote stories, and they created video and animation in Scratch. They also successfully used the computing environment used to support the course to collaborate, write, edit, and publish multimedia stories as part of the journalism process. A third example of computational thinking without computers was provided by Tim Bell, who described the Computer Science Unplugged Project.6 His talk included a couple of illustrations: • User interfaces. Students examine the interface provided in a digital watch. In many digital watches, a button is included that turns the watch face from a clock to a stop watch, and another button that starts and stops the stop watch. According to Bell, “Suddenly the kids realize that this is a very simple interface, which they probably didn’t even think was an interface, on their wrist.” This realization empowers them to recognize interfaces in other objects and apply learned concepts when interacting with those objects. User interfaces are an important element of compu - tational thinking because they create a well-defined decoupling between the parts of the system that interact directly with users and the rest of the system. User interfaces thus afford a structured and systematized method of entering input into a program that in turn affects its behavior. User interfaces also afford users such methods for seeing program outputs. • Routing. Each student wears a T-shirt of a different color (Fig- ure 2.3). Corresponding to each color are two pieces of fruit, and every student except one starts with two pieces of fruit. One student starts with only one piece of fruit of the appropriate color. The goal is to have both pieces of fruit end up in the hands of the child with the corresponding color shirt; that is, “the oranges go to the girl with the orange T-shirt and the green apples go to the girl with the green T-shirt,” and so on. The constraint on any method of passing fruit is that each student can only pass something to someone who has an empty hand, and he or she can only pass something to a neighbor. This puzzle is similar to the kinds of problems that a computer scientist might face, and students can experi- ment with different routing topologies. Routing is an important element 6Tim Bell, Ian H. Witten, and Mike Fellows, 2006, Computer Science Unplugged: An Enrich- ment and Extension Programme for Primary Aged-Children. Canterbury, New Zealand: Com- puter Science Unplugged.

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING FIGURE 2.3 Routing fruit (packets). SOURCE: Tim Bell, University of Canterbury- Christchurch, New Zealand. of computational thinking because it encapsulates the idea of how infor- mation can be passed in different paths through intermediate nodes to a specified final destination. A third example of computational thinking without the use of tech- nology per se was provided in a personal anecdote from Owen Astrachan. He described different solutions to a word puzzle in which the problem solver must change a given five-letter word (e.g., “white”) to another five- letter word (e.g., “house”) by making only a single letter change at each step, subject to the constraint that each intermediate word must also be a real dictionary word. Astrachan’s solution was based on making a graph and doing a breadth-first search through that graph. His solution required 16 steps. His brother, an English major, solved the problem in 15 steps, apparently without using computational thinking. Astrachan then asked why, and saw that his brother’s solution was based on the fact that his brother’s dictionary had more words in it—“sough” was in his brother’s dictionary but not in his. With the addition of that word to Astrachan’s solution, he was able to solve the problem in 14 steps. Astrachan said that this story illustrates computational thinking in action and computational thinking in context, and helps to demonstrate “what’s going on with people around us who don’t think computationally.”

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? Allan Collins argued that one key feature of computational think - ing is representational competence, which he described as the effective application of computational means of representation of knowledge. The illustration Collins offered was a low-tech experiment in develop - ing representational competence in fourth graders who were asked to “find representations for the heights” of various fast-growing plants. The children were broken up into several groups, and each group of kids would try to come up with its own representations. While there were a number of ideas considered, the class eventually decided to “use a bar graph with small ranges of plants . . . like from 10 inches to 12 inches, and they would have a bar for each two inches.” 7 And then in terms of the survey results that we got, the majority . . . said the most important thing they learned was programming and video edit- ing. And half said that their best work was in programming. And unlike some of the kids that Alan [Kay] and Roy [Pea] were talking about, these are working-class children who would not necessarily have access to this level of computing unless it was through a program like this. —Ursula Wolz As computation came in, it started producing all sorts of new forms of representation, both structural forms and process forms, particularly the dynamic process forms . . . things like production rules and frames and semantic networks and the constraint-satisfaction systems were all new ways to think about representing knowledge. . . . And so my claim is that one of the things that we should be concerned about is how to get this kind of representational competence. We need to start thinking more seriously about how we can convey some of that power. —Allan Collins 7 Collins also cited the work of Rich Lehrer and Leona Schauble and their work with really young kids and getting them to think about how to represent distributions and statistical reasoning. See Richard Lehrer and Leona Schauble, 2004, “Modeling Natural Variation Through Distribution,” American Educational Research Journal 41(3):635-679.

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING 2.7 THE ROLE OF COMPUTERS AND TECHNOLOGy An obvious question arises in the consideration of computational thinking. How and to what extent do computers per se relate to compu- tational thinking? A first point is that the term ”computer” can refer to a mechanical or an electronic computer, or to a human computer (indeed, the first con- notation of the word ”computer” was that of a human who performed mathematical computations). So a computer is an essential aspect of com- putational thinking to the extent that it is an agent that can deterministi - cally interpret a set of instructions in an unambiguous manner. A more common interpretation of the question relates to whether or not a competent computational thinker is necessarily facile with the use of modern information technology to solve problems and to do other useful things. Workshop participants observed that information technology has advanced dramatically throughout its history, and rapid change is likely to characterize future information technology. Moreover, computers and com- putation will become increasingly important to society and across a number of disciplines. As one participant put it, “I think we are here today to think about what everybody should know” in the face of such rapid change. Many participants argued that the ability to develop facility with new technologies is a part of computational thinking. Computational thinking in this view involves finding the right technology for a problem and applying the technology to resolve the problem. This might require learning how to use the appropriate technology, debugging the solution, and communicating the outcome. For example, to represent a complex phenomenon such as an ecosystem, the moves in a chess game, or the trajectory of a baseball, the computational thinker might explore alterna - tive technologies, select a candidate, and test its effectiveness. This skill is essential in undergraduate programs, useful in everyday life, and grow - ing in importance in precollege courses. In this view computers and other computational devices enable computational thinking. One participant argued that what makes computational thinking especially relevant is that computers, whether mechanical or human, are the agents for executing “computational thoughts,” and computers have become partners and collaborators in discovery. Further, unlike household appliances or an automobile, computers are relevant to a vast number of different applications, such as searching for information, developing a budget, tracking individuals, composing music, and so on. While not dis - agreeing with this sentiment, others at the workshop argued strongly that because computers are not restricted to mechanical computers but instead can refer to human agents, computational thinking becomes relevant to individuals outside the context of mechanical computers—and thus to a much larger cross section of society.

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? 2.8 A COLLABORATIvE DIMENSION TO COMPUTATIONAL THINKING Modern information technology is at least as much about dispersed, real-time communication as it is about automation. Edward Fox noted that “what we see happening a lot today, especially with the Web and multimedia and other things, is that the [computational thinking] reflec - tion takes place with the help of other people, too. We can share videos and we see what other people did and we comment on those. We have Web 2.0 and so forth, where these become social processes, and debugging becomes part of our society, as well as of solving our problems.” Building on this notion, a number of participants suggested that com- putational thinking could be regarded as a group phenomenon as well as an individual one. That is, groups, too, can engage in computational thinking to develop representations, debug processes, and so on, resulting in a col- lective process of discovery that is richer than that of any single individual. Ursula Wolz argued this point when she said that “one of the things that annoys me is when we talk about some of the great discoveries that hap- pened by an individual—they never happened by an individual. There is a huge body of literature emerging, for example, in terms of what Leonardo did and who was around, and the same thing about Newton. . . . We have to keep reminding ourselves that it isn’t about ownership. It’s about the community and the culture that’s around you that allows you to have the ideas.” Allan Collins related collaboration to the notion of computational thinking as a fundamental skill analogous to reading and writing literacy. He pointed out that developing reading and writing literacy is not simply a matter of technical skills, but also arguably entails a social community. In Collins’ words, “We learn from the company we keep. . . . People will learn to read and write if the people they admire and care about, the communities they belong to, are readers and writers.” Thus, he argued, achieving a comparable literacy with respect to computational thinking will require the fostering and development of communities that value computational thinking—some of which exist today, though not in large numbers and not widely accessible. Kevin Ashley introduced an example of collaborative computational thinking from the legal field. Over time, the legal community performs testing and adaptation of laws in response to changing social contexts. He pointed out, “Often the hypotheticals are informed by changes in societal values over a period of time; this is dynamic. The old law has to be reevaluated, reinterpreted in the context of the changing social values. The hypotheticals—the specific examples that they try out to see how that would be dealt with under the proposed rule and whether that is a

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING good outcome or not in light of those values—are the dynamic engine for adapting the rules and interpretations to the new circumstances.” In some sense, I think the message that Roy [Pea] is delivering, that I, [and] Mitchel [Resnick] are delivering, is that we need to start thinking about how to create communities of people who care about computational think- ing and who are doing it. —Allan Collins 2.9 WHAT COMPUTATIONAL THINKING IS NOT Several participants suggested that it might be easier to articulate what computational thinking is not. For example, Robert Constable argued that computer literacy—traditionally seen as the ability to use specific programs or features of given computer systems such as Word or Excel—does not demonstrate the ability to engage in computational thinking. (By contrast, he noted that one can know a great deal about computational thinking and computing concepts without knowing much about computers beyond how to get on the Internet and use an Internet browser.) Along with a number of other workshop participants, Gerald Sussman argued that computational thinking was also not equivalent to computer science. Although computational thinking and computer science share some elements, he said that “computational thinking is a certain part of computer science. Mathematicians talk about mathematical thinking. Statisticians talk about statistical thinking. I think that computer scientists should talk about computational thinking.” To illustrate, he said that “scien- tific thinking is about apples and oranges and how they may be different or the same. Mathematical thinking is about spheres and where they have areas and volume and the fact that they may involve a particularly high number of dimensions. Computational thinking is about how a group of people can cut and share an apple so that each person feels he or she got a fair share of the apple.” I know some people have been saying things like, computational thinking is a new way to define computer science. Computational thinking is a part of computer science, but is not the whole story. —Peter Denning

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? BOX 2.3 Great Principles of Computing In 2003, Peter Denning initiated the “Great Principles of Computing” project, whose purpose is to express the activities of computer science in a framework that is similar to that which guides scientists in other domains in expressing what it is that they do. During the workshop, Denning said that he and his colleagues are very interested in “the fundamentals of the field,” the things that are “timeless and . . . also illustrate the depth and richness of the discourse that we have built up in computing over the years.” Denning’s Great Principles of Computing break down into seven categories: computation, communication, coordination, recollection, automation, evaluation, and design. Denning’s framework portrays computer science as a combination of engineering, mathematics, and science. During the workshop, Denning argued that a legitimate science is based on “knowledge, experimental methods, reproducibility, surprising predictions complemented by performing art, and studies of natural objects,” and hence that computer science should be included under this rubric. He acknowledged that “there has always been controversy about whether computer science studies natural objects,” but expressed the belief that “other fields are now accepting that information processes are part of the basic aspects of nature.” He further suggested that this acceptance stems from evolving the definition of computer science away from a strict focus on computing machines—“We are coming to see computation as the principle and the computer as the tool. Instead of the computer being at the center of what we study, computation is at the center of what we study. That shift in perspective allows us to see computation in nature.” Other participants felt that computational thinking was the outcome of a natural evolution in our understanding of computer science. For example, Peter Denning suggested that computational thinking is not the same as previous conceptions of computer science, but rather another instantiation of the discipline (Box 2.3). Larry Snyder noted that computational thinking was not the same as fluency with information technology (FIT)8 (Appendix C), although they do share many commonalities (Box 2.4). For example, many of the fea- tures often ascribed to computational thinking are also part of a fluency curriculum that include both concepts and capabilities. These concepts include algorithmic thinking, managing complexity, debugging, thinking technologically, universality, and so on. Indeed, he suggested that the 8NRC, 1999, Being Fluent with Information Technology, Washington, D.C.: The National Academies Press. Available at http://www.nap.edu/catalog.php?record_id=6482. Accessed December 28, 2009.

OCR for page 7
0 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING BOX 2.4 On the Relationship Between Computational Thinking and Fluency with Information Technology A person who is highly capable of computational thinking—a computational thinker—is one who has adopted the thinking habits and reasoning methods of computer scientists. A person who is fluent with information technology is one who has adopted a specific menu of facts, concepts, and thinking habits of computer scientists. In this sense, computational thinking is broader than fluency. On the other hand, because the fluency menu includes algorithmic thinking and a variety of intellectual capabilities such as sustained logical reasoning and debugging, there is tremendous overlap between computational thinking and flu- ency. When discussing specific topics (as opposed to levels of understanding of a topic), there are strong similarities between the intellectual approaches embedded in each. Both emphasize abstraction, algorithmic thinking, problem solving, logical reasoning, levels of abstraction, universality, debugging, technological point of view, representations, and so on. Such strong similarities are why the knowledge needed and acquirable as “basic computational thinking” would likely approximate what is known by a person fluent with information technology. The primary difference between computational thinking and fluency is in focus. In one view of this difference, the primary emphasis of pedagogical efforts in fluency is quite clearly on the general population, and there is relatively little emphasis on its applicability to advanced topics of study. By contrast, computational thinking is believed to be valuable across the board, both for the everyday citizen and for the advanced professional. Indeed, many of the examples of computational thinking that advocates invoke are derived from the application of computational thinking in ser- vice of these advanced professionals in a variety of problem domains. Another view of the difference between computational thinking and fluency sees computational thinking as emphasizing conceptual understanding and fluency as emphasizing appli- cations across a broad range of topics and problem domains. Another difference is that whereas fluency prescribes a variety of skills that enable a citizen to use certain computer-enabled devices daily, computational thinking is not concerned at all with such skills—such skills are assumed. Fluency does include a set of 10 concepts about computing and 10 intellectual capabilities that include many of the habits of mind often captured in descriptions of computational thinking, but an important purpose of including these concepts and capabilities is to support lifelong learning about computing. Computational thinking and fluency should not be placed in opposition to each other, though they are definitely not the same thing. Computational thinking is a grand vision in which people acquire the thinking habits of computer scientists com- mensurate with their levels of education; fluency, though not originally formulated this way, can be seen as a practical implementation of computational thinking for all citizens. This difference reflects the differing origins of the studies involved—the Being Fluent report (National Research Council, Being Fluent with Information Tech- nology, National Academy Press, Washington D.C., 1999) and its characterization of fluency with information technology emerged from responding to a request for recommendations on what the public should know about information technology, while the present report on computational thinking emerged from a vision of how beneficial wider use of thinking like a computer scientist would be.

OCR for page 7
 WHAT IS COMPUTATIONAL THINKING? primary difference was the fact that FITness includes a skills component, which is designed to enable individuals to use common current applica- tions. By contrast, computational thinking tends to put less emphasis on specific technical skills in favor of broad problem-solving abilities. Snyder also called attention to a philosophical evolution regarding computing-related teaching. The FITness report was published in 1999, 9 when it was controversial to teach conceptual material regarding informa- tion technology to nonmajors. Snyder argued that today, such teaching is routine, at least in 4-year university programs. He thus proposed the following sketch for this philosophical evolution: • The general public is uninformed about and indifferent to informa- tion technology. • The general public recognizes the need for computer literacy—how to use a computer—a necessary skill as computers begin to penetrate into everyday life. • The general public begins to see the limitations of skills-only training, which leads to a desire for FITness—fluency with information technology—that exposes citizens to the essential concepts and capa- bilities of information technology. The skills of FITness are gradually de-emphasized as the citizenry learns to pick up without formal instruc - tion the skills needed to use computer applications. • The general public is increasingly exposed to and literate with the skills of how to use information technology, thus eliminating the need for much formal instruction in skills. Computational thinking, which to first order comprises FITness without the skills component, becomes the emerging focus of formal education. Computational thinking then expands the array of concepts and capabilities beyond those included in the original 1999 formulation of FITness. Others saw computational thinking as a way of thinking that is quali- tatively distinct from fluency and emerging across a broad array of disci- plines. The ubiquitous nature of computational tools impacts all aspects of modern life and requires people to adopt new modes of thinking to use these tools effectively. These modes of thinking are emerging not just in computer science but in every field. 9NRC, 1999, Being Fluent with Information Technology, Washington, D.C.: The National Academies Press. Available at http://www.nap.edu/catalog.php?record_id=6482. Accessed December 28, 2009.

OCR for page 7
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING I would like to propose that this is actually a three-dimensional problem. We have aspects of computational thinking or computing, we have the other disciplines that we are talking about connecting with, and we have pedagogy, the different levels and so forth. We are trying to populate a three-dimensional matrix with the best situations in each of these different settings and figure out which ones are the ones that work. —Edward Fox