[net.cse] what's computer science

colonel@sunybcs.UUCP (Col. G. L. Sicherman) (10/14/85)

> That brings up my biggest complaint against undergraduate computer science 
> educations is that they teach you "programming"... they teach you how to edit 
> a file under VMS... they teach you how to write in assembly language...
> they teach you what a barrel shifter is... they teach (etc.), but they 
> don't require any theory classes.  
> 
> They don't require a class on design and analysis of algorithms.  They 
> don't teach the thoery of LALR parsers, they don't teach...

One trouble with theory in computer science is that it doesn't last.  I'd
estimate that half the theoretical work that's been done in computer science
is obsolete.

And another trouble is that theory has not contributed much to computer
science; it almost always comes after practice.  Had Algol and Pascal
been failures, theory would have quietly buried the corpses.
-- 
Col. G. L. Sicherman
UU: ...{rocksvax|decvax}!sunybcs!colonel
CS: colonel@buffalo-cs
BI: csdsicher@sunyabva

peter@yetti.UUCP (Runge) (10/20/85)

> One trouble with theory in computer science is that it doesn't last.  I'd
> estimate that half the theoretical work that's been done in computer science
> is obsolete.
> 
> And another trouble is that theory has not contributed much to computer
> science; it almost always comes after practice.  Had Algol and Pascal
> been failures, theory would have quietly buried the corpses.
> -- 
> Col. G. L. Sicherman

It's nice to see that one can still find entertaining portions of pure
balderdash on the net!  Colonel, it is not the role of theory to "last";
it is to criticize and be criticized and pass away to be replaced by something
better. Had a look at the history of Western science lately? Even in 
purely deductive aspects of mathematics, theories mature, flourish, and
fade into oblivion, as tastes change and new problems are "discovered"
(invented).  As for being "obsolete" (i. e. superseded by something more
effective?), if only half of CS falls into that category, it's doing rather
well -- certainly better than the computer industry where it seems 90-95%
of the tools, products, methods, and concepts being routinely applied are
obsolete.  Compare the "thought" pieces in Computerworld with say, IEEE
Computer, to see what I mean.

And then there are those "failures" Algol, and Pascal! What exactly did they
fail at? As far as I know, both languages succeeded in large part in meeting
the goals of their designers and beyond.

Finally, there is that curious lag between practise and theory in CS -- the
theory comes in after the idea is developed in practise? Even if it were true
in a significant number of instances, that would hardly mean the theory
was irrelevant -- often informal notions worked out in special cases benefit
from a rigorous analysis and generalization: compare arithmetic expressions
in Fortran and functional evaluation in APL or LISP. But actually, I doubt
that the lag goes in that direction anyway, in CS. With a few notable 
exceptions (such as hash-coding), it seems that almost all the "good
stuff" in computing evolved in theoretically-oriented research environments
(often academic), i.e. out of the efforts of people involved in doing
computer science.
Ada! (and what ever happened to Jovial by the way?).
and intellectual insights of DoD's great achievments in this area: Cobol
exactly they failed, Colonel,

*** REPLACE THIS LINE WITH YOUR MESSAGE ***
-- 

   Peter H. Roosen-Runge, Department of Computer Science, York University
                          Toronto M3J 1P3 , Ontario, Canada
_____________________________________________________________________________
"Eccles, is the ship sinking?"   "Only below the sea."  
"We must try to save the ship -- help me get it into the lifeboat."
_____________________________________________________________________________

jma@duke.UUCP (Jon M. Allingham) (10/23/85)

>> That brings up my biggest complaint against undergraduate computer science 
>> educations is that they teach you "programming"... they teach you how to edit 
>> a file under VMS... they teach you how to write in assembly language...
>> they teach you what a barrel shifter is... they teach (etc.), but they 
>> don't require any theory classes.  
> 
>> They don't require a class on design and analysis of algorithms.  They 
>> don't teach the thoery of LALR parsers, they don't teach...

Obviously you didn't research your subject very well, some Universities do
teach these things. I received my BS in Information and Computer Science from
the Georgia Institute of Technology in 1984. Over 50% of the required hours
were in Computer Science and among other things they included a course in

(1) Data Structures, including analysis of memory usage and algorithm speed
(2) Theory of Computing
(3) Analysis of Algorithms
plus a smattering of formal logic scattered over many courses.

Students were expected take 6 courses to make to areas of specialization
which for me included a compiler's course that showed, among other things,
how & why LALR parsing works. 

Since we were expected to program many of these things ( eg a 2500 line
database query system, ~5000 line compiler, an OS etc, we had to know
the particulars of the machines we used, but there was no real emphasis on
how things are done on a particular machine.

We did a lot more than this, these are just specific replies to your (mis-)
statement. Also, it is not unreasonable to assume that if you learn the
principles of compiler writing, OS systems, etc you can learn to do them
on other systems besides the one you happened to use.

>One trouble with theory in computer science is that it doesn't last.  I'd
>estimate that half the theoretical work that's been done in computer science
>is obsolete.

>And another trouble is that theory has not contributed much to computer
>science; it almost always comes after practice.  Had Algol and Pascal
>been failures, theory would have quietly buried the corpses.

Yes, but a lot of the theory is still fundamental and can be used to
demonstrate lots of interesting things. I you can understand current
'theory' you have a better chance of understanding state-of-the-art theories.
e.g. If you can learn the principles of Analysis of Algorithms for a range
of current problems, you can probably apply what you know to new algorithms.

Jon Allingham	AT&T Bell Laboratories, (currently at Duke University)

herbie@polaris.UUCP (Herb Chong) (10/27/85)

In article <260@yetti.UUCP> peter@yetti.UUCP (Runge) writes:
>> And another trouble is that theory has not contributed much to computer
>> science; it almost always comes after practice.  Had Algol and Pascal
>> been failures, theory would have quietly buried the corpses.
>> -- 
>> Col. G. L. Sicherman
>
>And then there are those "failures" Algol, and Pascal! What exactly did they
>fail at? As far as I know, both languages succeeded in large part in meeting
>the goals of their designers and beyond.

hmmm.  i thought the Colonel said the opposite.

Herb Chong...

I'm still user-friendly -- I don't byte, I nybble....

New net address --

VNET,BITNET,NETNORTH,EARN: HERBIE AT YKTVMH
UUCP:  {allegra|cbosgd|cmcl2|decvax|ihnp4|seismo}!philabs!polaris!herbie
CSNET: herbie.yktvmh@ibm-sj.csnet
ARPA:  herbie.yktvmh.ibm-sj.csnet@csnet-relay.arpa