SPAM-MED: Re: Time to upgrade my technique...

Richard Gaskin ambassador at fourthworld.com
Tue Jun 10 16:37:51 EDT 2008


Richmond Mathewson:

> Richard Gaskin wrote:
> 
> "I would agree that what you teach should depend on
> where the learner is on Piaget's scale of cognitive
> function.
> 
> But for adult learners, I usually teach fields for
> display and variables 
> for computation.
> 
> Variables play a central role in the art of
> programming.  One could 
> argue that it would be a disservice not to explain how
> to use them well."
> 
> This isn't a very nice thing to say, but (you know me
> by now):
> 
> Experience has taught me that quite a few adults who
> perceive themselves as would-be programmers don't seem
> to have got
> beyond the 'concrete operational stage'
> 
>  (Paiget:  http://en.wikipedia.org/wiki/Jean_Piaget ),
> 
> 
> at least as coping with variables goes. 

That was perhaps somewhat insensitive of me, but in all fairness Paiget 
describes his highest stage of cognitive development as something that 
most adults possess.

While that may not be true for everyone, for the relatively narrow 
subset who are likely to enjoy programming I'd say it's a pretty safe bet.

In fact, I would go so far as to suggest that if it isn't true, much of 
learning the art of programming will be more of a frustration than a 
joy, not necessarily because of teaching or learning styles, but simply 
that it is, by nature, a relatively complex task of symbolic reasoning.


> I usually start with the "buckets" image, move onto fields
> ("visible buckets") and then try variables ("invisible
> buckets").

I like the buckets metaphor too.  Back in Pascal class my teacher was 
having a tough time explaining the difference between pass-by-value and 
pass-by-reference, so I drew some cartoons for the class using buckets 
to illustrate the idea.  I made some copies and before the next class I 
passed those around, and I heard a lot of "a ha!"s -- and the teacher 
did too.  He asked, "Who did this?" and a couple people pointed at me. 
I wasn't sure if he was annoyed, but then he said, "I like this.  Mind 
if I use it?"  :)


> The main problem seems to be that, in
> RR/Metacard/xTalk as one does not explicitly define
> variables people often say something like the
> following:
> 
> "When I put a number in a field that is easy because I
> have already made the field and I can see it on the
> VDU, but I don't see how I can put a number in an
> invisible thing that doesn't exist."
> 
> Explaining that by naming a variable one calls it into
> existence (c.f. Hindu creation and Lord Brahma
> breathing things into existence) doesn't seem to click
> with many people. 

Maybe it's the Brahma metaphor that confuses them. :)

If it's easier, Rev supports the option of explicitly declaring them. 
When teaching Rev as a second language I often start with that because 
it's more familiar. I haven't yet had a learner stumble with automatic 
declaration.

Then again, I have to admit that I haven't taught complete newcomers in 
many, many years.  Most folks I've worked with over the last decade have 
at least poked around a bit on their own, at least enough to become 
familiar with the basics of variables.

So I can't speak authoritatively about teaching someone with zero experience

And most of the folks I work with have aspirations of professional 
software development, so adopting performance-driving habits early on 
can be more useful than it would for a hobbyist.

If teaching with fields works, by all means keep doing it.

-- 
  Richard Gaskin
  Managing Editor, revJournal
  _______________________________________________________
  Rev tips, tutorials and more: http://www.revJournal.com



More information about the use-livecode mailing list