Archive for October 15, 2018
Computational Mapping: An important set of skills in Computational Thinking we can define and test
Last month, I blogged for CACM about a “Twitter convo” (conversation) that I was part of recently, Computational Thinking, education for the poor and rich, and dealing with schools and teachers as they are: A Twitter Convo #doesComputationalThinkingExist.
Part of that conversation was a series of tweets about meanings and alternative terms for computational thinking.
- Lorena Barba tweeted a thread with different definitions of computational thinking, including many she disagreed with and a few that she recommended to us.
- Mitchel Resnick tweeted that they use “computational fluency” to recognize the importance of students developing their voice and identity — “the importance of having the ability to create and express oneself with digital technologies”
- Mark Sherman said that his group at MIT is using the phrase “computational action” to think about how people can use computing to “take action on local, authentic problems, and make a difference.”
- Not in the convo but relevant is Yasmin’s Kafai’s argument to shift computational thinking to computational participation (see CACM piece here) which changes the focus to the social context and the interaction with others around use of computing. (Thanks to Ben Shapiro for pointing out the connection.)
Shuchi Grover emphasized in this convo that she sees CT as the connection between programming and other kids of thinking skills. The skills that she’s promoting and teaching are critical to the use of computing in science, for example (as she talked about here). I think she has her finger on an important set of skills, but I don’t think that they’re “computational thinking” by any of the most popular and often-used definitions for CT. CT has a set of meanings associated with it. W are more likely to hide a good set of concepts behind a vague term than to get the term re-associated with a good, new meaning.
Here’s a proposal for a name for at least part of what Shuchi is promoting and teaching: Computational mapping. Computational mapping is about making an association between computational representations and objects in other domains. Computational mapping skills include using the computational representations to improve understanding of and predictions in the other domains. Computational mapping skills should also include recognizing the limitations of the computational representation, when the mapping is missing critical characteristics of the objects in the domain which limit our understanding and predictive capabilities.
Most computer programs are mapping from the real world (that is continuous and filled with complex and real numbers) to a set of discrete values that can be represented in bits. There is not a 1:1 relationship between the real world and the computational world. Whenever we create a mapping, we may be capturing exactly the right things (e.g., if you want to simulate projectile motion, position and time is all you really need), but it’s more likely a mismatch, though many times the mismatch is not something we worry about. Our RGB color scheme can’t capture all colors, or all colors that butterflies can see, but that’s okay — we’re just making colors for humans.
I see computational mapping skills in lots of the things I think about today.
- When Seymour Papert was first promoting the Logo turtle, he talked about it being “body-syntonic.” You could map the turtle to your knowledge and sense about one’s own body. That’s making programming easier through computational mapping skils
- I attended a fascinating Engineering Education Research session where we talked about Julie Gainsburg’s work on engineering judgement. I particularly like one of her paper titles, “Developing skeptical reverence for mathematics.” When is a mathematical or computational model a good enough or precise enough estimation? When you get a result that you didn’t expect, when should you question the implementation of your model, and when should you realize that the results are telling you something new? Engineers and scientists have to do this all the time, and it’s harder when the result is coming out of a computer, looks really slick (high-quality graphs!), and has many decimal places.
- Joy Buolamwini’s terrific TED talk and Algorithmic Justice League are pointing out that our algorithms for facial recognition are missing critical characteristics of faces that we want to be able to recognize. To even realize that that can happen, that you can come up with computational recognition systems that aren’t recognizing the parts of the world that you need, is part of computational mapping skills.
- The use of types in programming languages are really an exercise in computational mapping. Does this type really capture the characteristics of the objects and data that I need? When are my types mismatched? When are my types insufficient, e.g., are floating point numbers really the same as real numbers?
- I recently told Alan Kay about some work I’m doing in using simulations for teaching social science. He cautioned me that it’s too easy to get the mapping wrong when modeling social science concepts on a computer. Physical situations (like projectile motion) are more exactly mapped and are a better place to learn through using computational modeling. He’s right, of course. But if we modeled physical situations in elementary/middle school, then high school would be a good place to explore the limitations of computational modeling and simulation, and social science is a good place for that.
CT is such a big and vague term that I’m not sure that it’s useful anymore. We’re better off coming up with new terms (like Mitchel and Mark are doing) for the exact skills we are aiming to teach. Let’s spend our time studying the things that we think are important and that we can actually define. Both the power and limitations of computational modeling feel like something that all citizens of the 21st century should be aware of.
Recent Comments