SCOPE AND APPROACH OF THIS REPORT
This report summarizes a workshop on the nature of computational thinking held February 19-20, 2009, in Washington, D.C., under the auspices of the National Research Council’s (NRC’s) Committee for the Workshops on Computational Thinking. The workshop was structured to gather inputs and insights from computer scientists, information technologists, and disciplinary experts knowledgeable about how computational thinking might be relevant to their domains of expertise. It also involved a number of education researchers and cognitive scientists familiar with educational dimensions of computational thinking.
Questions posed to workshop participants included the following: What are the scope and the nature of computational thinking? How does it differ from other ways of thinking, such as mathematical thinking, quantitative reasoning, scientific thinking, and fluency with information technology? What kinds of problems require computational thinking? What are some examples? How, if at all, does computational thinking vary by discipline? What is the value of computational thinking for nonscientists? How, if at all, would widespread facility with computational thinking enhance the productivity of American workers? What affordances are provided by new technologies for computational thinking?1 What is the role of information technology in imparting computational thinking skills?
Loosely speaking, an affordance is the quality of an artifact that enables someone to take or perform an action. Affordances are discussed in somewhat greater detail in Section 2.5.
What parts of computational thinking can be taught without the use of computers? Without the skills of computer programming?
Although the original workshop agenda was structured around panels devoted to exploring a subset of the questions above, the discussion throughout the workshop resulted in useful insights regarding all of these questions. Accordingly, the committee organized its summary so that thoughts and insights on similar questions would be presented together, rather than being scattered throughout a summary organized in accordance with the original panel structure.
Each succeeding chapter describes some of the main themes arising from a workshop session. The themes are not conclusions or findings of the committee; they are ideas, extracted from the discussions during each session and drawn not only from the presentations of the speakers but also from the discussions among all the participants (committee, speakers, and attendees), that seem to have formed the gist of the session. In addition, to improve readability and to promote understanding, background material on some of the topics raised has been interspersed in this summary.
This report does not include all of the material that was discussed in the committee’s first workshop. Specifically, in addition to discussions related to the nature of computational thinking, there were many discussions related to pedagogy and how best to expose students to the ideas of computational thinking. Because the second workshop will be devoted to that topic, the committee felt that it was better to communicate most of the first workshop’s pedagogical discussions in the second workshop’s report. That said, this report (of the first workshop) does foreshadow some of the themes and ideas that will be reflected in the second report. For example, the second workshop will explore possible connections between the structure and the pedagogy of computational thinking, as well as the extent to which it is reasonable to expect individuals to generalize computational thinking abilities from one problem domain to another.
In addition, the reader is cautioned that the workshop was not structured to result in a consensus regarding the scope and nature of computational thinking, and the workshop was deliberately organized to include individuals with a broad range of perspectives. For this reason and because some of the discussion amounted to brainstorming, this summary may contain internal inconsistencies that reflect the wide range of views offered by workshop participants. In keeping with its purpose of exploring the topic, this workshop summary does not contain findings or recommendations.
MOTIVATION—WHY SHOULD ANYONE CARE ABOUT COMPUTATIONAL THINKING?
As it is usually construed, computational thinking includes a broad range of mental tools and concepts from computer science that help people solve problems, design systems, understand human behavior, and engage computers to assist in automating a wide range of intellectual processes. The elements of computational thinking are reasonably well known, given that they include the computational concepts, principles, methods, languages, models, and tools that are often found in the study of computer science. Thus, computational thinking might include reformulation of difficult problems by reduction and transformation; approximate solutions; parallel processing; type checking and model checking as generalizations of dimensional analysis; problem abstraction and decomposition; problem representation; modularization; error prevention, testing, debugging, recovery, and correction; damage containment; simulation; heuristic reasoning; planning, learning, and scheduling in the presence of uncertainty; search strategies; analysis of the computational complexity of algorithms and processes; and balancing computational costs against other design criteria. Concepts from computer science such as algorithm, process, state machine, task specification, formal correctness of solutions, machine learning, recursion, pipelining, and optimization also find broad applicability.
Computer science, of course, has no monopoly on such concepts. For example, physicists have used abstraction and modeling for centuries, logisticians and management scientists have studied scheduling extensively, and notions of tradeoff are central to the work of economists and engineers. Nevertheless, computer science provides a basis for a unified framework and language with which to discuss such notions explicitly, and these notions are the fundamental concepts of this discipline broadly construed (e.g., including information science, elements of computational science and engineering, digital media studies, and so on).
By explicitly articulating these notions, many computer scientists, and certainly the workshop attendees, believe that it is possible to describe a collection of analytic skills that everyone, not just computer scientists, can use to help solve problems, design systems, and understand human behavior. Thus, they argue, computational thinking is comparable in importance and significance to the mathematical, linguistic, and logical reasoning that society today agrees should be taught to all children.
Expanding on these ideas, workshop participants offered a number of reasons for promulgating computational thinking skills more broadly:
Succeeding in a technological society. In this view, computational thinking affords individuals the ability to navigate more effectively through a
society in which they frequently encounter technological devices in their personal lives (cell phones, automobiles, dishwashers, and so on). In addition, individuals have the opportunity to take advantage of technological resources (e.g., information on the Internet, social networking, online education, cloud computing). Finally, individuals competent in computational thinking are better able to understand the ways in which technology is relevant to public policy decisions. Workshop participants including Marcia Linn argued that emphasis on computational thinking in K-12 education would increase equitable access to the resources of modern society.
Increasing interest in the information technology professions. It is a matter of record that enrollments in computer science university programs have dropped since the peak of the dot-com years, though in recent years, these enrollments have begun to rise again.2 A number of workshop participants, among them Lenore Blum, argued that a broader promulgation of computational thinking in K-12 students would help to sustain the rising interest in computing as a profession.
Maintaining and enhancing U.S. economic competitiveness. Some workshop participants pointed to reports that noted concerns about offshoring of U.S. jobs and the U.S. ability to remain economically competitive in a global environment.3 In this view, a better educated workforce is an essential element of an internationally competitive workforce, and a number of workshop participants expressed the view that computational thinking is an essential component of such an education.
Supporting inquiry in other disciplines. Given the increasingly prominent role that computational tools are having in other disciplines, several participants, including Edward Fox and Bill Wulf, argued that a facility with computational thinking would assist specialists in those other disciplines to more effectively adopt, use, and develop computational tools. Robert Constable pointed to some of the examples listed in Box 1.1.
Enabling personal empowerment. Many workshop participants suggested that a strong motivator for an individual to learn computational thinking is to gain the ability to do things that are important to him or her. For example, Roy Pea noted that in general people want “to do something without error, do those things efficiently, and do them cost-effectively.” Furthermore, people “constantly have meta-discourse around routines
Steve Kolowich, 2009, “Computer-Science Enrollment Rises for the First Time in Six Years,” The Chronicle of Higher Education, March 17. Available at http://chronicle.com/ blogPost/Computer-Science-Enrollment/4579. Accessed December 28, 2009.
See for example, National Academy of Sciences, National Academy of Engineering, and Institute of Medicine, 2007, Rising Above the Gathering Storm: Energizing and Employing America for a Brighter Economic Future. Washington, D.C.: The National Academies Press. Available at http://www.nap.edu/catalog.php?record_id=11463. Accessed December 28, 2009.
Computation and Computational Thinking for Creating Knowledge
tion then consists of a human matching the current image to the most similar archetype. Bruce’s theory of face recognition is also formulated as a computational process, employing techniques for abstraction, representing and formulating archetypes, “nearest neighbor” matching, and so on.
SOURCE: Items 1-3, 6, and 7 are adapted from Robert L. Constable, “Transforming the Academy: Knowledge Formation in the Age of Digital Information,” PhysicaPlus, Issue 9, available at http://physicaplus.org.il/zope/home/en/1185176174/trans_academy_en. Items 4, 5, 8, and 9 are adapted from Alan Bundy, “Computational Thinking Is Pervasive,” available at http://www.inf.ed.ac.uk/research/programmes/comp-think/.
and processes that help them achieve these goals.” Computational thinking, Pea noted, provides people with “a way to abstract what they’re already doing and talking about…. Connecting computational thinking in a personally meaningful way is at the heart of tackling the problem of how everyone can be brought into a pathway for developing and using computational thinking in their everyday lives.”