Real (ish) Life Computational Thinking

I went to see the most delightful talk this week, given by a graduate student. Like many academic talks, the speaker outlined a problem, described similar research and attempts at solutions, which have all failed, then argued for a new solution that he has done research on. The format, obviously, is not what was delightful, instead it was two other features of the talk.
First, the problem: “The dirty dish dilemma.” Our young grad student has lived for many years in communal houses. The policy is “clean your own dishes.” But sometimes dishes get left in the sink! Like the broken windows theory of crime, soon it snowballs into a sink full of dirty dishes and a lot of unhappy housemates.
When was the last time you went to a talk about something you actually found entertaining? This is so much better than the problem of writing across the curriculum or differentiated instruction! (And truly, I think life at most schools would be more improved by 30 minutes on solving the dirty dishes in the staff room sink than by 30 minutes on curricular reform.)
The second delightful part was his research method. It would be hard to go out to lots of communal houses, try different solutions, see which ones worked and then test the “working” solutions at other houses to make sure they really work. But it is easy to download NetLogo and create a model of dirty dishes, including the people who wash and dirty the dishes. And it’s very easy to modify the model once you create it – varying how slobbish the people are, trying different solutions, adding or removing constraints (like when Mom gets fed up and yells and all the dishes get washed at once). It was the most realistic example of the use of computational thinking I’ve seen, and at no time in the talk did the speaker use the phrase computational thinking, nor did he even appear to know that’s what he was doing.
Incidentally, the solution is to change the policy to one of small altruism. Instead of “do your own dishes” the policy should be “do your own dishes plus one other dish. Then no one gets stuck having to clean up after everyone else just because their prep period is right after lunch.
Michelle Hutton
CSTA President

What is Computational Thinking

In the March 2006 issue of the Communications of the ACM, Jeannette Wing generated a significant response with her article on Computational Thinking. One of the significant impacts of this article was placing the phrase “Computational Thinking” into the common language (at least of academics). Reading through the article, it seems to me that Wing never directly defines this term. Having heard her give a couple of talks on her article, however, I have seen her give an actual definition of Computational Thinking. Paraphrasing from her slides, Wing has defined Computational Thinking as the process of abstraction. (Wing provides several engineering aspects of the term, but I think that “the process of abstraction” is what Wing intends Computational Thinking to be.)
As a computer scientist, this was an acceptable definition for me. While having lunch the other day with an engineer and a biologist, I shared this definition with them. Both of them hated this definition, feeling that it was too “computer science-y” of a definition, and not one off of which they could work.
Since Computational Thinking in K-12 should probably apply to other STEM (Science, Technology, Engineering, and Mathematics) disciplines, and probably to all other disciplines, any reasonable definition of Computational Thinking needs to appeal to faculty in other disciplines. I haven’t yet come up with a satisfactory external definition of Computational Thinking, and wanted to get others’ thoughts of a definition, one that will at least appeal to biologists, and engineers (and hopefully teachers in other disciplines as well)….
Steve Cooper
CSTA Vice-President