Define Computer Science

Quantum_ComputerThe definition of “Computer science” can be a little tricky to pin down.  There have been many variations over the years, and it’s interesting to see just how it had changed over time.  Here is a very interesting article from the 80’s on how that definition was delineated back in the day:

Mathematics is the underlying reality of computer science as an engineering discipline in the same sense that chemistry is the underlying reality of chemical engineering, and physics is the underlying reality of electrical and mechanical engineering. Computers are deliberately designed to perform mathematical operations. Programs work because of the laws of mathematics — the commutative law for addition, for example — in the same sense that oil refineries work because of the laws of chemistry.

Yet though the microstructure of computing is inherently mathematical, the macrostructure need not be. In other words, the immediate reality is of a different nature than the underlying reality. The concerns of chemical engineers are distinctly different from those of chemists, though chemical engineers do need to know a lot of chemistry. Similarly, the concerns of programmers are different than those of mathematicians, even though programmers need to know some mathematics (just how much is a matter of dispute). The immediate reality of programming is dominated by the nature of the application at hand, which may be concerned, for example, with business and accounting practices, or graphics, or linguistics, or the simulation of physical phenomena, or even mathematics itself (as in testing solutions to the four-color problem).

Although it is in vogue to play down the role of programming in computer science curricula, programming is central to computer science. The techniques and algorithms taught in computer science courses are really interesting only because they can be used in programs. Some examples are alpha-beta pruning in artificial intelligence, compiler optimization, convergence of numerical solutions to differential equations, hidden line elimination in graphics, and encryption methods.

Without yet having answered my first question by proposing a direct and concise definition of computer science, I turn to the second: assuming that we know what computer science is, what should we call it?

many in our field have been dissatisfied with calling it “computer science.” In Denmark, the name “datology” is popular; Europeans more generally seem to prefer “informatics.” These names seem unsatisfactory because they do not recognize that the central ideas of computer science concern, not information or data as a passive object, but what we can do with that object. In the Soviet Union “cybernetics” was at one time in vogue, but cybernetics as originally defined by Norbert Wiener was the study of control and communication, not of computing.

The accreditation body established by ACM and the IEEE Computer Society is called the “Computing Sciences Accreditation Board,” in explicit recognition of the view that computer science is not the only computing science. Accreditation of computer science is the domain of the “Computer Science Accreditation Commission,” expected to be just one of several such commissions.

In fact, “computer science” is a peculiar name for anything. It is hard to think of any other discipline whose name consists of an artifact suffixed by the word “science.” We have, for example, “aeronautical engineering,” not “airplane science.” The closest analogy I can think of is “library science,” but library science is concerned not with edifices but with the documents stored in those edifices. Indeed, librarians these days prefer to call their field “information science.” This creates a bit of a turf battle with those concerned with the application of computers to business, who also lay claim to the term. Yet “information science” is itself something of a misnomer, not being related in either of its senses to information theory, which deals in bandwidths and signal-to-noise ratios.”

Abrahams, Paul. “What is computer science?” Communications of the ACM June 1987: 472+.

So what do you think?  Do you think computer science is actually a science?  I think it is in the sense that it’s theoretical and mathematical, and wouldn’t you call math a science?  Or would you?

Let’s hear from you in the comments below: