comp.lang.ada
 help / color / mirror / Atom feed
From: bu.edu!inmet!bwhite@uunet.uu.net
Subject: Re: Is CM important? (was: Use pragma I
Date: 16 Jul 91 15:07:00 GMT	[thread overview]
Message-ID: <20600112@inmet> (raw)

On Jul  8, 1991, mattel@auto-trol.com writes in response to Showalter's
bleatings that we should drop calculus, algebra, FORTRAN and Ada from the
cs curriculum.  Dropping FORTRAN and Ada might not be such a bad idea.
Though it is hard to imagine how one might program without a programming
language, the things people learn in school are pretty much language
independent.  Since it is possible to learn to write either good or bad 
programs in any language, it seems that the important reason for studying
programs is to tell which are good or bad, and to know how to choose a
good program (or perhaps a bad one if you are mad at your boss.)

The only way we can choose good programs is by analyzing the programs we
write.  Perhaps the analysis goes on before the program is written, and
perhaps it goes on after the program is written, but in any case we have to
analyze the code for correctness and efficiency.  The tools for this 
analysis are largely known, but are not easy to use.  Read, for example,
chapter 1, vol 1 of Knuth's ACP books to see what efficiency analysis
tools are available, and how they are tricky to apply.  Read Dijkstra's
book "A Discipline of Programming" for correctness analysis tools.
It is not possible know how to use these tools without some formal
training in the underpinnings of there use.  For this you will need
calculus and algebra.  

Specifically:
    o You will need algebra to do any combinatorics, and 
      combinatorics is extensively used in Knuth-style analysis.  Indeed, 
      one recent book on combinatorics stated that such algorithm analysis 
      books as Knuth's books and Purdom and Brown's book are combinatorics 
      books in disguise.  
    o The kind of formula manipulation used to manipulate correctness 
      proofs is algebraic in nature.  In particular, the experience gained
      by studying algebra makes the definitions of model and language
      more accessible.
    o There are many other applications of abstract
      algebra in the corners of computer science, but it is not clear to me
      that all of them are of general use.  People analyze multiprocessor
      connection networks using Cayley groups.  People who do coding and
      communication error recovery use Galois theory extensively.  People
      have used group theory to prune tree searches by examining symmetries.
      The presentation of floating point arithmetic used in Karlsruhe arithmeti
c
      is given abstractly (see Kulisch and Miranker, "Computer Arithmetic
      in Theory and Practice", Academic Press, 1981.)  However, these seem 
      like specialized applications.
    o Most calculus books and courses spend most time with the relatively 
      uninteresting notions of derivatives and integrals.  While these are
      useful in physics and engineering, where things are continuous, they
      are of less value to the kind of discrete systems we use.  However,
      calculus is the only place people see the definitions of limit and
      continuity, which definitions are very important.  Continuity is
      important if you want fixed points.

This has gone on long enough.

					Peace,
					Bill White
					<bwhite@inmet.inmet.com>
P.S.
    What's a trunkle?

             reply	other threads:[~1991-07-16 15:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1991-07-16 15:07 bu.edu!inmet!bwhite [this message]
  -- strict thread matches above, loose matches on Subject: below --
1991-07-17 16:08 Is CM important? (was: Use pragma I Orville R. Weyrich
1991-07-17 19:54 Jim Showalter
1991-07-18 14:03 agate!bionet!uwm.edu!zaphod.mps.ohio-state.edu!ub!galileo.cc.rochester.ed
1991-07-20 10:04 George C. Harrison, Norfolk St ate University
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox