3
Looking Outward

3.1
THE RELATIONSHIP OF COMPUTATIONAL THINKING TO MATHEMATICS AND ENGINEERING

For some, computational thinking is careful reasoning about the methods of doing things that complements and combines mathematical and engineering thinking. The special relationship of computational thinking to mathematics is historical, but looking toward the future, computational thinking will be critical in the social and life sciences as well. Computational thinking currently plays an important role in psychology, linguistics, graphics, and economics and is playing an increasing role in complex engineering efforts such as nanoscience and health. Computational thinking will apply much more broadly than most of the other scientific modes of thought. The conceptual space to which computational thinking applies is much broader than most people imagine, and many of the advances are independent of the usual constraints on natural science.

3.1.1
Mathematical Thinking

Computational thinking is closely related to, but not identical with, mathematical thinking. Both are deeply involved with abstraction and reasoning with recognized simplified models. Gerald Sussman argued that computational thinking and mathematics both have an “underlying linguistic structure … [that is] language for precise descriptions and about how to do things and language describing the structure of things … such languages are essential to clear thinking. But mathematical thinking is



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 33
3 Looking Outward 3.1 THE RELATIONSHIP OF COMPUTATIONAL THINKING TO MATHEMATICS AND ENGINEERING For some, computational thinking is careful reasoning about the methods of doing things that complements and combines mathematical and engineering thinking. The special relationship of computational think- ing to mathematics is historical, but looking toward the future, compu- tational thinking will be critical in the social and life sciences as well. Computational thinking currently plays an important role in psychology, linguistics, graphics, and economics and is playing an increasing role in complex engineering efforts such as nanoscience and health. Computa- tional thinking will apply much more broadly than most of the other scientific modes of thought. The conceptual space to which computational thinking applies is much broader than most people imagine, and many of the advances are independent of the usual constraints on natural science. 3.1.1 Mathematical Thinking Computational thinking is closely related to, but not identical with, mathematical thinking. Both are deeply involved with abstraction and reasoning with recognized simplified models. Gerald Sussman argued that computational thinking and mathematics both have an “underlying linguistic structure . . . [that is] language for precise descriptions and about how to do things and language describing the structure of things . . . such languages are essential to clear thinking. But mathematical thinking is 

OCR for page 33
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING more about abstract structure than abstract methodology.” Jeannette Wing also added the qualifier that while similar to mathematical thinking in many respects, computational thinking does have to consider the physical constraints of the underlying computer (whether machine or human). Paulo Blikstein highlighted that since both mathematics and computa- tional thinking are tools for representation, there may be an opportunity to use computational thinking to represent complex processes and relation- ships in a more comprehensible manner than mathematics. One example he provided came from his observations of how engineering courses were taught. He immediately noticed that within a common engineering course, mathematical equations appear “approximately one every 2 minutes.” Blikstein added that often these equations are around 10 variables long, and insufficient time is allocated to actually explain the equations. He thinks that “this speaks to the failure of one particular way to think about knowledge and one way to represent knowledge, which is representing knowledge as differential equations and mathematical forms in general. . . . Computational representations might offer a lot of advantages over mathematical representations that we might be able to explore.” Sussman gave an example of teaching students how to analyze elec - trical circuits. He noted that the typical pedagogical approach for this problem is to teach the node method—which in practice many students find difficult to implement in any practical way in solving problems in cir- cuit theory. However, presenting students with a well-written computer program designed to solve such problems as an expert would enable them to internalize the program themselves and execute it much as that expert would. 3.1.2 Engineering Several workshop participants recognized an overlap between engi- neering and computational thinking. Even if it is not formally accepted in the engineering community, engineering schools are “doing a lot of computational thinking,” said Blikstein. Wing argued that both compu- tational thinkers and engineers think about design, constraints, safety, performance, and efficiency. Design issues considered include “simplicity, elegance, usability, modifiability, maintainability, and cost. Wing said that “computational thinking is guided by particular concerns/constraints such as speed, space, and power [and computational thinking is] more like physics and engineering in this respect. . . . [It is] these kinds of con - cerns that determine how good an abstraction is. When we are defining abstractions, of course, it is very similar to engineering thinking.” At the same time, computational thinking is unlike engineering. As Wing pointed out, “In software we can basically do anything; we can

OCR for page 33
 LOOKING OUTWARD actually build virtual worlds that are unconstrained by physical reality.” Sussman argued that as contrasted to engineering involving physical objects, “computational thinking is engineering where we are not given a hard time by the fact that the physical world produces tolerances, that there is error in the construction of parts. As a consequence, instead of being limited as we are in mechanical or electrical engineering by toler- ances and that sort of thing, we are only limited by the things we can think about, by the complexity that we can control in our minds.” In other words, computational thinking invents the abstractions that it manipulates. Peter Lee noted that several of the 14 engineering grand challenges for the 21st century identified by the National Academy of Engineering had a strong information technology/computer science/computational thinking flavor to them. These included reverse engineering of the human brain; advancing personalized learning; securing cyberspace; enhancing virtual reality; advancing health informatics; and engineering the tools of scientific discovery.1 One important aspect of the computational thinking–engineering connection is managing complexity. Engineered systems are becoming more and more complex. But Bill Wulf noted that software engineering was arguably the first field to face challenges related to complexity, and the need to manage complexity is important in computational thinking. As noted in the Being Fluent with Information Technology report,2 manag- ing complexity entails tradeoffs. For example, one solution to a problem may involve complex design but entail straightforward implementation, whereas another may involve a simple design but a costly implementa- tion. A solution will often result in components of a system interacting in complex, unexpected ways, and the resources available to implement a solution may be inadequate. Managing such dimensions of a problem’s solution is an exercise in managing complexity. So I like to think about computational thinking as complementing and combining mathematical and engineering thinking. For instance, we clearly draw on mathematics as our foundations. We also draw on engineering, since our systems actually operate in the real world. —Jeanette Wing 1 See National Academy of Engineering, “Grand Challenges for Engineering.” Available at http://www.engineeringchallenges.org/. Accessed December 28, 2009. 2 NRC, 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 33
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING 3.2 DISCIPLINARy APPLICATIONS OF COMPUTATIONAL THINKING Workshop participants shared their experiences in applying compu- tational thinking in different fields to illustrate how computational think - ing might be relevant. Brian Blake described the exchange as “trying to understand how computational thinking, as it is embedded in computer science or computational fields, is used in noncomputational fields to see how what we know in the computational field can be used in other fields.” The hope was expressed that by describing some of these different applications, it would be possible to identify concepts of computational thinking through its application in one discipline that could be utilized to benefit another discipline and indeed to better define and describe computational thinking. • Medicine and health care. Peter Lee described how sequencing techniques commonly employed in computational thinking can help to improve the chance of success in matching organ donors. On a small scale, the task of cross-matching multiple donors and patients is a relatively simple computational thinking exercise. At the large scale at which the medical profession would need to perform these matches to improve donation matching across the nation, this type of matching poses a sig - nificant intellectual challenge for computational thinking practitioners. Ian Foster noted that the medical profession is currently trying to cope with enormous amounts of crucial but confidential data. This information must be easily accessed and transferred among medical professionals to improve care but protected from access and misuse by those outside the medical profession. Foster argued that with the advent of health care informatics, “health care is arguably no longer a medical problem, but a computing problem.” • Archeology. Edward Fox works with archeologists attempting to look at trends across different excavation sites. He said that the archeolo- gists he collaborates with have come to realize that “if you are going to study archaeological trends across different areas, and the commerce that takes place between sites, then you have to merge the data and you have to use common terminology.” For example, archeology often depends on archived data, where differences in recording protocols, terms, measure- ment units, and languages make accessibility a challenge.3 Moreover, archeological researchers need to organize large amounts of qualitative data so that they can be retrieved computationally. Computational think- ing approaches to information retrieval, data fusion, and information 3Dean R. Snow, Mark Gahegan, C. Lee Giles, Kenneth G. Hirth, George R. Milner, Prasenjit Mitra, and James Z. Wang, 2009, “Cybertools and Archeology,” Science 311 (5763):958-959.

OCR for page 33
 LOOKING OUTWARD integration are especially useful in this area, since there is a need “to classify and search for numerical, textual, and visual data simultane- ously” and a need for “an e-science that marries the interconnectedness of digital research tools with the introspection enabled by traditional recordkeeping.”4 • Traffic engineering. Modern-day traffic lights are usually run by computer systems that alternate traffic signals based on algorithms and embedded sensors and networks. The most effective traffic algorithms are built using data collected on traffic patterns and other relevant vari- ables in order to optimize flow. The processes by which these algorithms are developed and tested involve computational thinking. The methods skilled drivers may use to navigate them also reflect computational think- ing. Christopher Hoffmann noted the example of the veteran bus driver: “The bus driver should know that if he steps on it [the gas pedal] too fast, he gets stuck at the next traffic light anyway.” • Cancer research. Peter Lee noted that agent-based modeling simu- lations have helped researchers understand that a “tumor is not really a simple group of cells that have their own agenda. They tend to live in an environment where the cells nearby sort of form a nurturing matrix for them and respond to various requests from the tumor for additional blood vessels, for example, or nutrients or whatever. This is something that invalidates a lot of the existing medical science and puts it more into a systems-thinking context, something that I think we [computational thinking scholars] can contribute to.” • Public policy. An increasingly technology-based society creates the need for techno-savvy policy makers. For example, important issues related to information technology regarding privacy, copyright, and spec- trum allocation are prominent on the public policy agenda, issues for which an understanding of computational thinking is very helpful. Bob Sproull illustrated the point by suggesting that a legislator might need an understanding of computational thinking in order to be a smart customer of a complicated IT system for the Social Security Administration or the Internal Revenue Service. • Music. Peter Lee described a summer program where young students attempt to write computer programs that allow computers to compose original music. The program challenged students to write a “computer program that could compose or a machine that could take as input some description of Bach and then produce beautiful music.” The process of building such systems makes use of computational thinking in three ways. First, it requires that a programmer analyze and decompose 4Dean R. Snow, Mark Gahegan, C. Lee Giles, Kenneth G. Hirth, George R. Milner, Prasenjit Mitra, and James Z. Wang, 2009, “Cybertools and Archeology,” Science 311 (5763):958-959.

OCR for page 33
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING musical qualities into abstract computational thinking concepts. Second, the program must construct algorithms and programming language that access and demonstrate the aforementioned musical qualities artificially. Finally, by observing this process of decomposition and composition, one can learn more about human intelligence and problem-solving processes. • Law. Kevin Ashley discussed four ways computational thinking applications advance the legal practice: logic debugging, testing, model - ing, and information retrieval. —Debugging through the reduction or elimination of “syntactic ambiguity” or “logical ambiguity” is almost always present in any kind of legal drafting. Whether in statutes, contracts, or insurance policies, unintentional ambiguities in legal language are common and must be debugged. Ashley commented that this process involves “getting the logic right, in a manner that’s kind of similar to what computer programmers have to do in getting the logic right in a line of code.” —The development of good test cases reflects an important simi - larity between computational and legal thinking—both test proposi - tions (or statements) against test cases. “Test cases are important in debugging in programming as well [as in law]—real and hypothetical counterexamples, exceptions, things like that.” Ashley pointed out that they can help a legal professional anticipate how successful an argument is likely to be by simulating the application across various test cases. —Modeling complex legal processes and flows can help legal professionals to understand “the flow of control through a statute, for the process of statutory interpretation, for predicting outcomes, for structured arguments.” —Information retrieval techniques are needed for legal informa- tion systems that can represent the justifications and context in a reasonable way. Ashley pointed to the role of precedent, or relevant preceding judgments in similar cases, in legal arguments. Computa- tional thinking can help lawyers to develop good targeted searches based on complex criteria. Ashley also expressed a caution that computational thinking might lead to over-mechanization of complex processes. “Legal problem solving is highly context-dependent in ways that may not be anticipated. As a law professor, I have to be very cautious about recommending computational thinking to law students, because it might lead them to focus more on a mechanical application of a predefined method rather than on the context and the opportunities in the actual problem to be solved. I have an obliga-

OCR for page 33
 LOOKING OUTWARD tion not to mislead. We don’t want mechanical jurisprudence here. I think this caution probably applies in a lot of other areas as well.” • Al Aho referred to Christos Papadimitriou’s talk “The Algorithmic Lens: How the Computational Perspective Is Transforming the Sciences” 5 as an exemplar of a compelling story about the power of computational thinking. Briefly, Papadimitriou presented a number of vignettes from mathematics, physics, biology, economics, and social science to show the unifying power of computation across these disciplines: —In mathematics, the classic P versus NP from theoretical com- puter science was named as one of the seven Clay Institute Millen- nium Problems,6 which pose the deepest, most fundamental, and consequential open problems in the field. —In physics, quantum computation provides a method for exploring and testing the limits of quantum mechanics. Further, how phase transitions can be explained in statistical mechanics turns out to have deep similarities to the way that certain randomized algorithms converge exponentially faster when their parameters are in the right range (analogous to the temperature/pressure of a physical system being at the critical point of a transition). —In biology, understanding the mechanism of evolution can be productively approached as an algorithmic problem. Using optimiza- tion theory and search to compare simulated annealing and genetic algorithms as ways to sketch landscapes of fitness functions, it can be shown that genetic algorithms tend to find plateaus in the landscape, while simulated annealing finds peaks. Plateaus in the landscape have the characteristic of being relatively broad and thus relatively stable for many genetic combinations. Since simulated annealing is analogous to asexual reproduction and genetic algorithms to sexual reproduction, this approach suggests that rather than maximization of fitness, sexual reproduction favors adequacy, or more specifically the ability of a genetic variant to function adequately in the presence of a wide variety of genetic partners. —In economics and social science, the Internet—an IT artifact constructed but never designed—must be studied using the methods of natural science (e.g., observation and experimentation) and in the context of the complex social system it enables and serves. It is thus an ideal test bed for sociological analysis and experimentation. 5 Christos H. Papadimitriou, 2009, “The Algorithmic Lens: How the Computational Per- spective Is Transforming the Sciences.” Available at http://www.scivee.tv/node/10204. Accessed December 28, 2009. 6 For more information see Clay Mathematice Institute, “P vs NP Problem,” available at http://www.claymath.org/millennium/P_vs_NP/, accessed December 28, 2009.

OCR for page 33
0 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING Complementing these perspectives, a number of participants includ- ing Bob Constable noted the importance of acknowledging a two-way street for connecting computational thinking to various disciplines. That is, it is not only that other disciplines can benefit from the use of compu- tational thinking in their respective domains—it is also the case that the computer science and information science disciplines from which much of computational thinking is derived benefit from understanding the basis of knowledge creation in those other disciplines. Indeed, those other disci- plines provide a context for computational thinking that often leads to new discoveries in computer science and information science themselves. 3.3 COMPUTATIONAL THINKING ACROSS DIFFERENT DISCIPLINES The subsections below are organized around different elements of computational thinking that have widespread application in multiple disciplines. 3.3.1 Problem Solving/Debugging Several speakers emphasized debugging of systems as an important application of computational thinking. In the real world, people often encounter systems with which they are unfamiliar and whose internal workings they do not understand. Robert Sproull pointed out that when humans encounter such systems, they often attempt to establish “a known state” of the system or a state of functionality that they find familiar or intuitive. This behavior is an aspect of modeling the unfamiliar system in their minds, despite the fact they may not necessarily know what sorts of algorithms are inside. To develop these models and identify known states, an individual (or group) builds on previous experience and encounters with similar systems to generate hypotheses about how it works, about what its parts are, and so on. Debugging can then be done in a variety of ways. One can, for instance, adjust parameter settings to attempt to debug a system. You know something about debugging that you have learned from dealing with even more complex things. It carries over as a set of techniques, not just because it was your computer program that you were debugging rather than a dishwasher. —Robert Sproull

OCR for page 33
 LOOKING OUTWARD 3.3.2 Testing In the sense used here, testing refers to empirical activities that provide information about whether and how a software artifact or system performs in accordance with its performance requirements. For all but the simplest artifacts, it is not feasible to test a system for all possible inputs, and so good testing procedures call for test suites, which generally involve typi- cal cases, boundary cases, and potential failure conditions. For a listing of different kinds of testing appropriate at different stages in an artifact’s lifetime, see http://www.softwareqatest.com/qatfaq1.html#FAQ1_10. Children encounter many opportunities to engage in testing. One participant used the example of a robotics competition to explain how students engage in testing. Robots are designed to perform specific tasks, and designers must test their performance. Even if there is no computing inside the robot, Sproull noted, “even if it’s just a joystick driving a servo, you have to figure out how to test it.” 3.3.3 Data Mining and Information Retrieval Popular culture often describes the modern society in a constant state of information overload. Computational thinking provides intellectual tools to help manage information. For example, a computational thinker will understand a variety of ways for retrieving information. Edward Fox commented that computational thinking can help people who are access- ing lots of information from a number of data sources to represent it in some common way and to find ways to communicate their results. 3.3.4 Concurrency and Parallelism Ursula Wolz described a number of ways to expose students to the computational concepts of concurrency and parallelism. For example, a college junior majoring in music took Wolz’s introductory course to fulfill a quantitative reasoning requirement. Wolz’s course uses Scratch, an application for manipulating animated characters, and according to Wolz, “the first thing he ran up against was the problem of synchronicity between music and animation.” With a few simple examples (offered by a more advanced student), the music major said, “I get it.” Wolz offered a second example of a sixth-grade student who worked on animation of comparable sophistication using PowerPoint. In both cases, Wolz sug- gested that their successes in understanding concurrency and parallelism were due not so much to the Scratch graphical environment as to the metaphors that help convey understanding of the underlying concept. Mitchel Resnick described a simple programming exercise in which the user choreographs a dance for an animated cat. The “code” is struc -

OCR for page 33
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING tured to represent interlocking blocks. Each block contains a specific set of instructions. For example, if a user wants the sound of drums followed by the cat moving forward, then she would take the drum block, inter- lock the forward step block, and indicate the number of steps forward. In this particular activity, users can see for themselves how program - ming, sequencing, algorithmic thinking, and parallel thinking play out. In Resnick’s words, “Parallelism comes very naturally. If I say, while it’s doing that, I also want to keep changing the color . . . [then] I just have another stack that says I want to forever change the color. So it takes some of the computational ideas of sequencing, and parallelism, and tries to make it very easy to put together and explore these ideas.” 3.3.5 Modeling To illustrate computational thinking, Mitchel Resnick used a personal example based on his standing Monday tennis match. Every week, he and his partner Ken record who wins how many games in each set, the number of games, and the number of sets. At the end of the year, they have a record of the number of games and the number of sets that each player won. One year, they noticed that Ken had won 54 percent of the games but 71 percent of the sets, and they asked, “What’s the explanation behind that?” Coming from very different disciplines—Ken in biology and Mitchel in computer science/education—each player conceptualized and approached this question very differently. Ken’s explanation the next week was based on handwritten calculations involving expansions of a binomial expres- sion. Mitchel’s explanation was based on a simulation of matches and replicating the data using children’s instructional software called Scratch. The program was developed to determine “randomly for each game that Ken has a 55 percent chance of winning [and] I have a 45 percent chance of winning.” As the simulation was repeatedly run, the total wins-to-losses ratio closely reflected the real-life outcome. More generally, modeling is a means by which one represents a sys- tem or a process in order to learn more about it and manage complex - ity. One participant mentioned the power of computational thinking to improve the effective development of complex models through knowl- edge of scale. Peter Lee argued that a computational thinker “under- stands the consequences of scale” and can thus “think very big and very small and understand the tipping points at each point.” As more data are gathered, the more sophisticated the model one can build to describe a system. If there is sufficient fidelity in a model, one can perform necessary testing within the model itself. Computers and computation can dramati - cally increase the amount of data represented in these models and thus a model’s fidelity. An example using computational thinking to model plane crash testing is shown in Figure 3.1.

OCR for page 33
 LOOKING OUTWARD FIGURE 3.1 Modeling of an airplane crash. (Top) Image of a crash test measur- ing the force of impact on an actual F-4 Phantom airplane; image courtesy of Sandia National Laboratories. (Bottom) Image of a computational model of the force of impact on an aircraft; image courtesy of Christopher Hoffmann, Purdue University.

OCR for page 33
 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING Paulo Blikstein complemented this perspective when he described bifocal modeling, wherein the physical and the virtual were blended in models, sometimes by using the physical world as inputs to a model, by calibrating a model, or by comparing the output of model mechanisms to sensor data. He argued that such blending was becoming more common in the practice of science and was also a powerful means of engaging students. Yasmin Kafai noted an example of the importance of understanding models and their limitations: “Government authorities often use models to make predictions, but people often don’t understand how these models were made, what the parameters are, or what kind of assumptions are underlying them . . . here we have a really great example . . . [in talking] about computational thinking for everyone and kind of as a goal for citizenship [in] that citizens need to also understand how decisions are being made and what some of the pitfalls in the models will be.” Wilensky added that computational thinking involves more than using models, experimenting with models, or even constructing them; it also involves creating a culture of model critique.