How to Teach Python "Variables"
MonkeeSage at gmail.com
Thu Nov 29 04:11:20 CET 2007
On Nov 28, 8:35 am, Aaron Watters <aaron.watt... at gmail.com> wrote:
> On Nov 27, 5:31 pm, MonkeeSage <MonkeeS... at gmail.com> wrote:
> > Of course. But then it really depends on the teaching methodology,
> > doesn't it? There is no reason (well, barring the restraints of the
> > curriculum vitea), that one should learn topics so complex as to
> > require "off-putting" the *real* meaning until later, when one could
> > just as easily learn the basic concepts first. I guess it's a matter
> > of preference; whether you build from the top down (ala Berkley) or
> > the other way 'round.
> As you hint, this is the tip of the iceberg
> of some very complex philosophical issues.
> For practical instruction I think there is
> overwhelming evidence you can't "begin at the beginning".
> In mathematics you really can't teach starting
> with the axioms of set theory and build up from
> there -- you'd never get to long division before
> the students will have given up long ago.
> Similarly, in computer science you can't just
> go off to the beach to get some sand to start
> building a computer. (Although when I was
> at Bell Labs the joke was that that was the
> Bell Labs attitude.)
> In practice you always have to start in the
> middle and tell the students not to worry
> about stuff that would add an overwhelming
> amount of detail. For example, most beginning
> students will have a vague idea what
> the filesystem is, even though they will
> have to deal with it a lot -- and you don't
> want to get mired down for the first few weeks
> trying to talk about the filesystem. Instead
> you say "follow these steps and all will
> become clear later." It's not a matter of
> preference -- it's a matter of necessity.
> -- Aaron Watters
I agree. I think that perhaps I overstated my point. Given that a
subject remains within the realm of intuition, I see no reason to hide
information; but after a certain (admittedly subjective) boundery,
things stop making intuitive sense (e.g., "what do you mean that my
computer is made of sand?" or "what do you mean that what goes on in
my computer is no different than plugging in a toaster?"). I just
don't see the merit in some approaches, where one starts a CS course
with C#/C++/Java and 75% of the language you have to "ignore for now."
I think that type of approach leads to bad practices to say the least.
But indeed, there is a happy medium! You don't want to start with
assembler...but at the same time (my contention) you don't want to
start with "private static void" either. You want to start in the
happy medium, where analogies (*good* analogies) can be of no end of
More information about the Python-list