[net.lang] Teaching programming - aaack

rcd@opus.UUCP (Dick Dunn) (06/19/84)

>Beginning CS students should not only be taught simply how to program,
>but how to reason a programming solution and to convert it into concrete
>terms in an elegant manner.  In short, just as Prof. Kingsfield of
>'The Paper Chase' taught his students not just contract law, but "How
>to think like lawyers", freshman CS students should undergo a course
>discipline that teaches them how to think like computer scientists.

Aaack.  No, PLEASE!  If you do that we're never going to get enough
programmers to go around.  Teach them to think like programmers, not like
computer scientists!

(Flamers will receive a complete machine-readable copy of my dissertation.)
-- 
Dick Dunn	{hao,ucbvax,allegra}!nbires!rcd		(303)444-5710 x3086
	...Cerebus for dictator!

rcc@imsvax.UUCP (06/20/84)

>>Beginning CS students should not only be taught simply how to program,
>>but how to reason a programming solution and to convert it into concrete
>>terms in an elegant manner.  In short, just as Prof. Kingsfield of
>>'The Paper Chase' taught his students not just contract law, but "How
>>to think like lawyers", freshman CS students should undergo a course
>>discipline that teaches them how to think like computer scientists.

>Aaack.  No, PLEASE!  If you do that we're never going to get enough
>programmers to go around.  Teach them to think like programmers, not like
>computer scientists!

Maybe, but would you trust anything more complicated than a bubble
sort (yuck, use insertion sort) to a programmer who didn't think like
a computer scientist?  It's programmers like that who popularized the
slogan "There's always one more bug..."

-- 

The preceding message was brought to you by --

		Ray Chen

UUCP:	umcp-cs!eneevax!imsvax!rcc  (NEW ADDRESS)
Voice:	(301)  984-8343
USnail:	Integrated Microcomputer Systems, Inc.
	Suite 400
	6100 Executive Blvd.
	Rockville, MD  20852

cbspt002@abnjh.UUCP (Marc E. Kenig ) (06/20/84)

<(*RSET NIL)>
Dick Dunn (opus!rld) wrote:
>...[Teach programmers to think like computer scientists] and then we'll 
>never have enough programmers...

It has been my experience in (*yuch*) 'the computer and dp industry'
that many so-called coders have little or no circumspection or (to
rob from D. Knuth) art to what they are doing. By analogy any monkey
could be taught to solve differential equations or minimize circuits
by wrote.  However, to be genuinely creative requires background and a developed
ability to intuit an elegant solution. Else all you get is pretty shitty
code cranked out by somebody who doesn't care and doesn't appreciate the
overall quality and elegance (there's that word again!) of the program
or system that is developed. Which, I believe,  results in inefficiency and
in a need for more programmers which leads to a shortage of 'coders'.
Catch-22!

Oh no! I'm beginning to sound like Edgar Dijkstra!:-)
M. Kenig
...abnjh!cbspt002 (for another month or so...)

rcd@opus.UUCP (Dick Dunn) (06/26/84)

>>>Beginning CS students should not only be taught simply how to program,
>>>but how to reason a programming solution and to convert it into concrete
>>>terms...freshman CS students should undergo a course
>>>discipline that teaches them how to think like computer scientists.
>
>>Aaack.  No, PLEASE!  If you do that we're never going to get enough
>>programmers to go around.  Teach them to think like programmers, not like
>>computer scientists!
>
>Maybe, but would you trust anything more complicated than a bubble
>sort (yuck, use insertion sort) to a programmer who didn't think like
>a computer scientist?

Perhaps I'd better explain the particular pejorative sense in which I (>>)
was using "computer scientist".  There's a particular type of computer
scientist (not all, by any means) who enjoys the challenge of a problem
more than getting the job done; who's more interested in producing research
papers than in producing software; who's only interested in a real problem
until it is sullied by the imperfections and inelegance of a real solution.

I agree that students need to know how to reason the solution (first) and
convert it to concrete terms (after reasoning it out).  To me, this is part
of programming (as opposed to coding).

I don't mean to split semantic hairs, nor to dish out insults to
programmers or computer scientists (I've been accused of being both).  I
was just being fitfully grumpy about all the poorly written theoretical
nitpicking, elegant solutions to nonexistent problems, useless formal
"software management techniques", and general irrelevant abstraction that
I've seen passed off as computer science - some of it in highly respected
refereed journals - in the past few years.

There's one particular conversation that I overheard a few years back that
sticks in my mind.  A fairly theoretically-oriented computer scientist was
bemoaning the generally low level of technical knowledge of many
programmers, and commented that most "wouldn't recognize an Np-complete
problem if they saw it".  The other fellow, much more practically oriented,
shot back that many programmers would just go ahead and solve the problem
anyway, Np-completeness be damned.  His point, of course, is that if
there's a problem to be solved, the theory may help tell you that the
general case is intractable.  (So may intuition!)  But that doesn't make
the problem go away, and a real programmer (sorry:-) will have the
pragmatism to look for a usable solution to a useful subset of the problem,
or a way to recast it to tractable form, or a way to get more/different
information.  He won't get hung up in the theoretical grandeur/horror.
-- 
Dick Dunn	{hao,ucbvax,allegra}!nbires!rcd		(303)444-5710 x3086
	...Relax...don't worry...have a homebrew.

kra@icase.UUCP (06/28/84)

[]

BRAVO!!! to Dick Dunn for his recent article explaining his
"Teach them to think like programmers, not like computer
scientists" statement.  We have also seen too many computer
scientists of the type he describes and are "fitfully grumpy
about all the poorly written theoretical nitpicking ...."

The general disdain in which computer science is held by many
professional programmers is partially (or perhaps, totally)
attributable to the bulk of so-called computer science research,
which is really nothing more than "theoretical grandeur."

			Kathy R. Ames
                CSNET: 	kra.icase@Csnet-Relay
		UUCP: 	{ihnp4,decvax!mcnc}!burl!icase!kra

			C. Michael Holloway
                CSNET: 	cmh.icase@Csnet-Relay
		UUCP: 	{ihnp4,decvax!mcnc}!burl!icase!cmh