[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
>