Log in

No account? Create an account
Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Why do they teach you long division? [Nov. 5th, 2006|09:59 pm]
Lindsey Kuper
[Tags|, , , ]

Jamie jwz Zawinski quotes Steve Yegge on long division: "Why do they even teach it to you?"

When I learned division in fourth grade, they started us out with plastic cups and piles of beans before they taught us how to do anything on paper. Then, when we switched over to doing it on paper, they told us how each aspect of the moving-beans-around-on-our-desks thing mapped over to the moving-numbers-around-on-paper thing. Some of us were able to make that cognitive leap, and others of us weren't. But I doubt that any of us would have been able to make the cognitive leap from moving beans around to understanding why a calculator works. Most adults can't do that. Hell, I bet most adult programmers can't.

If nothing else, I think the long-division procedure gets you playing around with numbers, and maybe noticing patterns that you wouldn't notice if you just gave your calculator the divisor and dividend and got the quotient. Some of those fourth-graders are going to wonder just why the long-division procedure works, anyway, and I bet some of them are going to be able to figure it out. And even if they never wonder about why it works, I think there's still a certain MacGyver-ish thrill to being able to do it, a "hey, look what I can do with just paper, pencil, and my brain" thing.

If they were using a calculator to begin with, then I bet that some of them would also wonder why that works -- as well they should! But that's a pretty freakin' huge can o' worms they're opening, and they're in fourth grade, and they'd be more likely to get discouraged if they tried to figure it out.

But heck, I dunno; maybe we should be starting kids out by teaching them the logical operations, or teaching them about sets, instead of teaching them arithmetic. Math is big and there are a lot of places to start.


[User Picture]From: jes5199
2006-11-06 06:24 am (UTC)
I remember thinking that long division was really fun, when you divided a big number by a single digit number.

there was a movement to teach set theory early, but they bungled the public relations http://en.wikipedia.org/wiki/New_math
(Reply) (Thread)
[User Picture]From: glowing_fish
2006-11-07 08:57 pm (UTC)
I didn't learn long division in third grade. It was the first academic thing I didn't get. It led to a war with my teacher, the worst third grade teacher in the history of the world. She of the sending-me-to-the-library fame described in my book.
(Reply) (Parent) (Thread)
[User Picture]From: cerulicante
2006-11-06 01:23 pm (UTC)
When I was in 3rd grade, we had a science hour and I thought science was pretty much just like magic.

20 years later, I can't say that I believe any differently. Even though I know on the molecular level how things work, it's still pretty much like presto chango to my eyes.
(Reply) (Thread)
[User Picture]From: timthepenguin
2006-11-06 05:42 pm (UTC)
Though set theory and formal logic are totally sweet, I don't think the average fourth grader has the necessary abstract reasoning to understand them. It's a question of developmental psychology. I think that kind of reasoning comes along when they're in sixth grade or so. (And, really, I had some trouble in college understanding how "the empty set" could be an object in a set.)

Friending you, btw. Even though I really don't need more LJ friends. And I think it is weird that you also know Electra (I haven't spoken to her in a while), but then, I am getting used to the fact that Portland is tiny.
(Reply) (Thread)
[User Picture]From: lindseykuper
2006-11-07 07:53 am (UTC)
Portland is totally tiny!

Yeah, I think I've read that certain abstract reasoning skills don't kick in until later. But I bet a fourth-grader could draw a damn fine Venn diagram, or fill out a p ^ q truth table.
(Reply) (Parent) (Thread)
[User Picture]From: pixelherder
2006-11-06 07:35 pm (UTC)

I was a geek and loved long division when I was in the third grade. But yeah, pencil and paper arithmetic is kind of fun. I remember losing my calculator and getting through a semester of algebra class before bothering to get a replacement, just for the sake of the challenge.

The scary thing about division is that all of the known algorithms for it are clumsy. That's why, of the main four arithmetic operations, it's by far the slowest for CPU's. It's the stuff of nightmares for chip designers. Incredibly slow, error prone, and it consumes a huge amount of chip space.

Hacker's Delight ended the chapter on division with this:

I think that I shall never envision
An op as unlovely as division.

An op whose answer must be guessed
And then, through multiply, assessed;

An op for which we dearly pay,
In cycles wasted every day.

Division code is often hairy
Long division's downright scary.

The proofs can overtax your brain,
The ceiling and floor may drive you insane.

Good code to divide takes a Knuthian hero,
But even God can't divide by zero!
(Reply) (Thread)
[User Picture]From: lindseykuper
2006-11-07 08:14 am (UTC)
Ooh, I need that book. A lot of things about computer arithmetic are mysterious to me. Starting with why there's an apostrophe in "two's complement".
(Reply) (Parent) (Thread)
[User Picture]From: glowing_fish
2006-11-07 08:56 pm (UTC)
What about exponentiation? How did the little 2 MHz CPU of the Nintendo manage to calculate so quickly just how many points you got for bursting eight bubbles at once?

(Do you know the answer off the top of your head?)
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2006-11-07 10:33 pm (UTC)
Power-of-two scale factor?
(Reply) (Parent) (Thread)
[User Picture]From: pixelherder
2006-11-08 04:03 am (UTC)
Sure. If you mean Bubble Bobble, you scored 1000*2^num_monsters. Powers of two can be done really easily with shift operations. Much the same way that you can compute some number multiplied by a power of ten by taking on the right number of zeroes, a shift-left in binary will do the same thing for powers of two. The CPU just takes all the bits in the number, moves them left by some amount and tacks on zeroes. In C terms, you scored 1000<<num_monsters. You can also divide unsigned numbers with truncation by shift to the right, the opposite way. The lowest valued bits will fall off and you'll be left with the quotient. Bit-shifts are relatively slow on modern hardware, but they used to be really important way back when CPU's didn't have multiplication built in.

More generally, for non-negative integer exponents, there's a cute little algorithm called the Russian Peasant's Algorithm. Say you wanted to find x^y. If y is even, then you know that x^y=x^(y/2)*x^(y/2) so you just find x^(y/2) and square it. If y was odd, then you know that x^y=x*x^(y-1). So find x^(y-1) and multiply it by x. In each case, you've reduced the problem a bit and you can recurse down to finding x^0=1.

Assuming that each multiplication step takes constant time, the algorithm performs in roughly O(log2 y). There are factors for which it's possible to do fewer multiplies than the Russian Peasant's Algorithm, but in general it's pretty darn efficient. x^100, for example, requires just 8 consecutive multiplies. One other really nice thing about it is that it only requires the associative multiplication to be defined over the base -- e.g., it works just as well for raising matrices to integer powers.

As for fractional exponents, that's beyond me. All I know is that those are fairly scary to implement.
(Reply) (Parent) (Thread)
[User Picture]From: glowing_fish
2006-11-08 07:14 am (UTC)
Well, you certainly do know how to program! But do you know how to create the simple sense of wonder and joy from turning 8 nasty little critters into a plethora of fruit?
(Reply) (Parent) (Thread)
[User Picture]From: eliciel
2006-11-06 11:01 pm (UTC)
I read the Steve Yegge article. I know he's writing for an audience of programmers who have taken math classes, but its pissing me off when he says that Calculus is easy. :-(
Nonetheless, what he says makes sense, especially about teaching probability and statistics before other things. Learning statistics would incite us to learn the algebra and calculus behind it, wouldn't it?
Besides, learning statistics is better so that we understand the statistical crap that politicians and lobbiest (etc) throw at us to prove things, and understanding probability would help people understand the likelyhood events happen, right, which would perhaps decrease the fear factor over things like accidents (like being bitten by a shark) or other events.
(Reply) (Thread)
[User Picture]From: lindseykuper
2006-11-07 07:36 am (UTC)
Well, that raises an interesting point. If the kind of math we're supposed to be teaching kids is the kind of math that's going to be most useful to most of them in most aspects of their daily lives, then maybe we should throw both long division and calculus out the window and just make sure that everyone understands the basics of statistics and probability. Like royhuggins said on Wednesday, "Writers shouldn't be allowed to use statistics in their articles unless they've taken a statistics class."

(Reply) (Parent) (Thread)
From: (Anonymous)
2006-11-07 05:08 pm (UTC)
Well, perhaps if we waited to teach calculus after a thorough grounding in statistics, since a lot of statistics are calculated using calculus.
Calculus is also useful for understanding physics, which is something people should be exposed to, given that we live in a world with electricity and motion and stuff. ;-)
But, yeah, that is exactly the Roy quote I was thinking about when I wrote the first comment.
(Reply) (Parent) (Thread)