Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!swrinde!gem.mps.ohio-state.edu!apple!sun-barr!newstop!sun!regenmeister!chrisp From: chrisp@regenmeister.uucp (Chris Prael) Newsgroups: comp.software-eng Subject: Re: CS education [engineering, mathematics, and computer science] Message-ID: <34770@regenmeister.uucp> Date: 15 Nov 89 20:19:41 GMT References: <1398@cs.rit.edu> Sender: chrisp@regenmeister (Chris Prael) Organization: Sun Microsystems, Inc. - Mtn View, CA Lines: 75 From article <1398@cs.rit.edu>, by mjl@cs.rit.edu: > Which leads to another interesting point: most engineers are not > particularly good mathmaticians. Perhaps it would be well to take your point a little further: engineers are not supposed to be mathemeticians at all. An engineer does need to have a fair amount of mathematics in his/her toolbox, but that is a far cry from any pretence of needing to be a mathematician. > When was the last time that an engineer > actually *proved* (in the rigorous mathematical sense) that the > application of a differential equation or a linear transform was > correct? And why should the engineer have to waste time doing so? "Prooving" an equation or its application is completely beside the point. > [...great anecdote...] > This has given me insight into one of the raging issues in the software > development community today, namely the push by some for greater > formalism (in the sense of mathematical rigor). ... > To the extent that such formalism can be shown to be inherent to > quality software development, I support it. You were very polite about this, perhaps too. My background in math, before I got into computing, early lead me to the conclusion that computing and math have nothing fundamental in common. Most of the failings of Computer Science stem from the attempt to make computing a branch of mathematics. The attempt displays profound misunderstandings of the fundamentals of mathematics and of the fundamentals of computing. This confusion seems to stem from the fact that arithmetical and methematical applications were the earliest to which computing was applied. Those applications are not and never were fundamental to computing. They are fundamental to the implementation of FORTRAN libraries, but FORTRAN is a perishingly small corner of computing. It would be as appropriate to assert that drafting is now the foundation of computing because there are so many CAD applications. One of the postings yesterday (my appoligies for not being more specific) pointed to the report of "The Task Force on the Core of Computer Science" published in the Jan 89 issue of CACM as an example of how the field is growing. I agree, but not in the same sense. The report is so rooted in the idea of computing as imitation mathematics that it is meaningless to the great majority of the field. > My own view is that formal methods and rigorous development techniques > are important, but that they will have little effect on the state of > the practice until their essence can be distilled and presented in the > same way as traditional engineering mathematics. Here, I find the need to point back to what I said before about freshman calculus, which perfectly exemplifies engineering mathematics. It is the memorization of a body of recipies drawn from mathematics. There is no structure, there is no theory. It is not mathematics at all. But, the recipies are mandatory elements of the engineer's tool box. Computing does not have that excuse. Only two modest segments of mathematics contains elements that can even remotely be called fundamental contents of our toolkit: elementry arithmetic and boolean algebra. Both of these are pretty elementry when compared to the math recipies needed by civil, mechanical, and electrical engineers. Is that why we pretend to mathematical content that is not there? Formal methods, in the mathematical sense, are as meaningful to computing as they are to civil engineering: not at all. I will not say that formal methods can never be of use to us. But I will say that if a formal method is ever concocted that is actually functional in computing, it will be found to be equally useful in designing and implementing pencils, coffee cups, aquiducts, connecting rods, and light bulbs. Chris Prael