[Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" )
Terry Hancock
hancock@anansispaceworks.com
Fri, 22 Nov 2002 11:45:35 -0800
Let me summarize my point, since I think we agree on everything else. :-)
I think the reason why one would want to teach Python, instead of, say Logo
or Boxer, is NOT because Python is a *better* teaching language, but because
it is more mainstream, AND it *comes close* to being *as good as* Logo for
teaching.
So, why does the mainstream-ness matter -- especially for elementary kids?
1) The teacher knows it. (In my case, this means me, the parent, who is
tutoring my own children). That's because Python is actually useful to the
teacher, not just to the kids. Knowing is widely regarded as a
pre-requisite for good teaching. ;-D
2) The kids know the teacher uses it, so they can see it has real-world
applications. That's not a teenager-only, "so I can get a job" kind of
concern. Kids want to use "real stuff". My dad was a mechanic and a
machinist, so when I was seven, I was very fascinated with cars and engines
and lathes and mills and so on. I don't work on them now, but it motivated me
to understand a lot of design and engineering principles. I still like
machines, and I still have the hand-eye coordination and mechanical skill.
My son has ambitions of writing his own computer games. I can try to
generalize that, and say "well you have to learn all these concepts, which
you can generally apply to the problem, and then one day you can take the
time to actually learn the sort of language they're written in". OR, I can
say, "hey 'Solar Wolf' is written in Python, want to learn Python?" He
already wants to know how to hack Thrust so that the gravity points sideways
(which is probably possible, though I think Thrust is written in C).
My mom wanted to give my kids a big Christmas gift one year, and suggested
getting a $150 toy piano from Amazon.com. I said "$150 for a toy!? -- why
not spend the same money on an inexpensive, but *real* keyboard synthesizer?
They'll like it better, they can keep using it as they get older, they can do
music homework/practice with it, and (if it has a MIDI port), we'll one-day
be able to hook it up to their computer and do sequencing and stuff".
Same reasoning.
So why not teach C++ or Java or Lisp?
I think those languages are simply too hard to understand. There's too much
time between writing the code and seeing the result, too much required
groundwork to make anything remotely useful, and so on. Anybody under the age
of 13, will, IMHO, get frustrated, bored, and lose interest.
Logo (and now Boxer?) were created (or at least applied) to solve that
problem (and it was clearly a problem when they were created).
If Python, as a mainstream language, can even come close to Logo's simplicity
of use, however, I think it ought to at least be considered as an early
teaching language. Especially if you, the teacher, know Python and not Logo.
If on the other hand, you are teaching Logo successfully, then I'm not sure
Python should displace it. It is probably still harder to learn than Logo,
and the merits of using a mainstream language are primarily the two I mention
above. If you already know Logo, "1" doesn't apply, and if your kids are
already paying attention, then "2" doesn't either.
But if you're like me, and you were thinking, "gosh I need to have Logo to
teach my kids" (but you already have Python), I'd say, forget it -- teach
Python, you won't lose much, and it will be easier for you, which means
you're more likely to do it.
Lastly, does it really matter if you teach kids to program when they're so
young?
I doubt it seriously harms them not to, any more than not learning the piano
will. On the other hand, playing the piano, and programming, both are likely
to improve hand-eye-coordination, creative-thinking, and reasoning. Both are
a lot of fun. And both are things they will enjoy for a lifetime.
Don't force them, but don't deny them, either. Choice of instrument is much
less important.
Cheers,
Terry
--
Terry Hancock ( hancock at anansispaceworks.com )
Anansi Spaceworks http://www.anansispaceworks.com