[comp.lang.misc] First Languages and computer science is not engineering

cstjc@its63b.ed.ac.uk (A Cunnigham) (03/03/88)

In article <1016@its63b.ed.ac.uk> cstjc@itspna.ed.ac.uk (A Cunnigham) writes:
>>	CS1 courses exist to teach people about computer science. They are
>>  not in general service courses for other departments. 

>What makes you think that good programming techniques are going to be
>any different when found in physicists, say, than when found in
>computer scientists?  Programming is a SKILL, not a science.  You use
>"computer science" as though it is some higher religion that is
>defiled by teaching it to heathens, unbelievers, or people from
>other departments.

	It certainly is defiled when all the engineers want us do is teach
FORTRAN. Our department started a service course for engineers last year. At
a meeting to discuss the syllabus the engineering rep wanted to kick out most
of the stuff we wanted to teach in favour of FORTRAN.
ell
>Yes, but if a scientist is going to use a tool, like a computer, it
>would be a good idea to learn how to use it, to gain some skill at it.
>Programming is a skill, and one that sometimes requires cleverness and
>artfulness, and is often difficult.  The requirment of programming for 
>scientists is unlikely to disappear.  Again, let's not confuse the art 
>of programming with science.

Trying to persuade people that programming is an 'art' is a bad idea.
There is a vast body of knowledge dealing with the design and implementation
of effective algorithms that is definitely the product of science.

>>  Computer Science most certainly IS NOT engineering. If anything it's a 
>>  branch of mathematics.

>Then your computer science is different from the one I see.  The bulk
>of what people call computer science is people designing and building
>new operating systems, compilers, expert systems, hardware, languages,
>communication networks, and so on.  This is *engineering*, just as
>building circuits, bridges, houses, motor assemblies, turbofan blades,
>etc. is.  There is no *science* being done in these applied areas, even
>though the application may further knowledge in the field.  This is the
>difference between science and technology.  Scientists deal in science,
>engineers in technology.  Most so-called computer scientists think of
>themselves as scientists when writing systems, operating or expert, but
>they are wrong.  The science of computers is the less-popular theory --

Many of the problems that we find in the computer industry can be traced
back to the fact that theory isn't as popular as it should be. Analysis
of Algorithms is a classic example. 

>the study of things like computability, decidability, and algorithms.
>The bulk of CS, as it is generally talked about, is engineering --
>designing, working out practical problems, implementing, etc.  It most
>certainly *is not* like mathematics.  We delude ourself if we somehow
>think that what we're doing is somehow more akin to what chemists and
>biologists do that what {chemical, mechanical, electrical, ...} engineers 
>do.

Well it should be.

>   pcm> [ ... ]  I have just changed jobs.  In no interview was I asked
>   pcm> whether I knew ML; in every interview I was asked if I knew C.
>
>>  [...] I used to list ML on my resume as one of the programming languages 
>>  I know.  I finally removed it because (1) nobody had ever heard of it, 
>>  and (2) when I explained what it was, they didn't care.
>
>   If they don't care then they ain't worth working for!

>Anthony is clearly not going to get a job in the US.  There are maybe a
>half-dozen employers in the states who will ask or care about obsurities
>like ML or Snobol, unless the job specifically pertains to these
>languages.  I don't claim this is right, but among the ones who do not 
>are quite a few that are well worth working for.

I stand by my statement. If an employer isn't interested in a student who has
a good grounding in the basic foundations of his subject and can't see why
a language like ML is worth learning then he doesn't want a computer scientist
he wants a hacker.

>>   Lucky for me, though, I know ML and Prolog, so if I ever have to your
>>   planet, I'll be able to get a job ;-).
>
>    Stay off my planet - I like it the way it is!

>Let's be nice, eh?  

I'm sorry if that last statement caused offence to anyone. But I stand by 
my posting. Computer Science courses should teach computer science and by 
that I mean primarily the design and analysis of efficient algorithms. To get
bak to the subject this requires a language like ML or LISP. Teaching
FORTRAN or C will just produce a stream of hackers.
-- 

Anthony Cunningham, Dept of Computer Science, University of Edinburgh.

             ARPA:  tjc%ed.ecsvax@ucl-cs.arpa
             UUCP:  ...!{decvax,ihnp4,seismo}!mcvax!ukc!ecsvax!tjc
             JANET: tjc@uk.ac.ed.ecsvax

I think of Sarah. The rest is easy.