Okay, I'll admit: I'm a blow-bag and can talk for a long time once I get going on something I am interested in. When I was asked recently to define "computational thinking", I told the interviewer that I would get back to her on that one, as we had less than 15 minutes left to talk. Here's what I ended up sending to her:
Q: What is Computational Thinking?
I would say that CT is the act of applying computational approaches to solve problems and to further understand how things work. I don't want to say it's ONLY about problem solving, as it can also be a recreational activity, like when I play around with Structure Synth and Processing (and Nodebox and Context Free Art). Certainly observing patterns is involved.
I used to wimp out and say, "well, I recognize it when I see it." That, however, seems to have some validity, and it led to me wanting to create a CS class that involved no text editors and no coding. Education misses out terribly on the one thing that really helps get people thinking computationally: capturing that feeling you get when you start playing a game and you're not really sure how the game works. The process of interacting with the game environment is very similar to how people best ACQUIRE languages (as opposed to LEARNing languages). It's involves trial and error, and mistakes are not a big deal. If mistakes are a big deal (like on a high pressure test, or when someone is uncomfortable during language immersion), learning almost completely stops.
Think of a good puzzle. Or here's something I witnessed once at a youth leadership-type conference: after we had finished most of the activities from the day and were just relaxing in a cabin (in northern WI), one student asked another to "play a tricky game" with him. Those two students discussed what they would do for a while and then they worked as a pair to show us a game. Student A left the room and student B explained the game to us. We were to select some object in the room and see if student A would be able to identify our "secret" object. We discussed it and chose something like a light-switch. Student A came back into the room and student B began asking questions like "is it that lamp?", to which A said, "nope." This went on for a while, through many seemingly random objects, until student B asked "it it that light-switch?" "Yes!" said A.
Alright, we had to figure out how that happened. For the next 40 minutes or so we worked together to impose constraints on A and B to rule out different ways they could be accomplishing their trick. We had A turn and face the wall. We made A not talk at all--instead he could only point at objects. They always got it right. But we figured it out eventually.
Why bring up that example? Because those 40 minutes are still clear in my mind and that was 25 years ago. I have no clue at all what the activities were that day, nor what the lessons were supposed to be. But I remember that game, because it had all the makings for a successful lesson. Players A and B did not lecture us for 30 minutes before we played the game. They did not give us hints. They also made it clear that they were willing to keep up the game, but we would have to figure it out--they weren't going to TELL US.
Was it computational thinking? Well, it certainly was logical thinking that got us the answer. I have played similar games with students that WERE more overtly numerical in nature, but computational thinking embraces discrete mathematics, and discrete math is simply ignored at the secondary level (except for a little bit of probability, but that's only to pass a "there are 4 colored balls in a sack" type questions on standardized tests.
What's more important to take from that example, though, is the HUGE difference in that activity and a typical class for a student. Students are much more likely to remember the "Bejeweled" game they were playing under the table on their smart phone than they are to remember the lesson.