December 18, 2019
How do you define computation?
What is computational thinking? As far as I’m concerned, it’s organizing your thoughts clearly enough that you can explain them to a sufficiently smart computer. That means if we’re saying… Here’s a type of problem that’s a computational thinking problem. Let’s say you’re given a point on Earth… given its latitude and longitude… and you’re asked the question… you’re going to make a map and you’re going to make a default zoom level of that. If the thing lands in the middle of the Pacific Ocean, default zoom level of a mile is pretty stupid. It’s just a bunch of blue ocean there. If it lands in the middle of Manhattan, a mile might be pretty good… or maybe less than a mile is a good default zoom. The question is, how do you figure that out?
You might say, “Let’s look at the density of people around that place. Let’s look at how many features there are on the map around that place”. These are things that you can think about computationally, and then you define, “What do I actually want to know? Do I want to know the density of features? How do I define the density of features?” I can say that’s something like the number of geometric primitives that occur in that region of the map or the compression of the map that you can get or something like this. That’s computational thinking, is figuring that stuff out.
The interesting thing—because of a sort of little hobby I have—I end up interacting with a bunch with kids talking about these kinds of things, and kids are pretty good at this stuff. You have to teach them the language to communicate that to a computer to get it to do it, but this seems like common sense: trying to organize one’s thoughts in a way that could be explained to a sufficiently smart computer. That’s something people find… Different people do it in different ways, but it’s something people are intrinsically able to do.
Now, one of the problems with traditional math in the abstract form is that it’s very cold. It’s very unclear what’s going on. You’re just told it works this way: x+1 is equal to 1+x. Maybe somebody can prove that’s true, but it doesn’t feel connected to anything that one can normally think about. In this whole area of computation, for math, one of the things that I find talking to kids is they’ll say, “We learned a bunch of math”. I’ll say, “Where did you use that math in your general life and times?” They’ll think, say, “Well, actually, I’ve only used it in the math classes”. That’s kind of a bad thing.
Then you start talking about how can you use computation. For every area, there’s a computational X that you can talk about. It might be computational art history. It might be computational magic. Or it might be computational marketing. These are all things that one can use the paradigm of computation on, and they’re things that people… they engage much more the things that people think about.