Greg reminded me the other day about Jeanette Wing‘s writings about “computational thinking“. Is this what I have in mind when I talk about the contribution software engineers can make in tackling the climate crisis? Well, yes and no. I think that this way of thinking about problems is very important, and corresponds with my intuition that learning how to program changes how you think.
But ultimately, I found Jeanette’ description of computational thinking to be very disappointing, because she concentrates too much on algorithmics and machine metaphors. This reminds me of the model of the mind as a computer, used by cognitive scientists – it’s an interesting perspective that opens up new research directions, but is ultimately limiting because it leads to the problem of disembodied cognition: treating the mind as independent from it’s context. I think software engineering (or at least systems analysis) adds something else, more akin to systems thinking. It’s the ability to analyse the interconnectedness of multiple systems. The ability to reason about multiple stakeholders and their interdependencies (where most of the actors are not computational devices!). And the rich set of abstactions we use to think about structure, behaviour and function of very complex systems-of-systems. Somewhere in the union of computational thinking and systems thinking.
How about “computational systems-of-systems thinking”?
Hrm.. You run the analogy that Wing’s treatment of computational thinking as too concentrated on machine metaphors is like the cognitive scientists treatment of the mind as a computer. As I understand it, a problem with treating the mind as a computer is that you often end up saying you can ignore the squishy, messy “wetware” side of things like brains and bodies and societies and still have a mind (hence, “disembodied cognition”). So what’s the analguous problem to Wing’s computational thinking?
The disembodied cognition problem is more to with the fact that you then can’t explain how a child’s cognitive abilities develop as she explores her environment using her five senses, how her social attachment to family members shape her thinking, and how we use our physical and social context to extend/enhance our thought processes. The distributed cognition folks argue that intelligent action cannot be studied in isolation from its social context.
I guess the analogous problem is that computational thinking will lead us to focus on just the parts of the problem that yield to computational solutions. For example, with computer security, computational thinking focusses on encryption techniques, designs for authentication, single sign-on, etc. But that misses the systems thinking side of things, which sees human activity and computer systems as interdependent. So computational thinkers miss the point that most computer vulnerabilities are in the psychology of the users, because users are susceptible to bribery, flattery, or plain old deception.
For the climate crisis, computational thinking might help us to identify problem decompositions, design solutions to the subproblems, but will likely miss the complex interactions of people, communities, businesses, etc, all of which is the realm of systems thinking.
Pingback: Serendipity is One! | Serendipity