[Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" )

Arthur ajs@ix.netcom.com
Thu, 21 Nov 2002 15:30:26 -0500


----- 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" )


> 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
people,
> 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
prepare
> 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
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
>