home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: sci.math.symbolic
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!uwm.edu!ux1.cso.uiuc.edu!news.cso.uiuc.edu!mm-mac25.mse.uiuc.edu!gaylord
- From: Richard J. Gaylord <gaylord@ux1.cso.uiuc.edu>
- Subject: Re: The Real Meaning of Efficiency? (Re: Serious Programming, etc.)
- References: <18NOV199217533011@reg.triumf.ca> <1992Nov19.203202.17362@wri.com> <1992Nov20.051351.18180@alchemy.chem.utoronto.ca>
- Message-ID: <By0q94.9p9@news.cso.uiuc.edu>
- X-Xxdate: Fri, 20 Nov 92 08:16:46 GMT
- Sender: usenet@news.cso.uiuc.edu (Net Noise owner)
- X-Useragent: Nuntius v1.1.1d12
- Organization: University of Illinois
- Date: Fri, 20 Nov 1992 14:15:02 GMT
- X-Xxmessage-Id: <A7324F6E2E019B19@mm-mac25.mse.uiuc.edu>
- Lines: 84
-
- Subject: Re: The Real Meaning of Efficiency? (Re: Serious Programming,
- etc.)
- From: Richard Fateman, fateman@peoplesparc.Berkeley.EDU
- Date: 19 Nov 1992 17:43:49 GMT
- In article <1egjolINNk2e@agate.berkeley.edu> Richard Fateman,
- fateman@peoplesparc.Berkeley.EDU writes:
-
- >In my view one of the most powerful abstractions for programming
- >mathematical algorithms is recursion.
-
- If recursion and pattern matching were so good, perhaps
- >we wouldn't see so much claptrap in "fast Mathematica" programs
- >with # and &, which (I suspect) are merely ways to AVOID pattern matching
- >and the usual function call overhead.
-
- >Stephen Wolfram's ambition (according to an interview in an article in
- >The Chronicle of Higher Education some months ago) appears to be
- >to have the Mathematica language replace all others as a first
- >programming language (i.e. instead of Pascal, Modula II, Scheme,
- >Ada, ... etc). I am not enthusiastic about this prospect.
- >
- ===========================
-
- i hear comments like this quite often from computer science professors
- and it explains why the teaching of programming by cs departments to
- engineers and scientists and mathematicians is almost a total failure.
-
- recursion is said to be a powerful tool but it is almost never used. why?
- one reason, of course, is that the old FORTRAN didn't support recursion.
- another reason is that recursive thinking is in fact difficult to master
- and many people are uncomfortable with it.
- yet another reason is that recursion is not always very efficient.
-
- pascal, modula II, scheme or ada are terrible choices as first languages
- for engineers or scientists since these languages are in fact not used in
- the technical fields. it at least make a little sense to teach
- programming in FORTRAN since this language is actually used inscientific
- computing and it makes the most sense to teach programming in one of the
- cas languages because the vast majority of professionals will be doing
- their computing on desktops with cas's that support graphics, algebraic
- manipulation, etc.
-
- the cs departments have managed with their control of the teaching of
- programming to scientists and engineers and mathematicians to turn those
- people off from programming at the very time that computing has become an
- indispensible tool in these fields. i know they say that its the eng.
- depts. that make them teach FORTRAN (sounds like george bush blaming
- the congress) but its totally clear that most cs departments don't have
- the faintest idea what non-cs people want or need to know about
- programming. this can be seen from the recent move at many places from
- FORTRAN to C as the first language. if they thought FORTRAN was unpopular
- amongst engineering students wait till they see the student reaction to C.
-
- it has been said that you shouldn't teach programming with mathematica
- because its a bizarre and inconsistent language and if you learn
- mathematica programming it will ruin your ability to learn how to program
- properly.
-
- this is COMPLETE nonsense.
-
- one can ignore all of the things one thinks are 'wierdly idiosyncratic'
- to mathematica [to some of us they are neat features not bugs] and just
- use parts of the language to explain the general principles of
- programming and algorithm development [eg., recursion, functional,
- procedural and rule-based programming].
- This is being done at the university of illinois in the intro cs course
- that is required of all engineering students and the students are
- responding to the course much more positively than they did in the past.
-
- the best thing that could happen to the teaching of programming to tech
- people would be to use mathematica to do it.
-
- finally, the comment about the use ofthe 'claptrap' of anonymous
- functions to avoid pattern matching is total claptrap (which according to
- the dictionary means pretentious nonsense). i write almost all of my
- programs using anonymous functions because i use a functional programming
- style which is very natural to me. others prefer to program using
- pattern matching (which is far more sophisticated in mathematica than in
- most other languages). the ability to choose the style most appropriate
- to the problem and to the way in which the programmer thinks is one of
- the most important features of mathematica.
-
- hopefully, this thread will have ended by the time i return from my
- thanksgiving hoiday.
-