Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How much math is used in programming?

1 view
Skip to first unread message

Iam Graduating

unread,
Jan 1, 2003, 4:43:00 PM1/1/03
to

I'm thinking about majoring in computer programming. There seems to
be a lot of math in the curriculum. I'd like to know exactly how much of
this math is used in the actual programming?
How exactly is it utilized? Do programmers actually use a pad with
math formulas and tinker around with math equations as a part of their
job?

Markus Edholm

unread,
Jan 1, 2003, 5:52:10 PM1/1/03
to
goingto...@webtv.net (Iam Graduating) wrote in
news:26608-3E1...@storefull-2233.public.lawson.webtv.net

It depends on what kind of programming you're going to do and what kind
of math you're referring to.
There's lots of linear algebra and vector analysis in 3d-graphics. If
you end up doing software for physics simulations or figuring out if this
building will fall down during en earthquake you had better know your
ordinal differential equations and even more linear algebra. If you're
working on encrypting the next generation DVD-media you'll probably need
some discrete math and other weird things I don't know the names of.
On the other hand there's lots of programming that doesn't require
anything more complex than simple addition and, if it gets rough,
multiplication.
Since I'm not a professional programmer all these opinions are to be
taken for what they are, wild guesses or worse.
/Markus

--
to reply replace the following...
first=Markus, last=Edholm, isp = telia

those who know me have no need of my name

unread,
Jan 1, 2003, 6:12:10 PM1/1/03
to
in comp.programming i read:

> I'm thinking about majoring in computer programming. There seems to
>be a lot of math in the curriculum. I'd like to know exactly how much of
>this math is used in the actual programming?

you ask this as if there were but a single realm in which programming were
done. some people can get away with nearly no math, because their problem
and solution domains don't include the need. others have nothing but math,
with programming a mere tool to achieve a desired result. the scientific
discipline is of the most value, across most disciplines; providing you
with the necessary base from which to consider your problem and envisioning
solutions, and selecting the most apt.

>Do programmers actually use a pad with math formulas and tinker around
>with math equations as a part of their job?

some certainly do.

--
bringing you boring signatures for 17 years

Aggro

unread,
Jan 1, 2003, 6:34:54 PM1/1/03
to

How much math is used in life? That is the real question and it will also
give you answer to your question. People don't do similar tasks in life and
programmers don't do similar tasks in programming.


Ben Tels

unread,
Jan 1, 2003, 7:40:33 PM1/1/03
to
Iam Graduating wrote:

> I'm thinking about majoring in computer programming.

You can major in computer programming rather than in computing science? What
an appalling thought....

> There seems to
> be a lot of math in the curriculum. I'd like to know exactly how much of
> this math is used in the actual programming?

Depends on what you are doing. Some things are nothing but mathematics,
others are almost devoid of it. And then there's the ever-growing category
of things that SHOULD involve a calculational or even algebraic basis, but
are done without in most commercial settings (with predictable results).

> How exactly is it utilized?

Depends on the situation. In computer graphics, the calculation is the
program. Pretty mucht the same goes for areas like encryption. There is
also a style of program design deriving from people like Dijkstra and Hoare
in which the calculation is not the program, but you certainly do calculate
what the statements of your program should be (a style of program design
which, if you are studying in the United States, I can virtually guarantee
that you will not be introduced to).

> Do programmers actually use a pad with
> math formulas and tinker around with math equations as a part of their
> job?

Well, Dijkstra always said that the best programs were written on paper
rather than on a computer. But you'll find that in commercial settings,
sitting behind your keyboard and punching it until the computer does
something approaching what you wanted is the norm.

--
Ben Z. Tels
b...@bentels.dyndns.org
opti...@stack.nl
http://www.stack.nl/~optimusb/
UIN:2474460

"The Earth is the cradle of the mind, but one cannot stay in the cradle
forever."
--Tsiolkovsky

Phlip

unread,
Jan 1, 2003, 8:17:51 PM1/1/03
to
Iam Graduating wrote:

Almost none of it. High Schools and Colleges teach Linear Algebra,
Trigonometry and Calculus as a hangover from the alleged Cold War. Those
are the maths needed to send rockets up and bombs down.

Schools should teach more abstract algebra, group theory & set theory.
These map directly onto computerizable elements.

If your school tells you to jump thru a hoop of a given color and radius to
graduate, jump. The hoop itself will have stunningly little relevance in
the Real World.

--
Phlip
http://www.c2.com/cgi/wiki?PhlIp
-- MCCD - Microsoft Certified Co-Dependent --

Derk Gwen

unread,
Jan 1, 2003, 8:24:10 PM1/1/03
to
# I'm thinking about majoring in computer programming. There seems to
# be a lot of math in the curriculum. I'd like to know exactly how much of
# this math is used in the actual programming?

You're taught math for different reasons. First is depending on the
program, yes, you do use graph theory or set theory or linear algebra
or calculus or ... .

Second and more important is learning to do math means learning to think in
logical way, and how to synthesise a complex theory from basic building
blocks. Very important in writing and maintaining software. You can always
reread a linear algebra text if you forgotten what those kinds of kernels
are. But you have to be able to read the book.

--
Derk Gwen http://derkgwen.250free.com/html/index.html
I think that's kinda of personal; I don't think I should answer that.

David Wright

unread,
Jan 1, 2003, 9:39:33 PM1/1/03
to

"Phlip" <phli...@yahoo.com> wrote:

: Almost none of it. High Schools and Colleges teach


Linear Algebra,
: Trigonometry and Calculus as a hangover from the
alleged Cold War. Those
: are the maths needed to send rockets up and bombs
down.
:
: Schools should teach more abstract algebra, group
theory & set theory.
: These map directly onto computerizable elements.


Phlip,

What would you say are the PREREQUISITE or PRELIMINARY
topics to have mastered before tackling EACH of these
areas, and can these foundational topics be tackled in
parallel or sequentially:

a) abstract algebra
b) group theory
c) set theory

I ask as a mathematically challenged, self-studying,
Schaum prone neophyte, rummageing blindly about in the
cold and lonely foothills of Mt Maths.

Thanks
David W.

David Chen

unread,
Jan 2, 2003, 12:40:16 AM1/2/03
to

"Derk Gwen" <derk...@HotPOP.com> wrote in message
news:v1755qs...@corp.supernews.com...

Right on the mark.
I am a 16 year-old, so take what I say with a grain of salt, but I have been
programming for about 4 years now.
Math itself does not guarantee success in programming.
However, I have not seen someone who sucks in math succeed in programming.
The best programmers utilize the logic they learned from math
problem-solving successfully to programming.
Of course, it's possible to stay with mundane and trivial programs where
little logic or reasoning is needed.

I consider computer science the harder parts of programming; basically, if I
see a problem and I can't start coding right away, I call that problem
computer science :)
I recommend topcoder.com for a nice view of both simple programming
exercisese and some intense comp sci problems!

BTW, Simonyi, the founder of Intentional even brags how he has hired the
best from the Hungarian math and physics olympiad. The importance is the
application of reasoning and problem-solving, not the actual tools taught in
the class, such as derivatives, integration, etc.


David Chen


Thad Smith

unread,
Jan 2, 2003, 12:56:26 AM1/2/03
to
Ben Tels wrote:

>Iam Graduating wrote:
>
>> I'm thinking about majoring in computer programming.
>>
>You can major in computer programming rather than in computing science? What an appalling thought....
>

I don't think so. I see an analogy between physics / engineering and
computer science / programming.

Computer scientists are theoreticians that work on fundamentals of
applying the computer: fundamental algorithms, computer architecture,
techniques for reliable development and reliable computing.

Professional programmers work on applications, doing need analysis,
project size estimation, system design, partitioning for parallel
development, test plans, system implementation, verification,
documentation, support, and maintenance. Many classes are geared to
acquiring the skills needed for successful programming.

Just as engineers take a few courses in fundamental physics,
programmers should also take a few courses in the fundamentals of
computer science as background.

Thad

Phlip

unread,
Jan 1, 2003, 10:43:13 PM1/1/03
to
David Wright wrote:

> a) abstract algebra
> b) group theory
> c) set theory
>
> I ask as a mathematically challenged, self-studying,
> Schaum prone neophyte, rummageing blindly about in the
> cold and lonely foothills of Mt Maths.

Sorry. I'm one too. I picked them up via brain graft, which I can't
recommend.

Who's Schaum?

--
Phlip
http://www.greencheese.org/MayorZogg
-- My opinions are those of your employer --

Peter Kootsookos

unread,
Jan 2, 2003, 1:07:26 AM1/2/03
to

"Thad Smith" <th...@ionsky.com> wrote in message
news:3E13D48A...@ionsky.com...

> Professional programmers work on applications, doing need analysis,
> project size estimation, system design, partitioning for parallel
> development, test plans, system implementation, verification,
> documentation, support, and maintenance. Many classes are geared to
> acquiring the skills needed for successful programming.

I tend to agree with this, EXCEPT that most people just see "programming" as
sitting in front of a computer and typing in code.

Ciao,

Peter K.


Ben Pfaff

unread,
Jan 2, 2003, 1:08:45 AM1/2/03
to
Phlip <phli...@yahoo.com> writes:

> Who's Schaum?

Publisher of books that summarize various topics, often good for
course study and review before exams.
--
"...I've forgotten where I was going with this,
but you can bet it was scathing."
--DesiredUsername

Al Dunbar

unread,
Jan 2, 2003, 1:50:01 AM1/2/03
to

"those who know me have no need of my name" <not-a-rea...@usa.net>
wrote in message news:m14r8s5...@usa.net...

... and some certainly don't.

/Al


Dan Tex1

unread,
Jan 2, 2003, 2:08:47 AM1/2/03
to
From: Phlip phli...@yahoo.com

>Iam Graduating wrote:
>
>> I'm thinking about majoring in computer programming. There seems to
>> be a lot of math in the curriculum. I'd like to know exactly how much of
>> this math is used in the actual programming?
>> How exactly is it utilized? Do programmers actually use a pad with
>> math formulas and tinker around with math equations as a part of their
>> job?
>
>Almost none of it. High Schools and Colleges teach Linear Algebra,
>Trigonometry and Calculus as a hangover from the alleged Cold War. Those
>are the maths needed to send rockets up and bombs down.

It's also the math required to do a LOT of other things.

>Schools should teach more abstract algebra, group theory & set theory.
>These map directly onto computerizable elements.

A student who can't understand basic algebra, geometry and trig isn't likely
going to be able to handle abstract anything or group or set theory. I use
trig and calculus all the time. I have pretty much no need for set theory.
If the schools don't educate guys like me... then the rest of the world will
have to learn to live with bridges and buildings that fall down on a regular
basis.

Dan :-)

Nils Goesche

unread,
Jan 2, 2003, 2:39:42 AM1/2/03
to
"Al Dunbar" <Luigi...@hotmail.com> writes:

> "those who know me have no need of my name" <not-a-rea...@usa.net>
> wrote in message news:m14r8s5...@usa.net...

> > >Do programmers actually use a pad with math formulas and tinker around


> > >with math equations as a part of their job?

> > some certainly do.

> ... and some certainly don't.

While it is true that you can get around without knowing any
mathematics, knowing mathematics certainly doesn't do any harm.
By not knowing mathematics, you restrict yourself to those areas
where no mathematics is needed. No digital signal processing, no
serious 3D graphics, no serious work with programming languages
(compilers, for instance); I just recommended using splines in
another thread; if the one I was talking to cannot handle some
mathematics, this approach is one way he cannot take. It's as
simple as that.

Regards,
--
Nils Gösche
Ask not for whom the <CONTROL-G> tolls.

PGP key ID #xD26EF2A0

Al Dunbar

unread,
Jan 2, 2003, 3:00:12 AM1/2/03
to

"Nils Goesche" <n...@cartan.de> wrote in message
news:87znqkc...@darkstar.cartan...

> "Al Dunbar" <Luigi...@hotmail.com> writes:
>
> > "those who know me have no need of my name" <not-a-rea...@usa.net>
> > wrote in message news:m14r8s5...@usa.net...
>
> > > >Do programmers actually use a pad with math formulas and tinker
around
> > > >with math equations as a part of their job?
>
> > > some certainly do.
>
> > ... and some certainly don't.
>
> While it is true that you can get around without knowing any
> mathematics,

I never implied that. I only said that some may not use a pad with math
formulas and tinker around with math equations. You do not have to do either
in order to "do math".

> knowing mathematics certainly doesn't do any harm.
> By not knowing mathematics, you restrict yourself to those areas
> where no mathematics is needed. No digital signal processing, no
> serious 3D graphics, no serious work with programming languages
> (compilers, for instance); I just recommended using splines in
> another thread; if the one I was talking to cannot handle some
> mathematics, this approach is one way he cannot take. It's as
> simple as that.

Simpler than that, if one is afraid enough of math such that one has to ask
if it is necessary, one is likely not in the best frame of mind to
contemplate programming as a career.

/Al


Nils Goesche

unread,
Jan 2, 2003, 3:13:08 AM1/2/03
to
"Al Dunbar" <Luigi...@hotmail.com> writes:

> "Nils Goesche" <n...@cartan.de> wrote in message
> news:87znqkc...@darkstar.cartan...
> > "Al Dunbar" <Luigi...@hotmail.com> writes:
> >
> > > "those who know me have no need of my name" <not-a-rea...@usa.net>
> > > wrote in message news:m14r8s5...@usa.net...
> >
> > > > >Do programmers actually use a pad with math formulas and tinker
> around
> > > > >with math equations as a part of their job?
> >
> > > > some certainly do.
> >
> > > ... and some certainly don't.
> >
> > While it is true that you can get around without knowing any
> > mathematics,
>
> I never implied that. I only said that some may not use a pad
> with math formulas and tinker around with math equations. You
> do not have to do either in order to "do math".

Ok, that's true. Frankly, I don't have any such ``pad´´ around,
either :-)

Ben Tels

unread,
Jan 2, 2003, 3:47:54 AM1/2/03
to
Phlip wrote:

> Almost none of it. High Schools and Colleges teach Linear Algebra,
> Trigonometry and Calculus as a hangover from the alleged Cold War. Those
> are the maths needed to send rockets up and bombs down.

Among others. Mathematics, however, is hardly limited to that.



> Schools should teach more abstract algebra, group theory & set theory.
> These map directly onto computerizable elements.

Yes, but not as a replacement for the other things you mentioned.

> If your school tells you to jump thru a hoop of a given color and radius
> to graduate, jump. The hoop itself will have stunningly little relevance
> in the Real World.

You don't know that. It may not, but that's not a certainty.

Ben Tels

unread,
Jan 2, 2003, 3:57:22 AM1/2/03
to
Dan Tex1 wrote:

> A student who can't understand basic algebra, geometry and trig isn't
> likely
> going to be able to handle abstract anything or group or set theory.

Well, the subjects ARE closely related after all (that was to be the point
of Volume IV of the Principia Mathematica), so I don't think that is
necessarily true.

Ben Tels

unread,
Jan 2, 2003, 4:04:23 AM1/2/03
to
Thad Smith wrote:

> Computer scientists are theoreticians that work on fundamentals of
> applying the computer: fundamental algorithms, computer architecture,
> techniques for reliable development and reliable computing.
>
> Professional programmers work on applications, doing need analysis,
> project size estimation, system design, partitioning for parallel
> development, test plans, system implementation, verification,
> documentation, support, and maintenance. Many classes are geared to
> acquiring the skills needed for successful programming.

That's not a distinction I'm at all happy with. System design (both for
parallel and sequential systems), implementation and verification
techniques, self-documenting program development and program development as
proof of correctness and documentation, design that allows for expansion
and maintenance, these are all things that I consider to be parts of
computing science. I don't buy the strict separation of activities into
"computing science" and "programming" that you propose above.

> Just as engineers take a few courses in fundamental physics,
> programmers should also take a few courses in the fundamentals of
> computer science as background.

Wouldn't know -- an "engineer" is something completely different over here
than it is in the US.

gswork

unread,
Jan 2, 2003, 4:09:10 AM1/2/03
to
Markus Edholm <first...@isp.com> wrote in message news:<Xns92F6F2D1E331Fma...@195.67.237.53>...

> goingto...@webtv.net (Iam Graduating) wrote in
> news:26608-3E1...@storefull-2233.public.lawson.webtv.net
>
> > I'm thinking about majoring in computer programming. There seems
> > to be a lot of math in the curriculum. I'd like to know exactly
> > how much of this math is used in the actual programming?
> > How exactly is it utilized? Do programmers actually use a pad
> > with math formulas and tinker around with math equations as a part of
> > their job?
>
> It depends on what kind of programming you're going to do and what kind
> of math you're referring to.
> There's lots of linear algebra and vector analysis in 3d-graphics. If
> you end up doing software for physics simulations or figuring out if this
> building will fall down during en earthquake you had better know your
> ordinal differential equations and even more linear algebra.

That's very true, though many programmers will alse use third party
libraries like mathengine and thus not require the depth of knowledge
implied above, just a good understanding of how to implement it, and
that can be advised by an engineer or physicist.

A similar thing happens when encryption is built in to an app.

It's usually the library makers who need to know mathematics in depth
and the applications programmer who needs some useful know-how about
it. Having some mathematical knowledge is therefore useful to a
'typical' programmer, as indeed it is in general life.

Ben Tels

unread,
Jan 2, 2003, 4:12:27 AM1/2/03
to
David Chen wrote:

> I am a 16 year-old, so take what I say with a grain of salt, but I have
> been programming for about 4 years now.

Don't sell yourself short. History is full of examples of child-prodigies,
infant geniuses who changed the world before they reached your age. And it
is also full of people who took eighty years to work UP to being merely
stupid fools. Age doesn't mean all that much.

> Math itself does not guarantee success in programming.

Depends on what you're doing.

> BTW, Simonyi, the founder of Intentional even brags how he has hired the
> best from the Hungarian math and physics olympiad. The importance is the
> application of reasoning and problem-solving, not the actual tools taught
> in the class, such as derivatives, integration, etc.

Again, dpends of what you're doing and how.

Bill Godfrey

unread,
Jan 2, 2003, 6:45:50 AM1/2/03
to
goingto...@webtv.net (Iam Graduating) wrote:

> I'm thinking about majoring in computer programming. There seems to
> be a lot of math in the curriculum. I'd like to know exactly how much of
> this math is used in the actual programming?

Define math.

I took maths up to GCSE (English exam mostly taken by 16 year olds) and I
never did find out the difference between pure and applied.

In my world of embedded systems, bit twiddling and powers-of-two come up a
lot. (I can count up to 31 on one hand.)

Maths is used a lot in modern cryptography, but since I'm not a
cryptographer, I just have to trust that the algorithm works and that I
know how to convert a set of mathematical steps into C code. I neither know
nor care how the maths work, merely that it does.

On my degree, there was an attempt to bring in mathematical principles of
proof in algorithms. Deriving an algorithm from a set of preconditions and
requirements. For me, the algortithms were intuitive, and deriving them
just seemed a chore. When I was handed a task, first thing I would do would
be to just write the algortithm and then do the formal derivation. I'd
always end up with the same answer regardless.

The only time I ever met anyone who activiely used formal derivation was in
a university. Hmmmm....

Does "boolean" work count as math? You learn a lot about boolean logic from
just bit twiddling.

> How exactly is it utilized? Do programmers actually use a pad with
> math formulas and tinker around with math equations as a part of their
> job?

Depends on the job.

Bill, "You've proved the algorithm is correct. Why bother testing?"

Bob Day

unread,
Jan 2, 2003, 8:08:29 AM1/2/03
to

"Iam Graduating" <goingto...@webtv.net> wrote in message
news:26608-3E1...@storefull-2233.public.lawson.webtv.net...

Here's a pretty good example of a use of math in programming:
It's the first link on my web page: http://www.bob.day.name.
Click on "Algorithm for generating a random grand tour sequence".

-- Bob Day


Thad Smith

unread,
Jan 2, 2003, 11:16:13 AM1/2/03
to
Ben Tels wrote:
>
> Thad Smith wrote:
>
> > Computer scientists are theoreticians that work on fundamentals of
> > applying the computer: fundamental algorithms, computer architecture,
> > techniques for reliable development and reliable computing.
> >
> > Professional programmers work on applications, doing need analysis,
> > project size estimation, system design, partitioning for parallel
> > development, test plans, system implementation, verification,
> > documentation, support, and maintenance. Many classes are geared to
> > acquiring the skills needed for successful programming.
>
> That's not a distinction I'm at all happy with. System design (both for
> parallel and sequential systems), implementation and verification
> techniques, self-documenting program development and program development as
> proof of correctness and documentation, design that allows for expansion
> and maintenance, these are all things that I consider to be parts of
> computing science. I don't buy the strict separation of activities into
> "computing science" and "programming" that you propose above.

I agree that developing techniques for verification and proof of
correctness are probably scientific endeavors. System design and
implementation, though, I would not consider to be science.

The principle distinction, in my mind, between science and engineering
is that science is the study and determination of general principles for
a particular area (fundamental research), whereas engineering is
oriented towards solving real-world problems.

When you are designing or implementing a system for solving a problem
outside the area of research (of computer usage in this case), I believe
you are involved in an engineering disciple. In the case of computer
software, I use the term programming. I suppose you could break the
work into different disciplines such as system analysis, system
architecture, system implementation, testing, and documentation. As a
programmer in a small company, I do all of these things. None of these
are science, in my opinion, but I consider each a programming activity.

Sometimes I work on such things as fundamental algorithms, design and
programming techniques for increased reliability. That may be computer
science, but is distinct (although applicable) from the work to satisfy
a client's needs.

> > Just as engineers take a few courses in fundamental physics,
> > programmers should also take a few courses in the fundamentals of
> > computer science as background.
>
> Wouldn't know -- an "engineer" is something completely different over here
> than it is in the US.

Engineering has a fairly standard meaning here, except that we have
licensing required for some engineering activity here, primarily
structural, where failures can easily cost lives. Most (all?) states in
the U.S. have study and test requirements for "Professional Engineers",
which can apply to many engineering disciplines. Software engineering
is a term that is used often, but usually isn't back by such licensing.
In some cases, calling yourself an "engineer" without having a license
is considered deceptive practice, but most "electrical engineers" and
the vast majority of "software engineers" are not certified PEs.
Although engineering PRACTICE is fairly well defined, the term
"engineer" is less so.

Anyone with more science or engineering expertise is welcome to correct
me.

Thad

Programmer Dude

unread,
Jan 2, 2003, 11:15:51 AM1/2/03
to
Iam Graduating wrote:

> I'm thinking about majoring in computer programming. There seems to
> be a lot of math in the curriculum. I'd like to know exactly how much of
> this math is used in the actual programming?
> How exactly is it utilized? Do programmers actually use a pad with
> math formulas and tinker around with math equations as a part of their
> job?

I've been programming for over 20 years and I have a hard time remembering
my multiplication tables.

It depends *very* much on what type of programming you do, HOWEVER the
more you bring to the table, the more employ-able you'll be.

--
|_ CJSonnack <Ch...@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL |
|_____________________________________________|_______________________|

Opinions expressed here are my own and may not represent those of my employer.

Al Dunbar

unread,
Jan 2, 2003, 12:21:57 PM1/2/03
to

"Thad Smith" <thad...@acm.org> wrote in message
news:3E1465CD...@acm.org...

In Canada, PEs include Civil (includes Structural, Geo-Mechanical,
Environmental, etc), Electrical, Mechanical, Petroleum, and possibly a few
other species of Engineer. The primary differentiator seems to be whether
one got a degree in Engineering at a University appropriately acredited to
confer such a degree. At the University I went to, one stream in the
Electrical Engineering department was called "Computer Engineering". I would
assume that those people would have gotten their PEs too, but I do not know
exactly what they were called (could have been a PEng in Electrical). I do
not think their training would lead directly to work in software design or
programming, though.

/Al


Ben Pfaff

unread,
Jan 2, 2003, 12:27:23 PM1/2/03
to
"Al Dunbar" <Luigi...@hotmail.com> writes:

> In Canada, PEs include Civil (includes Structural, Geo-Mechanical,
> Environmental, etc), Electrical, Mechanical, Petroleum, and possibly a few
> other species of Engineer. The primary differentiator seems to be whether
> one got a degree in Engineering at a University appropriately acredited to

> confer such a degree. [...]

Really? In the U.S. in order to become a Professional Engineer
you need to go through a big load of rigmarole. You need to pass
a special exam before graduating from university, and then you
need to work for several years (4? 7?) under a Professional
Engineer, and then you need to pass another exam. It's like a
apprenticeship system for folks who already have degrees. When I
graduated in EE I said "screw it" because I don't plan to ever
work as an EE. Frankly, I think a Ph.D. in computer science from
Stanford will be accreditation enough.
--
<b...@cs.stanford.edu> <pfaf...@msu.edu> <pfaf...@debian.org> <b...@gnu.org>
Stanford Ph.D. Student - MSU Alumnus - Debian Maintainer - GNU Developer
www.benpfaff.org

Ray Cassick (Work)

unread,
Jan 2, 2003, 12:56:37 PM1/2/03
to

"those who know me have no need of my name" <not-a-rea...@usa.net>
wrote in message news:m14r8s5...@usa.net...
> in comp.programming i read:

>
>
> you ask this as if there were but a single realm in which programming were
> done.

I think he asks this way because most to the programming curriculums that I
have seen seem to try to point out that all a programmer ever does is math.
In fact I have had professors tell me that unless I can handle Calculus I
will forever suck as a programmer. As far as I can tell, this sounds like
the general consensus of most CS professors at the larger schools for some
reasons.


Ray Cassick (Work)

unread,
Jan 2, 2003, 1:00:41 PM1/2/03
to

"Derk Gwen" <derk...@HotPOP.com> wrote in message
news:v1755qs...@corp.supernews.com...
>
> Second and more important is learning to do math means learning to think
in
> logical way, and how to synthesise a complex theory from basic building
> blocks.

But this type of thinking can be taught very well by simply sitting down and
playing with Legos :)

Honestly, I have given some very deep classes on OOP theory by using simple
Lego blocks as a model.


Jordan Timothy Cox

unread,
Jan 2, 2003, 1:37:48 PM1/2/03
to

Sorry,

I just wanted to point out. I am horrible at math. I never understood the logic or necessity of achieving the representation of thirty three by dancing around in a circle four times, and claiming it to be thirty three.

With this said, I am a professional programmer. I am paying my way through schooling and hating every bit of it. I do not analyze chemical cohesive bonds, or perform rocket science. I maintain legal research softare, and make a damnd good living doing so.

Math is the ability to perform with logic. Not being a mathemetician, does not imply that you cannot perform logical functions. It only means that somewhere along the line, you gave up wrote memorization of procedures that were utterly irrelevant to you.

There. :) Have a nice day.

Ben Tels

unread,
Jan 2, 2003, 1:44:44 PM1/2/03
to
Thad Smith wrote:

> I agree that developing techniques for verification and proof of
> correctness are probably scientific endeavors. System design and
> implementation, though, I would not consider to be science.

More's the pity, although it is an understandable view. Software development
is in a state of relative infancy as a field of endeavor, more a craft than
a discipline (compare for instance architecture of the Middle Ages to
architecture now). The major failing of program development so far is that
we don't have any rigorous understanding or methodology to reliably guide
us through the design and development of large software systems, beyond a
number of disciplines that most programmers (here I suppose I will make a
distinction with software developers) don't know about. There is certainly
science in software design, but not all software design is science to be
sure -- that explains a lot of why much of the commercially produced
software is so crappy.



> The principle distinction, in my mind, between science and engineering
> is that science is the study and determination of general principles for
> a particular area (fundamental research), whereas engineering is
> oriented towards solving real-world problems.

To my mind, engineering comes from science and exists in applying the
principles of pure science to specific problems. Science gives rise to
engineering and the limitations of engineering give rise to more science.
Taken that way, most software development is neither.

That aside, as an M.Sc. of CS (and my Dutch title is engineer of computing
science) I find the use of the term "real-world" above quite insulting;
science is not some abstract object that exists in some fanciful world of
its own, devoid of all relevance to life. And any attempt to create a field
of engineering without the backing of science is no more useful than trying
to build a skyscraper with the materials commonly found in a kindergarten
sandbox.

> When you are designing or implementing a system for solving a problem
> outside the area of research (of computer usage in this case), I believe
> you are involved in an engineering disciple.

Whenever you are involved in creating code-soup, filled with hacks and
quick-fixes, patches over work of others that you just cannot understand
anymore, etc., etc. (in other words, a lot of common practice nowadays), I
believe you are most certainly NOT involved in an engineering discipline or
anything even remotely hinting at an engineering discipline. Sure, there
are people around who can write really good code -- but that is, more often
than not, an artifact of experience and talent rather than education and
training. See there the difference between science/engineering/discipline
and craft.

> Engineering has [...] term
> "engineer" is less so.

An engineer here is a person who has passed the final examination of a
course of an institution of higher education which leads to an engineering
degree (there is a different title for people who study nominally what you
refer to as "liberal arts"). There are two kinds of engineers, one
abbreviated ing. (equivalent to a bachelor od science) the other
abbreviated ir. (equivalent to a master). There is no certification of
"Professional Engineer" -- you are either an engineer or you are not and
"professional" is a superfluous addition to that. Of course it helps that
universities here are not private institutions and the government sets
standards for education.
In my case, I am an enigneer of computing science (literally ingenier der
technische informatica) with the right to use the titular abbreviation ir.
in front of my name.

Ben Tels

unread,
Jan 2, 2003, 2:08:19 PM1/2/03
to
Jordan Timothy Cox wrote:

> Math is the ability to perform with logic.

No it isn't.

Thad Smith

unread,
Jan 2, 2003, 4:25:01 PM1/2/03
to
Ben Tels wrote:
>
> Thad Smith wrote:

> > The principle distinction, in my mind, between science and engineering
> > is that science is the study and determination of general principles for
> > a particular area (fundamental research), whereas engineering is
> > oriented towards solving real-world problems.
>
> To my mind, engineering comes from science and exists in applying the
> principles of pure science to specific problems. Science gives rise to
> engineering and the limitations of engineering give rise to more science.

That sounds right.

> Taken that way, most software development is neither.

Why do you say that?

> That aside, as an M.Sc. of CS (and my Dutch title is engineer of computing
> science) I find the use of the term "real-world" above quite insulting;
> science is not some abstract object that exists in some fanciful world of
> its own, devoid of all relevance to life.

I wasn't implying that science has no relevance. Engineering (and
programming) are built and depend on the foundations of science.
Science provides the fundamentals that are used as tools in an
engineering application. The point I was making is that I consider
applying the fruits of science to producing goods or services to be
engineering, not more science. No insult was intended.

> And any attempt to create a field
> of engineering without the backing of science is no more useful than trying
> to build a skyscraper with the materials commonly found in a kindergarten
> sandbox.

Of course! Without science, the practitioner is very limited.

> > When you are designing or implementing a system for solving a problem
> > outside the area of research (of computer usage in this case), I believe
> > you are involved in an engineering disciple.
>
> Whenever you are involved in creating code-soup, filled with hacks and
> quick-fixes, patches over work of others that you just cannot understand
> anymore, etc., etc. (in other words, a lot of common practice nowadays), I
> believe you are most certainly NOT involved in an engineering discipline or
> anything even remotely hinting at an engineering discipline.

Agreed. I would call such activity poor programming or just hacking,
rather than programming.

> Sure, there
> are people around who can write really good code -- but that is, more often
> than not, an artifact of experience and talent rather than education and
> training.

Perhaps the education of programming is not well developed yet. Of
course you need basic skills to be a good programmer, but education in
fundamentals of computation (computer science) and practical development
techniques (engineering) and important assets to programmers, I think.
Just because I apply a particular science, computer science in this
case, doesn't mean I am doing science. If my principle job is to make
widgets with processors waddle, I consider myself programming, not doing
science.

> An engineer here is a person who has passed the final examination of a
> course of an institution of higher education which leads to an engineering
> degree (there is a different title for people who study nominally what you
> refer to as "liberal arts"). There are two kinds of engineers, one
> abbreviated ing. (equivalent to a bachelor od science) the other
> abbreviated ir. (equivalent to a master). There is no certification of
> "Professional Engineer" -- you are either an engineer or you are not and
> "professional" is a superfluous addition to that. Of course it helps that
> universities here are not private institutions and the government sets
> standards for education.
> In my case, I am an enigneer of computing science (literally ingenier der
> technische informatica) with the right to use the titular abbreviation ir.
> in front of my name.

Thanks for the explanation.

Thad

Al Dunbar

unread,
Jan 2, 2003, 4:36:09 PM1/2/03
to

"Ben Pfaff" <b...@cs.stanford.edu> wrote in message
news:8765t7i...@pfaff.Stanford.EDU...

> "Al Dunbar" <Luigi...@hotmail.com> writes:
>
> > In Canada, PEs include Civil (includes Structural, Geo-Mechanical,
> > Environmental, etc), Electrical, Mechanical, Petroleum, and possibly a
few
> > other species of Engineer. The primary differentiator seems to be
whether
> > one got a degree in Engineering at a University appropriately acredited
to
> > confer such a degree. [...]
>
> Really? In the U.S. in order to become a Professional Engineer
> you need to go through a big load of rigmarole.

I didn't say that there *wasn't* a whole lot of rigamarole, and there was.
Nobody gets a PEng without it, however, as far as I am aware the set of
people making it through that hoop is a subset of those making it through
the educational hoops I mentioned. The point was that the people that took
Civil Engineering Technology at an "Institute of Technology" may become
excellent technicians, but without that degree from an accredited program at
a University, they will never get their PEng.

> You need to pass
> a special exam before graduating from university, and then you
> need to work for several years (4? 7?) under a Professional
> Engineer, and then you need to pass another exam. It's like a
> apprenticeship system for folks who already have degrees.

Same here, but I am weak on the details - I thought it was 2 years
experience, but that it also depended on the nature of the experience.

> When I
> graduated in EE I said "screw it" because I don't plan to ever
> work as an EE. Frankly, I think a Ph.D. in computer science from
> Stanford will be accreditation enough.

And it certainly is an impressive accreditation you have there! I wasn't
saying that a PEng was any better, just adding my 2 cents to the person who
was unaware that there are PEng's who happen not to be Structural Engineers.

/Al


Ben Tels

unread,
Jan 2, 2003, 4:58:11 PM1/2/03
to
Thad Smith wrote:

>> Taken that way, most software development is neither.
>
> Why do you say that?

Because most software development isn't professional enough to qualify for
either name.



> Perhaps the education of programming is not well developed yet.

Which is another reason for me to say that software development is currently
a craft rather than a discipline. Real disciplines have reliable ways of
teaching the discipline and thereby reliably creating practitioners of the
discipline.

> Just because I apply a particular science, computer science in this
> case, doesn't mean I am doing science. If my principle job is to make
> widgets with processors waddle, I consider myself programming, not doing
> science.

That, in a nutshell, is the problem with software development today.

Derk Gwen

unread,
Jan 2, 2003, 8:46:30 PM1/2/03
to
"Ray Cassick \(Work\)" <ray.c...@intel.com> wrote:
#
# "Derk Gwen" <derk...@HotPOP.com> wrote in message
# news:v1755qs...@corp.supernews.com...
# >
# > Second and more important is learning to do math means learning to think
# in
# > logical way, and how to synthesise a complex theory from basic building
# > blocks.
#
# But this type of thinking can be taught very well by simply sitting down and
# playing with Legos :)
#
# Honestly, I have given some very deep classes on OOP theory by using simple
# Lego blocks as a model.

Legos is just applied three dimensional solid geometry, so there.
pbbbbbbbbbbt!

There are many ways to learn to deal with logic and kind of hierarchial
structures you see software and math. That doesn't mean learning ceases
to be a way.

I hope it feels so good to be right. There's nothing more
exhilirating pointing out the shortcomings of others, is there?

Ben Pfaff

unread,
Jan 2, 2003, 10:55:36 PM1/2/03
to
"Al Dunbar" <Luigi...@hotmail.com> writes:

> "Ben Pfaff" <b...@cs.stanford.edu> wrote in message

> > Frankly, I think a Ph.D. in computer science from
> > Stanford will be accreditation enough.
>
> And it certainly is an impressive accreditation you have there!

[Just to clarify, I have some years to go.]

Thad Smith

unread,
Jan 3, 2003, 12:37:11 AM1/3/03
to
Ben Tels wrote:

>Thad Smith wrote:
>
>>Just because I apply a particular science, computer science in this
>>case, doesn't mean I am doing science. If my principle job is to make
>>widgets with processors waddle, I consider myself programming, not doing
>>science.
>>
>>
>That, in a nutshell, is the problem with software development today.
>

Applying scientific principles is a normal part of engineering and, I
think, programming. Do you think that is a problem?

Thad

Dan Tex1

unread,
Jan 3, 2003, 12:40:44 AM1/3/03
to
In the US... you must have a PE ( Professional Engineers ) license to
advertise and sell your services as an engineer. You can not sign and take
responsibility for engineered documents without having such a license (
includes buildings, etc ). The laws vary from state to state but they are
pretty close to the same everywhere. Licensing for Civil/Structural Engineers
is generally more important for a successful career than it is in most of the
other engineering disciplines.

It varies slightly in each of the states what you must do to obtain a PE
license. However... it is almost the same everywhere. For the most part...
you must pass a preliminary exam, often called the EIT ( Engineer in Training
). Then you must pass your PE licensure exam. The EIT exam is very general
in nature. It usually covers math, electronics, thermodynamics, chemistry,
static structural analysis, physics, ( very ) basic programming, economics
and a few other subjects. The PE exam is more real world design oriented.

In general, to even be admitted into the EIT exam, you must possess an
undergraduate ( or better ) engineering degree. To take the PE exam, you must
have already passed the EIT exam and you must have 4 years of "true"
engineering experience after having obtained your degree. It is possible for
someone without the degree to take these exams. However, it requires a LOT
more years of experience and it is generally very difficult to pass these exams
just based on experience.

In the US, engineering might be loosely defined as "the application of
scientific principles to the solution of real world problems". I would guess
that the same definition generally applies in most of the English speaking
countries. Programming is not considered to be engineering in the US. That's
not to say that you can't have a Computer Engineer though. Computer
Engineering degrees have been on the rise here. Of course... such degrees are
usually just an Electrical Engineering degree with an emphasis on computers (
not the programming part though ).

Dan :-)

Dan Tex1

unread,
Jan 3, 2003, 12:55:13 AM1/3/03
to
From: gsw...@mailcity.com (gswork)

>Markus Edholm <first...@isp.com> wrote in message
>news:<Xns92F6F2D1E331Fma...@195.67.237.53>...
>> goingto...@webtv.net (Iam Graduating) wrote in
>> news:26608-3E1...@storefull-2233.public.lawson.webtv.net
>>
>> > I'm thinking about majoring in computer programming. There seems
>> > to be a lot of math in the curriculum. I'd like to know exactly
>> > how much of this math is used in the actual programming?
>> > How exactly is it utilized? Do programmers actually use a pad
>> > with math formulas and tinker around with math equations as a part of
>> > their job?
>>
>> It depends on what kind of programming you're going to do and what kind
>> of math you're referring to.
>> There's lots of linear algebra and vector analysis in 3d-graphics. If
>> you end up doing software for physics simulations or figuring out if this
>> building will fall down during en earthquake you had better know your
>> ordinal differential equations and even more linear algebra.
>
>That's very true, though many programmers will alse use third party
>libraries like mathengine and thus not require the depth of knowledge
>implied above, just a good understanding of how to implement it, and
>that can be advised by an engineer or physicist.

Your paragraph above is the only thing I don't entirely agree with. A
programmer using a library to create something such as a finite element
analysis program is IMHO asking for disaster. It is true that using an
engineer/physicist "might" make it practicle. However, unless the engineer
knows enough to write the code himself ( could be herself ) he's not very
likely to be a sufficient advisor. I don't think I've seen yet any good highly
technical engineering programs that weren't programmed by those with in-depth
engineering knowledge. Though... a good programmer who isn't necessarily an
engineer can still be a big help in such a project, either as a programmer on
the project or as an advisor to the engineers doing the programming.

Dan :-)

Dan Tex1

unread,
Jan 3, 2003, 12:59:59 AM1/3/03
to
From: "Ray Cassick \(Work\)" ray.c...@intel.com

Doesn't seem very reasonable to me. Not knowing Calculus might make it very
difficult to understand some concepts behind computers and deny you the ability
to program some application types. But... I can think of all sorts of
programs you can develop without even having a clue about what Calculus is.

Dan :-)

PS. I often use Calculus to derive relatively simple formulas which I can then
easy write into some of my programs.... but that is only because I write
engineering programs.


Dan Tex1

unread,
Jan 3, 2003, 1:12:53 AM1/3/03
to
From: "Bob Day" bobd...@verizon.net

Though I didn't take the time to read through it closely or critique it, I
liked you derivation of the formula used to figure out Mortgage Payments. It's
a classic case of a situation where you can use math to develop a simple
equation that is easy to write into a program. Alternatively, you can write a
program to use an iterative method to do the same thing. Of course, the
iterative program will be large, cumbersome and slow compared to the code using
the simple formula.

I read parts of your "Puck" and "Time" pages also. Nice to see that there are
others ( like Einstein ) who strive for a true and often simple ( visual
maybe? ) understanding of how things work.

Dan :-)

Nils Goesche

unread,
Jan 3, 2003, 1:18:40 AM1/3/03
to
dan...@aol.com (Dan Tex1) writes:

> From: "Ray Cassick \(Work\)" ray.c...@intel.com
>
> >"those who know me have no need of my name" <not-a-rea...@usa.net>
> >wrote in message news:m14r8s5...@usa.net...
> >> in comp.programming i read:
> >>
> >> you ask this as if there were but a single realm in which
> >> programming were done.
> >
> >I think he asks this way because most to the programming
> >curriculums that I have seen seem to try to point out that all
> >a programmer ever does is math.

And this is true, in a way. Mathematics is a very old and very
large field that gets even larger every day. Different parts of
mathematics can look and feel very, very different. Calculus is
taught so much because you can use it in many other fields of
mathematics, all other sciences, engineering, whatever. But that
doesn't mean that if something doesn't use calculus it isn't
mathematics. If you open Knuth's TAOCP you'll find some
calculus, too. Also combinatorics, algebra, whatever. The very
idea of an algorithm is something mathematical, too. Every
program is a piece of mathematics, in a way.

> >In fact I have had professors tell me that unless I can handle
> >Calculus I will forever suck as a programmer. As far as I can
> >tell, this sounds like the general consensus of most CS
> >professors at the larger schools for some reasons.
>
> Doesn't seem very reasonable to me. Not knowing Calculus might
> make it very difficult to understand some concepts behind
> computers and deny you the ability to program some application
> types. But... I can think of all sorts of programs you can
> develop without even having a clue about what Calculus is.

But that's not what Ray said. He said ``unless I can /handle/
Calculus´´, and I'd second that immediately: If someone is so bad
at mathematics that he cannot even understand the little bit of
calculus usually presented to CS students, then he really should
look for a different field of endeavor. (Like, say, drooling or
staring at the wall ;-). Most of programming doesn't involve
calculus; but the problems you /have/ to solve aren't much
simpler. And they are of mathematical nature, too.

> PS. I often use Calculus to derive relatively simple formulas
> which I can then easy write into some of my programs.... but
> that is only because I write engineering programs.

I have found that at least a little bit of calculus occurs fairly
regularly (sometimes even pretty advanced stuff). It is indeed
possible to avoid such problems, but why should one be so
limited?

Regards,
--
Nils Gösche
Ask not for whom the <CONTROL-G> tolls.

PGP key ID #xD26EF2A0

Bill Godfrey

unread,
Jan 3, 2003, 5:16:58 AM1/3/03
to
Nils Goesche <n...@cartan.de> wrote:

> But that's not what Ray said. He said ``unless I can /handle/

> Calculus创, and I'd second that immediately: If someone is so bad


> at mathematics that he cannot even understand the little bit of
> calculus usually presented to CS students,

If by "a little bit of calculus" you mean basic boolean logic, then yes, I
would agree. If you handle the idea of truth as a testable value then you
won't get far in programming.

My CS degree had a module called "Algorithms and Programming". It started
off with the boolean principles and I put the module down as something
simple, supplied only for those who have little foundation.

Then they came onto deriving a provably correct algorithm from
preconditions. Urgh.

I tried, really I did. After the first exam, the lecturer showed us a graph
of how the scores were distributed. Exam scores should get something
approximating the "normal distribution" curve. Instead, the graph had two
humps. There were a group of people who got it who formed a normal
distribution curve, and another group who didn't get it, who formed thier
own normal distribution curve.

That was it, I resigned myself that 105CS would be a fail for me. Next time
I saw that module again was on the exam, where I hoped I may be able to
scrape a pass through by knowledge of boolean and bluffing the rest. (Alas,
I failed.)

Much later on, I tried applying for "industrial placement". My interviewer
was glancing over my module list which the university had supplied and he
expressed disappointment that I failed "algorithms and programming".

"Oh, that module was for deriving algorithms from..."
"Ah, don't worry about that.", he interrupted, as a pen crossed out the
offending fail mark. "You passed the useful ones."

Even more recently, I was visiting a friend who is a quite accomplished
programmer, and I was surprised to see that he didn't know the correct
results for the "Implies" operator. Fundamental for the task of proving
an algorithm, but fairly useless elsewhere. He's not doing too badly.

> > PS. I often use Calculus to derive relatively simple formulas
> > which I can then easy write into some of my programs.... but
> > that is only because I write engineering programs.

Congratuations. I was yet to meet anyone who actively uses derivation for
practical purposes outside of a university. You're my first.

> I have found that at least a little bit of calculus occurs fairly
> regularly (sometimes even pretty advanced stuff). It is indeed
> possible to avoid such problems, but why should one be so
> limited?

It's a tool. If you know it, then great. If you don't know it, then the
time for learning it could (IMO) be better spent drooling and staring at
walls. :)

Bill, "Well, I tested it for all values up to 2**32."

Nils Goesche

unread,
Jan 3, 2003, 7:06:11 AM1/3/03
to
billg-...@bacchae.f9.co.uk.invalid (Bill Godfrey) writes:

> Nils Goesche <n...@cartan.de> wrote:
>
> > But that's not what Ray said. He said ``unless I can

> > /handle/ Calculus´´, and I'd second that immediately: If


> > someone is so bad at mathematics that he cannot even
> > understand the little bit of calculus usually presented to CS
> > students,
>
> If by "a little bit of calculus" you mean basic boolean logic,
> then yes, I would agree. If you handle the idea of truth as a
> testable value then you won't get far in programming.

Actually, I meant the usual classical calculus, the stuff with
derivatives and integrals (also called ``analysis´´).

> My CS degree had a module called "Algorithms and
> Programming". It started off with the boolean principles and I
> put the module down as something simple, supplied only for
> those who have little foundation.
>
> Then they came onto deriving a provably correct algorithm from
> preconditions. Urgh.
>
> I tried, really I did. After the first exam, the lecturer
> showed us a graph of how the scores were distributed. Exam
> scores should get something approximating the "normal
> distribution" curve. Instead, the graph had two humps. There
> were a group of people who got it who formed a normal
> distribution curve, and another group who didn't get it, who
> formed thier own normal distribution curve.

Heh. And usually the height of the hump belonging to the group
who didn't get it is much higher.

> That was it, I resigned myself that 105CS would be a fail for
> me. Next time I saw that module again was on the exam, where I
> hoped I may be able to scrape a pass through by knowledge of
> boolean and bluffing the rest. (Alas, I failed.)

That doesn't mean that you were simply not capable of ``getting
it´´. Things are a little different in Germany (at least at the
university I attended): Even if you major in CS, failing the math
exams is /not/ an option. No math, no degree, just like that
(but you can try a (limited) number of times). Many do fail (and
get no degree). Others, who really, really want their degree,
will hire someone who is better at explaining the stuff than
their instructors, typically other students. That's how I earned
my rent as a student: Other students hired me to give them
personal, private lessons in mathematics. Although I had some
really hard cases, every single one of them finally made it.
Often their main problem is simply that they feel too intimidated
by mathematics, probably because of bad experiences early on at
grade school or whatever. Or they simply didn't know how to
learn mathematics properly: They thought they had to memoize lots
of stuff, which is ludicrous. I taught them how to simply derive
whatever they can't remember (based on whatever they /do/
remember). /All/ of them were completely stunned when they found
out how /easy/ mathematics actually was when they began looking
at it correctly (well, frankly only the part that was presented
to them was so easy ;-). I also taught high school students.
Only one or two of those were actually not capable of ever
getting it (or I wasn't good enough). No problems with the rest,
either.

So, when a programmer tells me he didn't get it, I suspect that
simply noone ever explained it to him properly. I refuse to
believe that anyone can be a competent programmer without the
ability to think mathematically. Many programmers I met aren't
aware of the fact that they are /doing/ mathematics all the time
when they are programming. They are reluctant to believe that
because they always associate ``mathematics´´ with ``something I
can't do´´, so whatever they are doing cannot be mathematics, QED
:-)

> Even more recently, I was visiting a friend who is a quite
> accomplished programmer, and I was surprised to see that he
> didn't know the correct results for the "Implies"
> operator. Fundamental for the task of proving an algorithm, but
> fairly useless elsewhere. He's not doing too badly.

What counts is only if he is capable of understanding it when you
explain it to him (properly). After we've explained the logical
``implies´´ operator to a programmer, this programmer should be
able to find the corresponding operation in this table:

http://www.lispworks.com/reference/HyperSpec/Body/f_boole.htm

If he is able to grasp the concept, fine. Just memoizing names
for truth tables is not what I'd call mathematical activity.

> > > PS. I often use Calculus to derive relatively simple
> > > formulas which I can then easy write into some of my
> > > programs.... but that is only because I write engineering
> > > programs.
>
> Congratuations. I was yet to meet anyone who actively uses
> derivation for practical purposes outside of a
> university. You're my first.

Second here. This actually surprises me. Next time you meet a
mechanical or electrical engineer, ask him, too. (Well, at least
if he does something creative, something new) Or a DSP
programmer. Or whatnot. What if you want to write a silly
little computer game that involves, say, gravity? All of a
sudden, you have to solve a differential equation (numerically).
The guy in the other thread who wants to smoothly interpolate a
series of points representing the recorded movement of a mouse
pointer had better understand what a derivative is, too, or his
program will never display anything remotely smooth. Or if you
want to convert a WAV file to another WAV file with a different
sampling rate. Calculus is everywhere :-)

> > I have found that at least a little bit of calculus occurs
> > fairly regularly (sometimes even pretty advanced stuff). It
> > is indeed possible to avoid such problems, but why should one
> > be so limited?
>
> It's a tool. If you know it, then great. If you don't know it,
> then the time for learning it could (IMO) be better spent
> drooling and staring at walls. :)

Suum cuique :-)

Ben Tels

unread,
Jan 3, 2003, 8:26:23 AM1/3/03
to
Thad Smith wrote:

>>That, in a nutshell, is the problem with software development today.
>>
> Applying scientific principles is a normal part of engineering and, I
> think, programming. Do you think that is a problem?

No, I think it is a problem that most programming today is NOT a matter of
applying ANY principles, scientific or other.

Ben Tels

unread,
Jan 3, 2003, 8:51:36 AM1/3/03
to
Bill Godfrey wrote:

> Then they came onto deriving a provably correct algorithm from
> preconditions. Urgh.

In the US? How surprising!



> I tried, really I did.

Where did they start?

> That was it, I resigned myself that 105CS would be a fail for me. Next
> time I saw that module again was on the exam, where I hoped I may be able
> to scrape a pass through by knowledge of boolean and bluffing the rest.
> (Alas, I failed.)

Pity.

> Much later on, I tried applying for "industrial placement". My interviewer
> was glancing over my module list which the university had supplied and he
> expressed disappointment that I failed "algorithms and programming".
>
> "Oh, that module was for deriving algorithms from..."
> "Ah, don't worry about that.", he interrupted, as a pen crossed out the
> offending fail mark. "You passed the useful ones."

See there the pitiful state of affairs in commercial software
development....

> Even more recently, I was visiting a friend who is a quite accomplished
> programmer, and I was surprised to see that he didn't know the correct
> results for the "Implies" operator. Fundamental for the task of proving
> an algorithm, but fairly useless elsewhere.

No, it isn't. Implications rule the correctness of programs, whether you
know how they work or not.

> Congratuations. I was yet to meet anyone who actively uses derivation for
> practical purposes outside of a university. You're my first.

Like I said, see there the pitiful state of affairs....

I took a class on multiprogramming once. The usefulness of seeing the
calculational aspects of program design was driven home to me there, when
my professor remarked how tight and succinct such code was and how sloppy
and often incorrect the code was that you got by guessing at it. A student
disagreed and my professor challenged him to guess his way to the next
statement in the program (to establish a certain condition). With a lot of
cranking in his brain (visible on his face), he arrived at an alternative
construct ("if not p.x then q.y becomes true, else...", something like
that). "Yes," my professor replied, "that is correct -- but I still prefer
a calculation in these cases". Which he then performed, concluding in ten
seconds flat that

q.y := not(p.x)
;
p.y := false

was equally as correct as the far more verbose alternative construct that
the student had labored five minutes over.

> It's a tool. If you know it, then great. If you don't know it, then the
> time for learning it could (IMO) be better spent drooling and staring at
> walls. :)

*Sigh* There is a LOT of work yet to be done....

Ben Tels

unread,
Jan 3, 2003, 9:03:13 AM1/3/03
to
Nils Goesche wrote:

> What counts is only if he is capable of understanding it when you
> explain it to him (properly). After we've explained the logical

> ``implies创 operator to a programmer, this programmer should be


> able to find the corresponding operation in this table:
>
> http://www.lispworks.com/reference/HyperSpec/Body/f_boole.htm

In the inimitable words of Monty Python: EEEEEEEEEWWWWWWW ICK!
What a mess! And for something as simple as

true => true == true
true => false == false
false => true == true
false => false == true

After all, it's not as if most people are ever asked to grasp the finer
points of (X=>Y == X \/ Y == Y).

Not to mention that I can't find the implication anywhere in there.

osmium

unread,
Jan 3, 2003, 11:36:16 AM1/3/03
to
Some peoples wrote:

> > If by "a little bit of calculus" you mean basic boolean logic,
> > then yes, I would agree. If you handle the idea of truth as a
> > testable value then you won't get far in programming.
>
> Actually, I meant the usual classical calculus, the stuff with

> derivatives and integrals (also called ``analysis创).

"The theory of probabilities is at bottom nothing but common sense
reduced to calculus"

Pierre-Simon Laplace

Seems to fit about here. :-)

Bill Godfrey

unread,
Jan 3, 2003, 9:37:35 AM1/3/03
to
Ben Tels <b...@bentels.dyndns.org> wrote:

> In the US? How surprising!

Almost. This was in England.

> > I tried, really I did.
> Where did they start?

The basics of booleans came first.
Then a bit on functions which return a boolean value. They had a name for
them, but I forget what it was.

Then came the moment that would ruin my career. "We can see how from these
preconditions and postconditions, an algorithm naturally emerges." And out
of nowhere, came an algorithm.

Maybe it was poor teaching. Maybe I'm thick.

Anyway, the algorithm which "emerged" was almost identical to the one I had
jotted down in pseudo-C as he began the lecture.

<big snip>

> I took a class on multiprogramming once. The usefulness of seeing the
> calculational aspects of program design was driven home to me there, when
> my professor remarked how tight and succinct such code was and how sloppy
> and often incorrect the code was that you got by guessing at it.

I am not arguing in favour of guesswork. Please do not suggest I am.

"Hmmm, that while loop didn't work. I'll try recursion instead."

> A
> student disagreed and my professor challenged him to guess his way to the
> next statement in the program (to establish a certain condition). With a
> lot of cranking in his brain (visible on his face), he arrived at an
> alternative construct ("if not p.x then q.y becomes true, else...",
> something like that). "Yes," my professor replied, "that is correct --
> but I still prefer a calculation in these cases". Which he then

> performed, concluding in ten seconds flat that <snip>

Right, the professor had selected and prepared a problem he knew the answer
to and the student put on the spot with no time to prepare with a roomful
of other students looking at him, all waiting for the answer, got it wrong.

Ooooooookies.

Bill, Warning: expression always evaluates to zero.

Ray Cassick (Work)

unread,
Jan 3, 2003, 9:53:53 AM1/3/03
to

"Nils Goesche" <n...@cartan.de> wrote in message
news:87smwa7...@darkstar.cartan...

> dan...@aol.com (Dan Tex1) writes:
>
> > From: "Ray Cassick \(Work\)" ray.c...@intel.com
> >

<snip>

> But that's not what Ray said. He said ``unless I can /handle/

> Calculus创, and I'd second that immediately: If someone is so bad


> at mathematics that he cannot even understand the little bit of
> calculus usually presented to CS students, then he really should
> look for a different field of endeavor. (Like, say, drooling or
> staring at the wall ;-). Most of programming doesn't involve
> calculus; but the problems you /have/ to solve aren't much
> simpler. And they are of mathematical nature, too.
>

If it was a 'little bit' I MIGHT have been able to squeak through, but the
curriculum I was in required up to Calc 3, definitely not for the faint of
heart.

Personally I think telling someone that is bad at math that they can't be a
GOOD developer/programmer (I always try to differentiate between the two,
there IS a difference) is like telling a person that has bad handwriting
that they will never be a good writer.

If I need to perform some nasty calculation chances are there is an
established library out there to do it. Function calls are never a problem
for me.

Nils Goesche

unread,
Jan 3, 2003, 9:57:54 AM1/3/03
to
Ben Tels <b...@bentels.dyndns.org> writes:

> Nils Goesche wrote:
>
> > What counts is only if he is capable of understanding it when you
> > explain it to him (properly). After we've explained the logical

> > ``implies´´ operator to a programmer, this programmer should be


> > able to find the corresponding operation in this table:
> >
> > http://www.lispworks.com/reference/HyperSpec/Body/f_boole.htm
>
> In the inimitable words of Monty Python: EEEEEEEEEWWWWWWW ICK!
> What a mess! And for something as simple as
>
> true => true == true
> true => false == false
> false => true == true
> false => false == true

Now take 1 for true and 0 for false...

> Not to mention that I can't find the implication anywhere in
> there.

A binary boolean operation is defined by four bits. Here is AND:

| 0 | 1
-----------
0 | 0 | 0
-----------
1 | 0 | 1

Here is OR:

| 0 | 1
-----------
0 | 0 | 1
-----------
1 | 1 | 1

So it should be clear that there are 2^4 = 16 possible binary
boolean operations. They naturally correspond to bit-wise
operations on integers (regarded as bit strings). After a bit of
thought, it should be clear that such a bit-wise binary integer
operator is uniquely determined by its result on the binary
numbers #b0011 and #b0101 (Lisp way of writing binary integers).
The table gives those results for all 16 possible operators. So,
exactly one of them must correspond to the ``implication´´.

Bill Godfrey

unread,
Jan 3, 2003, 10:01:04 AM1/3/03
to
Nils Goesche <n...@cartan.de> wrote:

> Actually, I meant the usual classical calculus, the stuff with

> derivatives and integrals (also called ``analysis创).

*runs away screaming*
Help! big words! big words!

> That doesn't mean that you were simply not capable of ``getting

> it创. Things are a little different in Germany (at least at the


> university I attended): Even if you major in CS, failing the math
> exams is /not/ an option. No math, no degree, just like that
> (but you can try a (limited) number of times).

Eeeek. Did anyone get the option to leave and start the degree elsewhere?
<big snip>

> So, when a programmer tells me he didn't get it, I suspect that
> simply noone ever explained it to him properly. I refuse to

It's possible my mind works in that way anyway, it's just I don't know it.

During the lectures, I got into a habit of jotting down my own algorithms
before starting to do it the "proper" way. I'd be alright at the exam if it
wasn't for this rule that you have to show the working.

> ability to think mathematically. Many programmers I met aren't
> aware of the fact that they are /doing/ mathematics all the time
> when they are programming. They are reluctant to believe that

Maybe. Or maybe I'm thick.

Bill, probably the latter.

Nils Goesche

unread,
Jan 3, 2003, 10:12:30 AM1/3/03
to
"Ray Cassick \(Work\)" <ray.c...@intel.com> writes:

> "Nils Goesche" <n...@cartan.de> wrote in message
> news:87smwa7...@darkstar.cartan...

> > But that's not what Ray said. He said ``unless I can
> > /handle/ Calculus´´, and I'd second that immediately: If


> > someone is so bad at mathematics that he cannot even
> > understand the little bit of calculus usually presented to CS
> > students, then he really should look for a different field of
> > endeavor.

> If it was a 'little bit' I MIGHT have been able to squeak


> through, but the curriculum I was in required up to Calc 3,
> definitely not for the faint of heart.

I barely dare saying it, but that's exactly what I meant by ``a
little bit´´ :-) If you want to see what tough-guy analysis looks
like, have just a glance into one of the 9 (?) volumes of
Dieudonné's ``Éléments d'analyse´´ next time you visit your local
library.

> Personally I think telling someone that is bad at math that
> they can't be a GOOD developer/programmer (I always try to
> differentiate between the two, there IS a difference) is like
> telling a person that has bad handwriting that they will never
> be a good writer.

As I said: Most of the people who believe they are ``bad at
math´´ actually aren't.

> If I need to perform some nasty calculation chances are there
> is an established library out there to do it. Function calls
> are never a problem for me.

But you better know what those functions do...

Darrell Grainger

unread,
Jan 3, 2003, 1:44:08 PM1/3/03
to
On Wed, 1 Jan 2003, Iam Graduating wrote:

>
> I'm thinking about majoring in computer programming. There seems to
> be a lot of math in the curriculum. I'd like to know exactly how much of
> this math is used in the actual programming?

'Computer programming'? hen I see 'programming' I think about learning
applied knowledge in a specific language. Learning math and theory I
associate with Computer Science or Software Engineering. I'd hope they are
teaching Science or Engineering and you are just calling it programming.

You are assuming that you are learning mathematics so it can be applied to
actual programming. In some cases this is correct. Taking a course in
mathematics can also teach you more than some basic facts about
mathematics.

Programming is also a mindset. You have to think in a certain way to solve
the problems you will face. I believe that learning mathematics prepares
you for this.

Stop and think about this... if you are faced with creating an algorithm
that has never been written before, how would you do it? Take an artifical
example, you are given the formula ax**2 + bx + c. Write a function
that will tell me for what values of x, give a, b, and c, this equals
zero.

Any good programmer will know the answer. But what if you were the first
programmer to try and answer this. You have a degree in Computer Science
and understand basic algebra. You would just use your skills to isolate
for x and find the quadratic formula.

Now if you are a programmer who is just doing known things in a different
order you won't need this skill. But wouldn't you want to know you could
create something totally new if you really had to?

> How exactly is it utilized? Do programmers actually use a pad with
> math formulas and tinker around with math equations as a part of their
> job?

Depends on your job. If I'm doing mission critical or programming
something a human life will depend on, I'm going to have to prove
theoretically that it works. I cannot code the product, install it and
hope it works. If it fails it could cost billions of dollars or a human
life. No one is going to buy my product without proof that it works.

If you don't prove it empirically then you are probably going to need the
same skills you did a mathematical proof to do a proof of your algorithm.

On the same note. There are many companies that like to empirically debug
the product. It is more economically viable to do it that way. They will
not care if you took mostly practical courses for your electives or that
you got 60% on your theoretical courses.

Mind you, if I have two candidates for the same job and one has better
math skills, I'm going to hire the one with better math skills. Even if
the job does not need it, never hurts to have it. The job might evolve
into something were the math skills become more important.

Finally, if I have a performance issue I need to resolve I can use:

* different languages
* knowledge of the computer architecture
* trial and error (and a benchmarking tool)
* mathematical analysis and design

If I don't know many languages, my knowledge of the computer architecture
is limited (or the code must be portable across multiple platforms) and I
did not learn more then the minimal amount of math, I might be stuck with
using trial and error (plus a lot of time consuming testing) to improve my
product.

Bottom line, the more skills you have the more valuable you are.

---
main(){int j=1234;char t[]=":@abcdefghijklmnopqrstuvwxyz.\n",*i=
"iqgbgxmdbjlgdv.lksrqek.n";char *strchr(const char *,int); while
(*i){j+=strchr(t,*i++)-t;j%=sizeof t-1;putchar(t[j]);}return 0;}

rjh

unread,
Jan 3, 2003, 3:37:25 PM1/3/03
to
Nils Goesche wrote:

<snip>


>
> So it should be clear that there are 2^4 = 16 possible binary
> boolean operations.

Presumably, by the same logic(!), there are 3^9 = 19683 different binary
troolean operations. I wonder whether anyone has ever classified them all.
I did a quick search on "trool" but to no avail. (It may be that I have
invented the term.)

Some of these operations could prove to be rather recondite. But we can
start off fairly easily with a troolean AND:

A B A AND B
false false false
false maybe false
false true false
maybe false false
maybe maybe maybe
maybe true maybe
true false false
true maybe maybe
true true true

Here's OR:

A B A OR B
false false false
false maybe maybe
false true true
maybe false maybe
maybe maybe maybe
maybe true true
true false true
true maybe true
true true true


Classifying all the operations would be terribly tedious for a human being,
given that each truth table has nine data rows! But if anyone's bored
enough, they might care to write a computer program to do this.

--
Richard Heathfield : bin...@eton.powernet.co.uk
"Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
K&R answers, C books, etc: http://users.powernet.co.uk/eton

rjh

unread,
Jan 3, 2003, 3:37:50 PM1/3/03
to
Nils Goesche wrote:

<snip>


>
> So it should be clear that there are 2^4 = 16 possible binary
> boolean operations.

Presumably, by the same logic(!), there are 3^9 = 19683 different binary

Edward G. Nilges

unread,
Jan 3, 2003, 4:00:07 PM1/3/03
to
billg-...@bacchae.f9.co.uk.invalid (Bill Godfrey) wrote in message news:<20030103051658.982$g...@newsreader.com>...

> Nils Goesche <n...@cartan.de> wrote:
>
> > But that's not what Ray said. He said ``unless I can /handle/
> > Calculus创, and I'd second that immediately: If someone is so bad
> > at mathematics that he cannot even understand the little bit of
> > calculus usually presented to CS students,
>
> If by "a little bit of calculus" you mean basic boolean logic, then yes, I
> would agree. If you handle the idea of truth as a testable value then you
> won't get far in programming.

"Calculus" has nothing to do with Boolean logic except insofar as
Boolean logic is sometimes referred to as a "calculus." In common
usage, "calculus" refers to Newton's and Leibniz methods for dealing
with functions.


>
> My CS degree had a module called "Algorithms and Programming". It started
> off with the boolean principles and I put the module down as something
> simple, supplied only for those who have little foundation.
>
> Then they came onto deriving a provably correct algorithm from
> preconditions. Urgh.

Bnarg.

>
> I tried, really I did. After the first exam, the lecturer showed us a graph
> of how the scores were distributed. Exam scores should get something
> approximating the "normal distribution" curve. Instead, the graph had two
> humps. There were a group of people who got it who formed a normal
> distribution curve, and another group who didn't get it, who formed thier
> own normal distribution curve.
>
> That was it, I resigned myself that 105CS would be a fail for me. Next time
> I saw that module again was on the exam, where I hoped I may be able to
> scrape a pass through by knowledge of boolean and bluffing the rest. (Alas,
> I failed.)
>

Sorry to hear this. I suggest you try again by self-study.



> Much later on, I tried applying for "industrial placement". My interviewer
> was glancing over my module list which the university had supplied and he
> expressed disappointment that I failed "algorithms and programming".
>
> "Oh, that module was for deriving algorithms from..."
> "Ah, don't worry about that.", he interrupted, as a pen crossed out the
> offending fail mark. "You passed the useful ones."
>

...with the result that computer users live in a world of violent and
sado-masochistic folk-lore.



> Even more recently, I was visiting a friend who is a quite accomplished
> programmer, and I was surprised to see that he didn't know the correct
> results for the "Implies" operator. Fundamental for the task of proving
> an algorithm, but fairly useless elsewhere. He's not doing too badly.
>

If you refer to the Imp operator of Visual Basic, it's been dropped
from the new VB.Net. In fact it is useless in industry.

However, understanding what material implication means happens to be
important.



> > > PS. I often use Calculus to derive relatively simple formulas
> > > which I can then easy write into some of my programs.... but
> > > that is only because I write engineering programs.
>
> Congratuations. I was yet to meet anyone who actively uses derivation for
> practical purposes outside of a university. You're my first.
>

The OP is referring, I think, to an important technique, in numerical
analysis.

I use algebraic manipulation to write a reusable histogram routine, in
a variety of languages, that solves a basic model:

x/y = a/b

where x is where we are in a process that is known to take y steps,
and a is where a visual display, that has b space, should be
positioned...to show the user, accurately where we are.

And I note that many commercial software products fail to either
accurately report this position (typically, they speedily go to 90%
complete and then hang) or display stupid ads. The contempt for real
end-users is unboundedly large.



> > I have found that at least a little bit of calculus occurs fairly
> > regularly (sometimes even pretty advanced stuff). It is indeed
> > possible to avoid such problems, but why should one be so
> > limited?
>
> It's a tool. If you know it, then great. If you don't know it, then the
> time for learning it could (IMO) be better spent drooling and staring at
> walls. :)
>

This is the damnable attitude apparently prevalent at the FBI, in
which agent Colleen Rowley reported that agents were UNABLE to make
simple Boolean queries such as "has terrorist connections And is
attending a damn flight school."

The FBI could neither make nor buy an engine to make Boolean queries.

Yet one can be designed in seconds using BNF, and code can be written
using a simple top-down recursive descent, to transform such queries
into a program for a simple Polish machine. All this is CS101 crap.

People died as a result of this failure of intelligence and courage.

Authoritarian G-men's heads hurt when they are asked to think, and the
obvious solution is to replace them with WOMEN who do their damn job,
as Colleen tried to do her damn job, and as WOMEN programmers
commencing with Grace Hopper were unafraid to think on the damn job.

I submit that programmers regard their university training and the
meaning of material implication as useless for the SAME reason
Colleen's superiors refused to bring the 20th highjacker in for
questioning.

Getting and retaining a job and a paycheck becomes more important than
doing your job.

R124c4u2

unread,
Jan 3, 2003, 4:05:26 PM1/3/03
to
Darrell writes:

>Stop and think about this... if you are faced with creating an algorithm
>that has never been written before, how would you do it? Take an artifical
>example, you are given the formula ax**2 + bx + c. Write a function
>that will tell me for what values of x, give a, b, and c, this equals
>zero.
>
>Any good programmer will know the answer.

Now I think the "pro-math" people have gone too far! The reason a programmer
can solve that is because he has seen it a bezillion times and the solution is
burned into his memory. Not because he is so adept at math.

Out of the hundreds of programmers I have worked with, only a handful could
solve that in a reasonable time. Even if it was asssigned take home, a lot of
them would come in empty unless they cheated and looked into some musty old
text books. I have no reason to believe that more than half of these people
are below average as programmers. The interns would have a better chance of
doing that than the real programamers. The interns saw the derivation just a
few years ago.

It is the same as the sum of the first n numbers. Since Gauss did it, we can
all do it. Mathematics? No. It's memory, pure and simple.

Math is nice, if you're good at it, flaunt it. If you're not, persevere.

-- osmium

Jim

unread,
Jan 3, 2003, 3:56:13 PM1/3/03
to
Al Dunbar wrote:

>
> "Ben Pfaff" <b...@cs.stanford.edu> wrote in message

> news:8765t7i...@pfaff.Stanford.EDU...
>> "Al Dunbar" <Luigi...@hotmail.com> writes:
>>
>> > In Canada, PEs include Civil (includes Structural, Geo-Mechanical,
>> > Environmental, etc), Electrical, Mechanical, Petroleum, and possibly a
> few
>> > other species of Engineer. The primary differentiator seems to be
> whether
>> > one got a degree in Engineering at a University appropriately acredited
> to
>> > confer such a degree. [...]
>>
>> Really? In the U.S. in order to become a Professional Engineer
>> you need to go through a big load of rigmarole.
>
> I didn't say that there *wasn't* a whole lot of rigamarole, and there was.
> Nobody gets a PEng without it, however, as far as I am aware the set of
> people making it through that hoop is a subset of those making it through
> the educational hoops I mentioned. The point was that the people that took
> Civil Engineering Technology at an "Institute of Technology" may become
> excellent technicians, but without that degree from an accredited program at
> a University, they will never get their PEng.

In my neck of the woods( Colorado ) you can become a PE without a degree.
It just takes longer to do it. They require six years experience with a PE
before you can sit for an exam that will enroll you as an EI (Engineer Intern )
after that, I think they require eight more years experience before you can sit
for the PE exam. A person who has an engineering degree can sit for the EI
right after graduating then after eight years experience sit for the PE exam.
They also require that you be enrolled as an EI during this time. I looked into
this when my schooling was cut short many years ago. I was going to be taken
under the wings of a PE who thought highly of me at the time. I had to decline
his offer because health problems I have wouldn't have enabled me to go the
whole distance.

<snipped>

Jim

--
Registered Linux User #269187
http://counter.li.org


rjh

unread,
Jan 3, 2003, 4:59:25 PM1/3/03
to
R124c4u2 wrote:

> Darrell writes:
>
>>Stop and think about this... if you are faced with creating an algorithm
>>that has never been written before, how would you do it? Take an artifical
>>example, you are given the formula ax**2 + bx + c. Write a function
>>that will tell me for what values of x, give a, b, and c, this equals
>>zero.
>>
>>Any good programmer will know the answer.
>
> Now I think the "pro-math" people have gone too far! The reason a
> programmer can solve that is because he has seen it a bezillion times and
> the solution is
> burned into his memory. Not because he is so adept at math.
>
> Out of the hundreds of programmers I have worked with, only a handful
> could
> solve that in a reasonable time.

Well, I'm no mathematician, but let me try (with no textbook-consulting, I
promise):

axx + bx + c = 0

Awkward because we have two xs in one term, but only one x in another. Now,
we know that (x+y)^2 is x^2 + xy + y^2, so if we can get our equation to a
point where it can be factorised, we're laughing...

=> aaxx + abx + ac = 0
=> 4aaxx + 4abx + 4ac = 0
=> 4aaxx + 4abx = -4ac

Nearly there, but we need a y^2, so to speak. Since we have b in our middle
term, we can introduce b^2 as our right hand term...

=> 4aaxx + 4abx + bb = bb - 4ac

...and there we are. We can now factorise...

=> (2ax + b)(2ax + b) = bb - 4ac

...and the rest is just book-keeping.

=> 2ax + b = sqrt(bb - 4ac)
=> 2ax = -b +/- sqrt(bb - 4ac)
=> x = (-b +/- sqrt(bb - 4ac)) / 2a

How did I do?

<snip>

> Math is nice, if you're good at it, flaunt it. If you're not, persevere.

I'm hopeless at maths, so I guess I'll have to persevere.

Arthur J. O'Dwyer

unread,
Jan 3, 2003, 5:21:16 PM1/3/03
to

On 3 Jan 2003, R124c4u2 wrote:
>
> Darrell writes:
>
> >Stop and think about this... if you are faced with creating an algorithm
> >that has never been written before, how would you do it? Take an artifical
> >example, you are given the formula ax**2 + bx + c. Write a function
> >that will tell me for what values of x, give a, b, and c, this equals
> >zero.
> >
> >Any good programmer will know the answer.
>
> Now I think the "pro-math" people have gone too far! The reason a
> programmer can solve that is because he has seen it a bezillion times
> and the solution is burned into his memory. Not because he is so adept
> at math.
<snipped>

> It is the same as the sum of the first n numbers. Since Gauss did it,
> we can all do it. Mathematics? No. It's memory, pure and simple.

The teacher asks Alice, Bob, and Carol to sum the numbers from one to
ten thousand.
Alice (recalling Von Neumann's solution to a similar problem) sums
the series, taking a week and giving an answer of 50005000.
Bob (recalling his geometry teacher's solution) calculates
10000/2*(10000+1), taking thirty seconds and giving an answer of
50005000.
Carol (recalling Gauss's solution) sees that sum(1..10) is 55 and
sum(1..100) is 5050. She writes down 50005000 in five seconds.

Which of the three has the most mathematical ability?
Alice has above-average abilities in calculation.
Bob has a memory for formulas.
Carol has intuition.
Most people I think would say that Carol is the most promising
of the three in terms of mathematical ability.

But all mathematics does involve a bit of memorization; who here
has memorized his times-tables up to 12x12? Up to 15x15? Up to
25x25? I would not be surprised, in a rigorous study, to find a
correlation between the memorization of times-tables and the number
of years of mathematical study.

In short: Memorization is just as much math (and vice versa) as is
intuition or calculation. One cannot know anything, mathematical
or not, without its being committed to memory; and once a fact is
committed to memory, it is memorized. Like it or not.

HAND.
-Arthur

(A philosophical postscript: What about finding the zeroes of
ax**3+bx**2+cx+d, given a, b, c, and d? Precious few programmers
will be able to solve this one in seconds, I assure you. Is that
merely because it is a less familiar problem, or instead because
it is a _harder_ mathematical problem? I think it is really
_harder_ in a mathematical sense -- I imagine Richard's derivation
of the answer will take a few more lines!)


Ben Tels

unread,
Jan 3, 2003, 8:27:36 PM1/3/03
to
Bill Godfrey wrote:

> Almost. This was in England.

Ah. Less surprising -- Nottingham, for instance, has a VERY good reputation.



> The basics of booleans came first.
> Then a bit on functions which return a boolean value. They had a name for
> them, but I forget what it was.

Truth functions? Valuations?



> Then came the moment that would ruin my career. "We can see how from these
> preconditions and postconditions, an algorithm naturally emerges." And out
> of nowhere, came an algorithm.
>
> Maybe it was poor teaching. Maybe I'm thick.

Well, if the algorithm really came out of NOWHERE, that's bad teaching. It
is absolutely true that you can derive algorithms given a postcondition and
a precondition (or show that no such algorithm can exist), but you can't
expect anybody to learn how if you just pull it out of a hat.



> Anyway, the algorithm which "emerged" was almost identical to the one I
> had jotted down in pseudo-C as he began the lecture.

That can happen, depending on the problem. Not often, but it can happen.



> I am not arguing in favour of guesswork. Please do not suggest I am.

"Guesswork" in this case includes everything that is not a calculation, but
my apologies if there was a misunderstanding.

>> A
>> student disagreed [...] flat that <snip>


>
> Right, the professor had selected and prepared a problem he knew the
> answer to and the student put on the spot with no time to prepare with a
> roomful of other students looking at him, all waiting for the answer, got
> it wrong.

No, not quite -- the rpoblem the professor gave him was the next statement
in the program that the professor had been developing on the blackboard as
an illustration of the techniques he was discussing when he got stopped by
a question which led to a remark on his part which prompted this other
student to disagree with him.

And the absolutely STUPID thing was, EVERYBODY in the entire room (including
that student) could have done the calculation. Everybody. The calculation
technique was first-year material, the course a fourth-year event.

> Ooooooookies.

No, not really. Or, in fact, really not. Besides, this guy is not the sort
to do something simply to embarass somebody else.

You might even consider reading his book, "On a Method of multiprogramming",
by Feijen and Van Gasteren (who, sadly, died recently). The sort of program
development they do, working with the miserably small core of axioms that
they use, is quite wonderful to see.

CBFalconer

unread,
Jan 3, 2003, 8:53:35 PM1/3/03
to
rjh wrote:
> R124c4u2 wrote:
> > Darrell writes:
> >
> >> Stop and think about this... if you are faced with creating an
> >> algorithm that has never been written before, how would you do
> >> it? Take an artifical example, you are given the formula
> >> ax**2 + bx + c. Write a function that will tell me for what
> >> values of x, give a, b, and c, this equals zero.
> >>
> >>Any good programmer will know the answer.
> >
> > Now I think the "pro-math" people have gone too far! The reason
> > a programmer can solve that is because he has seen it a
> > bezillion times and the solution is burned into his memory. Not
> > because he is so adept at math.
> >
> > Out of the hundreds of programmers I have worked with, only a
> > handful could solve that in a reasonable time.
>
> Well, I'm no mathematician, but let me try (with no
> textbook-consulting, I promise):
>
> axx + bx + c = 0
>
> Awkward because we have two xs in one term, but only one x in
> another. Now, we know that (x+y)^2 is x^2 + xy + y^2, so if we can
^^^
surely 2xy

> get our equation to a point where it can be factorised, we're
> laughing...
>
> => aaxx + abx + ac = 0
> => 4aaxx + 4abx + 4ac = 0
> => 4aaxx + 4abx = -4ac

Following through: 4aaxx + 2abx = -4ac -2abx


>
> Nearly there, but we need a y^2, so to speak. Since we have b in
> our middle term, we can introduce b^2 as our right hand term...
>
> => 4aaxx + 4abx + bb = bb - 4ac

and thence 4aaxx + 2abx + bb = bb - 4ac -2abx


>
> ...and there we are. We can now factorise...
>
> => (2ax + b)(2ax + b) = bb - 4ac

Woops! x isn't isolated! = bb -4ac -2abx

>
> ...and the rest is just book-keeping.
>
> => 2ax + b = sqrt(bb - 4ac)
> => 2ax = -b +/- sqrt(bb - 4ac)
> => x = (-b +/- sqrt(bb - 4ac)) / 2a
>
> How did I do?

You cheated - you remembered the method, rather than the rote
formula :-) If you had followed through you would have ended up
with (see above) :-) Now which Italian stole it from whom?
Cerdan is one of them.

In all seriousness though, there is an immediate analogy to
memorizing the C99 (or other) standard vs understanding why it has
various provisions.

--
Chuck F (cbfal...@yahoo.com) (cbfal...@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!


Ben Tels

unread,
Jan 3, 2003, 9:07:13 PM1/3/03
to
Nils Goesche wrote:

> Ben Tels <b...@bentels.dyndns.org> writes:
> Now take 1 for true and 0 for false...

And then the page is still a mess.

> So it should [...] So,
> exactly one of them must correspond to the ``implication创.

Which doesn't help you if you don't know what an operator that isn't
directly listed but only constructed "does", making the page not only messy
but also useless.

Ben Tels

unread,
Jan 3, 2003, 9:23:22 PM1/3/03
to
Darrell Grainger wrote:

> Stop and think about this... if you are faced with creating an algorithm
> that has never been written before, how would you do it? Take an artifical
> example, you are given the formula ax**2 + bx + c. Write a function
> that will tell me for what values of x, give a, b, and c, this equals
> zero.

Well, let's run with it....

ax^2 + bx +c = 0
a(x^2 + b/a x) + c = 0

We know that (x + n)^2 = x^2 + 2nx + n^2

a(x + b/(2a))^2 - b^2/(4a) + c = 0
a(x + b/(2a))^2 = (b^2 - 4ac)/4a
(x + b/(2a))^2 = (b^2 - 4ac)/4a^2
x + b/(2a) = ą sqrt(b^2 - 4ac)/2a
x = (-b ą sqrt(b^2 - 4ac))/2a

Question: do I already know how to figure out square roots?

Ben Tels

unread,
Jan 3, 2003, 9:38:13 PM1/3/03
to
R124c4u2 wrote:

> Now I think the "pro-math" people have gone too far! The reason a
> programmer can solve that is because he has seen it a bezillion times and
> the solution is
> burned into his memory. Not because he is so adept at math.

Speak for yourself.

> I have no reason to believe that more than half of these people
> are below average as programmers.

On the other hand, you haven't compared them to a group adept at math, have
you?

> It is the same as the sum of the first n numbers. Since Gauss did it, we
> can
> all do it. Mathematics? No. It's memory, pure and simple.

Actually, you can reason through that one pretty easily, be ye good at maths
or not.

SUM:i=1 to N:i
= {split off first and last}
SUM:i=2 to (N-1):i + 1 + N
= {split off first and last}
SUM:i=3 to (N-2):i + 1 + N + 2 + (N-1)
= {add last two paris of terms together}
SUM:i=3 to (N-2):i + SUM:i=1 to 2:(N-i+1+i)

In other words, we can heave the first term completely over into the second,
pairwise, to get

SUM:i=1 to N:i
=
SUM:i=1 to N/2:(N+1)

Which means adding (N+1), N/2 times: N/2 * (N+1) = N*N/2 + N/2



> Math is nice, if you're good at it, flaunt it. If you're not, persevere.

Or get better.

Ben Tels

unread,
Jan 3, 2003, 9:40:40 PM1/3/03
to
rjh wrote:

> Well, I'm no mathematician, but let me try (with no textbook-consulting, I
> promise):
>
> axx + bx + c = 0
>
> Awkward because we have two xs in one term, but only one x in another.
> Now, we know that (x+y)^2 is x^2 + xy + y^2, so if we can get our equation
> to a point where it can be factorised, we're laughing...
>
> => aaxx + abx + ac = 0
> => 4aaxx + 4abx + 4ac = 0
> => 4aaxx + 4abx = -4ac
>
> Nearly there, but we need a y^2, so to speak. Since we have b in our
> middle term, we can introduce b^2 as our right hand term...
>
> => 4aaxx + 4abx + bb = bb - 4ac
>
> ...and there we are. We can now factorise...
>
> => (2ax + b)(2ax + b) = bb - 4ac
>
> ...and the rest is just book-keeping.
>
> => 2ax + b = sqrt(bb - 4ac)
> => 2ax = -b +/- sqrt(bb - 4ac)
> => x = (-b +/- sqrt(bb - 4ac)) / 2a
>
> How did I do?

It smacs a bit of working towards the solution, but who's counting?

Thaddeus L Olczyk

unread,
Jan 3, 2003, 9:46:33 PM1/3/03
to
On Thu, 2 Jan 2003 12:39:33 +1000, "David Wright" <dav...@uq.net.au>
wrote:

>
>"Phlip" <phli...@yahoo.com> wrote:
>
>: Almost none of it. High Schools and Colleges teach
>Linear Algebra,
>: Trigonometry and Calculus as a hangover from the
>alleged Cold War. Those
>: are the maths needed to send rockets up and bombs
>down.
>:
>: Schools should teach more abstract algebra, group
>theory & set theory.
>: These map directly onto computerizable elements.
>
>
>Phlip,
>
>What would you say are the PREREQUISITE or PRELIMINARY
>topics to have mastered before tackling EACH of these
>areas, and can these foundational topics be tackled in
>parallel or sequentially:
>
>a) abstract algebra
>b) group theory
>c) set theory
>
>I ask as a mathematically challenged, self-studying,
>Schaum prone neophyte, rummageing blindly about in the
>cold and lonely foothills of Mt Maths.
>
>Thanks
>David W.
>
My calculus teacher once quoted a famous mathematician ( can't
remember who ), "Calculus is the last arithematics course you will
take and the first mathematics course."

CBFalconer

unread,
Jan 3, 2003, 9:48:35 PM1/3/03
to
"Arthur J. O'Dwyer" wrote:
>
... snip ...

>
> The teacher asks Alice, Bob, and Carol to sum the numbers from
> one to ten thousand.
> Alice (recalling Von Neumann's solution to a similar problem)
> sums the series, taking a week and giving an answer of 50005000.
> Bob (recalling his geometry teacher's solution) calculates
> 10000/2*(10000+1), taking thirty seconds and giving an answer of
> 50005000.
> Carol (recalling Gauss's solution) sees that sum(1..10) is 55
> and sum(1..100) is 5050. She writes down 50005000 in five seconds.
>
> Which of the three has the most mathematical ability?
> Alice has above-average abilities in calculation.
> Bob has a memory for formulas.
> Carol has intuition.
> Most people I think would say that Carol is the most promising
> of the three in terms of mathematical ability.

Provided Carol thinks - aha, that worked. Now why did it work,
and when won't it work. And it was Bob who aped Gauss.

Thaddeus L Olczyk

unread,
Jan 3, 2003, 9:55:51 PM1/3/03
to
On Wed, 1 Jan 2003 16:43:00 -0500 (EST), goingto...@webtv.net
(Iam Graduating) wrote:

>
> I'm thinking about majoring in computer programming. There seems to
>be a lot of math in the curriculum. I'd like to know exactly how much of
>this math is used in the actual programming?

> How exactly is it utilized? Do programmers actually use a pad with
>math formulas and tinker around with math equations as a part of their
>job?
>

It depends. If you want to be a simple DBA or DB programmer using
something like Database Desktop to design tables and Delphi to make
forms, without writing a single line of code, then you need no
mathematics.

Of course this type of job can be done by anyone with an IQ over 80,
( except for those who have too high an IQ they will get bored too
easily ). And while many others are generously calling it programming,
I'm not one of them.

If however you ever want to do any real programming then whether or
not you use the mathematics, you will need the thought process that
those mathematics courses teach you ( I am making guesses of what
courses since you don't say ). Even something which might seem as
trivial as debugging requires them. ( I remember many situations
where seemingly intelligent people claim to have proved that something
is the source of a bug, only to be wrong. It helps to know what is
meant by "proved". Not only did they not "prove" that something was
the source a bug, but it often turned out that it wasn't the source of
the bug.)

There are also the more esoteric areas which do not require math to
use their domains, but require math skills to handle the programming
itself. Things like ML,OCaml, Haskell,and Clean programming.

Robert STRANDH

unread,
Jan 4, 2003, 12:03:06 AM1/4/03
to
r124...@aol.com (R124c4u2) writes:

> I have no reason to believe that more than half of these people
> are below average as programmers.

In my experience, a programmer below the top 5% is usually not very
good. Being above average is therefore not necessarily a guarantee of
quality.

--
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------

rjh

unread,
Jan 4, 2003, 2:32:30 AM1/4/03
to
CBFalconer wrote:

> rjh wrote:

<snip>

>>
>> axx + bx + c = 0
>>
>> Awkward because we have two xs in one term, but only one x in
>> another. Now, we know that (x+y)^2 is x^2 + xy + y^2, so if we can
> ^^^
> surely 2xy

Yes, a slip of the keyboard. My apologies.

<snip>

>> ...and the rest is just book-keeping.
>>
>> => 2ax + b = sqrt(bb - 4ac)
>> => 2ax = -b +/- sqrt(bb - 4ac)
>> => x = (-b +/- sqrt(bb - 4ac)) / 2a
>>
>> How did I do?
>
> You cheated - you remembered the method, rather than the rote
> formula :-)

Is it cheating to use the little experience one has in a field in which one
claims no special expertise? If so, then I probably cheat every day of my
working life.

<snip>

rjh

unread,
Jan 4, 2003, 2:36:06 AM1/4/03
to
Ben Tels wrote:

<snip>


>
> Question: do I already know how to figure out square roots?

Now this one really isn't hard.

(a) Get an approximation H that you know is too high. Verify by multiplying
it out.
(b) Get an approximation L that you know is too low. Verify similarly.

Iteratively, until you are satisfied with the accuracy of your approximation
A:

A = (H + L) / 2
if A * A > N then H = A else L = A

There's a quicker way using calculus (Newton-Raphson), but we're
non-mathematicians, remember? :-)

rjh

unread,
Jan 4, 2003, 2:37:04 AM1/4/03
to
Ben Tels wrote:

> rjh wrote:
>>
>> How did I do?
>
> It smacs a bit of working towards the solution, but who's counting?

I don't have a problem with working toward the solution. It sure as hell
beats working in the other direction.

Richard Harter

unread,
Jan 4, 2003, 4:52:12 AM1/4/03
to

I dunno, are you being graded on your math or on your programming? If
its just your math you're fine; if you are deriving formulas for a
program you get a C. To get a B you should derive the other form of
the solution, namely

x = (2*c)/(-b +/ sqrt(b**2 - 4*a*c))

which you can get with a bit of algebra. To get your A as a
programmer you need to know which form to use and why. To avoid
losing precision you should avoid subtracting two terms that may
nearly be equal, i.e., don't compute (-b+sqrt(b**2-4ac)) when b is
positive or (-b-sqrt(b**2-4ac)) when b is negative. The following
pseudocode illustrates:

factor = abs(b) + sqrt(b*b-4*a*c)
if (b .gt. 0)
x1 = -factor/(2*a)
x2 = -(2*c)/factor
else
x1 = (2*c)/factor
x2 = factor/(2*a)

What to do when 4ac > b**2 is left as an exercise for the reader.


Richard Harter, c...@tiac.net,
http://home.tiac.net/~cri, http://www.varinoma.com
In the 60's people took acid to make the world weird. Now the
world is weird and people take Prozac to make it normal.

rjh

unread,
Jan 4, 2003, 6:30:38 AM1/4/03
to
Richard Harter wrote:

> On Fri, 3 Jan 2003 21:59:25 +0000 (UTC), rjh
> <bin...@eton.powernet.co.uk> wrote:
>

<snip>


>>
>>How did I do?
>
> I dunno, are you being graded on your math or on your programming?

I dunno. Maths, I think. But I'm no mathematician.

> If
> its just your math you're fine;

That's all right then. :-)

> if you are deriving formulas for a
> program you get a C.

If that were the task, I would get a numerical analyst on board (e.g. Dann
Corbit) and hang the expense. I think that should get me an A, don't you?

And if I /can't/ hang the expense, the program probably isn't all that
important, so it doesn't matter anyway.

<snip>

Nils Goesche

unread,
Jan 4, 2003, 8:22:39 AM1/4/03
to
Ben Tels <b...@bentels.dyndns.org> writes:

> Nils Goesche wrote:
>
> > Ben Tels <b...@bentels.dyndns.org> writes: Now take 1 for true
> > and 0 for false...
>
> And then the page is still a mess.

The ``page´´ is a mess? Why? I mean, I only referred to it
because it contains a complete table of the results of all
possible binary bit-wise logical operators. It is an excerpt
from the ANSI Common Lisp standard, which is actually a
well-written masterpiece. I can't find /anything/ wrong with the
dictionary entry describing the BOOLE function.

> > So it should [...] So, exactly one of them must correspond

> > to the ``implication´´.


>
> Which doesn't help you if you don't know what an operator that
> isn't directly listed but only constructed "does", making the
> page not only messy but also useless.

The page's purpose is to define Common Lisp's BOOLE function. I
think it does this quite well insofar as I am not in the least
left unclear about what BOOLE does and how to use it after
reading it. So, apparently, it is neither useless nor messy.
Why are you so obsessed about claiming that it is ``messy´´?
Maybe you should submit a defect report to ANSI X3J13 if you have
some deep insights about what is so wrong and messy about this
part of ANSI X3.226-1994.

Nils Goesche

unread,
Jan 4, 2003, 8:32:36 AM1/4/03
to
rjh <bin...@eton.powernet.co.uk> writes:

> Nils Goesche wrote:
>
> <snip>
> >
> > So it should be clear that there are 2^4 = 16 possible binary
> > boolean operations.
>
> Presumably, by the same logic(!), there are 3^9 = 19683
> different binary troolean operations. I wonder whether anyone
> has ever classified them all. I did a quick search on "trool"
> but to no avail. (It may be that I have invented the term.)

I met the guy once. Poor chap. He has classyfied them all and
gave them meaningful names. He knows them all by heart, but
unfortunately that is about everything he can remember by now.
He spends his days drooling and staring at the wall in an
expensive asylum (at the tax payer's cost) located in a beautiful
park at the border of Berlin, constantly murmuring incoherent
stuff like ``...maybe...trool-or...maybe
not...trool-but...false...false...´´ and so on. The nurse
assured me he wasn't dangerous. I had forgotten what I wanted to
ask him and left without talking to him.

Richard Harter

unread,
Jan 4, 2003, 11:25:34 AM1/4/03
to
On Sat, 4 Jan 2003 11:30:38 +0000 (UTC), rjh
<bin...@eton.powernet.co.uk> wrote:

>Richard Harter wrote:
>
>> On Fri, 3 Jan 2003 21:59:25 +0000 (UTC), rjh
>> <bin...@eton.powernet.co.uk> wrote:
>>
><snip>
>>>
>>>How did I do?
>>
>> I dunno, are you being graded on your math or on your programming?
>
>I dunno. Maths, I think. But I'm no mathematician.
>
>> If
>> its just your math you're fine;
>
>That's all right then. :-)
>
>> if you are deriving formulas for a
>> program you get a C.
>
>If that were the task, I would get a numerical analyst on board (e.g. Dann
>Corbit) and hang the expense. I think that should get me an A, don't you?
>
>And if I /can't/ hang the expense, the program probably isn't all that
>important, so it doesn't matter anyway.


Now that is the right sort of answer. Unfortunately people seldom
bring in a numerical analyst as often as they should, and almost
certainly never pay them enough.

Al Dunbar

unread,
Jan 4, 2003, 1:32:17 PM1/4/03
to

"Richard Harter" <c...@tiac.net> wrote in message
news:3e170a2d....@news.sbtc.net...

> On Sat, 4 Jan 2003 11:30:38 +0000 (UTC), rjh
> <bin...@eton.powernet.co.uk> wrote:
>
> >Richard Harter wrote:
> >
> >> On Fri, 3 Jan 2003 21:59:25 +0000 (UTC), rjh
> >> <bin...@eton.powernet.co.uk> wrote:
> >>
> ><snip>
> >>>
> >>>How did I do?
> >>
> >> I dunno, are you being graded on your math or on your programming?
> >
> >I dunno. Maths, I think. But I'm no mathematician.
> >
> >> If
> >> its just your math you're fine;
> >
> >That's all right then. :-)
> >
> >> if you are deriving formulas for a
> >> program you get a C.
> >
> >If that were the task, I would get a numerical analyst on board (e.g.
Dann
> >Corbit) and hang the expense. I think that should get me an A, don't you?
> >
> >And if I /can't/ hang the expense, the program probably isn't all that
> >important, so it doesn't matter anyway.
>
>
> Now that is the right sort of answer. Unfortunately people seldom
> bring in a numerical analyst as often as they should, and almost
> certainly never pay them enough.

I was thinking of changing the subject line to: "how much trivia is used in
programming" :-) and then it dawned on me that we would probably have
difficulty answering the question "how much math is used in every day life".

/Al


Ben Tels

unread,
Jan 4, 2003, 2:12:03 PM1/4/03
to
rjh wrote:

>> Question: do I already know how to figure out square roots?
>
> Now this one really isn't hard.

Yes, I know. But I'm asking whether or not in the hypothetical situation I
know how...

Ben Tels

unread,
Jan 4, 2003, 2:13:00 PM1/4/03
to
rjh wrote:

>> It smacs a bit of working towards the solution, but who's counting?
>
> I don't have a problem with working toward the solution. It sure as hell
> beats working in the other direction.

What I mean is: it smacs of "knowing the answer beforehand and verifying in
a posteriori".

Ben Tels

unread,
Jan 4, 2003, 2:17:24 PM1/4/03
to
Nils Goesche wrote:

> The ``page创 is a mess? Why?

It's hard to read, hard to follow.

> I mean, I only referred to it
> because it contains a complete table of the results of all
> possible binary bit-wise logical operators.

Next time, try to find a page better suited to that purpose.

> The page's purpose is to define Common Lisp's BOOLE function.

Then don't try to use it for anything but that.

Simon.

unread,
Jan 4, 2003, 3:19:38 PM1/4/03
to
On Sat, 4 Jan 2003 07:37:04 +0000 (UTC), rjh
<bin...@eton.powernet.co.uk> wrote:

>Ben Tels wrote:
>
>> rjh wrote:
>>>
>>> How did I do?
>>
>> It smacs a bit of working towards the solution, but who's counting?
>
>I don't have a problem with working toward the solution. It sure as hell
>beats working in the other direction.

Ah, but I always tried to work from both ends to meet up in the
middle!

I knew what I wanted/needed and what I had to work with, so trying to
get both to agree is still valid proof.

--
Simon.

'Be Seeing You.

Who is number one?

KAR 120C - Nice motor.

Simon.

unread,
Jan 4, 2003, 3:19:40 PM1/4/03
to

What? You'd chicken out on Complex algebra??

(joking - you probably already know)

x then equals the complex conjugates m + i*n and m - i*n;

x = (-b +/- i*sqrt(4ac-b*b)) / 2a

(of course computers cannot handle imaginary numbers directly - they
use a structure of the programmers choice)

--
Simon.

'Be Seeing You.

Who is number one?

KAR 120C - Nice motor.
>
>

Ben Tels

unread,
Jan 4, 2003, 9:09:26 PM1/4/03
to
Simon. wrote:

> I knew what I wanted/needed and what I had to work with, so trying to
> get both to agree is still valid proof.

Yes, but not a derivation.

Derk Gwen

unread,
Jan 4, 2003, 10:33:56 PM1/4/03
to
rjh <bin...@eton.powernet.co.uk> wrote:
# Ben Tels wrote:
#
# > rjh wrote:
# >>
# >> How did I do?
# >
# > It smacs a bit of working towards the solution, but who's counting?
#
# I don't have a problem with working toward the solution. It sure as hell
# beats working in the other direction.

<Insert rude comments here about programming in Cobol or Fortran or
C or Ada or Basic or ...>

--
Derk Gwen http://derkgwen.250free.com/html/index.html
So basically, you just trace.

Simon.

unread,
Jan 5, 2003, 10:41:42 AM1/5/03
to
begin virus.exe
and on Sun, 05 Jan 2003 03:09:26 +0100, Ben Tels
<b...@bentels.dyndns.org> wrote this wisdom:

>Simon. wrote:
>
>> I knew what I wanted/needed and what I had to work with, so trying to
>> get both to agree is still valid proof.
>
>Yes, but not a derivation.

But who knows how it was written down. Provided that the statements
follow logically then it can be a derivation.

Jordan Timothy Cox

unread,
Jan 6, 2003, 12:43:51 PM1/6/03
to
On Fri, 3 Jan 2003 09:53:53 -0500
"Ray Cassick \(Work\)" <ray.c...@intel.com> wrote:

>
> "Nils Goesche" <n...@cartan.de> wrote in message
> news:87smwa7...@darkstar.cartan...
> > dan...@aol.com (Dan Tex1) writes:
> >
> > > From: "Ray Cassick \(Work\)" ray.c...@intel.com
> > >
>
> <snip>
>
> > But that's not what Ray said. He said ``unless I can /handle/
> > Calculus创, and I'd second that immediately: If someone is so bad
> > at mathematics that he cannot even understand the little bit of
> > calculus usually presented to CS students, then he really should
> > look for a different field of endeavor. (Like, say, drooling or
> > staring at the wall ;-). Most of programming doesn't involve
> > calculus; but the problems you /have/ to solve aren't much
> > simpler. And they are of mathematical nature, too.
> >
>
> If it was a 'little bit' I MIGHT have been able to squeak through, but the
> curriculum I was in required up to Calc 3, definitely not for the faint of
> heart.
>
> Personally I think telling someone that is bad at math that they can't be a
> GOOD developer/programmer (I always try to differentiate between the two,
> there IS a difference) is like telling a person that has bad handwriting
> that they will never be a good writer.
>
> If I need to perform some nasty calculation chances are there is an
> established library out there to do it. Function calls are never a problem
> for me.
>
>
>

I agree fully. You put that quite eloquently. The comparison between handwriting and actual writing is quite good.

Thaddeus L Olczyk

unread,
Jan 6, 2003, 4:24:29 PM1/6/03
to
On 3 Jan 2003 18:44:08 GMT, dar...@cs.toronto.edu (Darrell Grainger)
wrote:

>Depends on your job. If I'm doing mission critical or programming
>something a human life will depend on, I'm going to have to prove
>theoretically that it works. I cannot code the product, install it and
>hope it works. If it fails it could cost billions of dollars or a human
>life. No one is going to buy my product without proof that it works.
>
>If you don't prove it empirically then you are probably going to need the
>same skills you did a mathematical proof to do a proof of your algorithm.
>
>On the same note. There are many companies that like to empirically debug
>the product. It is more economically viable to do it that way. They will
>not care if you took mostly practical courses for your electives or that
>you got 60% on your theoretical courses.

Imagine you work for HP and write software embedded into printers.
Assume that you wrote a bug that causes the HPNILJ500x to behave
erratically after printing 1000 sheets. Image the recall. Image the
next three generation of printers that have to be wildly successful
to cover the losses on this one printer.

Moral of the story: Mission Critical is an ambiguous term and
when a bug stands between a company and profitablity, it is
mission critical, and there is a lot more mission critical software
out there then most realise.

Thaddeus L Olczyk

unread,
Jan 6, 2003, 5:03:39 PM1/6/03
to
On Mon, 6 Jan 2003 11:43:51 -0600, Jordan Timothy Cox
<nos...@wanted.com> wrote:

>On Fri, 3 Jan 2003 09:53:53 -0500
>"Ray Cassick \(Work\)" <ray.c...@intel.com> wrote:
>
>>
>> If it was a 'little bit' I MIGHT have been able to squeak through, but the
>> curriculum I was in required up to Calc 3, definitely not for the faint of
>> heart.
>>

Anyone who thinks that Differential and Integral Calculus ( what is
taught up to what you call Calc 3 ) is "not for the faint of heart",
should not be programming . At least not *real* programming.
If your a VB/Web(aka HTML )/DB(SQL) programmer that's another thing.

As I pointed out calculus is really an arithmetic course, and just
barely touches on mathematics.

>> Personally I think telling someone that is bad at math that they can't be a
>> GOOD developer/programmer (I always try to differentiate between the two,
>> there IS a difference) is like telling a person that has bad handwriting
>> that they will never be a good writer.
>>
>> If I need to perform some nasty calculation chances are there is an
>> established library out there to do it. Function calls are never a problem
>> for me.
>>
>>
>>
>
>I agree fully. You put that quite eloquently. The comparison between handwriting and actual writing is quite good.

Actually he didn't. The analogy ( since you probably don't know, that
means comparison ) between handwriting and writing is fundamentally
flawed.

Handwriting involves virtually no creative thought. ( Maybe if you
care about how your handwriting looks, it involves some creativity. )
Writing involves much creative thought.

OTOH both mathematics and programming involve significant creative
thought. So the analogy is flawed.

In fact the reason that you learn mathematics is to nurture the
ability to think creatively, since the thought processes are similar.
Shame that you never learned that thought process.

PS: The "big" concept in development nowadays is abstraction.
( Actually the idea that abstraction is a good idea, has been around
for quite a while. In some circles it was considered important a long
time ago. It is only now that it is entering the main stream. ) *Real*
mathematics ( not arithmetic ) is all about abstraction.

PPS:
The thought process that judges the quality of an analogy is also
related to the thought process that is involved in mathematics and
in development. ( Analogies being related to abstractions. ) Shame you
never learned it.
related strong to development thought process and

Al Dunbar

unread,
Jan 6, 2003, 11:54:42 PM1/6/03
to

"Jordan Timothy Cox" <nos...@wanted.com> wrote in message
news:20030106114351....@wanted.com...

I agree too. But I personally feel that someone who already has good
handwriting likely acquired that as part of a natural affinity for the
written word, whose other factors (i.e. the love of reading, the love of the
language, the love of literature) are likely to be stronger indicators for a
good writer. The same holds true, imho, for the person who already is adept
at math, as the things that will make him thus are also likely the things
that will argue for his becoming adept at programming.

I am not saying that handwriting and math skills are necessary prerequisites
for the budding writer/programmer, but simply indicators. I have no doubt
there are good writers/programmers who have minimal handwriting/math skills.
Conversely, the same goes for those with good handwriting/math skills who
have no writing/programming capabilities.

Another example would be height and basketball-playing ability. Being tall
does not make you an automatic draft pick as you also need the skills.
Having the skills but being short may be the better way to go, but skill
levels being equal, I expect the advantage goes to the tall.

/Al


Jordan Timothy Cox

unread,
Jan 7, 2003, 1:52:33 PM1/7/03
to

I'm not sure that sports are an adequate representation. Sports and other physical tasks are based purely on your body type, and genetics. Your mind is maleable and fluid.

Mayhaps I'm a fluke, but I have horrible handwriting and am told that I'm a great writer. I'm fond of reading, and my poetry seems to be well liked by those around me. I also hate math, but am a decent programmer. I make no lay to claims as a guru, but I get the job done. I'm just in the mood to point out, there are good writers with bad handwriting (that's what computers are for!).

----------------------------------------
--------------------------------------------
- Jordan Timothy Cox
- Programmer, IT Administrator, Technical
Support for Geronimo Dev. Corp.
- jcox at casefinder dot com
--------------------------------------------
----------------------------------------

Derk Gwen

unread,
Jan 7, 2003, 10:41:53 PM1/7/03
to
# As I pointed out calculus is really an arithmetic course, and just
# barely touches on mathematics.

If properly taught, calculus should teach you how deal with infinities
without freaking out the way Greeks did two thousand years ago. You should
come out of calculus able to with limits, infinite sequences, and convergence.

Fixpoint theories (used sometimes in formal definitions of do-loops)
require the notion of limits of infinite sequences to understand

If you plan to shoplift, let us know.
Thanks

Al Dunbar

unread,
Jan 8, 2003, 7:33:14 PM1/8/03
to

"Jordan Timothy Cox" <nos...@wanted.com> wrote in message
news:20030107125233....@wanted.com...

> On Tue, 07 Jan 2003 04:54:42 GMT
> "Al Dunbar" <Luigi...@hotmail.com> wrote:
>
> >
> > "Jordan Timothy Cox" <nos...@wanted.com> wrote in message
> > news:20030106114351....@wanted.com...
> > > On Fri, 3 Jan 2003 09:53:53 -0500
> > > "Ray Cassick \(Work\)" <ray.c...@intel.com> wrote:
> > >
> > > >
> > > > "Nils Goesche" <n...@cartan.de> wrote in message
> > > > news:87smwa7...@darkstar.cartan...
> > > > > dan...@aol.com (Dan Tex1) writes:
> > > > >
> > > > > > From: "Ray Cassick \(Work\)" ray.c...@intel.com

<snip>

> > > I agree fully. You put that quite eloquently. The comparison between

It was never a perfect analogy, just one more similar one. But surely there
is more to skill in sports than "body type"? Two people with virtually
identical bodies are not going to be equal in skill if one is interested in
the sport and the other is not. Or if one is very competitive and the other
is not.

> Mayhaps I'm a fluke, but I have horrible handwriting and am told that I'm
a great writer. I'm fond of reading, and my poetry seems to be well liked
by those around me. I also hate math, but am a decent programmer. I make
no lay to claims as a guru, but I get the job done. I'm just in the mood to
point out, there are good writers with bad handwriting (that's what
computers are for!).

I wouldn't call you a fluke - in fact I stated that the existence of people
with these attributes was likely. All I was saying was that, all other
things considered being equal, having highly developed math skills is likely
going to be a more useful trait than not having them in becoming a
programmer.

Surely you do not think that your dislike of math is what makes you a good
programmer. Conversely, I am even saying that you are a good programmer in
spite of your dislike for math - just that your odds of having become one
may be somewhat lower than someone who likes math (and is good at it).


/Al


Jordan Timothy Cox

unread,
Jan 9, 2003, 3:40:00 PM1/9/03
to
<snip>

Point taken. Good show.

Al Dunbar

unread,
Jan 11, 2003, 1:15:09 AM1/11/03
to

"Jordan Timothy Cox" <nos...@wanted.com> wrote in message
news:20030109144000....@wanted.com...

Your comment is appreciated, but we both missed the typo in my last
paragraph, which should have said: "I am /NOT/ even saying that you are a
good programmer in spite of your dislike for math".

/Al


It is loading more messages.
0 new messages