[sci.logic] Gudeman's major

aaron@grad2.cis.upenn.edu (Aaron Watters) (02/12/90)

Mr. Gudeman responds to my jab at CS majors.

>The large majority of programs we write have no
>traditional background in mathematics, so that any sort of "proof",
>informal or otherwise would involve something similar to the creation
>of a new branch of mathematics.

Absolutely.  But that doesn't mean they shouldn't be carefully
documented.  (Although it's a good explanation for why they are
usually impossible to formally specify correctly, let alone 
formally verify.)

>Second, I have seen a lot of code written by non-software engineers,
>for tasks that were properly software engineering.  It was
>almost without exception, frightening.  

I was criticizing SOME CS majors, not software engineers.  The colleagues
I mentioned were software engineers with a fair knowledge of software
engineering techniques.  I meant to imply that many CS majors are
not, in fact, taught to be software engineers.  What they ARE taught
to be is anyone's geuss (weak brained mathematicians?).

>If there are not much documentation in the code that a computer
>scientist writes, the reason is likely that the programmer felt that
>the code was trivial.  

And he/she's usually wrong.  It took me a while in industry to
realize that what I thought was trivial at coding time wasn't
trivial (even for me) a couple weeks later.

>There is no need to document a doubly-linked
>list... a recursive-descent parser... 

With good use of software tools there is no reason to even
re-implement these things.  But if you do re-implement them
I still think you should document them liberally.

>My undergraduate work consisted of about equal parts of
>physics, mathematics, and computer science, and the only place where
>they tried to teach _general_ problem solving skills was in computer
>science.

Sounds like you had a good major -- perhaps this should be an outline
for a CS major that would train good software engineers.  We need
more software engineers, such as yourself, who may be a little less
skilled at hacking lisp on the fly, but have more mental discipline
-- and  the ability to explain their ideas to others.

--aaron.