Mathematics and Software Engineering (was slide: useful function? )
There's too much mathematics in it, I'm only an engineer... ;-)
Perhaps I should rephrase:
There's too much mathematics in it, I'm not a mathematician
reminds of what I think is one of the biggest problems with conventional software development: the lack of appreciable mathematics in the specification, design, coding, or implementation of programs. In this
While this is surely true, I think, there is also a lack of communication between software engineers. Civil, Mechanical or Electrical Engineers have well-established plans, while software engineers have not (see http://fmc.hpi.uni-potsdam.de/). One should not forget, that many practical problems are not solvable by a rigorous mathematical approach. German reading people may have a look at http://fmc.hpi.uni-potsdam.de/research/literature/wendt_1998-kommunikationsp roblem_der_informatiker.pdf, where some problems are pointed out (with an edge to it).
sense there is a huge contrast between conventional software development practice and other engineering disciplines.
Definitely. But software development is probably not old enough... It's like the difference between somebody bying some Radio Shack stuff and putting it together until it works, and an engineer making informed decisions for layout and choice of elements for a circuit. This informedness relies partly on mathematics, but at least as much on experience and pragmatics. Most software people are still bying Radio Shack stuff... (and isn't it easy?)
I was once an electrical engineer, and I used lots of mathematics (not just in school, but in industry), and I know that most other engineering disciplines also use a
So you know that to use diracs and fourier you don't necessarily need to understand what functionals are about. Likewise, it's not necessary to understand category theory to use monads and the like.
lot of mathematics. One of the things I like about FP is that it demands more mathematical sophistication of its practitioners, which, contrary to some opinions, I think is a Good Thing.
I'm fully with you there, but - as someone already pointed out - I don't want to need a math major to read a paper regarding programming. This doesn't mean there is something wrong with these papers, it's just that I wished there would be more accessible versions. Hope to got my point across, Markus -- Markus Schnell, Infineon Technologies AG
Markus.Schnell@infineon.com wrote (on 03-12-02 18:18 +0100):
Perhaps I should rephrase:
There's too much mathematics in it, I'm not a mathematician ..and later... lot of mathematics. One of the things I like about FP is that it demands more mathematical sophistication of its practitioners, which, contrary to some opinions, I think is a Good Thing.
I'm fully with you there, but - as someone already pointed out - I don't want to need a math major to read a paper regarding programming.
How many times has this phrase been uttered, I wonder...! The truth is: You DON'T need a math degree to understand such papers. This may come as a shock, but the reason for this is that they are not written by or for an audience of mathematicians, but rather for an audience of CS researchers who actually possess---wait for it---CS degrees! :) Now, admittedly, there is a lot funny notation, jargon and special concepts in PLT papers. That's why a few people have undertaken the task of writing textbooks, surveys and tutorials for people who did not come into this world with the Library of Congress preloaded in their brains. Two good books which come to mind are: John C. Mitchell. Foundations for Programming Languages. MIT Press, 1996. Benjamin C. Pierce. Types and Programming Languages. MIT Press, 2002. I've also collected some freely available ones here: PLT Online http://www.cs.uu.nl/~franka/ref That was CS and PLT. Now let's talk about mathematics and algebra. It doesn't take a degree in mathematics to do or understand mathematics. The people who get degrees in mathematics get them, not in order to do mathematics, but rather in order to create/discover (do you favor Plato or Brouwer?) _new_ mathematics. People nowadays use the word "mathematics" as if it were some exotic beast you can only find in the hinterlands of darkest Africa! Every field, even something as mundane as accounting, has its wildly esoteric corners. No one expects programmers to be experts in twistor theory or inaccessible cardinals. Hell, no one expects CS researchers to be experts in those bits either. Elementary algebra is not one of those esoteric bits. As mathematical topics go, it's simple, fundamental, ubiquitous and closely connected to FP. It won't gobble up your grandmother or demand your first-born child. At a guess, I think most FP programmers could easily get up to speed on the basics of constructive universal algebra in the context of FP---signatures, initial algebras, catamorphisms, free constructions, monads, etc.---in the space of a workshop-length course. It's common practice for programmers in industry to take training courses on things like Java beans, ActiveX controls and UML; why not algebra, or proof theory or operational semantics? At least those things are sure to survive longer than the latest buzzword technology... -- Frank
participants (2)
-
Frank Atanassow -
Markus.Schnell@infineon.com