On Jul 7, 1:04 pm, kj <no.em...@please.post> wrote: > I'm having a hard time coming up with a reasonable way to explain > certain things to programming novices. > : > How do I explain to rank beginners (no programming experience at > all) why x and y remain unchanged above, but not z? > : > What do you say to that? > > I can come up with much mumbling about pointers and stacks and > heaps and much hand-waving about the underlying this-and-that, but > nothing that sounds even remotely illuminating. > > Your suggestions would be much appreciated!
kj, i don't have too much to add to everyone else's response except to describe how i deal with this. i teach Python courses several times a year and realized long ago that conveying the concept of mutable vs. immutable is a key to getting up-to-speed quickly with Python as well as helping beginners. so, although techically, this is more of an intermediate topic rather than "beginner" material, i still teach it anyway, with the hopes of producing better Python programmers out of the gate, and hopefully, less frustrated ones. in fact, i dedicated an entire chapter (4) in Core Python Programming just to address this important issue. to top it all off, i end this module in the class by giving 2 quizzes, just to make sure they understood what i just told them. i put the 1st one online, so if you're curious, the PDF is at http://roadkill.com/~wesc/cyberweb/introQuiz.pdf ... the 2nd quiz is harder and involves the discussion of the differences between shallow and deep copies. so yes, not very beginner- ish stuff, hence the reason why i (re)named my course "Intro +Intermediate Python". finally, rather than the "paper tag" or alex's hotel statue analogy, i just say that variables are like Post-It® or sticky notes on objects. i can tag objects anytime, tag objects more than once, remove tags, or switch them to another object, etc. just my $0.02, -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 "Python Fundamentals", Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wescpy-at-gmail.com python training and technical consulting cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com -- http://mail.python.org/mailman/listinfo/python-list