Re: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" )
On Thursday 21 November 2002 12:30 pm, Arthur wrote:
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.
I think you underestimate the age at which people begin writing useful software. I've met an awful lot of programmers online who turned out to be teenagers. They had to have *already* learned to program by that time.
Having the language you teach be a language you can actually use in later life is therefore an advantage [...] 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.
http://dewey.soe.berkeley.edu/boxer.html/availability.html """ Availability Macintosh A Macintosh Boxer -- including documentation, demonstration materials and tools -- is available for free download. Linux There are currently no active plans for a Linux version of Boxer. There is an older version of Boxer available for Sun Workstations running Sun OS 4.x. (Sorry, at this time, there is no version for Sun Solaris.) PC he University of California has prohibited our providing information about PC Boxer. Seek other sources of information. """ Otherwise, yes Boxer looks interesting. I applaud the guy on the Python list who's thinking about writing a Boxer environment, in ... <drumroll> ... 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.
I think the point is that it may be worthwhile to teach a somewhat harder language so that the continuity is kept. I would consider Boxer to be *fundamentally* different (being a graphical language, and therefore not a "language" at all from a certain perspective, but an "authoring environment"). Logo, on the other hand, is just another language -- not *that* much easier to learn than Python, and generally less capable. To use the terms in the boxer paper you refered me to -- I think it might be okay to accept a slightly higher threshhold, for a greatly higher ceiling. Boxer has an even lower threshhold than Logo, and possibly a ceiling between Logo's and Python's (taking the paper's word for it -- I can't form an opinion without a version that runs on a computer I have access to!). (Mind you, Python's ceiling is not so much a fundamental property of the language, but a consequence of being widely adopted -- the standard library is quite nice, and this is due to so many people using Python professionally. This is true of Java, Perl, and other "mainstream" languages too, of course).
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.
Have you looked at VPython?
Well, I have now. Thanks. I'll have to give that more attention.
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.
Unless we're challenging the whole idea of a "teaching" language (i.e. one that's only good for teaching). My point is that if one of the mainstream languages comes close to competing with these limited-domain languages, then it might be worth using it just because it's mainstream. I deeply question the idea that you need to learn lots of different programming languages to understand programming. That's like saying you can't understand grammar without learning lots of natural languages. True, you will wind up with biases to your native language, but you can still be very effective. Of course, I *did* decided to study multiple computer and natural languages in my life, and they did *enhance* my understanding of programming and grammar -- but that's not why I studied them. Nor do I consider either essential for every student. What *I* think you need, is to learn lots of different *programming styles*: procedural, functional, object-oriented, connectionist, and so on. Few languages support more than one style well, so most observers map this idea onto lots of different *languages*. Python, however, does several styles very well (though perhaps none as well as their champion languages -- the bane of being a generalist), which adds the interesting possibility of combining styles, as well. Also, if the student can be comfortable with the basic syntax of a language, I think it may be even more clear what the *significant* difference between the styles is (what's more important about C++, that it uses brackets to delimit blocks, or that it has objects and methods?). Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com
participants (1)
-
Terry Hancock