Gas station without pumps

2011 March 27

Computational Thinking

Filed under: Uncategorized — gasstationwithoutpumps @ 10:07
Tags: , ,

In Research Notebook: Computational Thinking—What and Why?, Jeannette M. Wing presents a definition of computational thinking and an explanation of why it is important for everyone, not just computer scientists.

Her definition is

Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent. [Jan Cuny, Larry Snyder, and Jeannette M. Wing, “Demystifying Computational Thinking for Non-Computer Scientists,” work in progress, 2010]

though she credits Al Aho for some of the thought behind it.

A key part of computational thinking is the value of levels of abstraction: being able to represent just the “relevant” information and manipulate it, without having to worry about lower and higher levels of representation, other than in explicit terms of the current level.  To my mind, good computational thinking requires being able to switch levels of abstraction and to work in 2 or more levels at once, but just being able to abstract problems and hide some of the less relevant details is a valuable skill.

Jeannette gives some of examples of computational thinking in everyday life, one of which particularly rang a bell with me:

Hashing: After giving a talk at a department meeting about computational thinking, Professor Danny Sleator told me about a hashing function his children use to store away Lego blocks at home. According to Danny, they hash on several different categories: rectangular thick blocks, other thick (non-rectangular) blocks, thins (of any shape), wedgies, axles, rivets and spacers, “fits on axle,” ball and socket and “miscellaneous.” They even have rules to classify pieces that could fit into more than one category. “Even though this is pretty crude, it saves about a factor of 10 when looking for a piece,” Danny says. Professor Avrim Blum overheard my conversation with Danny and chimed in “At our home, we use a different hash function.”

The analogy is not perfect, as there is usually no collision resolution method when a bin gets too full.  (In our house, collision resolution usually requires reallocation of space, which is a very expensive operation, just as in programming. Rehashing has been known to take months, and the temporary space used for the rehashing operation is not available for other tasks.)

Note: I’ve posted on computational thinking twice before: Algorithmic vs. Computational Thinking and Computational Thinking Lesson Plans.


  1. I read your earlier post on algorithmic thinking vs computational thinking, and must admit that I am confused. How is your definition of computational thinking any different from the “computers as tools” approach now used in our public schools? I thought computational thinking was going to somehow improve the way computing in taught in K12. If it is just about using the computer to work with data, then simply doing some spreadsheets to calculate grades would qualify. Heck, even my 5th grader’s silly Powerpoint assignment would qualify – after all, the text on the slides is data, and Powerpoint does manipulate it.
    Please tell me I am wrong!

    Comment by Bonnie MacKellar — 2011 March 31 @ 08:06 | Reply

    • Solving a problem by using computation explicitly is computational thinking. So using a spreadsheet to calculate grades, rather than eyeballing the grades and saying “That looks like a B to me” is computational thinking, albeit of a very rudimentary type. Using a database of scores for individual questions to try to figure out what concepts particular students are having trouble with would be a more sophisticated use of computational thinking.

      Powerpoint presentations and word processing hide the computation from the user: there is a deliberate attempt to avoid computational thinking with these tools and make the computer invisible in the process.

      Computational thinking is thinking about ways to get information out of raw data and into people’s minds using computation (so there is a little of presentation skill involved, including the sorts of things that Tufte discusses in The Visual Display of Quantitative Information).

      Comment by gasstationwithoutpumps — 2011 March 31 @ 10:37 | Reply

      • So if the tool involves numbers and math, it is computational, and if it doesn’t, it isn’t computational? Is Photoshop computational? How about computing the grades with a calculator? Pencil and paper?

        Sorry to be pushing this, but I find that nobody seems to know what the term “computational thinking” means, and if we start pushing something so hazy into the public schools, we are going to end up with all sorts of unintended interpretations. An example of unintended interpretations is the fact that our local middle school meets the NY State technology requirement with a required woodworking class. That is how they interpret “Technology” because it is so hazily defined.

        Comment by Bonnie MacKellar — 2011 April 1 @ 07:31 | Reply

        • I think that a woodworking class is an excellent way to meet a technology requirement: far better than PowerPoint or Word. If they followed it up with a metal-working class, an electronics class, and plastic-casting class we’d have a chance of rebuilding America’s industrial strength. Somehow we’ve become a country that confuses pushing paper around with doing useful work.

          I agree that it is difficult to come up with a definition of “computational thinking” that can’t be perverted. The key is that the head word is “thinking”. Photoshop is certainly a computational tool, but can be used without any computational thinking. It can also be used for computational thinking. My son used it in his 5th grade science fair to get very precise measurements of bounces from long-exposure photographs of bouncing balls, and rescaling images so that the Photoshop rulers were accurately calibrated to the spacing of lines on the backdrop. Figuring out how to do that is computational thinking. Just pushing sliders around until you get an image you like is not.

          Comment by gasstationwithoutpumps — 2011 April 1 @ 08:08 | Reply

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: