
Lot's of interesting ruminations here.
disjunctions or whatever of subsets of that space". And I don't know whether the multidimensional spatial metaphor is helpful or harmful in 7th grade; if people have read E. A. Abbott, it will at least be _exciting_ to them.
( I'm somewhat impatient with this approach of using "higher dimensions" as hype (pun intended) -- getting math to seem "cool" by doing stage magic ala Abbott. But I'm very much in the minority here. )
Once I studied Scheme and lambda and environments in _SICP_, I felt much more comfortable about all of this. Here programming can help a great deal, I think. But I wonder how many algebra students can't really see what's going on and what the actual roles of those letters are.
Yes, good point. I think it all seems clearer once you've got the computer language to refer to. Just studying the language clears up operating on functions, passing functions as parameters. Python makes this all more concrete, easier to wrap your brain around.
If Python's variable scope rules didn't prevent it,
return lambda x: A*x**2 + B*x + C
I think there's something more like this I'm just not getting tonight. The scoping rules did change recently. Surely there's a better way than my eval("%s") stuff, I agree.
I would add an h parameter, with a default value:
def deriv(f,x,h=0.0001): return (f(x+h)-f(x))/h
Yeah, good suggestion. There's also a way to compute an optimized h based on analysis of the function itself, but I don't have that at my finger tips.
I could have understood a lot about that in high school, if somebody had taught it.
You make a lot of on-target observations in this post, ask some good questions. Given different learners have different strengths and weaknesses, what's the best mix of approaches and methods is maybe not something we can optimize in a blanket way. But the computer language and command line capability adds a lot more tools and ways to get at the substance of math. It's a whole new bag of tricks (relatively new). I think teachers will eventually have a lot of fun with this stuff -- but right now calculators are all the rage, are hogging the limelight. Given all the stuff you can do with computers, kids want them (MP3s, web etc.). But calculators are pretty specialized and relatively few would go out and buy them were they not required for various math courses. So you spend a lot of time learning to use a tool that you may not use beyond the math course itself (if you're going to be using math professionally, you'll likely switch to a computer). With a computer language, though, you've got something to grow with. It'll engage the operating system, serve as a way to control various other apps via APIs and so forth. I think this is a better and more versatile platform on which to build in a lot of mathematical concepts, vs. being so reliant on calculators. Kirby