On Jun 29, 2007, at 7:42 PM, Andrew Lentvorski wrote:
Christopher Smith wrote:
The limits of calculators: this one is by far the lamest of the
lot. You teach kids to use a tool but you don't teach them the
limitations of the tool or how to get around them!? Come on!
You are *way* off the mark on this one.
Find me a high school teacher who understands the limitations of a
calculator.
Hmm... if you can find me a high school teacher who is unaware that a
calculator can only accept and display so many digits, they should
probably be fired, at least if they teach math or science (and
frankly, we ought to be able to hold all of our teacher to that
standard).
Knowing how to handle it is another matter, but such things *should*
be part of the training and the curriculum for a math teacher.
This is numerical analysis. Practically nobody outside of
engineering or science understands it. Practically nobody *inside*
engineering or science understands it.
You are talking about something different than what was mentioned in
this section. However, if only a few people actually understand it
regardless of their educational background, I think I'd be okay with
grade school education program that doesn't address it. ;-)
All operations are equal: I don't know where to begin with this
one, it's so laughable. First of all, as I'm sure others have
observed, with modern processors and programming languages,
multiplication *is* as fast doing the equivalent addition or bit
shifting.
It is the same O(1). The constant factor is *not* the same.
Division is generally O(log n).
However, I will agree that if it matters we're probably not talking
high school.
Again, there was a time when what you said was true. Superpipelining,
which is found now (let alone when a current fourth grader is likely
to enter the real world) even in embedded chips, has produced chips
for whom addition, subtraction, multiplication and division all
impose a single cycle of overhead. So the constant factor *is* the same.
Yes, there are factors like different delays to reach the completion
unit and which parts of the pipeline are consumed by the instruction
and for how long, but once you are dealing with that you also need to
understand about pipeline stalls, multiple pipelines, cache lines,
register dependencies, etc. None of which are going to be terribly
intuitive to someone used to doing things with pen and paper
(ironically some might make more sense for those who've worked with
calculators).
--Chris
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg