This report summarizes the second of two workshops on computational thinking, which was held February 4-5, 2010, in Washington, D.C., under the auspices of the National Research Council’s (NRC’s) Committee for the Workshops on Computational Thinking.1 This second workshop was structured to gather pedagogical inputs and insights from educators who have addressed computational thinking in their work with K-12 teachers and students.
Questions posed to participants in the second workshop included the following:
• What are the relevant lessons learned and best practices for improving computational thinking in K-12 education?
• What are some examples of computational thinking and how, if at all, does computational thinking vary by discipline at the K-12 level?
• What exposures and experiences contribute to developing computational thinking in the disciplines? What are some innovative environments for teaching computational thinking?
1 The first workshop, held February 19-20, 2009, is summarized in National Research Council, 2010, Report of a Workshop on the Scope and Nature of Computational Thinking, Washington, D.C.: The National Academies Press. Available at http://www.nap.edu/catalog.php?record_id=12840. Last accessed February 7, 2011.
• Is there a progression of computational thinking concepts in K-12 education? What are some criteria by which to order such a progression?
• How should professional development efforts and classroom support be adapted to the varying experience levels of teachers such as pre-service, inducted, and in-service levels? What tools are available to support teachers as they teach computational thinking?
• How does computational thinking education connect with other subjects? Should computational thinking be integrated in other subjects taught in the classroom?
• How can learning of computational thinking be assessed? How should we measure the success of efforts to teach computational thinking?
This workshop was structured to illuminate different approaches to the teaching of computational thinking. Participants often clarified their own interpretations of computational thinking in relation to the discussion in the first workshop report.
To improve readability and to promote understanding, background material on some of the topics and ideas raised is interspersed in this workshop report. This workshop report also includes some of the material discussed in the first workshop that related to pedagogy and how best to expose students to the ideas of computational thinking but that was not addressed in the first workshop report.
The second 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 workshop 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.
The reader is cautioned that the workshop was not intended to result in a consensus regarding the scope and nature of computational thinking. As was true in the first workshop, participants in the second workshop expressed a host of different views about the scope and nature of computational thinking. As stated in the first report:
Even though workshop participants generally did not explicitly disagree with views of computational thinking that were not identical to their own, almost every participant held his or her own perspective on computational thinking that placed greater emphasis on particular aspects or characteristics of importance to that individual.2
2 National Research Council, 2010, Report of a Workshop on the Scope and Nature of Computational Thinking, Washington, D.C.: The National Academies Press, p. 59. Available at http://www.nap.edu/catalog.php?record_id=12840. Last accessed February 7, 2011.
The first report raised the possibility that given this variation in individual perspectives, one possibility concerning the structure of computational thinking is that computational thinking should be regarded simply as “the union of these different views—a laundry list of different characteristics” (p. 59). Noting that most participants in the first workshop would have found this view deeply unsatisfying, the first report pointed out the value of addressing a number of questions that emerged from the first workshop, including the following:
• What is the core of computational thinking?
• What are the elements of computational thinking?
• What is the sequence or trajectory of development of computational thinking?
• Does computational thinking vary by discipline?
Similar questions regarding the structure and content of computational thinking were raised in the second workshop as well. For example, Joyce Malyn-Smith of the Education Development Center, Inc., said that adopting a consistent definition of computational thinking is necessary because people see computational thinking through only their own lenses—and efforts to advocate for computational thinking in the curriculum will not be credible in the absence of a consensus about its structure and content. Al Aho from Columbia University acknowledged the community’s need for a common definition of computational thinking, which was inherently difficult given the rapidly changing world to which computational thinking is often applied. Any static definition of computational thinking likely would be obsolete 10 or 20 years from now, he argued, and thus, “The real challenge for the entire community is to define computational thinking and also to keep it current.”
Recognizing that there is no easy-to-summarize definition of computational thinking, the first report noted the view of many computer scientists that computational thinking is a fundamental analytical skill that “everyone, not just computer scientists, can use to help solve problems, design systems, and understand human behavior. [As such,] computational thinking is comparable … to the mathematical, linguistic, and logical reasoning … taught to all children” (p. 3).
The first report also noted that as 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” (p. 3). The report went on to say that
Computational thinking might include reformulation of difficult problems by reduction and transformation; approximate solutions; paral-
lel 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. (p. 3)
Participants in the first workshop discussed computational thinking as a range of concepts, applications, tools, and skill sets; as a language for expression; as the automation of abstractions; and as a cognitive tool. They further commented on how it is related to thinking skills and habits of mind associated with mathematics and engineering, and how various aspects of computational thinking (problem solving/debugging, testing, data mining and information retrieval, concurrency and parallelism, and modeling) are applicable to various disciplines. Many of these ideas were reflected in the second workshop as well.
Participants in the first workshop offered a number of reasons for promulgating computational thinking skills broadly in the K-12 curriculum. These included succeeding in a technological society, increasing interest in the information technology professions, maintaining and enhancing U.S. economic competitiveness, supporting inquiry in other disciplines, and enabling personal empowerment.
To launch the second workshop, Jeannette Wing, then assistant director of NSF’s Computer and Information Science and Engineering Directorate, discussed her goal for a workshop on pedagogy. She argued that an application of the science of learning research in designing grade- and age-appropriate curricula for computational thinking is necessary to maximize its impact on and significance for K-12 students.
Wing pointed to mathematics as a field that has been successful in developing learning progressions that have a solid foundation in research on the human brain and how it learns mathematical concepts. She noted that humans have an innate understanding of relative quantities—they have the ability in many situations to distinguish between larger and smaller quantities at a very early age. This level of recognition suggests that mathematical activities involving concepts of “greater than” and “less than” might be appropriate for very young students. Symbolic representa-
tions require different kinds of mental processing, and such processing is usually not possible until later in development, suggesting that activities involving symbolic representation would better be undertaken later in the K-12 sequence.
As a point of contrast, Wing pointed to the way that computer science is typically taught. What is often taught in computer science to middle school and high school students, said Wing, reflects a relatively casual approach and is a minimally modified version of what is taught to undergraduates. What makes the approach casual is that it is done without a deep appreciation for how students learn at different ages. She noted that there is not a body of grounded and research-based knowledge about how the various aspects of computational thinking or computing map on to brain development. She went on to point out that despite this lack of knowledge, many people believe that some of the abstract concepts of computational thinking cannot be taught before students enter the eighth grade, because of a common assumption that only at that age are students able to learn abstract concepts. There are many such assumptions, she said, that must be evaluated in light of serious research about learning, research that has not yet been done with reference to computing or computational thinking.
Most of the workshop was devoted to describing and discussing various approaches to the teaching of computational thinking.
This report is organized as follows. Chapter 2 provides what the committee believes to be the key points raised by workshop participants—that is, the committee extracted from the various presentations and discussion sessions a number of key points that in its judgment speak most closely to the teaching of computational thinking. Chapter 3 presents individual committee members’ personal synthesis of points made in the respective panel sessions that they moderated. Chapter 4 contains summaries of individual presentations by workshop participants, which often elaborate in more detail examples described in Chapter 2. Depending on the depth and degree of context in which the reader is interested, the committee encourages reading back and forth between these different levels of summary.
Although workshop participants did not agree explicitly on a definition of computational thinking, the examples they provided during this workshop are valuable as indicators of ways that people see the intersection of computation, disciplinary knowledge, and algorithms. Other examples identify what the participants saw as issues and problems when trying to introduce computational thinking into school and non-school pedagogical contexts.