Jeannette Wing's 2006 Communications Viewpoint on computational thinking5 ignited a worldwide movement to give students new knowledge and skills to solve problems in their daily lives. Quickly, teachers, curriculum and standards writers, and other education specialists were proposing what children needed to know about computation and how to develop a computational mindset. There is still little evidence that knowing about computation improves everyday problem-solving, but there is no doubt that Wing's call to action led to a broad and dramatic response.
The computational thinking movement puts the onus on the student and on the education system. They argue that if we change humans to think in ways that are informed by how we now work with computers, that will have problem-solving advantages for the humans.
If a city does not work for the residents, we could change the residents. Alternatively, we could redesign the city. The best urban redesign has citizens understanding the purpose and actively participating, so there is parallel development of both the city and the citizens.
Children today already think with computation. If we want better thinking and problem-solving, we have to improve the computing and use that to change our teaching. We put the onus back on the computer scientists and other computationalists. It is our job to design better.
Tool use shapes thinking. While we might not think like a carpenter when we start using carpentry tools, if we apply ourselves (for example, reflect on our doing, as Dewey suggests2), we can develop carpentry thinking. We can learn to see what is possible with the tools of carpentry, the way a carpenter thinks.
Closer to home, the "kids these days" use all manner of digitalread: computationaltools. Before drawing the obvious conclusion, consider the following vignettes.
Vignette 1: Consider the following two problems, drawn from a research study1:
While the equation in both problems is the sameS=6Psignificantly more undergraduate engineering students provided the correct equation in the Computer Programing Context than in the Algebraic Context.
Vignette 2: Now, consider the following research finding (appearing in Norris and Soloway4):
Vignette 3: Now, consider the following comment:
Vignette 4: Finally consider the following:
The activity in Vignette 1 aligns with the notion that computational thinking is embodied in computer programming. Vignette 2 shows us it is not just programming that can impact thinking. A wide variety of computational activities can impact thinking. In Vignettes 3 and 4, we argue these activities illustrate "computational thinking"though the activities in those vignettes have nothing to do with computer programming.
The users in those Vignettes are using computational tools to do computational thinking. They are using abstraction and decomposing problems, though they may not use those words. Much of the effort to implement computational thinking in schools has been about identifying the computing ideas and practices. Maybe the kids are already learning those, but on different terms, without our language.
How do we prepare our children for never-seen-before problems?
People of the so-called baby-boomer generation may feel computational thinking is something specialand for them, it may well be. For the children growing up today, who are increasingly using digital tools to mediate their everyday lives, computational thinking is, well, just thinking! But that is just not enough. Learning to compute should give students a qualitative leap, so that they can think about new problems and think about the world in new ways.
How do we prepare our children for never-seen-before problems? We might start by redesigning TikTok and Fortnite.
We already use computers to help many kinds of thinking, but much of that thinking would be the same without computers. We might get expanded thinking if we follow along the lines of extending mathematics and systems organizations to model complex situations that go beyond our commonsense reasoning, as seen in many scientific, engineering, medical, mathematical, and literary fields. Computing simulations has already revolutionized many fields. We might significantly impact society if all fields used this expanded thinking. So, there is a bird to be caught if we can sprinkle salt on its tail.
A strong rubric is "making systems about systems," and this accords well with the first ACM A.M Turing Award winner Alan Perlis' characterization of our field as "The science of processes; all processes." A subset of these processes are primarily algorithmic in nature, but to deal with the large range that computation can model, it is much more apt to "think all systems" and to see the representational possibilities of the computer make it a great fit to be the dynamic mathematics needed to make and understand systems.
This is a much largerand in our opinionmuch more useful characterization of computing as a subject in K-12, and it leads to a number of important differences from current practice. The big one is to help children learn about dynamic systems with interacting parts of all kinds, and how to make and model dynamic systems for deeper understanding (and considerable fun also!) Imagine something as engaging as Fortnite where the system is inspectable, where users might model their strategies and test them in simulation first, so that students might learn to use the power of expanded thinking.
A modeling and simulation point of view also serves to criticize the languages being taught today. For example, none of the common K-12 programming languages today are very good at modeling intercommunicating processesdespite both natural and human engineered systems working that way. Most of the languages that we put in school today can only handle one thread of control without ungraceful excursions into fragile and tricky designs. We should not teach a qualitatively weak subset of something to children when we have better options. It might make later learning of a more powerful version more difficult.
Instead we should take our inspirations and goals from Jerome Bruner's assertion and challenge: "Any subject can be taught to any one at any age in an intellectually honest fashion if their level of development is heeded." Keeping the "intellectually honest" part means thatespecially for young childrenit will be necessary to invent real variants of adult versions of the subject matteras has indeed been done so well by Montessori, Pa-pert, Bruner, and others. We imagine a comprehensive suite of intellectually honest computing-based models for understanding systems can lead to much better notion of programmingfor both adults and children. These will lead to much better programming language designs and environments as part of a larger curriculum made from the most powerful ideas about systems, processes, science, math, engineering, and computing itself.
One of the main ideas of K-12 schooling is to prepare children in general for their next phases of life, and subjects such as reading/writing/literature, science, mathematics, and history are taught to all to provide a "richness" of thought about both civilizations and how to be a citizen who supports civilization. Understanding civilization as a system is a powerful idea for all citizens. In our metaphor, we want citizens to participate in the redesign of the city and understand the rationale for its design. Students need fluency in order to be able to understand models and systems. Important thresholds of understanding must be reached before they can be part of one's thinking tools. Finding and inventing these thresholds for the general population of children, and how to teach to them, is the critical need of our time!
Representations to help thinkinglanguage, mathematics, computingare all best taught in context. Children should use computing with all the other fields of thought, rather than mostly in isolation. Rather than teach computer science as a separate topic that might transfer, we should teach with computational models in every field.
We can and should improve schools to give students access to expanded thinking. We in computing have a powerful lever. We can change the computation.
Maria Montessori made the observation almost 100 years ago3: children are set up by their nature to learn their surrounding environment and culture. Changing the environment naturally leads to different learning. Montessori wanted her children to have qualitatively different thinking, so she invented new kinds of school.
Changing school today impacts only one part of today's children's lives. Changing computing impacts their environment both in and out of school. If Montessori were alive today, she would still want to redesign school, but she would likely want to change the computing, too. That is part of the child's whole environment. How would Montessori redesign Fortnite? What would she design instead of Fortnite?
Teaching computing as it is today is unlikely to have dramatic impact on students' everyday lives. It is our job to redesign computing, to give children new power to make sense of their world and change it.
4. Norris, C. and Soloway, E. Students write more, write better on the computer: Rigorously supported! T.H.E. Journal, (Nov. 11, 2017); https://bit.ly/2KQToTg
5. Wing, J.M. Computational thinking. Commun. ACM 49, 3 (Mar. 2006), 3335; DOI: https://doi.org/10.1145/1118178.1118215
The Digital Library is published by the Association for Computing Machinery. Copyright © 2019 ACM, Inc.
Yes, but there is something special about programming. As Alan Kay wrote in Scientific American in 1984: "It is not a tool, although it can act like many tools. It is the first metamedium, and as such it has degrees of freedom for representation and expression never before encountered and as yet barely investigated."
Fortnite, TikTok, Word, etc. are not metamedia.
Programming can be an especially fertile ground upon which to learn to think and learn.
We completely agree that programming is powerful. Our first vignette is about the special power of programming. One can think well without programming. We do encourage programming by children, but (speaking for me) the tools, languages, and environments that we have for children's programming could be made better. What would programming on top of Fortnite and TikTok look like? How would we re-invent programming for the goal of "expanded thinking" rather than software development? How would we re-invent programming differently for the goal of expanded thinking in different domains?
I think there is something really special about programming also. However, I think we can agree that there is abundant evidence today -- from looking at the large numbers of programmers around -- that just learning to program conveys no automatic special insights (perhaps almost the opposite?)
On the other hand, I know that we do agree that programming of certain kinds used in special ways can convey revelatory insights that can qualitatively lift our levels and kinds of thinking. That was certainly what our great inspiration -- Seymour Papert -- was all about, and he was quite wonderful at being able to find ways to get the children thinking about "the stuff behind the stuff" and not falling into the trap of thinking mechanically.
"User interface" of all kinds -- including many kinds of communication -- has to start with where people are. A really good experience will help lift people from where they are into higher insights and thinking (most UIs today fail miserably at this, and it's a real shame that some of the computer artifacts that children like to play with -- like games -- almost completely miss the opportunity to help children as well as enthrall them).
A simpler parallel is the extremely important longer standing question of how to teach children to read and write. We certainly want to start out with material and activities that are intensely personal, even as we endeavor to help children widen out to deal with ideas that are not so close to home. I don't think schools do a great job of this, but I also think they are doing a much better job than is seen in their approach to computing and programming.
The biggest problem when only the "flat tire" or "half full glass" is in view is that it eventually becomes taken for "normal" and "reality", and this really hurts helping children become aware of the much larger possibilities. If schools were better, we would not have to rely so much on fruitful serendipitous experiences outside of school. As it stands right now, I think getting the computing environment around children to be much much better -- which is very possible to do, and doesn't need school politics to accomplish -- is a path all computerists should rally around to make happen.
I agree with the comments and much of the article. And I agree that the exploration of adding programming on top of Fortnite and TikTok is worthwhile. Where I think we disagree is about emphasis or focus. In Seymour Papert's introduction to his book Mindstorms he writes about how a powerful programming language can be used for thousands (millions?) of different things. Among those things it is likely that a child will be passionate about a few of them. Yes, many children are passionate about Fortnite (and TikTok?) and some of them would be passionate about programming in Fortnite.
There are have been many successful attempts to add programming to games: Rocky's Boots (1982), Robot Odyssey (1984), RoboSport (1991), Minecraft (multiple extensions), and probably many more. But these efforts excite a small fraction relative to those who are excited about using general-purpose programming systems such as Logo, Scratch, Squeak, ToonTalk, or Snap! for their own projects.
I think our efforts should be focussed on supporting children in pursuing large and deep projects that they are passionate about. Fortnite and TikTok may be distractions from that goal.
I very much agree.
I will confess that for a variety of reasons I detest many of the apps around, especially those that successfully work as new legal drugs by exploiting our genetically built in wants via oversupplying what used to be safely scarce.
I also thought that Rocky's Boots was brilliant (it didn't quite teach programming, but what lies behind it), and the conception of Robot Odyssey was wonderful (even if the realization of it was too awkward -- someone (like you) should take another shot at this idea). The attempts to tack programming onto Minecraft have been clumsy, but perceived need has surmounted the awkwardness.
Here's one crux that needs to be pondered and resolved vis a vis schooling and society: it's one thing to learn something because it's fun -- a great way to do it for sure -- and another to be helped to get really fluent and really deep at it for larger societal reasons (my reading and writing example above).
I don't think most people -- especially children -- are learning programming deeply enough and in powerful ways that bring forth the profound kinds of thinking -- especially systems thinking -- that citizens of societies need today. Society's official bastion for improving its body politic has always been the schools, and these have fallen disastrously below threshold on any number of fronts.
I don't think our world can survive with just pop conceptions of ideas. I think this is dangerously true regarding pop conceptions of central subjects such as math, science engineering, history, and ... computing.
So, in all this excitement about computational thinking, whatever happened to a discussion of computational SCIENCE, or has that been subsumed into computational thinking? At my high school, we have 11 courses in computational science, including new courses in digital humanities and data science, along with computational bio, chem, physics, medicine, nanotech, and a couple of research courses. The goal of ALL these courses? Teach bio, chem, physics from a computational approach. Computational science is a well-established discipline, but it doesn't seem to be appearing much in any of these discussions.
Ken, thank you for your comments! I started digging into them, and decided to write a blog post in response: https://cacm.acm.org/blogs/blog-cacm/240605-the-size-of-computing-education-today-by-the-numbers/fulltext
Thank you all for this insightful article. :-) There are many thoughts I have in relation to this, but the one that immediately jumped out for me is in relation to this point:
""[K-12] Students using word processors for writing generally produce longer, higher-quality
writing than students using pencil or pen and paper." The computational tool plays a role in
students ability to write. We might say that using professional writing tools leads to
performance thats more like a professional writer. Its honest use of the real thing."
This takes me back to my old friend Gavriel Salomon's thoughts about 'effects with' vs 'effects of' computing. It may be that the student produces better writing 'with' the computerbut, is the student a better writer after having used the computer? Has there been a cognitive residueand 'effect of' having used a wordprocessor?
I'm not sure. I think if students perhaps used the 'outliner feature' of wordprocessing, there might be some cognitive transfer to 'whole' and 'parts', 'forest' and 'trees'. The idea of mind-sized bites (thank you, Seymour) might be acquired more easily.
This cognitive residue is indeed partly possible by the computing tools and is partly the result of the classroom culture in which the tools are used. Teachers can help to build the transfer for students. I use use a wee technique I call 'metaphoria' to help young students to think about their programming. I would provide startersalthough they are encouraged to make their own)!
"Programming in Logo is like"...
'...playing tennis. First, I take a turn, then the computer takes a turn.'
'understanding space. The Earth is like a subprocedure inside the solar systemwhich is like its superprocedure. And the solar system is like a subprocedure inside the galaxywhich is like its superprocedure.'
These are examples from 8 year olds.
So thank you for reminding me of all that! I am frustrated with the current shallow implementations of 'coding' I am witnessing in school systems. But, I'm still at it! As you all are! :-)
I'll now dig into the article more thoroughly.
~ Peter Skillen
All who knew Gavvy Salomon miss him very much. He had a unique way to present ideas, and was one of the most interesting interpreters of McLuhan.
Some in the ARPA/Parc research community noticed early on that when a human uses a tool, something also changes in the human's brain. McLuhan (and Innis, Havelock, et al) looked at this idea in the large, especially with regard to how we communicate ideas. They were sure that learning to read and write fluently was not just extending oral communication and oral societal thinking, but caused important qualitative changes in how thinking was actually done -- they strongly correlated all known civilizations with reading and writing.
This led to some deep visions and hopes for personal computing design: that if the approach was done as powerfully as reading and writing and learned as deeply, the results could be further giant leaps in how we can think about things. I still am quite convinced that this is the case.
However, there is now mountains of evidence that just learning to program does not produce these effects, and in fact seems to replace some richer modes of thinking with simpler more mechanical thought patterns. This -- like television -- has the overall effect of resetting "normal", in this case -- I think -- downwards.
The educational organizations in the world have so far done a very bad job of grappling with mathematics and most especially: science. And this after some hundreds of years of modern versions of these being in existence. We could at least say that "after WWI it would be a grave mistake not to have the average voting citizen be fluent in math and science".
So it's not surprising that they have quite flunked computing so far. This has greatly been complicated by the desire to replace real education with vocational training, and that the models of computing in business are quite poor. This produces a very dismal "normal"!
It has been one of the past main missions of public education to present "much better than normal" to children in the hopes and need that they will grow up with the discernment to raise normal above the important thresholds that we need today. It's hard to find this as a vision, mission, or goal in today's public education systems. Without something much better, we find that computing has turned into a kind of pop culture, with many of the same kinds of limited views as other "pop art forms".
I very much agree with you. I am extremely discouraged by the 'pop culture' nature of computing and am very worried about the 'paint by number' nature of many of the 'coding' experiences to which children are exposed. Many educatorswell-intentionedexpect it to be a 'fun' experience for their students and for themselves but really aren't prepared to learn hard stuff. 'Hard fun' isn't part of their mindset.
I miss Seymour's voice these days. He is mentioned so much with this new crazebut, I fear his name is used superficially to further this paint by number approach. :-(
You say, "However, there is now mountains of evidence that just learning to program does not produce these effects, and in fact seems to replace some richer modes of thinking with simpler more mechanical thought patterns." Yeppers! In the 80s, there was enough research around to tell that story. Now, even more!
This desire for 'computational thinking for all' is misguided. Seymour did say it beautifully. I'll paraphrase not so beautifully. ;-) It is 'one' way of thinking and worth knowing. But, the biggest advantage is that the child can 'zoom out' and see it as ONE way while thinking about other ways of thinking. It becomes part of a repertoire of 'ways to think' that the child can draw on as required.
As Tom Lough used to say...FORWARD 100
Displaying all 10 comments