PAUL S. ROSENBLOOM, professor of computer science, Institute of Creative Technologies, Viterbi.
This op-ed originally appeared at the Huffington Post on March 22.
Introductory science courses, whether in physics, biology or psychology, typically span the discipline’s core ideas, along with glimpses of its past and future. Not so with computer science. Students either learn how to use basic applications — browsers, text editors, drawing programs — or acquire beginning programming skills. They may also be introduced to some key components of working computer systems, but the full scope and diversity of computing is not taught.
Unfortunately, what occurs in the classroom is just part and parcel of a larger problem: Computer science can’t seem to get any respect as a stand-alone science. To students, it’s simply programming. To scientists in other fields, it’s a tool that helps them in their research. To the public, it’s a source of productivity in the workplace and entertainment apps. Even many computing professionals see computer science as just a form of engineering.
But thinking of computing as only programming, tools/apps or engineering fails to capture its essence as a science. It is not only a true science, concerned with understanding how the world works; it is also the basis for what can be called a great scientific domain — the computing sciences — that is in every way the equal of the three traditional scientific domains. Seen in this light, it’s not a stretch to think about computing as its own school on university campuses.
Each of the three traditional domains studies the interactions among a characteristic set of structures and processes. In the physical sciences, it’s the story of non-organic materials and the forces operating on them. In the life sciences, it’s living organisms and the processes of reproduction, metabolism, evolution, etc. Humans, organizations and societies and their thought processes and behaviors make up the social sciences. The dynamic behavioral richness yielded by processes interacting with structures is what elevates each of these subjects into a great scientific domain.
In the computing sciences, information and its transformation similarly produce a behavioral richness that is characteristic of a great scientific domain.
Broadly speaking, information is any content expressed in a medium, whether electrical signals pulsing through a wire or marks on paper. It takes many forms, among them numeric measurements, strings of letters, audio and video files, and scientific models. It exists in natural structures — rock strata, tree rings, DNA, minds — and in human artifacts. Information is also the content of our conversations, text messages, and books.
Computer science studies information in the form of programs, data structures, data and knowledge bases, web pages, etc. But what qualifies it as a great scientific domain is its focus on the dynamics of information transformation, on how, say, a program can transform a mass of data into correct answers to questions, such as with IBM’s Watson. Combine hardware with software, and equations turn into calculations, audio files become musical signals, and facts and rules of inference produce logical conclusions.
The dynamic quality of information transformation makes experimentation central to the understanding of computing, just as it is central in the traditional domains. Experiments are run, for example, to determine how different processor and memory designs affect the speed of computation, which algorithms yield the best results for web searches, and whether it is possible for a machine to think.
One common challenge to the claim that computing is science is the artificial origin of what it studies. For a time, our concentration on human-made computers largely blinded us to the existence of natural forms of computing, such as are found in our brains and reproductive systems. But that is now past.
What’s more, the distinction between artificial and natural is itself artificial, and increasingly problematic within science as a whole. Science needs to understand everything around us, irrespective of origins. It is, for example, becoming increasingly difficult to distinguish whether particular phenomena involve human intervention. For example, the only difference between natural and artificial flavors may be the feedstock for the process. Whether the process primarily involves extraction or synthesis, the resulting molecules are identical.
A second, though implicit, challenge is the notion that because computing is so good at building tools — word processors, data analyzers, online games, smartphone apps — it really must just be about building tools rather than about the understanding that is central to science. But as with the physical sciences, the ease with which computing can yield useful tools is a positive sign of the practical impact of the domain, rather than a cause for scientific concern. Furthermore, when a science can build instances of what it studies, it can progress faster. To quote the message on Richard Feynman’s blackboard when he died, “What I cannot create, I do not understand.”
As with any science, computing wrestles with a variety of fundamental questions. For example, what problems are computable in principle (computability); what problems can in principle be solved efficiently (tractability); can a single computer emulate any conceivable computer (universality); and is intelligence essentially informational (strong AI). It also investigates a range of empirical regularities.
Which disciplines belong to the domain of computing sciences? They are computer science and engineering, to be sure. Also included: computational science and informatics; and information theory, science and technology. And, yes, mathematics could also fall within the domain of computing because it too concerns informational structures.
This fall, I will be co-teaching an introductory course for computer science majors that will not teach apps or programming skills, although concepts will be reified through a concurrent offered programming course. Instead, we’ll introduce computing as a great scientific domain, beginning with its core structures, processes and systems, and then expanding into its present breadth and increasingly multidisciplinary future.
Some students, of course, may wonder what they’ve got themselves into. No programming? Others, hopefully, will begin to think more broadly and, in doing so, imbibe the excitement of the science of computing.