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.