Computer Science: Tool or Way of Knowing?

I gave a talk recently and, at the end, a faculty member from a non-CS discipline asked me “So, is computer science a tool or a fundamental way of knowing?” My answer was an unabashed “YES”. But it depends on the context. It depends on what problem is being solved, and what is already known about the solution method, or whether there even is a solution method already. Let me give two examples.
Consider a problem I give the students in my Taming Big Data course (with thanks to Punch and Enbody). I present them with a spreadsheet of daily information on Google stock trading from the day the stock went public through the end of the month prior to when the assignment is given. Their task is to take this daily data (which includes volume traded and daily closing price) and report on the 6 best months and the 6 worst months for the stock. There’s no mystery about how to compute the monthly values, given daily data. The challenge for the students is not in solving the problem, the challenge is in implementing that in a program. Computing is a tool for implementing a known solution.
Now consider the Human Genome Project. When that project began, everyone knew that computing would have to be utilized. As a discipline, however, computer science didn’t really know what to do. Whole new parts of the field had to be developed in order to address the significant subproblems posed by the Human Genome Project. Computing as a “way of knowing” was critical to the success of the efforts. The combining together of computer science knowledge and biology knowledge led to developments that today are changing people’s lives, thanks to fast and relatively inexpensive gene sequencing.
So we might think this is only relevant when faced with really big problems that are at the edge of today’s knowledge space. No! A look at the CSTA computational thinking strand takes this approach by arguing for the integration of fundamental computing thought processes into numerous disciplines. Students will, we hope, become so imbued with an understanding of computing as a “way of knowing” that they will be positioned to help solve new problems, the genome projects of the future, the grand challenges. We can teach them to program, which is important because we do need to be able to implement existing solutions to existing problems. But we do so much more when we equip them to work at the intersection of fields, solving new problems, and we can start that process very very early.
Valerie Barr
Computational Thinking Task Force Chair