Re: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" )
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
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?
<snip> 3) You can get tons of 3rd party extensions that do cool stuff. Even if if's above the kids' heads, the teacher might be able to create a simplified API to e.g. pygame. 4) There are lots of others teaching it, and you can use their materials. --Guido van Rossum (home page: http://www.python.org/~guido/)
participants (2)
-
Guido van Rossum
-
Terry Hancock