On Mon, Mar 2, 2009 at 2:20 PM, kirby urner <kirby.ur...@gmail.com> wrote:
On Mon, Mar 2, 2009 at 2:20 PM, kirby urner <kirby.ur...@gmail.com> wrote: >This is what math teachers often forget: that there's no "one thing" that is "a mathematics". Yeah, this is what I appreciate about the Pythonic way of thinking. There are other schools of thought where mathematics is put into a box and anything outside of that box is ridiculed. I prefer an open world. - Michel On Mon, Mar 2, 2009 at 2:20 PM, kirby urner <kirby.ur...@gmail.com> wrote: > On Mon, Mar 2, 2009 at 1:41 PM, Jason Axelson <bostonvaul...@gmail.com> > wrote: > > As a current college student myself, I feel like chiming in here. > > > > 2009/3/2 michel paul <mpaul...@gmail.com>: > >> However, it is again more mathematically effective to read "2 + 3 * 4" > as > >> "the sum of 2 and the product of 3 and 4", or, sum(2, product(3, 4)). > No > >> ambiguity there! And this is how you have to think when you hook chains > of > >> functions together. This kind of stuff could be done very early in the > >> curriculum. Doesn't have to wait for either advanced math classes or > >> computer science. > > > > The mental model in Python is 2, 3 and 4 each "know their stuff" when > it comes to doing these operations, have them internalized ("in their > bones"). > > In that sense, translating 2 + 3 to sum(2, 3) is less useful that > using native Pythonic 2.__add__(3) with __add__ being a verb like > "eat" (ingest). "2 eats 3, returns 5 object" is a better image that > "sum eats a 3 and 2 objects, returns 5 object". > > Of course if you're bridging to Scheme, then maybe that's another > matter. OO isn't going to be so important, your mental models will be > different. > > However, in the Python head space, we don't so much like the idea of > "operations" just floating as globals, unencapsulated, outside of any > number objects. That's the old paradigm, kind of gets in the way. > > And yes, I know it's still quite possible to code and think in that > way with Python, a forgiving environment. But in terms of helping > students master OO, we want the idea of methods *internal* to the > class definition. > > sum(2, product(3, 4)) means 2.__add__ ( 3.__mul__(4) ) -- like fish > eating fish: > > http://www.efuse.com/Plan/fish-eat-fish-richard-cook-artville-com.jpg > ( integers = fish ) > > > Perhaps it may be appropriate to try and introduce prefix notation to > > students, such as what lisp uses. So instead of "2 + 3 * 4" or sum(2, > > product(3, 4)) it would be (+ 2 (* 3 4)). Unfortunately, that might > > make their eyes glaze over, but you could state how it is unambiguous > > and maybe formalize infix notation for them. > > > >> Math teachers often forget, or are unaware, that the ordinary arithmetic > >> operators are themselves functions. I think it would be good for math > >> classes to explore this kind of functional composition for very simple > >> ideas. > > > > There's not just one overarching model in my model. Different > languages and notations, all with a claim to being mathematical, will > come with different gestalts, core abstractions. > > This is what math teachers often forget: that there's no "one thing" > that is "a mathematics". > > Wittgenstein's notion of "family resemblance" enters at this juncture, > helps break the spell of "an essence" (so tempting, so wrong). > > > Personally I found that being able to think about many math concepts > > as functions helped me a great deal with managing the complexity of > > many math courses. Just my 2 cents. > > > > -Jason > > Finding a model helpful is a good recommendation for sharing it with > others and I wouldn't want to get in your way of doing that. > > On the other hand, if Python is what we're learning, then looking at 2 > + 3 as a way of firing the add method > inside of an integer, is what we'd like to focus on in many cases. > > However, we're not so far apart, as functions are very akin to methods > and static methods are really quite indistinguishable, not even > needing a self. > > From Oregon Curriculum Network (OCN): > http://www.flickr.com/photos/17157...@n00/3308514585/sizes/o/ > > Kirby >
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig