In "computational thinking,"14 Jeannette Wing struck a chord that has resonated strongly (generating positive as well as negative responses) with many computer scientists and non-computer scientists. Wing has subsequently defined computational thinking as the process of abstraction,15 guided by various engineering-type concerns including efficiency, correctness, and several software engineering "-ilities" (maintainability, usability, modifiability, and so forth). Some have interpreted computational thinking as an attempt to capture the set of computer science skills essential to virtually every person in a technological society, while others view it as a new description of the fundamental discipline that represents computer science and its intersection with other fields. The National Academies report1 captures both of these views, as well as presenting others.
While we can live with such definitions/descriptions in the higher education arena, we struggle with these notions of computational thinking in the K12 arena (note that we primarily consider K12 education within the U.S.). Several concerns spring to mind:
We find the above definitions of computational thinking not especially useful when considered in the context of K12 education, and, more specifically, K12 science, technology, engineering, and mathematics (STEM) education. We propose an alternative to the common definition of computational thinking we believe is appropriate for operationalization in K12 education and consider its broader implications.
We have struggled with how computational thinking might be different from mathematical thinking, algorithmic thinking, quantitative reasoning, design thinking, and several other models of math, science, and even engineering to critical thinking and problem solving. It was after struggling with the latest type of thinking that we realized that perhaps even the term "computational thinking" was misleading (from a K12 perspective), and we were approaching the definition incorrectly. Rather than considering computational thinking as a part of the process for problem solving, we instead developed a model of computational learning that emphasizes the central role that a computer (and possibly its abstraction) can play in enhancing the learning process and improving achievement of K12 students in STEM and other courses. The figure here depicts our current working model of computational learning. It should be noted that this model is explicit in its use of a computer and specifically excludes non-cognitive uses of technology (Powerpoint, wikis, blogs, clickers, and so forth).
Similar to Wing's original vision of computational thinking, we see computational learning as an iterative and interactive process between the human (the K12 student in our case) and the computer (or, in a more theoretical construct, a model of computation). We also make explicit the two consequences of the human cognitive process, namely, the capacity for abstraction and for problem formulation, and two strengths of the computer, namely, their ability to present complex data sets, often visually, and their capacity for storing factual and relational knowledge. These four elements frame and establish the boundaries of the iterative interaction between the human being and the computer. Note that the accompanying figure does not explicitly include a teacher, not because we believe teachers are unnecessary, but rather because the role of the teacher in this model is complex and requires further investigation.
In developing this model, we observed that it includes other extant models in scientific learning and inquiry. For example, one can view computational science as the interaction between the human and the computer that is contained within the box where a human being formulates a problem and provides a representation suitable for a computer. The computer then acts on this representation and returns the results of these actions to the human being through, for example, a visual representation. Computational learning expands this interaction by allowing the computer to add foundational knowledge, not just data, unknown to the human and by having the results of the computer's actions represented in a form compatible with the human's current capacity for abstraction. In the more interesting instances of computational learning, both of these processes are likely to be adaptive and personalized to the individual.
We make several observations about computational learning:
This model for computational learning differs significantly from other proposed notions of computational thinking. For example, algorithmic thinking does not require a computer and mathematical thinking is almost solely dependent on the human's formalization capacity for abstraction.2
To better understand how our proposed computational learning model can be operationalized, we present two examples: one from middle school computing and one from high school biology.
Cutler and Hutton3 modified a CS Unplugged activity on image representation (see http://csunplugged.org/sites/default/files/activity_pdfs_full/unplugged-02-image_representation.pdf) to enable middle school students to work interactively with a computer program as they learn about how computers digitize images. The purpose of these activities is to help students to understand what it means for a computer to digitally represent an image. More importantly, the students learn to move from concrete representations of images to more abstract representations of those images (as a digital representation), and from representation of images in 2D to representing objects in 3D. And this ability to abstract is important across all STEM disciplines.
Students work interactively with the computer program, receiving feedback to their attempts at digitizing their data. Over the series of lessons, they develop an initial ability to abstract away from the physical representation of an image to its digital representation. They are then further able to develop their ability to abstract as they move from 2D images to 3D objects. Finally, students develop a further ability to abstract. As part of the creation of a single 3D object, say a chair, the students are then challenged to place many chairs in a room. They need to be able to recognize that representing a 3D chair consists of two parts: the relative coordinates of each of the parts of the chair, and the absolute location of one part (say the bottom-right corner of the front-right leg).
The second example involves the teaching of evolution using computational learning. Our vision is of a 3D visualization system that could simulate evolution. A student could specify an organism, with primitive appendages (arms, legs, joints, and other attributes) to accomplish locomotion. Then, by providing an environment, the student could run the simulation to watch how the organism's ability to move evolves over time as a function of its current locomotion capability coupled with the impact of that organism's environment. Students could change the appendages and/or the environment to observe how such changes lead to a difference in the organism's evolution over time. In computer science terms, this example is similar to passing a program and an initial state as input to a Universal Turing Machine.
Such a simulation allows the student to work interactively with the computer program. The student learns both from the impact of the changes she makes to the initial configuration of the organism and to the initial environment (which will lead to the organism evolving the ability to move differently) as well as by the ability to observe the simulation/visualization as it is running. In science, researchers have found that visualization is central to increasing conceptual understanding and prompting the formation of dynamic mental models of particulate matter and processes (see 5,7,9,12). Visualization and computer interaction through animation allow students to engage more in the cognitive process, and to select and organize more relevant information for problem-solving.7 Computer animations incorporated into interactive simulations offer the user a chance to manipulate variables to observe the effect on the system's behavior (see 9,10,13).
This model for computational learning differs significantly from other proposed notions of computational thinking.
While we know of no tool that provides the exact support/simulation we are describing, there are several available visualization systems that can simulate/model the world. Two of these systems have helped to shape our vision of the above-mentioned simulation: The 3D visualization system, Framsticks (www.framsticks.com) can be used for modeling evolution, and the 2D simulation system, NetLogo (http://ccl.northwestern.edu/netlogo/) has many available pre-built simulations, including those that model evolution albeit in a different manner than what we describe.
Most papers we've seen on computational thinking represent attempts at repackaging computing science concepts, especially in the form of algorithmic thinking and introductory programming, sometimes in other domains. Though this may be useful in some contexts, it is unlikely such a simple approach will have significant impact on student learningof computer science or other disciplinesin the K12 setting. The proposed model of computational learning combines theories of learning with the computer's superiority in dealing with complexity and variability and its ability to present results using modalities that appeal to the learner in order to enhance student learning and understanding. We believe that computational learning can be framed within various theories of learning, where the computer plays a similar role as Vygotsky's More Knowledgeable Other (though the computer obviously cannot think at a higher level than the student),11 or even fits within Newell and Simon's Information Processing Theory framework.8 Our hope is that by considering our model of computational learning, we can better educate and prepare teachers to benefit from computing in and outside the classroom, and that approaches and computing tools can be identified and built to improve K12 student STEM learning.
1. Committee for the Workshops on Computational Thinking, National Research Council. Report of a Workshop on the Scope and Nature of Computational Thinking. National Academies Press, Washington, D.C., 2010.
2. Cuny, J. Finding 10,000 teachers. CSTA Voice, 5, 6 (2010), 12; http://www.csta.acm.org/Communications/sub/CSTAVoice_Files/csta_voice_01_2010.pdf
3. Cutler, R. and Hutton, M. Digitizing data: Computational thinking for middle school students through computer graphics. In Proceedings of the 31st Annual Conference of the European Association for Computer Graphics EG 2010Education Papers. (Norrköping, Sweden, May 2010), 1724.
5. Gilbert, J.K., Justi, R., and Aksela, M. The visualization of models: A metacognitive competence in the learning of chemistry. Paper presented at the 4th Annual Meeting of the European Science Education Research Association, Noordwijkerhout, The Netherlands, 2003.
7. National Science Foundation. Molecular visualization in science education. Report from the molecular visualization in science education workshop. NCSA access center, National Science Foundation, Arlington, VA, 2001.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2010 ACM, Inc.
Computational Thinking in Public Schools
I share some of the frustration Cooper et al. express in their article with the lack of clear definition of computational thinking that is actionable for public schools teachers especially at the middle school level. In the context of the NSF ITEST funded Scalable Game Design project we have explored notions of computational thinking, i.e., what is it, how can we teach it, how can we assess it, how does it transfer between domains such as game design and science modeling... One reaction common between the teachers from several states is that the term computational thinking feels right and is much less threatening than previous notions such as programming. Some teachers indicate that they got burned by programming. By burned they typically referred to elective courses using traditional programming approaches - some of the teachers had Logo experience - that were considered hard and boring by students and had extremely low participation of girls and minorities. Moreover, the collateral benefits that many had hoped for of programming never materialized. One teacher commented on the removal of programming from the curriculum at the time we did not see the benefits of programming to STEM and programming simply was not on the test.
The positive response of teachers to the term computational thinking makes me at least question the need to come up with yet another term. The main problem appears to be not the term and possible positive/negative connotations it may carry but the need to come up with some concrete frameworks that help teachers to do their daily work in public schools and that have some bearing on the collateral impact of computation onto public school curriculum. While many of us are working towards, or at least waiting for, a more tangible definition of computational thinking we have found that district leaders may not have a concrete sense of how computational thinking is defined but they do have a very concrete expectation of computational thinking. This concrete expectation is important in order to avoid making the same mistake twice. One instructional technology district director summarizes the situation succinctly by stating a concrete, testable expectation: at one point I want to be able to walk up to a student participating in game design and ask now that you can make Space Invaders, can you make a science simulation? We have been taking this idea of transfer very seriously and have looked at what some of the abstractions of computational thinking may be and if we could find a way to measure them. The early results are quite exciting by providing early indicators that we can not only teach game design based on these abstractions but that the same abstractions indeed do cary over to building computational science models in scientifically measurable ways.
In summary I think we should stay away from the idea to side step the problem we already have by introducing yet another term. It would appear to be more promising to stick the term computational thinking due to the level of comfort that some teachers have already reached with it. However, while we are increasing efforts to define what the term really means we should perhaps think even more about the pragmatic expectations for public school education. How do we need to structure curriculum so that computer science education becomes more appealing to a larger audience and, at the same time, how can we make sure that this time there is some collateral benefit, perhaps in the form of transfer, from computer science courses to other STEM related classes?
Information about the Scalable Game Design project including papers on measuring transfer of computational thinking: http://scalablegamedesign.cs.colorado.edu
Displaying 1 comment