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