Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site duke.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!decvax!mcnc!duke!crm
From: crm@duke.UUCP (Charlie Martin)
Newsgroups: net.cse
Subject: Re: Exams vs. Programming Assignments
Message-ID: <6410@duke.UUCP>
Date: Thu, 3-Oct-85 21:41:41 EDT
Article-I.D.: duke.6410
Posted: Thu Oct  3 21:41:41 1985
Date-Received: Sat, 5-Oct-85 14:55:26 EDT
References: <823@dataio.Dataio.UUCP> <6358@duke.UUCP> <827@dataio.Dataio.UUCP>
Reply-To: crm@duke.UUCP (Charlie Martin)
Organization: Duke University
Lines: 91

In article <827@dataio.Dataio.UUCP> bjorn@dataio.UUCP (Bjorn Benson writes:
>In reference to <6358@duke.UUCP> crm@duke.UUCP (Charlie Martin):
>
>If you think that "...language of and reason for computer science is
>programming..." then you are missing some fundamental points:
>(1)	Computer science is the study of computers and how they work
>	and how to design them and how to use them effeciently and
>	and how to build algorithms and how to solve problems, etc.
... and English Literature is the study of what writers have written,
and what has been important to people through the history of written
english.  But to be able to communicate professionally as an English
specialist, one had better be more than simply barely competent in
English Composition.

>(2)	Programming is the act of taking a design and translating it
>	into BASIC, PASCAL, Modula2, LISP, etc.  This you can learn
>	at Bills Bussiness College.

Exactly my point: you can learn it at Bill's Business College, but you
can't learn it in a university.

>(3)	A good software engineer spends most of his/her time (> 80%)
>	designing, documenting, redesigning, debugging, THINKING,
>	and only a small amount coding.

Are you under the impression that most universities teach how to design
a program either?  I'm certainly not.

>Furthermore, I agree with Mr. Martin that if "...a computer scientist 
>can graduate without being able to write ... programs..." then there is 
>something wrong with the university.  But if all the young man/woman can do 
>is to write programs then he/she should have gone to Bills Bussiness 
>College and saved $20,000.

If *all* they can do is write programs, they may have been better off at
Bill's -- but if they graduate and CAN'T program (and most of them
can't) then they were CERTAINLY better off at Bill's.  For the
non-academic computer professional -- one who will practice software
design and creation, not teach: that is, one with a BA, BS, Or Master's
-- an essential skill is the skill of creating a competent and
professional program.

Note what I am saying: *an* essential skill.  Not *the* essential skill,
but *an* essential skill, just as the ability to compose a competent and
coherent paper is an essential skill for someone specializing in
English, and the ability to draw a readable house plan is an essential
skill for an architect.  But we aren't teaching it.  At least, we don't
here, and the people I used to hire in my earlier incarnation as a
software engineering manager hadn't learned it.

>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.  

If one majors in German, one learns German before starting Goethe.
You've got to know the basics before you can do the advanced stuff, and
we aren't starting with people who have an intrinsic knowledge of
computers.  Certainly, my Intro to Computing labs have very few people
who are prepared to mess with theory of computation.

>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...

...they don't teach about file systems, they don't tell people why
globals are not always best, they don't tell people about maintenance,
or about coupling and cohesion, or secret-hiding in modules.

(... there are bunch of Ph.D.'s in CS who would be hard-pressed to tell
you much about the theory of LALR parsing.)

> .... -- no one taught you how to THINK, much less
>about computer science.  You are a Programmer.

But we not only don't teach them how to think, we don't teach them how
to program EITHER!

So far, your argument against teaching programming in college leaves me
unconvinced: so far as I can see, you want to make sure they are
prepared to run before we teach them to walk.  So we graduate a bunch of
kids who want to go out and run (about one out of two new grads I
interviewed wanted to write compilers) but who can only crawl -- and we
leave it to industry to spend one to three years teaching them the basic
skills of their profession *after* they have spent $20,000 supporting our
research, and keeping us in our nice academic research jobs.  At least
Bill's Business College sells what they purport to sell.
-- 

			Charlie Martin
			(...mcnc!duke!crm)