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

Dethe Elza DaddyGravity@livingcode.ca
Thu, 21 Nov 2002 11:46:10 -0800


I thought I had posted this to the Contagious Fun site a long time ago, 
but apparently not:

http://www.zope.org/Members/DaddyGravity/ContagiousFun/KutiaPy

Kutia is my stab at a logo-like environment for Python.  Still pretty 
rudimentary, I wanted to have a command language (logo-like or 
simplified python) in another window, but allow "programs" to be 
written by direct manipulation.  Not there yet, but if there's any 
interest, perhaps I'll revive it as a project.

Requires Tkinter.  Developed on Linux, tested on Windows, looks pretty 
darn cool on OS X (to Tkinter's credit, not mine).

--Dethe

On Thursday, November 21, 2002, at 10:35 AM, Terry Hancock wrote:

> 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
>
>
> -------------------------------------------------------
>
> -- 
> --
> Terry Hancock ( hancock at anansispaceworks.com )
> Anansi Spaceworks  http://www.anansispaceworks.com
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig@python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>