Re: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" )
On Thursday 21 November 2002 05:11 am, Arthur wrote:
I do understand that it is reasonable to believe that out-of-the-box Python is more appropriate for children than out-of-the-box Lisp, for example. Or any other mainstream programming language, for that matter. But more appropriate than out-of-the box Logo? Would a language related to Python, but not quite Python - be more optimum?
I think the attraction to teaching with Python is that it is indeed a mainstream language, and not a special "teaching language". Very few real applications are written in Logo (unless I'm really out of touch).
In fact, I once taught Logo turtle-graphics to 2nd graders, but I can't remember a single bit of it -- because *I* don't write programs in Logo. I remember that it was very simple -- but I don't remember how to do it.
Some people are of the "more-the-merrier" school regarding languages -- especially people for whom programming is their career. But for other
programming in their spare time, or as an additional tool for a career in another field (like science or teaching), there's a significant advantage to learning fewer languages. Having the language you teach be a language you can actually use in later life is therefore an advantage (Why don't we teach American kids the Greek alphabet (or Hiragana or Cyrillic or IPA) to
them for learning the Roman characters later in life? Sure, learning more languages makes each easier, but not easier than learning one.).
Because it's so inclusive of different programming techniques, Python is a very good general purpose solution -- it provides good access to several types of programming technique: procedural, object-oriented, and functional. With the right modules installed, it has tremendous reach -- scientific, AI, web/CGI programming, email interaction, etc. For some people, it may be enough to know only Python.
So, I think it may well be worth using Python, even if it is slightly sub-optimal for teaching. But I think it *does* have some non-intuitive features -- at least from a seven-year-old's point of view. Personally I think the most obnoxious is the lack of simple loop constructs:
for i in range(10): print i
is not very intuitive to kids who don't know about domains and ranges -- fairly advanced math concepts, even if they seem trivial to me now.
for 1 < = i < 10:
would be more intuitive and Pyrex comes very close to this, with:
for i from 1 <= i < 10:
which Greg Ewing (Pyrex's author) proposed adding to mainstream Python. I'm not sure why we need the "i from" cruft, but it is better.
And, of course, the ever popular, but Guido-despised "do-while" construct. ;-)
Not trying to start a flame war with these -- these have already been fought over for mainstream Python. I just bring them up, because they are teaching obstacles for younger kids. "Daddy, what's a range?" I've also never quite figured out the "right" way to grab a little input from the user -- there are several ways to do this in Python, not "one obvious way". This is surprisingly rarely needed in real programming applications, but in a teaching setting, it's very common.
Nevertheless, I had a little success starting my (now 2nd grade) son with Python 2.2's "turtle" module. But he still has to just memorize some
----- Original Message ----- From: "Terry Hancock" <hancock@anansispaceworks.com> To: "Arthur" <ajs@ix.netcom.com> Sent: Thursday, November 21, 2002 12:55 PM Subject: Re: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) people, prepare things:
from turtle import *
And why's it called a Pen? Why not Turtle? ;-) My kids would want to name a turtle, and that's where we get into object-oriented programming! For my younger child, it ought to draw a turtle, too, instead of an impersonal arrow. Maybe I'll try to improve it someday. :-)
Also, I think they were a bit underimpressed with the graphics -- spoiled
on
computer games, I guess. They like designing game levels in Pingus or Rocks & Diamonds better. They might still be a little too young for this -- I don't want to frustrate or bore them with it.
Still, for all that, I think Python is a pretty good starter language. I certainly like it better than C, fortran, lisp, basic, cobol, or perl for that purpose.
Cheers, Terry
-- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com
participants (1)
-
Arthur