From goodmansond@yahoo.com Thu Nov 7 04:45:59 2002 From: goodmansond@yahoo.com (Dean Goodmanson) Date: Wed, 6 Nov 2002 20:45:59 -0800 (PST) Subject: [Edu-sig] c.l.py python textbook feedback request Message-ID: <20021107044559.97251.qmail@web21106.mail.yahoo.com> Quick note to refer to a c.l.py post about Python textbooks: http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&group=comp.lang.python&selm=d6dae77c.0211061427.7191196f%40posting.google.com http://mail.python.org/pipermail/python-list/2002-November/129136.html "I wanted to get some feedback on what would make a more successful Python textbook." ...there's a larger textbook thread that I haven't read yet, but this link seems to be a good statement of original goals/questions, and can provide google keywords where needed. - Dean __________________________________________________ Do you Yahoo!? U2 on LAUNCH - Exclusive greatest hits videos http://launch.yahoo.com/u2 From toby@adslhome.dk Mon Nov 11 06:42:09 2002 From: toby@adslhome.dk (Tobias Nygaard) Date: Mon, 11 Nov 2002 07:42:09 +0100 Subject: [Edu-sig] Yeah, ive got your mail...Twice! Message-ID: <000c01c2894d$75b5efe0$d992c750@tobias> This is a multi-part message in MIME format. ------=_NextPart_000_0009_01C28955.D730F2D0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable ------=_NextPart_000_0009_01C28955.D730F2D0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
 
------=_NextPart_000_0009_01C28955.D730F2D0-- From dreed@capital.edu Tue Nov 12 22:26:58 2002 From: dreed@capital.edu (Dave Reed) Date: Tue, 12 Nov 2002 17:26:58 -0500 Subject: [Edu-sig] using Python for a CS 2 course Message-ID: <200211121726.58699.dreed@capital.edu> Is anyone out there using Python in a college level CS 2 course? We just started using Python in our CS 1 course this fall (and it appears to be working very well) and we're going to use Python in our CS 2 this January. I used a prepublication copy of a CS 1 Python textbook being written by John Zelle at Wartburg (final version is planned for next fall). Both my colleage and I find the book to do a very nice job of teaching Python, problem solving, and design.=20 We are going to use Python in our CS 2 course this January. My current plans are to have the student use a C++ CS 2 texbook by Main & Savitch and I'll rewrite many of the examples in Python. I'll also be using the "How To Think Like a Computer Scientist" book and my own notes that I'll put together to try to make this work well. Ideally the students will learn the CS 2 concepts, more about Python classes, and a little C++. We will then mainly use C++ in our advanced algorithms course and they will be exposed to other languages in our Programming Languages course. I'd love to hear from any one using Python in CS 2 and share ideas, materials, etc. Thanks, Dave From guido@python.org Tue Nov 12 22:32:02 2002 From: guido@python.org (Guido van Rossum) Date: Tue, 12 Nov 2002 17:32:02 -0500 Subject: [Edu-sig] using Python for a CS 2 course In-Reply-To: Your message of "Tue, 12 Nov 2002 17:26:58 EST." <200211121726.58699.dreed@capital.edu> References: <200211121726.58699.dreed@capital.edu> Message-ID: <200211122232.gACMW2j17724@odiug.zope.com> Not quite what you asked, but are you aware of Deitel and Deitel's Python book? http://vig.prenhall.com/catalog/academic/product/1,4096,0130923613,00.html --Guido van Rossum (home page: http://www.python.org/~guido/) From bplatt@emerson-school.org Tue Nov 12 22:47:02 2002 From: bplatt@emerson-school.org (Beth Platt) Date: Tue, 12 Nov 2002 17:47:02 -0500 Subject: [Edu-sig] using Python for a CS 2 course In-Reply-To: <200211122232.gACMW2j17724@odiug.zope.com> Message-ID: I realize this doesn't help you at all being that my students are 15 years younger than yours, but I use the deitel book in my elementary and middle school python classes and they LOVE it. It has great code examples. You might find the first chapters too simple for a CS 2 course, but I found the entire book appeals to both beginners and more advanced students. Several of my friends (phd students and phd's in CS) love to borrow it. And those students who had a difficult time catching it the first time will find the book useful. It does tackle XML quite a bit, which my students find boring next to "games! games! games!" Now if I could only get Tkinter to work I'd have heck of an example of python being used to it's fullest in the educational sector. There's nothing cuter than a 10 year old trying to say "guido van rossum!" On 11/12/02 5:32 PM, "Guido van Rossum" wrote: > Not quite what you asked, but are you aware of Deitel and Deitel's > Python book? > > http://vig.prenhall.com/catalog/academic/product/1,4096,0130923613,00.html From steve@nowfindme.com Wed Nov 13 13:25:18 2002 From: steve@nowfindme.com (Steve Edwards) Date: Wed, 13 Nov 2002 21:25:18 +0800 Subject: [Edu-sig] Python resources for education In-Reply-To: <20021107170005.2496.14304.Mailman@mail.python.org> Message-ID: Hi one and all. Are there any teachers on the list who have actually developed materials for use in the classroom with secondary school children? I have started to introduce and trial some things with some of my Y9's and Y10's here in Western Australia and am looking forward to sharing and trying more. Already some of the kids have programmed Jim Fuller's simple IO device (http://www.jfuller.org) and we are planning on making 'floppy the robot' (http://ohmslaw.com/robot.htm) run on Python. If you have any suggestions on how I can use Python in the classroom and / or any tutorials or resources you would like to share please let me know. Hopefully next year www.nowtellme.com will host some useful Python resources...... assuming I keep my job :-) Best regards, Steve Edwards Ô¿Ô¬ steve@nowfindme.com -steve@totalqualitytraining.com www.nowfindme.com - www.totalqualitytraining.com All truth, in the long run, is only commonsense clarified. Thomas Henry Huxley (1825-1895) Biologist From michael.williams@st-annes.oxford.ac.uk Wed Nov 13 14:30:43 2002 From: michael.williams@st-annes.oxford.ac.uk (Michael Williams) Date: Wed, 13 Nov 2002 14:30:43 +0000 Subject: [Edu-sig] Python resources for education In-Reply-To: Message-ID: <7DED0D3D-F714-11D6-ABEB-000393C5BF0A@st-annes.oxford.ac.uk> On Wednesday, November 13, 2002, at 01:25 PM, Steve Edwards wrote: > Hi one and all. > > Are there any teachers on the list who have actually developed > materials for > use in the classroom with secondary school children? There are plenty! Jeff Elkner wrote up his experiences here: and I wrote mine up here: (although my course was with first year undergrads). > If you have any suggestions on how I can use Python in the classroom > and / > or any tutorials or resources you would like to share please let me > know. http://www.python.org/doc/Newbies.html and http://www.python.org/sigs/edu-sig/ are riddled with links to course material of a suitable level. Of particular interest to your course are: http://www.freenetpages.co.uk/hp/alan.gauld/ http://www.ibiblio.org/obp/thinkCSpy/ http://www.livewires.org.uk/python/ http://users.ox.ac.uk/~sann1276/python/ all of which are bona-fide course textbooks. Of them Livewires is the only one specifically aimed at your age group (12-15), so has the tone associated with that audience, but all of them are for people new to programming so could be used/adapted. -- Michael From c.attianese@cib.na.cnr.it Wed Nov 13 14:24:42 2002 From: c.attianese@cib.na.cnr.it (Carla Attianese) Date: Wed, 13 Nov 2002 15:24:42 +0100 Subject: [Edu-sig] string assignment Message-ID: <013101c28b20$6951d460$d005a48c@epicuro> This is a multi-part message in MIME format. ------=_NextPart_000_012C_01C28B28.CA310C80 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi everybody, I'm writing a python script that tries to connect to informix DB. I got = an error in assigning a SQL Create Table statement to a variable. This = is how I did it: CREATE_STATEMENT_TABLE =3D """ CREATE TABLE rdf_statement (...... .......) """ This is the error I got: SyntaxError: invalid syntax File "C:\Documents and Settings\carla\a.py", line 258 CREATE_STATEMENT_TABLE=3D""" ^ I tried with single quote, getting the same error.It seems not to accept = an assignment of a string to a variable. I'm using Python 2.1.1 on = WIndows XP. Am I doing something wrong with the syntax? Thank you and best regards Carla __________________________ Carla Attianese c.attianese@cib.na.cnr.it CNR - Cybernetics Institute Via Campi Flegrei, 34 I-80072 Pozzuoli (Naples), Italy +39818675157 ------=_NextPart_000_012C_01C28B28.CA310C80 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi everybody,
I'm writing a python script that tries = to connect=20 to informix DB. I got an error in assigning a SQL Create Table statement = to a=20 variable. This is how I did it:
 
CREATE_STATEMENT_TABLE =3D = """
CREATE TABLE rdf_statement = (......
            =    =20             .......)
            =    =20             """
 
 
This is the error I got:
 
SyntaxError: invalid syntax
  File "C:\Documents and=20 Settings\carla\a.py", line 258
   =20 CREATE_STATEMENT_TABLE=3D"""
       = ;            =      =20 ^
I tried with single quote, getting the = same=20 error.It seems not to accept an assignment of a string to a variable. = I'm using=20 Python 2.1.1 on WIndows XP. Am I doing something wrong with the=20 syntax?
Thank you and best regards
Carla
 
 
 
__________________________
Carla Attianese
c.attianese@cib.na.cnr.itCNR -=20 Cybernetics Institute
Via Campi Flegrei, 34  I-80072
Pozzuoli = (Naples), Italy
+39818675157
------=_NextPart_000_012C_01C28B28.CA310C80-- From claird@phaseit.net Wed Nov 13 18:55:12 2002 From: claird@phaseit.net (Cameron Laird) Date: Wed, 13 Nov 2002 13:55:12 -0500 Subject: [Edu-sig] 'Anyone know Message-ID: of a member of faculty at a UCal campus who favors Python? I'm working with a couple of universities that are hesitating about whether Python's right for them. From steve@nowfindme.com Wed Nov 13 21:43:57 2002 From: steve@nowfindme.com (Steve Edwards) Date: Thu, 14 Nov 2002 05:43:57 +0800 Subject: [Edu-sig] Thanks In-Reply-To: <20021113170005.8083.76370.Mailman@mail.python.org> Message-ID: Just a quick note to express my warm thanks to everyone for their feedback and advice - especially to Michael Williams and Tim Wilson who pointed me to some fabulous resources including some of their own. Best regards, Steve Edwards Ô¿Ô¬ steve@nowfindme.com -steve@totalqualitytraining.com www.nowfindme.com - www.totalqualitytraining.com All truth, in the long run, is only commonsense clarified. Thomas Henry Huxley (1825-1895) Biologist From d.collins@inaburra.nsw.edu.au Wed Nov 13 22:42:59 2002 From: d.collins@inaburra.nsw.edu.au (Dave Collins) Date: Thu, 14 Nov 2002 09:42:59 +1100 Subject: [Edu-sig] I'm just finishing a Intro Book on Python for the Classroom Message-ID: Dear Steve and Others, I have just finished a set of Blackline masters for the Secondary High School for use with student 14 - 18. It will sell for $50 Australian (+GST and postage). It is aimed at teaching sequence, selection and repetition, as well as some basic data structures. It includes a CD with solutions to all exercises and assignments. If you are interested I will be happy to send some sample pages in pdf form. Send me an email at dave@nolimitsit.com. Dave Collins No Limits IT Inaburra School dave@nolimitsit.com www.nolimitsit.com From engelbert.gruber@ssg.co.at Thu Nov 14 06:56:05 2002 From: engelbert.gruber@ssg.co.at (engelbert.gruber@ssg.co.at) Date: Thu, 14 Nov 2002 07:56:05 +0100 (CET) Subject: [Edu-sig] string assignment In-Reply-To: <013101c28b20$6951d460$d005a48c@epicuro> Message-ID: On Wed, 13 Nov 2002, Carla Attianese wrote: > Hi everybody, > I'm writing a python script that tries to connect to informix DB. I got an error in assigning a SQL Create Table statement to a variable. This is how I did it: > > CREATE_STATEMENT_TABLE = """ > CREATE TABLE rdf_statement (...... > .......) > """ > > > This is the error I got: > > SyntaxError: invalid syntax > File "C:\Documents and Settings\carla\a.py", line 258 > CREATE_STATEMENT_TABLE=""" > ^ > I tried with single quote, getting the same error.It seems not to accept an assignment of a string to a variable. I'm using Python 2.1.1 on WIndows XP. Am I doing something wrong with the syntax? > Thank you and best regards CREATE_STATEMENT_TABLE = """ CREATE TABLE rdf_statement ( ID int, name varchar(64) ) """ print CREATE_STATEMENT_TABLE works on linux python 2.0, nt python2.2 -- BINGO: Das muessen wir noch kommunizieren --- Engelbert Gruber -------+ SSG Fintl,Gruber,Lassnig / A6410 Telfs Untermarkt 9 / Tel. ++43-5262-64727 ----+ From jeff@elkner.net Thu Nov 14 11:51:38 2002 From: jeff@elkner.net (Jeffrey Elkner) Date: 14 Nov 2002 06:51:38 -0500 Subject: [Edu-sig] Thanks In-Reply-To: References: Message-ID: <1037274698.23314.20.camel@mdeicaza> One follow up note - there is another part of the OpenBook Project site at ibiblio that aims to be a "portal" and repository of resources for using Python to teach programming. It is still being actively developed and we hope to both contribute and gather free content as it becomes available:=20 http://ibiblio.org/obp/pyBiblio/ Current highlights on the site include Chris Meyer's "Python for Fun" and Tim Wilson's set of programming problems. Brent Burley had contributed python cgi scripts that permitted folks to try python examples on the web, but the machine that they were running on was attacked last year and we are still in the process of getting it secured and back in operation :-( jeff elkner open book project at ibiblio On Wed, 2002-11-13 at 08:25, Steve Edwards wrote: > Are there any teachers on the list who have actually developed > materials for use in the classroom with secondary school children? On Wed, 2002-11-13 at 16:43, Steve Edwards wrote: > Just a quick note to express my warm thanks to everyone for their feedbac= k > and advice - especially to Michael Williams and Tim Wilson who pointed me= to > some fabulous resources including some of their own. >=20 > Best regards, > Steve Edwards =C3=94=C2=BF=C3=94=C2=AC From wilson@visi.com Fri Nov 15 16:57:56 2002 From: wilson@visi.com (Tim Wilson) Date: Fri, 15 Nov 2002 10:57:56 -0600 Subject: [Edu-sig] Techniques to force students to plan Message-ID: <200211151057.56292.wilson@visi.com> Hi everyone, I'm frustrated right now with my lack of success at getting my students t= o=20 plan their programs more carefully before diving in and coding. This is=20 especially problematic for the ones who struggle a bit more with=20 programming. I had them work on my last assignment in phases. That seemed to help a=20 little bit, but I think they would benefit even more by forcing them to d= o=20 more planning. So what works? Is anyone aware of a technique that may be more effective=20 than flowcharting? I'd love to get some ideas of things to try with our=20 next project. -Tim --=20 Tim Wilson | Visit Sibley online: | Check out: Henry Sibley HS | http://www.isd197.org | http://www.zope.com W. St. Paul, MN | | http://slashdot.org wilson@visi.com | | http://linux.com From todd@thewhittakers.org Fri Nov 15 18:34:20 2002 From: todd@thewhittakers.org (Todd Whittaker) Date: Fri, 15 Nov 2002 13:34:20 -0500 (EST) Subject: [Edu-sig] Techniques to force students to plan In-Reply-To: <200211151057.56292.wilson@visi.com> Message-ID: On Fri, 15 Nov 2002, Tim Wilson wrote: > So what works? Is anyone aware of a technique that may be more effective > than flowcharting? I'd love to get some ideas of things to try with our > next project. Are you doing object-oriented development in Python, or are you doing more procedural development? If its more procedural, then there's a great visual flowcharting tool (i.e. you execute flowcharts) available at http://cis1.wku.edu/visual/ that can help with the design of algorithms. If it's more OO, then this isn't as much of a help. What I've taken to doing in my classes (teaching OOP in Java) is to force test-driven development with JUnit. Students don't buy it at first, so they'll write all the code, then write the test cases. Once I show them (projecting my laptop screen) how much easier it is, and how much better the design ends up being, the light starts to go on. Also, with test-driven development, they're forced to "evolve" the code (and sometimes the interface) as more test cases are added. Thinking of test cases will cause at least some forethought about the algorithm. Perhaps you could have them write the code to test their algorithm first, and then write the algorithm. That should at least delay their impulse to code. -- Todd ------------------------------------------------------------- Todd A. Whittaker mailto:todd@thewhittakers.org http://www.thewhittakers.org/~todd/ ------------------------------------------------------------- From schuerer@pasteur.fr Mon Nov 18 08:19:48 2002 From: schuerer@pasteur.fr (Katja Schuerer) Date: Mon, 18 Nov 2002 09:19:48 +0100 Subject: [Edu-sig] Techniques to force students to plan In-Reply-To: <200211151057.56292.wilson@visi.com> References: <200211151057.56292.wilson@visi.com> Message-ID: <20021118081948.GA21822@caroline.sis.pasteur.fr> Hello, On Fri, Nov 15, 2002 at 10:57:56AM -0600, Tim Wilson wrote: > Hi everyone, > > So what works? Is anyone aware of a technique that may be more effective > than flowcharting? I'd love to get some ideas of things to try with our > next project. I'am teaching in a programming cours for biologists. What we are doing, to encourage the students to think about the problem before implementing it, is to write the algorithm in a natural language pseudocode. We do not really introduce a pseudocode which is even a formal language, but we ask them to describe their solution in their mother natural language (for us french) and discuse it before they start the implementation. The technique does not only help them to design an algorithm, but helps us very often to understand what the difficulties are for them. Katja -- Katja Schuerer Computing Center -- Pasteur Institute From Louis.Bertrand@durhamc.on.ca Mon Nov 18 14:44:05 2002 From: Louis.Bertrand@durhamc.on.ca (Louis Bertrand) Date: Mon, 18 Nov 2002 09:44:05 -0500 Subject: [Edu-sig] Re: Techniques to force students to plan Message-ID: > Are you doing object-oriented development in Python, or are you doing = more=20 > procedural development? If its more procedural, then there's a great=20 > visual flowcharting tool (i.e. you execute flowcharts) available at=20 > http://cis1.wku.edu/visual/ that can help with the design of = algorithms. =20 Todd, that link doesn't seem to work. Do you have an update? Thanks --Louis Louis Bertrand School of Technology, Durham College Oshawa, ON, Canada +1.905.721.3111 x2468 From todd@thewhittakers.org Mon Nov 18 17:04:22 2002 From: todd@thewhittakers.org (Todd Whittaker) Date: Mon, 18 Nov 2002 12:04:22 -0500 (EST) Subject: [Edu-sig] Re: Techniques to force students to plan In-Reply-To: Message-ID: Louis, That is the right link. Unfortunately, I've found that their server is intermittent, as I've discovered many times. If you'd like to contact the author of the tool directly, his name is Thad Crews, and his e-mail address is Thad.CrewsII@wku.edu On Mon, 18 Nov 2002, Louis Bertrand wrote: > > > Are you doing object-oriented development in Python, or are you doing more > > procedural development? If its more procedural, then there's a great > > visual flowcharting tool (i.e. you execute flowcharts) available at > > http://cis1.wku.edu/visual/ that can help with the design of algorithms. > > Todd, > > that link doesn't seem to work. Do you have an update? > > Thanks > --Louis > > Louis Bertrand -- Todd ------------------------------------------------------------- Todd A. Whittaker mailto:todd@thewhittakers.org http://www.thewhittakers.org/~todd/ ------------------------------------------------------------- From ajs@ix.netcom.com Thu Nov 21 13:11:47 2002 From: ajs@ix.netcom.com (Arthur) Date: Thu, 21 Nov 2002 08:11:47 -0500 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) Message-ID: <001201c2915f$8d24e040$9865fea9@arthur> Beth writes: >I realize this doesn't help you at all being that my students are 15 years younger than yours, but I use the deitel book in my >elementary and middle school python classes and they LOVE it. Recent posts on python-list indicate that even among people interested enough in Python to subscribe to that list, there is some considerable disagreement as to whether Python is in fact appropriate/optimal as a first programming language. I believe, at least for a certain potential audience, it in fact is. But would probably not put elementary and middle school students within that target. There is also a very long thread on the python-list as to "Why is Python popular, while Lisp and Scheme aren't?". Logo derived from L:isp, with a specific design goal of being used to introduce children to programming concpets. And to the extent that there remains interest in that, Logo seems to remain today by a wide margin the most widely used tool. I then wonder what folks who are interested in introducing programming to children via Python feel that Python brings to the table that Logo lacks. 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? Art From letondal@pasteur.fr Thu Nov 21 17:22:41 2002 From: letondal@pasteur.fr (Catherine Letondal) Date: Thu, 21 Nov 2002 18:22:41 +0100 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) In-Reply-To: Your message of "Thu, 21 Nov 2002 08:11:47 EST." <001201c2915f$8d24e040$9865fea9@arthur> Message-ID: <200211211722.gALHMgd1247821@electre.pasteur.fr> "Arthur" wrote: > [...] > I then wonder what folks who are interested in introducing programming to > children via Python feel that Python brings to the table that Logo lacks. Or even better - do you know this: Twenty Reasons Why You Should Use Boxer (Instead of Logo) (by Andy DiSessa) ftp://soe.berkeley.edu/pub/boxer/Distribution/20reasons.pdf (Boxer: http://www.soe.berkeley.edu/~boxer/) -- Catherine Letondal -- Pasteur Institute Computing Center From goodmansond@yahoo.com Thu Nov 21 17:31:13 2002 From: goodmansond@yahoo.com (Dean Goodmanson) Date: Thu, 21 Nov 2002 09:31:13 -0800 (PST) Subject: [Edu-sig] Re: not quite Python - be more optimum? Message-ID: <20021121173113.1711.qmail@web21105.mail.yahoo.com> >> not quite Python - be more optimum? Although I can't speek for the education community, the thought is intriguing but scary. I went from BASIC->C->C++,Java,Python. When I learned of Logo I was jealous I missed out. I have yet to dive into functional languages. After getting into Python and having the previous language's concepts make more sense, I wished that I had never visited BASIC but first learned with Python. I would hope programming training with Python could be "dumbed down" enough through curriculum, not re-write or search for a more obscure (most likely unmarketable) language. But, there may be the need for another toy/educational language. ABC, anyone? (If your feeling testy, please don't take my vague adjectives as taunts, but simple attempts at brevity.) -- Dean http://pycs.net/sqr __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus – Powerful. Affordable. Sign up now. http://mailplus.yahoo.com From hancock@anansispaceworks.com Thu Nov 21 18:35:13 2002 From: hancock@anansispaceworks.com (Terry Hancock) Date: Thu, 21 Nov 2002 10:35:13 -0800 Subject: Fwd: Re: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) Message-ID: 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 From Jason Cunliffe" Message-ID: <000701c2918c$307024e0$6501a8c0@vaio> > But, there may be the need for another toy/educational > language. ABC, anyone? If there is I suspect it will look a lot like Rebol. fast fun different download Rebol/View [free] and play REBOL http://rebol.com/download.html ./Jason From DaddyGravity@livingcode.ca Thu Nov 21 19:46:10 2002 From: DaddyGravity@livingcode.ca (Dethe Elza) Date: Thu, 21 Nov 2002 11:46:10 -0800 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) In-Reply-To: Message-ID: 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 > From urnerk@qwest.net Thu Nov 21 19:55:47 2002 From: urnerk@qwest.net (Kirby Urner) Date: Thu, 21 Nov 2002 11:55:47 -0800 Subject: Fwd: Re: [Edu-sig] Why is Logo popular, while Python isn't? In-Reply-To: Message-ID: <5.1.1.6.0.20021121111830.01bb0748@pop.ptld.qwest.net> At 10:35 AM 11/21/2002 -0800, Terry Hancock wrote: >Some people are of the "more-the-merrier" school regarding languages -- Yeah, that's me pretty much. A programming language is an API is an interface. A kitchen appliance is an interface (a control panel), as are desktop applications (spreadsheets). Life is packed with these gizmos we need to interact with (driving a car), and the sense should be of an endless need to tackle new interfaces. The goal for a programmer is to get familiar with key concepts (flow of control, efficiency of algorithms, data structures, layers or levels of detail...) and then look for how they're implemented in whatever languages (*if* they're implemented). I think teaching/toy languages have their place. The Lego Mindstorms thing is okeedokee. Programming is drag and drop of flow charty symbols, filling in a few properties, then sending it to the main unit (the RCX) via infrared. The language is very turtlish (forward, back, rotate) but also event oriented, in that the robots have sensors (touch, light). http://mindstorms.lego.com/eng/products/ris/rissoft.asp Kids get to build the machines as well as program them, which adds a useful dimension. I had an OK experience tutoring kids with this kit. Partly my attitude/bias is informed by wanting to teach/learn mathematics type stuff. It's easy to carve out bite sized challenges like generating the Fibonacci numbers. There's a fairly breezy, superficial "teach me what I need in 30 minutes" aspect to this. I'm not recommending that *every* language be approached in this way, but I think hasty, breezy familiarity with a language is sometimes just what the doctor ordered, and having the confidence to "speed read" language manuals is something I'd like to develop in students. Some languages don't lend themselves to this at all, but Python does (you can start using it immediately -- Logo too). Why learn Logo? Because of the literature that's grown up around it. I'd use Logo in a class *just because* that's what's featured in 'Turtle Geometry' by Harold Abelson and Andrea diSessa (MIT, 1980). Subtitle: The Computer as a Medium for Exploring Mathematics. In other words, given my motive is exploring mathematics, I'm led to Logo by the books (not vice versa). Likewise, I'm led to J because Kenneth Iverson shares my math-through- programming interest and has companion labs (in J language) for both 'Concrete Mathematics' by Knuth et al, and 'The Book of Numbers' by Conway and Guy. The literature leads me into it. Besides, not many languages give you a primitive operator to invert a matrix, or take the derivative of a polynomial (Mathematica does, but it's rather spendy and fat). And I think it's just fine to learn some of a language just to be able to appreciate a connected body of literature -- and then forget most of the details. What sticks with you are useful concepts, and the experience of learning -- hard to quantify, but valuable nonetheless. If your goal is to write large applications with fancy GUIs (e.g. games), then you need to really buckle down and learn a language *well*. I often use Xbase for this purpose. Sophisticated IDE (all the drag and drop widgets), object oriented, embedded SQL. Not very cross-platform though, and not suited to a lot of things Python would be *much* better at. My Python stuff tends to be rather short, and not GUI-intensive (I write my modules to be imported and interacted with at the command line, not run top-to- bottom as scripts, prompting for inputs). My rule of thumb is: programming is for everyone who's interested and has the necessary privileges (a certain living standard is presumed, to even have access to computers, let alone fancy toys like Mindstorms), and the goal should always be to learn a minimum of two languages fairly proficiently, never just one, plus one should cultivate the habit of tackling additional languages "just for the fun of it," even if just in a breezy, off-the-cuff kind of way (the way a lot of people have learned HTML). And when it comes to learning a minimum of two languages, I don't think you can go wrong by making one of them Python. Kirby PS: speaking of Fibonacci Numbers, there's this nascent Zope server using the Plone CMF that I'm working on with my friend Stu, that's not really open to the public yet. But here's a sneak preview, in the form of an article by myself re generating the Fibo numbers, using both Python and J. Very basic stuff. From mats@laplaza.org Thu Nov 21 19:44:11 2002 From: mats@laplaza.org (Mats Wichmann) Date: Thu, 21 Nov 2002 12:44:11 -0700 Subject: Fwd: Re: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) In-Reply-To: Message-ID: <5.1.0.14.1.20021121122921.0285cfe8@204.151.72.2> >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: Sigh. Python's "for" loop is more intuitive than most because you're explicit about what you're looping through. for number in in 0,1,2,3,4,5,6,7,8,9: for color in "red", "blue", "green": etc. Of course, you can save your sequence as a "variable", colors = ("red", "blue", "green") for color in colors: for the *special case* where you want to loop through a numerical sequence you can use a helper tool named range() to generate that sequence. >I just bring them up, because they are teaching >obstacles for younger kids. Really, they're teaching obstacles for the teacher (grin). Our challenge is to not make them learning obstables for the kids... and sometimes our own programming background leads us to choose a non-optimal way to present a topic (my own first four seriously used programming languages were Fortran II, Basic, Pascal, and C ... guess what I tend to draw from?) From urnerk@qwest.net Thu Nov 21 20:19:08 2002 From: urnerk@qwest.net (Kirby Urner) Date: Thu, 21 Nov 2002 12:19:08 -0800 Subject: [Edu-sig] Sneak preview In-Reply-To: <5.1.1.6.0.20021121111830.01bb0748@pop.ptld.qwest.net> References: Message-ID: <5.1.1.6.0.20021121121746.011cbc20@pop.ptld.qwest.net> > >PS: speaking of Fibonacci Numbers, there's this nascent Zope server >using the Plone CMF that I'm working on with my friend Stu, that's >not really open to the public yet. But here's a sneak preview, in >the form of an article by myself re generating the Fibo numbers, >using both Python and J. Very basic stuff. Duh... being just a little *too* hasty/breezy. Forgot to add the URL which is: http://www.dstoys.org/Members/kirby/Folder.2002-11-20.0416/fiboprog.html/view (and a very zopey lookin' URL it is, too). Kirby From ajs@ix.netcom.com Thu Nov 21 20:30:26 2002 From: ajs@ix.netcom.com (Arthur) Date: Thu, 21 Nov 2002 15:30:26 -0500 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) References: <001201c2915f$8d24e040$9865fea9@arthur> Message-ID: <002701c2919d$480ab730$9865fea9@arthur> ----- Original Message ----- From: "Terry Hancock" To: "Arthur" 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 > From ajs@ix.netcom.com Thu Nov 21 21:10:32 2002 From: ajs@ix.netcom.com (Arthur) Date: Thu, 21 Nov 2002 16:10:32 -0500 Subject: [Edu-sig] Why is Logo popular, while Python isn't? Message-ID: <005401c291a2$7658b650$9865fea9@arthur> > > 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 From hancock@anansispaceworks.com Thu Nov 21 23:03:39 2002 From: hancock@anansispaceworks.com (Terry Hancock) Date: Thu, 21 Nov 2002 15:03:39 -0800 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) In-Reply-To: <002401c2919c$c7f6c840$9865fea9@arthur> References: <001201c2915f$8d24e040$9865fea9@arthur> <002401c2919c$c7f6c840$9865fea9@arthur> Message-ID: 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 ... ... 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 From ajs@ix.netcom.com Fri Nov 22 14:03:27 2002 From: ajs@ix.netcom.com (Arthur) Date: Fri, 22 Nov 2002 09:03:27 -0500 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) Message-ID: <007c01c2922f$f3343b80$9865fea9@arthur> Terry writes - >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. I can't disagree, having followed developments in the realm of graphics for some time. Certainly much of the most interesting work in that realm has been done by young folks. VPython, just as an example, was written by David Scherer (who was at one point active on this list) when he was a college sophomore, I believe. And already an accomplished and experienced programmer. So we seem not to be disagreeing much on specific points, just a little as to the relevance of those points to the issue. But I also agree that, all things being equal (or close enough), exposure to a professional programming language is preferable to a pseudo language, at even a young age. But more than anything that's the question I am raising. Is all things being equal, or close enough, a realistic possiblity?? I would guess the Logo and Boxer folk might distinguish between a professional prgramming language and a language designed for personal use, and would argue that their languages are good for a lifetime, for personal needs. If one is going "pro" certainly one goes further. But with the Logo and Boxer experience put to good use, even in that case. >PC >The University of California has prohibited our providing information about PC >Boxer. Seek other sources of information. Followed that thread myself and came to a dead-end. It looks like there may have been a commercial spin-off, which had made the software available at one point, but then went to a purely on-line curriculum. Anyway, could not find a Windows version to look at - anywhere. >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. Yes. But if Python gets there it seems to me it will be from the top down. In other words I believe Python's "wheelhouse" in terms of education is at the college and late high school stages. If it becomes pervasive enough there, the advantages of using it for younger grades might then, and - I would argue - only then, become a true factor. >What *I* think you need, is to learn lots of different *programming styles*: >procedural, functional, object-oriented, connectionist, and so on. Interesting that for someone like myself for whom Python is my first, and really only language, these distinctions are somewhat lost on me. I have, and continue to develop, a sense of what is possible and how things are best approached in Python. What style that leads me to in a particular case is not something of which I am very aware. To the extent that Python *is* the future, maybe those distinctions are becoming less meaningful. And other than needing to compromise on speed issues (I am doing 3d graphics) I have yet to come across anythng I wanted to accomplish that I couldn't get done in Python in a way that ended up seeming succinct and elegant. Though I am not doing anything tremendously sophisticated, of course. On the other hand, now that Boost2 is out, I am intent on learning enough C++ to allow me to use it in conjunction with Python (and Boost) to be in a position to eliminate any performance bottlenecks that I encounter that are in fact more than an issue of inefifient Python coding. Given that I will be fully configured to conquer the world, it seems to me. Art From ajs@ix.netcom.com Fri Nov 22 14:20:02 2002 From: ajs@ix.netcom.com (Arthur) Date: Fri, 22 Nov 2002 09:20:02 -0500 Subject: [Edu-sig] re: Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) Message-ID: <009801c29232$420b4490$9865fea9@arthur> I had written - >And other than needing to compromise on speed issues (I am doing 3d graphics) I have yet to come across anythng I >wanted to accomplish that I couldn't get done in Python in a way that ended up seeming succinct and elegant. Though I am >not doing anything tremendously sophisticated, of course. I should add to that, the ability to do something equivalent to Java web-based applets - that is without giving up my access to C based Python libraries, like Numeric and VPython. Not a feature request - just verbalizing. Art From urnerk@qwest.net Fri Nov 22 18:14:03 2002 From: urnerk@qwest.net (Kirby Urner) Date: Fri, 22 Nov 2002 10:14:03 -0800 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) In-Reply-To: <007c01c2922f$f3343b80$9865fea9@arthur> Message-ID: <5.1.1.6.0.20021122095501.01ba6200@pop.ptld.qwest.net> At 09:03 AM 11/22/2002 -0500, Arthur wrote: >So we seem not to be disagreeing much on specific points, just a little as >to the relevance of those points to the issue. But I also agree that, all >things being equal (or close enough), exposure to a professional programming >language is preferable to a pseudo language, at even a young age. But more >than anything that's the question I am raising. Is all things being equal, >or close enough, a realistic possiblity?? I'm a bit skeptical of this "professional vs. pseudo" dichotomy. A graphical programming environment such as provided by Lego Mindstorms isn't pseudo in that it actually works to control the movements of an RCX. Logo actually works too. Pseudo suggests pseudo-code, i.e. code written to look like something that might really execute, but really doesn't (usually because it's too simple). What's a more useful distinction, I think, is "general purpose" versus "special purpose" languages and APIs (to some extent, an API is a language). This distinction cross-cuts the "professional versus toy" categorization, in that a language used by professionals may well be very specialized. Much of the coding that goes on in this world is *not* directed to some horizontal consumer market. A lot of pro coding is completely for inhouse consumption, internal to an organization, and all kinds of languages get used. Being a student is a specialized activity, and it's a "profession" for those engaged in it quasi full time, or at least engaged in it deeply. So in school, we maybe learn languages that are specialized to some educational goal. But I don't think these are necessarily toy or pseudo languages. For example, a lot of math teachers are deeply invested in TI culture (Texas Instruments), and there's a kind of programming language that goes with those. It's specialized, but not a merely a toy language -- many professionals use it. In any case, I think we're all in agreement that Python is a good general purpose language that students could benefit from learning, and early exposure is not necessarily a bad idea. However, I see no real point to disparaging Logo as a "toy language" if the thrust that label is to try pushing Logo out of the early grades market. Kids *should* play with toys -- the specialized professional tools for their age group. Kirby From hancock@anansispaceworks.com Fri Nov 22 18:32:03 2002 From: hancock@anansispaceworks.com (Terry Hancock) Date: Fri, 22 Nov 2002 10:32:03 -0800 Subject: [Edu-sig] Python applets, was (re: Why is Logo popular, while Python isn't?) In-Reply-To: <009801c29232$420b4490$9865fea9@arthur> References: <009801c29232$420b4490$9865fea9@arthur> Message-ID: On Friday 22 November 2002 06:20 am, Arthur wrote: > >And other than needing to compromise on speed issues (I am doing 3d > graphics) I have yet to come across anythng I >wanted to accomplish that I > couldn't get done in Python in a way that ended up seeming succinct and > elegant. Though I am >not doing anything tremendously sophisticated, of > course. I bet you are, actually. You probably just don't know what to call it. ;-) There are advantages to learning the terminology -- but, just as with grammar, you don't have to be aware of it to use it. > I should add to that, the ability to do something equivalent to Java > web-based applets - that is without giving up my access to C based Python > libraries, like Numeric and VPython. > > Not a feature request - just verbalizing. I am, however, working on something that would allow you to run a GUI Python program like a Java program (on Jython) OR as a python application without changing the code. I am aiming to have this ready before the end of the year at the latest, as I plan to begin developing for it next year as the client side of my current project ( http://www.anansispaceworks.net/NaryaInfo/ ). You can, of course, currently write two versions of a program to run in these two environments now (Jython provides this, http://www.jython.org ), but there is no shared GUI environment or even canvas object. The mapping between the different available packages isn't that complicated, but no one has actually made the leap of spanning them. If you are content to force your users to download Sun's Java plugin so they can run Java2+Swing applets, then you *can* code to AnyGUI and use the Java-Swing backend for the web, and any of several GUIs for running natively. But that won't run in "stock" proprietary browsers or free browsers (generally speaking, though, free browsers require a Java OJI plugin to run any kind of Java). My research says the easiest solution is to write a Jython+Java1+AWT renderer for PyUI ( http://pyui.sourceforge.net ), and to improve the existing PyGame+SDL renderer (which should support at least Linux, Unix, Windows, Mac, BeOS, and should be portable to just about anything), so that they are truly 100% compatible. This looks like 200 - 500 lines of Python code added to PyUI. Then application/applets can be written on PyUI directly -- OR, one could finish the PyUI backend for AnyGUI ( http://anygui.sourceforge.net ), and code on the AnyGUI API (which gives the end-user the additional possibility of running the application with wxWindows, Tkinter, PyGTK, and other Python GUIs if they prefer). Unfortunately, this is unlikely to work for something like VPython (unless you are prepared to do a *lot* of work to port it), which uses extension modules. Would love to see that work, of course -- but it's a little beyond me. ;-D I understand that Numeric has in fact been ported to Jython (as a Java extension), which is understandable considering that Jython and Numeric were written by the same person. I don't have details on that, though. Someday, it might be possible to have a Python plugin that runs Python applets, just as the Sun Java plugin runs Java2 applets. But my initial research into that suggests it will take a lot more work. Part of the attraction of the approach I'm taking, though, is that it makes such a solution viable, and creates a motivation to create the applets that such a system would run. If and when there is a supply of applets that could be sped up and/or extended by a native Python applet plugin, there will be a demand to create one. This is one path to a Free applet platform, and it would be able to run native extension modules, as you want. The other is making the KaffeOJI or other Free JVM fully compatible. But that of course, won't run native extension modules, nor would it be as fast. That's perhaps reason enough to prefer the native Python applet plugin approach. I'm getting a little off-topic here, but I do think this will be good for education, by making the software more accessible. Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From hancock@anansispaceworks.com Fri Nov 22 19:45:35 2002 From: hancock@anansispaceworks.com (Terry Hancock) Date: Fri, 22 Nov 2002 11:45:35 -0800 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) Message-ID: Let me summarize my point, since I think we agree on everything else. :-) I think the reason why one would want to teach Python, instead of, say Logo or Boxer, is NOT because Python is a *better* teaching language, but because it is more mainstream, AND it *comes close* to being *as good as* Logo for teaching. So, why does the mainstream-ness matter -- especially for elementary kids? 1) The teacher knows it. (In my case, this means me, the parent, who is tutoring my own children). That's because Python is actually useful to the teacher, not just to the kids. Knowing is widely regarded as a pre-requisite for good teaching. ;-D 2) The kids know the teacher uses it, so they can see it has real-world applications. That's not a teenager-only, "so I can get a job" kind of concern. Kids want to use "real stuff". My dad was a mechanic and a machinist, so when I was seven, I was very fascinated with cars and engines and lathes and mills and so on. I don't work on them now, but it motivated me to understand a lot of design and engineering principles. I still like machines, and I still have the hand-eye coordination and mechanical skill. My son has ambitions of writing his own computer games. I can try to generalize that, and say "well you have to learn all these concepts, which you can generally apply to the problem, and then one day you can take the time to actually learn the sort of language they're written in". OR, I can say, "hey 'Solar Wolf' is written in Python, want to learn Python?" He already wants to know how to hack Thrust so that the gravity points sideways (which is probably possible, though I think Thrust is written in C). My mom wanted to give my kids a big Christmas gift one year, and suggested getting a $150 toy piano from Amazon.com. I said "$150 for a toy!? -- why not spend the same money on an inexpensive, but *real* keyboard synthesizer? They'll like it better, they can keep using it as they get older, they can do music homework/practice with it, and (if it has a MIDI port), we'll one-day be able to hook it up to their computer and do sequencing and stuff". Same reasoning. So why not teach C++ or Java or Lisp? I think those languages are simply too hard to understand. There's too much time between writing the code and seeing the result, too much required groundwork to make anything remotely useful, and so on. Anybody under the age of 13, will, IMHO, get frustrated, bored, and lose interest. Logo (and now Boxer?) were created (or at least applied) to solve that problem (and it was clearly a problem when they were created). If Python, as a mainstream language, can even come close to Logo's simplicity of use, however, I think it ought to at least be considered as an early teaching language. Especially if you, the teacher, know Python and not Logo. If on the other hand, you are teaching Logo successfully, then I'm not sure Python should displace it. It is probably still harder to learn than Logo, and the merits of using a mainstream language are primarily the two I mention above. If you already know Logo, "1" doesn't apply, and if your kids are already paying attention, then "2" doesn't either. But if you're like me, and you were thinking, "gosh I need to have Logo to teach my kids" (but you already have Python), I'd say, forget it -- teach Python, you won't lose much, and it will be easier for you, which means you're more likely to do it. Lastly, does it really matter if you teach kids to program when they're so young? I doubt it seriously harms them not to, any more than not learning the piano will. On the other hand, playing the piano, and programming, both are likely to improve hand-eye-coordination, creative-thinking, and reasoning. Both are a lot of fun. And both are things they will enjoy for a lifetime. Don't force them, but don't deny them, either. Choice of instrument is much less important. Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From guido@python.org Fri Nov 22 20:25:04 2002 From: guido@python.org (Guido van Rossum) Date: Fri, 22 Nov 2002 15:25:04 -0500 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) In-Reply-To: Your message of "Fri, 22 Nov 2002 11:45:35 PST." References: Message-ID: <200211222025.gAMKP4a30361@odiug.zope.com> > I think the reason why one would want to teach Python, instead of, say Logo > or Boxer, is NOT because Python is a *better* teaching language, but because > it is more mainstream, AND it *comes close* to being *as good as* Logo for > teaching. > > So, why does the mainstream-ness matter -- especially for elementary kids? 3) You can get tons of 3rd party extensions that do cool stuff. Even if if's above the kids' heads, the teacher might be able to create a simplified API to e.g. pygame. 4) There are lots of others teaching it, and you can use their materials. --Guido van Rossum (home page: http://www.python.org/~guido/) From ajs@ix.netcom.com Fri Nov 22 23:22:36 2002 From: ajs@ix.netcom.com (Arthur) Date: Fri, 22 Nov 2002 18:22:36 -0500 Subject: [Edu-sig] Why is Logo popular, while Python isn't? (was "using Python for a CS 2 course" ) Message-ID: <018401c2927e$0b404090$9865fea9@arthur> Terry writes - > Lastly, does it really matter if you teach kids to program when they're so > young? > > I doubt it seriously harms them not to, any more than not learning the piano > will. On the other hand, playing the piano, and programming, both are likely > to improve hand-eye-coordination, creative-thinking, and reasoning. Both are > a lot of fun. And both are things they will enjoy for a lifetime. > > Don't force them, but don't deny them, either. Choice of instrument is much > less important. I think we are all starting from the point of agreement that in todays world some exposure to what programming is all about, even if only in a broad way, is probably a good thing to find its way into folk's experience. Many folks might in fact disagree with us. But it wouldn't make sense for them to be spending time on Python's edu-sig list. I have always felt that it should be introduced in relationship to math - which is the Kirbyish approach. But the point being I don't think I see the piano playing analogy as relevant. I happen not be neutral as to whether kids should have the opportunity to learn a musical insturment. I think they should. And I think there is sufficient evidence to suggest it is better be done at a pretty young age. Mostly just empirical evidence. I don't think the same happens to be true as to programming. Just speculation, admittedly. I just believe that the prerequisite information, experience and cognitive development necessary to get much out of an effort to understand programming concepts generally kicks in at a later stage - and that in any case, nothing of significance is lost by beginning the process later. Learning to play the piano at age eight, might in fact be a better prerequisite for learning to program at 16, than learning to program at eight - if that makes any sense. But of course I started in my forties. So might be prejudiced on the issue. Art