[Edu-sig] Why is Logo popular, while Python isn't?

Arthur ajs@ix.netcom.com
Thu, 21 Nov 2002 16:10:32 -0500


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

I agree wholeheartedly with this - from the student perspective - from, say,
the second half of high school and beyond. I think that by that stage the
fact the students are learning a real world programming language brings an
excitement to the enterprise that could not be true if presenting a
"teaching" language.  But - again from the student perspective - I don't
think this has relevance for elementary or middle school.

> Having the language you teach be a language you can actually use in later
life is therefore an advantage

True enough.

But it depends on what the expectations are.

Logo folk would claim this is true of Logo.

The article referenced in Catherine's post  at
ftp://soe.berkeley.edu/pub/boxer/Distribution/20reasons.pdf makes the case
that this is truer as to Boxer then it is for Logo.

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

Certainly agree as to Python's general usefulness as a teaching language,
but question again whether these advantages kick in very much at an
elementary school level.

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

Interesting that something like Pyrex - which I have not looked at but think
of as directed to the advanced user - would include syntax you see as better
from the perspective of a kids intuition.

>
> Also, I think they were a bit underimpressed with the graphics -- spoiled
on
> computer games, I guess.

Broken record  - but its OK since I have nothing to do with creating or
maintaining it.

Have you looked at VPython?

   >>> from visual import *
   Visual-2001-12-24
   >>> ball=sphere()
   >>> ball.color=color.red

High quality, lit and shaded, OpenGL rendered sphere.

The beauty being it all works from the interactive prompt. The sphere
appears on sphere(), and changes color in front of one's eyes at
ball.color=color.red. And all the basic functionality is in a dll (I do
windows) of less than 700k. Perhaps because it is being used to do college
level scientific visualization as its first mission, it is more overlooked
than it might be as a tool for children.

So I guess I am on one hand suggesting that Python might not be the way to
go for elementary and middle schools, large scale and long term.

But for those who are convinced otherwise, I certainly cannot see *not*
bringing VPython into play in some fundamental way.

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

Agree.

But the competition - if we insist on starting early (personally don't see
it as either important that we do, or harmful that we might try)- is Logo
(and apparently Boxer) rather than any of the languages you mention.

Art