Computational thinking has been a hallmark of computer science since the 1950s. So also was the notion that people in many fields could benefit from computing knowledge. Around 2006 the promoters of the CS-for-all K-12 education movement claimed all people could benefit from thinking like computer scientists. Unfortunately, in attempts to appeal to other fields besides CS, they offered vague and confusing definitions of computational thinking. As a result today's teachers and education researchers struggle with three main questions: What is computational thinking? How can it be assessed? Is it good for everyone? There is no need for vagueness: the meaning of computational thinking, evolved since the 1950s, is clear and supports measurement of student progress. The claims that it benefits everyone beyond computational designers are as yet unsubstantiated. This examination of computational thinking sharpens our definition of algorithm itself: an algorithm is not any sequence of steps, but a series of steps that control some abstract machine or computational model without requiring human judgment. Computational thinking includes designing the model, not just the steps to control it.
Computational thinking is loosely defined as the habits of mind developed from designing programs, software packages, and computations performed by machines. The Computer Science for All education movement, which began around 2006, is motivated by two premises: that computational thinking will better prepare every child for living in an increasingly digitalized world, and that computational thinkers will be superior problem solvers in all fields.
I have been a full-time computational science educator since the late 80s, with a strong background in computational chemistry, biology, and medicine. I'm anxiously looking for some "there there" in terms of computational thinking. Given the poor level of instruction in computer science, never mind computational science, in most high schools, it seems ludicrous to be trying to introduce some relatively vague concept and expecting teachers, already overloaded with end-of-grade and other high-stakes testing, to do so. Let's call computer science computer science, and let's call computational science just that. Calling these things "computational thinking" does not, in my opinion, help at all.
[The following comment was submitted by Peter J. Denning on December 19, 2018. --CACM Administrator]
Computational thinking (CT) was introduced at NSF as part of an initiative to get computing courses into K-12 schools. Previous initiatives focusing on literacy and then fluency did not fare well. There is considerable momentum behind the current movement, supported by computing professional organizations and teacher organizations. There are well thought out recommendations (e.g., the one by code.org) that teachers embrace for children. All these efforts can be classified as "computational thinking for beginners". There is a much more advanced level of "computational thinking for professionals" that includes computational science, software engineering, architecture, networks, artificial intelligence, design, and more. You're right to ask if "there's there" if all you examine is CT for beginners -- it is narrow and intended for newcomers. The advanced style of computational thinking for professionals can be found in the curriculum recommendations for universities and the professional development recommendations of ACM and IEEE.
Displaying all 2 comments