[ale] an aside - mathematics for programming

Fulton Green me at FultonGreen.com
Tue Nov 21 08:55:41 EST 2000


On Tue, Nov 21, 2000 at 04:39:03AM -0800, BG HEAD wrote:
... (deleted for brevity) ...
> 1. In my two years of programming, I've not run across
> a problem that really required any high-level
> mathematical concepts to solve.  What then, is the
> reason for the intensive math classes (i.e., algebra,
> calculus, geometry, etc.)?  When will classes like
> these come into play.

I guess the cynical out there would postulate that you haven't really done
any programming. :) That said ... in my case, "back in the day" (1984-1990)
as I was earning a computer engineering (since renamed software engineering)
degree from Auburn, the primary real-world applications seemed to be of a
scientific nature. Sure enough, a good chunk of my fellow graduates wound up
in the defense and/or aerospace sectors. I landed straight out of college
into a military contractorship doing rocket-science stuff. I was still
using geometry, trig and calculus concepts so frequently in my programming
problems that I was able to pass the engineer-in-training (EIT) exam even
after being out of school for several months (having a study manual helped,
obviously).

I highly recommend algebra, even if you never do another line of programming
ever again. It's just a good skill to have, and if you've been doing any
decent programming, you'll find it easier than you think.

Geometry is pretty important if you plan to do any custom graphics software
development. Even if you don't, the logic paradigm that you'll be dealing
with all throughout the class will help train you to come up with solutions 
to your development problems in a more thourough and faster fashion.

You didn't mention trigonometry, but you'll need it if you even hope to do
anything even remotely scientific or traditional engineering-related. It's
also a necessary staple for graphics programming (like, for example, if you
need to develop your own pie-chart drawing routine/class library). I'd
recommend taking this as well (which means you'll probably need to take
geometry - sorry :).

Calculus is a different story. Ever since leaving the defense sector in 1992,
I don't think I've had any occasion to use even the simpler differential
calculus stuff (which one might use in moderately complex accounting
problems). And unless you're doing something with electrical signal analysis
(audio waveform translation and image manipulation being two examples) or
some serious-duty physics (for, say, calculating how a basketball bounces),
you probably won't be using the more advanced integral calculus, either.
It's still a good thing to know, even if you only take one or two courses in
it. Besides, others on this list can probably list other uses for calculus
that I wouldn't even be able to dream up. :)

Even if you don't directly use any of these skills, I think what the
curriculum designers have in mind with all the math is the greater goal of
putting the student into a problem-solving mindset, using as many "boxes"
as possible with the hope that the student will one day learn to think outside
them.

> 2. If you agree that math is indeed necessary, what
> classes are ABSOLUTELY essential to be a successful
> and effective programmer at all levels?  What would
> you recommend that I take?

Besides algebra, geometry and trigonometry, an even more essential class
would be some sort of mathematical logic class. If you can't find a class
in the math department called "discrete math", which deals with logic on a
strictly formulaic level, look for some sort of "intro to logic" in the
philosophy/humanities department.

One other math class I found to be useful was linear algebra, which deals
with numerical matrices and such. I admit it's been a while since I've used
it, though.

But judging by of the other postings on here, some of these degreed programs
for computer science need to include "grammer". :)

HTH.
--
To unsubscribe: mail majordomo at ale.org with "unsubscribe ale" in message body.





More information about the Ale mailing list