Xref: utzoo sci.logic:751 comp.misc:8169 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!usc!elroy.jpl.nasa.gov!jarthur!polyslo!vlsi3b15!vax1.cc.lehigh.edu!netnews.upenn.edu!grad2.cis.upenn.edu!aaron From: aaron@grad2.cis.upenn.edu (Aaron Watters) Newsgroups: sci.logic,comp.misc Subject: Re: Gudeman's major Message-ID: <20277@netnews.upenn.edu> Date: 12 Feb 90 12:40:04 GMT References: <17756@megaron.cs.arizona.edu> Sender: news@netnews.upenn.edu Reply-To: aaron@grad2.cis.upenn.edu.UUCP (Aaron Watters) Organization: University of Pennsylvania Lines: 49 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.