Simon Forman

This conversation is closed.

A simple metaphor that makes it easy to teach the essentials of programming.

By using a single, very simple, Turing-complete programmable metaphor you can introduce the essential concepts of computer programming to anyone in about an hour or less. I've developed such a metaphor with implementations in Javascript and Python, and I am actively teaching people with it. (I'm just getting started but results are very promising.)

I am working with the editor of a local food-related magazine to let him create Terry Gilliam-style animations using SVG and D3.js. Even though he is not technical he immediately grasped the concepts involved and began to elaborate quite lofty "computer science" ideas.

He outlined the idea of "garbage collection" before I could stop him!

He literally started proposing this idea, and I interrupted him and had to tell him, "yeah, that's called garbage collection and both Python and Javascript have it already!"

It was shocking. I was shocked. (Pleasantly of course.)

Here is a link to a brief description of how I approach teaching programming with the "programmable metaphor" I'm talking about: http://calroc.blogspot.com/2013/02/how-to-teach-anyone-to-program-using.html

  • thumb
    Feb 3 2013: The metaphor did not speak to me at all. I am glad you are finding it successful with those you are teaching.
    • thumb
      Feb 3 2013: How did it not speak to you?
      • thumb
        Feb 3 2013: It just was not effective in telling me what programming is about. I would need someone to explain to me what the metaphor was supposed to convey to me.

        The thing with teaching is that different metaphors work for different people, so just because it said nothing to me doesn't mean it might not be useful to others.
        • thumb
          Feb 3 2013: Ah, yes, the blog post I linked to is sort of like a simple script for someone who knows programming to use with someone who doesn't. It is not meant as a stand-alone introduction in and of itself.

          Did you try out the "live" version: http://calroc.github.com/aum-gravity/Henry.html ?

          Also, are you a programmer yourself?

          I should also mention that, once a person gets the basic idea, I don't see any reason why they shouldn't go on to learn other programming systems and languages. I just see Xerblin as one particular form of "ABC's" of programming, but not neccessarily the only one.
      • thumb
        Feb 3 2013: No. I took programming a long time ago. Algol W, a Fortran-type language. I was a math undergrad.
        • thumb
          Feb 3 2013: Then I'm not surprised you didn't get anything from this little metaphor. :) With that background it really doesn't hold anything for you I would imagine.