Computational Thinking, Revisited

This is a follow up to my first post on Computational Thinking. For a background, go check it out before reading further.

I'm often victim to my own ignorance, and I think to be good thinkers, we need to fall prey to preconceived notions and half-formed thoughts. They give a lens through which we can analyze and consider areas of growth. To me, Computational Thinking (CT) was simply working in ones and zeros. Papert's exploration of CT in Mindstorms has helped me connect philosophical ideas with actions which can be applied in the classroom.

Admittedly, my education psychology is a bit rusty. Of course, Piaget and the usual suspects (Skinner, Bloom, Gardner, Maslow, etc.) are familiar names, but the nuances of their ideas have faded. In particular, Piaget's theory of learning as a formal process and the challenge that arises when we look at patterns of learning in children fascinated me. Papert makes a compelling connection between CT (programming, in particular) with learning a language.

Children learn based on the metaphors and cultural symbols surrounding them, which is why language is one of the first things to emerge. They are surrounded by speech and text. Words represent objects and become more abstract as they begin to understand the complexities and interactions between those symbols. "Learning languages is one of the things children do best," (Papert, 1993, p. 6), and initially, without formal instruction. Applying the same ideas to math (which is the basis of the metaphor), children should be able to learn those abstract ideas at a very young age. Computers allow for that immersion to take place.

As for programming, Papert notes that building a computer function is analogous to things we do every day without thinking twice. The process we use to sort objects is the same thing a computer does as it runs through a loop. If that relationship can be experienced by students, they will begin to see programming as not a skill, but a culture, and something which will feed into all areas of their lives.

Computational Thinking should also inform instruction and feedback as well as fundamentally change the way students "think about thinking and learn about learning" (Papert, 1993, p. 23). In some ways, our educational system has taught students a rudimentary version of programming: it's "right" or "wrong." When computational thinking is introduced, the right/wrong dichotomy is replaced with "can it be fixed?" Learning is a process, and not one that the current educational system teaches very well. When students can learn through metacognition and reflection, we don't have to wait for systemic change to enact reforms.

Finally, Papert recognizes that thinking "like a machine" is dangerous and should be avoided. While the concern is legitimate, it is often reductionist and misses the points of different methods of thinking. Papert says:

There are situations where [a step-by-step, literal mechanical fashion] is appropriate and useful...By deliberately learning to imitate mechanical thinking, the learner becomes able to articulate what mechanical thinking is and what it is not. The exercise can lead to greater confidence about the ability to choose a cognitive style that suits the problem (1993, p. 27).

In other words, we need to be teaching students different ways to analyze thinking, and one way to do that is through immersion with computers and problem solving in their language. Learning is multi-modal, and given the availability of computing devices and ease-of-entry for learning these languages, the implications for today's educational system - 21 years later - are monumental and ripe for implementation.


Papert, S. (1993). Mindstorms: Children, computers, and powerful ideas. New York, NY: Basic Books, Inc.

Leave a Reply

Your email address will not be published. Required fields are marked *