An “extensional” definition of a termtis given by presenting thesetof items that are considered to bets. For example, the (current) extensional definition of ‘US President’ is{Washington, Adams, Jefferson, . . . , Obama, Trump}. For another example, we once might have said thatxis a planet (of the Sun) iffx∈ {Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto}. Now, however, we say thatxis a planet (of the Sun) iffx∈ {Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune}. Note that these two extensional definitions of ‘planet’ aredifferent.
An “intensional” definition can be given in terms of necessary and sufficient con- ditions or in terms of a family resemblance. For example, an intensional definition of ‘US President’ might be given by citing Article II of the US Constitution: Roughly,x
intensional definition holds even if an extensional definition changes (such as the exten- sional definitions in the previous paragraph of ‘US President’, which change roughly every 4 or 8 years).
Two concepts can be said to be “extensionally equivalent” if exactly the same sets of things fall under each concept. Importantly, two extensionally equivalent concepts can be (and usually are) “intensionally distinct”; that is, they really are different con- cepts. Here is an important example from computability theory (which we’ll look at in detail in Chapter 7): Recursive function theory and the theory of Turing Machines are extensionally equivalent but intensionally distinct. They are extensionally equivalent because it is mathematically provable that all functions that are recursive are Turing computable, and vice versa. But they are intensionally distinct because the former is concerned with a certain way of defining mathematical functions, while the latter is concerned with algorithms and computation. From the point of view of what facts can be proved about functions, it doesn’t matter which formalism is used, because they are extensionally equivalent. Their intensional distinctness comes into play when one formalism might be easier or more illuminating to use in a given situation. We’ll come back to this in§3.7.
Further Reading:For more on extensions and intensions, see Rapaport 2012a.
3.4.1
An Extensional Definition of CS
To the extent that it is we who imposeourcategories on nature, there may be no good answer to the question “What is CS?” beyond something like: “Computer science”is
what computer scientists do. In a similar vein, Paul Abrahams (1987, p. 472) says “computer science is that which is taught by computer science departments”. Perhaps intended more seriously, the computer scientist Peter J. Denning (2000, p. 1) defines “The discipline of computer science . . . [as] the body of knowledge and practices used by computing professionals in their work.” But then we can ask: What is it that com- puter scientists do? Of course, one can beg that last question—that is, argue in a circle—by saying that computer scientists do computer science! Turing Award winner Richard W. Hamming (1968, p. 4) suggests something like this, citing the (humorous) “definition” of mathematics as “what mathematicians do”, but he goes on to point out that “there is often no clear, sharp definition of . . . [a] field”.
Further Reading:
Bringsjord 2006, my emphasis argues that “any answer . . . thatincludessome such notion as ‘Whatever computer scientists actually do.’ is unacceptable.” I would replace ‘includes’ by ‘is limited to’; surely, ‘includes’ has to be included.
Philosophical Digression:
‘To beg the question’ is a slightly archaic term of art in philosophy and debating. The phrase does
notmean: “toaska question”—that is, to “beg” in the sense of “to raise or invite” a question. In debating, a “question” is thetopicbeing debated. ‘To beg the question’ means: “torequest(that is, “to beg”) that thetopic being debated(that is, the “question”) begranted as an assumptionin the debate”. That is, it means “to assume as a premise (“to beg”) the conclusion (“the question”) that you are arguing for”. A modern synonymous phrase for ‘beg the question’ is: ‘argue in a circle’.
As with most non-mathematical concepts, there are probably no necessary and suf- ficient conditions for being CS. At best, the various branches of the discipline share only a family resemblance. If no intensional definition can be given in terms of nec- essary and sufficient conditions, perhaps an extensional one can: “Computing has no nature. It is what it is because people have made it so” (Mahoney, 2011, p. 109). This is not exactly of the form “CS is what computer scientists do”, though it bears a superfi- cial resemblance. But I think Mahoney’s point is more subtle: Unlike the other natural sciences (for example, physics, chemistry, biology, and so on), CS only came into exis- tence when its two histories (logical-mathematical and engineering) began to intersect in the 1940s, so its “nature” only came to be what those logicians, mathematicians, and engineers were doing. (We’ll look into those twin histories in Chapter 6.)
Nevertheless, it’s worth looking briefly at what computer scientists do. It has been said that CS is “a sort of spectrum . . . with ‘science’ on the one end and ‘engineering’ on the other” (Parlante, 2005, p. 24), perhaps something like this:
abstract, mathematical theory of computations
abstract, mathematical theory of computational complexity abstract, mathematical theory of program development software engineering . . . operating systems . . . AI . . . computer architecture . . . VLSI networks
social uses of computing, etc.
3.4.2
Intensional Definitions of CS
Instead of providing necessary and sufficient conditions, we can try to give an inten- sional definition by splitting the question of what CS is into two parts:
1. What is itsobject? (Whatdoes it study or investigate?)
2. What is itsmethodology? (Howdoes it go about studying those objects?) We’ll begin with the second.
Is themethodologyof CS the same as that of some other discipline? Or does it have its own, distinctive methodology. If the latter, is its methodology not only unique, but also something brand new? As for methodology, CS has been said to be (among many other things):
• anart form
(Knuth 1974a, p. 670, has said that programs can be beautiful), • anart and science
(“Science is knowledge which we understand so well that we can teach it to a computer; and if we don’t fully understand something, it is an art to deal with it. . . . [T]he process of going from an art to a science means that we learn how to automate something” (Knuth, 1974a, p. 668)),
• aliberal art(Perlis, 1962; Lindell, 2001, p. 210)
(along the lines of the classical liberal arts of logic, math, or astronomy), • a branch ofmathematics(Dijkstra, 1974),
• anatural science(McCarthy, 1963; Newell et al., 1967; Shapiro, 2001), • anempirical studyof the artificial (Simon, 1996b),
• a combination ofscience and engineering
(Hartmanis, 1993, 1995a; Loui, 1995), • justengineering(Brooks, 1996), • or—generically—a “study”
But a study (or a science, or an engineering, or an art, or . . . ) of what? Is its
objectthe same as that of some other discipline? (Does it study exactly what science, or engineering, or math, or—for that matter—psychology or philosophy studies?) Or does it have its own, distinctive object of study (computers? algorithms? information?) Or does it study something that has never been studied before? The logician Jon Barwise (1989a) suggested that we can understand what CS is in terms of what it “traffics” in So here’s an alphabetical list of some of theobjectsthat it traffics in:
algorithms automation complexity computers information intelligence
numbers (and other mathematical objects) problem solving
procedures processes programming symbol strings
This is, of course, only a very partial list. One can use computational methods to study pretty much anyx. (For some examples of this, see the interview with the computer scientist Mehran Sahami in Reese 2014a).
It is now time to look at some answers to our question in more detail.