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