Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: Is this an exceptionally hard set of questions to answer?
Replies: 68   Last Post: Nov 11, 2002 7:54 PM

 Messages: [ Previous | Next ]
 Alberto C Moreira Posts: 266 Registered: 12/6/04
Re: Is this an exceptionally hard set of questions to answer?
Posted: Oct 27, 2002 8:32 AM

Van Bagnol <van@crl.com.invalid> said:

>I was referring to logical inferences you apply in _debugging_, not
>program flow; nonetheless, sequential program flow can still be mapped
>to symbolic logic.

Program flow involves time: symbolic logic doesn't. Using logic to
debug is limited to dealing with snapshots, or worse, reasoning out in
flowchart sequences: a rather inefficient way of debugging. Put even
two concurrent tasks running, and logic interactions can explode to a
level where it's not feasible to apply math.

I remember once I wrote a keyboard driver for an operating system, and
I gave it to my Quality Assurance department for testing. It was quite
a solid piece of code, so I was pretty confident it would pass.
Fifteen minutes later my QA tester called me, "I broke it". I was
surprised and asked, "how ?" She showed me: she stood in front of the
keyboard, closed her two fists, and went, BANG-BANG-BANG-BANG-BANG
hitting hard at the keyboard, at random, in a quick succession. You
bet, the system hung. Now, you tell me how much math I would have to
dig out to analyze it your way ? But the sequence of events
immediately matched a pattern in my mind, and I KNEW what the problem
was even before I got back to my desk - a timing window in an
interrupt routine. A course inspection of the code, and five minutes

So, use math for debugging ? Logic ? Nah, intuition's the key.

Also, debugging is often done at machine level, where the original
meaning of the program is gone - much debugging is about
nondeterministic, timing-related issues. And much debugging is not
error itself: a huge amount of programming is done with ICEs and logic
analyzers, it's like trying to find cockroaches hidden in one's
basement. It's more like digging for gold, there's a huge component of
chance too.

Programming, dude, is an art - math and engineering are far seconds in
programming.

>You don't need a college degree to be able to do math, either. So much

I don't know too many people who can do math, period, and out of
those, how many don't have a college degree ? But anyone can program,
it's an intuitive thing, if only one lets intuition take over.

>And if I have a very fast random character generator, I can write the
>entire works of Shakespeare. Why, as you mentioned, worry about an
>algorithm being O(n^k)? Just throw as many processors as necessary.
>Utilize n processors and you can sort in O(n) time.

You can write the entire works of Shakespeare with a very fast
character generator, but you cannot extricate such works from the rest
of the garbage generated. And you can't prove you generated all such
works either.

About sorting, use the right architecture - for example, a
reconfigurable mesh - and you can probably sort in O(1) time. So ? I

>Seems your OS doesn't scale well. As I said, "...let alone a good one."

A good, comprehensive OS takes years to develop by a whole lot of
people, and that has nothing to do with mathematics or with the speed
of algorithms. It has to do with the amount of work to be done and
with the exponential growth of interactions that must be addressed by
person-to-person contact and negotiation.

>Look at the Mozilla project and see if _no one_ is using math. Look up
>who's responsible for image decompression. But by your reasoning you
>don't even have to know programming. After all, why reinvent the wheel?
>Probably all you need to know is how to call some other programmer.

JPEG is a problem space thing. It has nothing to do with the browser.
Image decompression is a specialized component that is easily
second-sourced, and it isn't an integral part of the architecture of
Mozilla or of any Browser for that matter. Moreover, the only reason
we use compression is that we're still relying on a dated, obsolete
communications network. Improve the network, increase its bandwidth,
and JPEG will be history.

And indeed, much programming is about calling some other programmer.
It's called "reuse", and it's alive and kicking.

>Famous last words. :-)

Many browsers have been written by people who never wrote one before.
And programming is precisely about being capable to write something
that hasn't been written before. What one dude can do, another can
too. Programming, mind you, isn't rocket science, in fact, it is no
science at all. It's an art.

>I use math every day. Playing chess,

Chess is orthogonal to math. Chessplayers come from all walks of life.

I played championship chess when I was a kid, and I didn't use any
math. Some of the people I played against were physicians, lawyers,
artists, and people without even a college degree or profession. Their
personal playing styles varied from Tahl-like aggressive attack
prowess to a Petrossian positional play. Petrossian, actually, was a
porter. Capablanca could beat everyone in sight when he was 10 years
old. So could Brazilian grandmaster Henrique Mecking. Does a 10 year
old know any math that you can use in a chess match ? And wasn't
Bobby Fischer who said, "I put 98% of my mind into chess, 2% into
everything else" ?

>coaching soccer,

I'm Brazilian. I played soccer. Maracana~ stadium in Rio is an old and
dear acquaintance of mine. You will have to scour generations of
Brazilian world cup winner squads to find maybe one or two players who
even have a college degree - the only one I remember was Tostao, who
is a physician. Actually, many Brazilian soccer players don't even
have high school.

>playing a Bach invention, improvising jazz,

I reached concert level in piano, so did my wife, and my daughter did
the same in violin. Neither of us ever needed one ounce of math to do
music. I happen to live within the musical world, some of my friends
are conductors and professional musicians - many of them do not have a
college degree, and some merely squeaked by high school. One very
talented cello player I know had to get a GED to land a high school
they were children - at 8, 9, 10 years old. Comes intuitively, you
know, music is a gift, and it's well upstream from math.

>comparing insurance policies,

Now, that's probably the only place where you will need math. Wonder,
we agree that some math is necessary out there, somehow.

>optimizing an algorithm.

Algorithms are conceived - if you get an algorithm to go from O(n^2)
to O(n log n), that's a new algorithm and you'll be able to write qute
a few papers about it. But optimizing the multiplicative constants,
which is where most real-world optimization is done, often requires
knowing computer architecture and being able to handle timing - and
neither of those things are easily amenable to a mathematical
treatment that gives efficient results, because the complexity of many
real-world optimization problems carries it beyond the level of a
reasonable applicability of mathematics. As a consequence,
optimization is about feel, insight and intuition - an art. In fact,
the whole of the programming field is more of an art than a science or
an engineering discipline.

>As I stated, your definition of math is too narrow to be of practical
>value.

And yours far overflows usability. Number sense doesn't require math,
it's an intuitive gift of God or nature that is upstream from math.
Programming requires some number sense - not very much - but nearly no
mathematics beyond it. Unless, of course, we're programming
mathematical things: but then, the math doesn't come from the needs of
programming, it comes from the needs of the problem space we're trying
to address. And programming, mind you, is that thing that ports from
writing a JPEG subroutine to driving a computer keyboard to forking a
zillion concurrent processes neither of which we know or care for what
it does: programming is about writing programs, it's content free.

And you know what, my experience is, neither mathematicians nor even
engineers or physicists make good programmers. Programming is way more
art than science, and it's people with the creative juice from the
other side that typically make the inroads in programming. You know,
the hippie types with long hair, beards and jeans ? Yes.

Alberto.

Date Subject Author
9/28/02 Karl M. Bunday
9/30/02 Alberto C Moreira
9/30/02 Shmuel (Seymour J.) Metz
10/5/02 Moufang Loop
10/7/02 Shmuel (Seymour J.) Metz
9/30/02 Stephen Herschkorn
9/30/02 Magi D. Shepley
10/1/02 Karl M. Bunday
10/2/02 Kevin Foltinek
10/2/02 Karl M. Bunday
10/3/02 Alberto C Moreira
10/3/02 Kevin Foltinek
10/3/02 Jim Hunter
10/4/02 Herman Rubin
10/4/02 Alberto C Moreira
10/5/02 Herman Rubin
10/4/02 Alberto C Moreira
10/4/02 Kevin Foltinek
10/5/02 Alberto C Moreira
10/6/02 Virgil
10/6/02 Herman Rubin
10/6/02 Jim Hunter
10/6/02 Virgil
10/7/02 Kevin Foltinek
10/8/02 Alberto C Moreira
10/8/02 Kevin Foltinek
10/9/02 Alberto C Moreira
10/10/02 Kevin Foltinek
10/11/02 Alberto C Moreira
10/14/02 Kevin Foltinek
10/15/02 Alberto C Moreira
10/15/02 Kevin Foltinek
10/16/02 Alberto C Moreira
10/16/02 Kevin Foltinek
10/14/02 Kevin Foltinek
10/16/02 Alberto C Moreira
10/16/02 Kevin Foltinek
10/12/02 Shmuel (Seymour J.) Metz
10/14/02 Kevin Foltinek
10/25/02 Van Bagnol
10/25/02 Alberto C Moreira
10/26/02 Van Bagnol
10/27/02 Alberto C Moreira
10/27/02 Herman Rubin
10/28/02 Kevin Foltinek
10/29/02 Alberto C Moreira
10/24/02 Van Bagnol
10/25/02 Van Bagnol
10/26/02 Alberto C Moreira
10/28/02 Kevin Foltinek
10/29/02 Alberto C Moreira
10/29/02 Kevin Foltinek
10/31/02 Alberto C Moreira
10/31/02 Kevin Foltinek
11/2/02 Alberto C Moreira
11/2/02 David Redmond
11/3/02 Alberto C Moreira
11/3/02 Alberto C Moreira
11/4/02 Kevin Foltinek
11/2/02 Virgil
11/4/02 Kevin Foltinek
11/5/02 Alberto C Moreira
11/5/02 Kevin Foltinek
11/6/02 Alberto C Moreira
11/7/02 Kevin Foltinek
11/9/02 Alberto C Moreira
11/11/02 Kevin Foltinek
10/3/02 Kevin Foltinek
10/5/02 Magi D. Shepley