« Empowering Students to Explore By Linking CS and Writing | Main | Resources for Addressing Equity Issues in 2009 »

The Beauty of Computing is Not in Problem Solving

As part of a recent discussion on the Rebooting Computing listserv Rosemary Michelle Simpson made the following comments in response to a discussion about the discovering the beauty of computer science. We thought her comments were particularly profound and well stated, and so, with her permission, we are sharing them with our CSTA community.

My perspective on computer science is perhaps somewhat different from that of many people in computing and the sciences. I believe that problem solving is not the only approach to computing, mathematics, and science.

Much has been said about the social and special domain interests of many women, but less about those women who are solitary explorers and pattern seekers. Their rewards are centered about the joys of seeing relationships emerge, new connections, grouping and classifying them, forming new abstractions and relationships among different levels of abstractions, representations, and their criteria.

I'm an explorer, a naturalist in the 19th century sense - like Darwin on the Beagle, or a naturalist on Mars - not a problem-solver. I'm curious about what I'm seeing, enjoy gathering data, describing it, and watching patterns emerge. I hate hierarchies, as limited structures that have consumed computer science because they are easy to work with - like Nasrudin looking for his lost keys under the lamppost because it was easy to see in the light. I love the power of general bi-directional graphs for modeling complex, dynamic ecologies of ideas.

I couldn't care less about 'finding my question', solving puzzles, playing games, or learning problem-solving techniques except as an adjunct to my primary interests - seeing surprises, patterns emerge. I don't like competing with anyone, including myself. What drives me is primarily an aesthetic sense of the beauty of multi-dimensional patterns. Soaring abstractions, and their representations and relationships. Connecting things for the sake of seeing connection spaces, as an end in itself.

In College, I started out as an advance-placed chemistry major, but before the end of my freshman year had switched to history with a combined philosophy and english minor. I made the change because history's timeline provided an organizing structure around which all the various themes I was finding/discovering could play. Along the way I learned about critical thinking, analysis, synthesis, research strategies, and other skills through the vehicle of papers and exams. They helped me to structure my thinking and writing, and to uncover new insights and relationships. A good exam was one where I walked out knowing more than I did when I walked in.

This led me into hypertext: dynamic, emerging, changing relationships and fluid structures to support and model them. For me the process is what counts. In my hypertext development days, links were first-class functional objects, the relationships were foregrounded, not the end-points.

Thus, I'm relationship-centric, not object-centric. I hated/hate the rigidity and object-centricity of the object-oriented paradigm, much preferring a functional approach that foregrounds the relationships, not the objects. In short, I was concerned with fluid, emergent behavior and structures that modeled evolving change in the environment, in which objects and behaviors morph, merge, diverge, and interact with each other in time and space.

Rosemary Michelle Simpson
Brown University


I've come to share many of these same observations. Over the last couple of years, in particular, I've re-cast a lot of what I learned as computer science in a more categorial (as in Category theory) perspective as opposed to the commonly-taught and expected discrete world view.

Subsequently, I've changed the way I teach to reflect my belief that it's been the patterns all along. Now I don't know (or, I cannot know) if this change in my instruction accounts for a greater number of "non traditional" students in my classes (i.e., females, minorities, and students who don't usually take "science" classes), but it's been a nice benefit.

I think that the "problem-solving" aspect of the science had been long promoted as a way of justifying this content in the eyes of the policy makers. Actually, I'm not adverse to problem-solving (hell, it paid the mortgage for the twenty years that I spent in the "industry"), but I think that just leaving it (CS) at that is weak: Almost all human activity could be viewed as problem-solving, even dreams have been interpreted as problem-solving activities. So the constant refrain that I hear from well-meaning proponents of computer science that we're teaching problem-solving is missing the more important and attractive aspect of this science, which is precisely its intrinsic relationship with fundamental patterns.

I remember going to work with Carl Hewitt in the 1990's. The thing that attracted me to his work wasn't "object oriented programming," per se, it was his early papers on computation as "patterns of message-passing." I remember thinking that we could (and should) be tapping results from the natural sciences, in particular, research in animal communication and intelligence, to discover the true nature of these patterns and how they are manifest in computing.

In any event, your article made me reflect on these thoughts ... thoughts that have never gone away. So, thank you for reminding me that I have much to write and much to say before I rest ... I just hope that I have an audience as the economy and politics play themselves out.


Tom R.

Great post, thanks for sharing.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)