From: pratt@Sunburn.Stanford.EDU (Vaughan R. Pratt)
Subject: Re: What is Computer Science (was: Natural Kinds)
Organization: Computer Science Department,  Stanford University.
Date: Mon, 9 Nov 1992 22:45:24 GMT

In article <BxGBsJ.8qG@unx.sas.com> sasghm@theseus.unx.sas.com (Gary Merrill) writes:
>
>In article <1992Nov9.005241.29492@CSD-NewsHost.Stanford.EDU>, pratt@Sunburn.Stanford.EDU (Vaughan R. Pratt) writes:
>
>|> To me computer science is about four interactions: information and
>|> time, computation and communication, models and reality, and
>|> perspective and users.  Discreteness is neither emphasized nor
>|> deemphasized in this view, the integers and the reals are both
>|> important in CS.
>
>Your view of CS is a coherent one, but I'm not sure
>how widely received it would be.  Simply as a matter of your
>own personal opinion, do you think this view is widely shared
>(in both academia and industry), or do you offer it rather along
>the lines of "What CS *should* be"?

It is my capsule definition of CS *today*, based on my experience in
academia (Sydney, Berkeley, MIT, Stanford) and industry (Sun, summers
at IBM), starting with the noughts-and-crosses-playing computer I built
in 1962 at Sydney.  I took into account a lot of different CS research
going on at all these places, and at other places such as CMU, Cornell,
Penn, Texas, UCLA, Columbia, Edinburgh, Xerox, DEC, HP, Sun, etc.,
before coming up with my admittedly idiosyncratic classification of the
field.  I have attempted to exclude my personal biases from this view,
more on this below.

My definition is intended to cover the bulk of CS research without
being so broad and vague as to become indistinguishable from physics,
math, biology, economics, etc.  There is no way to do this without
overlapping at least somewhat with these subjects, just as physics
overlaps with engineering, chemistry, etc.  Rather I wanted to express
what it was that CS tended to emphasize.

One might simply say that the emphasis of computer science is
computation, but that is surely too narrow: at the very least one
should add communication.  But as you add topics you start to imply the
exclusion of others such as computer-human interfaces (covered in my
classification along with other related topics under "perspective and
users").  The four basic interactions, which I see as respectively the
"physics," "chemistry," "sociology," and "psychology" of CS, are my
best attempt to include most of CS, exclude most of non-CS, yet retain
a catchy succinctness.

What other definitions are there?  The most recent substantive
perspective on computer science and engineering as a whole is the
264-page "Computing the Future" report, available for $24.95 by calling
1-800-624-6242.  I hope to get this soon (just ordered it, they'd run
out when I asked a month ago), and when I've read it I will communicate
my views on it to the committee.

Meanwhile I've read the summary in the current (Nov.92) issue of CACM.
It gives seven recommendations made by a 16-person committee chaired by
Juris Hartmanis.  Recommendation 1 endorses HPCC (the High Performance
Computing and Communication program), 2 calls for more
interdisciplinary research, 3 invites academics down from their ivory
tower, 4 argues for infrastructure, 5 for education of
computer-dependent non-CS&E faculty, 6 for a more royal road to
technology transfer, and 7 for "outreach" (a worthy successor to
"affirmative action").

A positive feature of the report was its choice of name for the field,
CS&E (computer science and engineering).  I like Information Technology
even better, but CS&E is definitely more representative than CS and
does emphasize the science component a bit better than IT.

However to judge from the summary the report makes no discernible
contribution to the problem of *defining* CS&E.  Its emphasis rather is
that implied by its recommendations, along with such statements as that
found at the bottom of the second column of the summary:  "Assumptions
of the 1940s and 1950s regarding the positive social utility of basic
research (i.e., research without foreseeable application) are being
questioned increasingly by the federal government, and justifications
for research may well in the future require concrete demonstrations of
positive benefit to the nation."

By choosing not to make a recommendation against this trend the
committee has tacitly endorsed the concept that all of us doing basic
research are in it just for the pleasure of pure research.  This is a
gross misrepresentation of the goals of a great many people doing basic
CS&E research, who feel that a better understanding of the principles
of CS&E will prove of inestimable benefit to the future designers,
builders, users, and maintainers of information processing systems.

CTF's recommendations are those one might expect from a committee of
CEO's and magazine editors, who are at one end of a spectrum that has
the researchers at the other and the contract monitors in the middle.
The social end tends to have its finger on the pulse of world affairs;
for them worldly concerns are a perfectly understandable
preoccupation.  One does not however look to such people for a
definition of CS.  There are academics on the committee, but there is
little sign of their influence in the summary.

Recommendation without definition is a recipe for failure.

This is not intended as a rejection of these recommendations, and I do
not take my colleague John McCarthy's side in asking the committee to
withdraw their report for reconsideration.  Whatever its flaws, getting
the report out for a public airing is far more beneficial at this point
than making the committee continue to stew over it until the protesters
are satisfied.  Moreover I am very strongly for recommendation 2, for
example, and have no good cause to argue against strongly against any
of the other recommendations, with the following exception.

I said earlier that I tried to exclude my biases, at least those of
which I was conscious.  Just to illustrate this, one such (hopefully)
excluded bias is my strong belief that by far the biggest crisis in
computing today is *not* the cycle shortage the HPCC program is
predicated on but the inaccessibility of the *existing* cycles.  I
began to feel this around 1975, and over the next three years my
research emphasis shifted from design and analysis of algorithms to
software theory, where I remain today (some very pleasant excursions
notwithstanding).

The scale of the contemplated HPCC funding, $3.7 billion over four
years, is of such an order of magnitude that almost *any* (though
obviously not total) shift of research funding from performance to
access would even in the quite near term have a net positive economic
impact.  But this is of course the biased impression of an academic
with at best three years of practical industry experience, and I am
wide open to counterarguments.

My definition hopefully excludes this bias in not suggesting any
prioritization of access over performance.  Nevertheless I cannot
endorse recommendation 1 at the contemplated level of HPCC funding when
the committee does not directly address and explain their preferred
prioritization of these two concerns.

But while I would not argue *against* CTF's recommendations on the
whole, I *would* argue for a more even mix of external and internal
recommendations.  The internal representatives on the committee have
either not made their voice heard or are not speaking for their
constituency.  If society accepts only the CEO picture of the future of
computing, information technology will have no basis for rising beyond
the level of basket weaving technology.

>Do you see CS as having any immediate empirical content in the
>manner of physics, chemistry, biology, etc.?  If so, could you
>describe this a bit?  (I concede that "immediate empirical
>content" is not very precise, but I think we know what is 
>intended.)

This connection was what I was attempting to cover under "models and
reality".  Perhaps something along the lines of "math and science"
would have conveyed this more suggestively.  I wanted the attachment of
computers to physical actuators and sensors, as in robotics, mechanical
engineering, aero engineering, etc., to be covered under this, as well
as the role of computation in physics, chemistry, etc.  The interaction
of "math and science" is the interaction of the ideal and the real.
Where the boundary of this interaction is to be drawn is one of those
things that only the younger generation is certain of, but I do feel
this boundary should be one of the focuses of computer science, in
collaboration with the experts on both sides of this interface,
math/philosophy and physics/chemistry/engineering/...  This is now
happening, there has been quite a surge in such collaborative efforts
in recent years, in manufacturing, robotics, medicine, etc., and much
more is needed along these lines.

>It seems pretty clear that given your view of the
>nature of CS, it really has nothing to do with actual physical
>machines, but rather more properly deals with "machines" in the
>logical (mathematical) sense (Turing machines, for example).

Clearly CS has a *strong* interest in thinking machines, but it also
should pay attention to other machines that can profitably benefit from
intelligence.  My own teaching experience has been confined to the
former kind, which is why my 17 questions have that emphasis.  This is
why I said "Here are some candidate questions for the science of
computation based on introductory courses I've taught recently at
Stanford.  Perhaps others would care to draw on their experience to add
to this list."  Had I the necessary expertise I would have included
questions similarly testing basic principles of machine architecture,
robotics, expert systems, scientific computing, etc.

I suppose I could simply have posted a few recent comprehensive exams
given to our students, but then it gets too long and I feel like I've
lost quality control.  My ideal would be 40-50 representative questions
whose main purpose was to give outsiders some idea of what CS students
are expected to know in breadth before they get deeply into their
research.  My list was perhaps a bit tough in that respect, by present
standards, but I believe that reflects more our collective inability to
teach this material effectively than the inherent inability of our
students to learn it.  A related problem is that not everyone would
agree with me on just how central the material I was testing is
compared to what they would want to test.

>Do you wish to subsume
>so-called "software engineering" under CS, or would you treat
>it differently as a distinct applied discipline?

Software engineering is my area, I work at the theoretical end.
Logically I suppose that should make me a software scientist, but for
some reason those of us working in this area have avoided this term,
perhaps because software theorists associate scientists with lab coats
and tube-laden equipment.  A definitive textbook on the principles of
software with "Software Science" as its title might give this term some
respectability, but I think many of us would be more comfortable with
"software theory," by analogy with "information theory."
-- 
Vaughan Pratt
Xref: sparky sci.logic:1999 sci.philosophy.meta:2526 sci.math:14803