From ajs@ix.netcom.com Thu Aug 1 13:22:46 2002 From: ajs@ix.netcom.com (Arthur) Date: Thu, 1 Aug 2002 08:22:46 -0400 Subject: [Edu-sig] Re: [Tutor] Use? Abuse? Amusement? Amendments? References: <3D485C3F.3060304@aon.at> Message-ID: <006201c23a0b$478401c0$9865fea9@arthur> > Your opinion? Very cool! Especially for someone like myself who would like to be getting a handle on generators. Not just the how, but the why and when. The only amendment I would like to see is tutorial type annotations. Recursive generators is a bit more than I seem to be able to fully follow without some help. Is this a good candidate for Useless Python? Art From lha2@columbia.edu Fri Aug 2 17:44:25 2002 From: lha2@columbia.edu (Lloyd Hugh Allen) Date: Fri, 02 Aug 2002 12:44:25 -0400 Subject: [Edu-sig] Re: [Tutor] Use? Abuse? Amusement? Amendments? References: <20020802160004.27271.79741.Mailman@mail.python.org> Message-ID: <3D4AB6E9.43C254B0@mail.verizon.net> Arthur said: > > Your opinion? > > Very cool! Especially for someone like myself who > would like to be getting a handle on generators. > > Not just the how, but the why and when. > > The only amendment I would like to see is tutorial > type annotations. Recursive generators is a bit > more than I seem to be able to fully follow without > some help. > > Is this a good candidate for Useless Python? > > Art I found it helpful to turn on the debugger before running this ("step" through items that are not turtle instructions, and "over" turtle instructions, just as one tends to step over everything that is not "print x"), and also to read and try http://www-106.ibm.com/developerworks/library/l-pycon.html?n-l-9271 From urnerk@qwest.net Sat Aug 3 16:29:44 2002 From: urnerk@qwest.net (Kirby Urner) Date: Sat, 3 Aug 2002 11:29:44 -0400 Subject: [Edu-sig] Does edu-sig extend to Jython? In-Reply-To: <3797.146.50.18.115.1024652520.squirrel@webmail.science.uva.nl> References: <3797.146.50.18.115.1024652520.squirrel@webmail.science.uva.nl> Message-ID: <20020803112944.6858c977.urnerk@qwest.net> >From math.forum math-teach: [6] Java bigInteger class: http://world.std.com/~reinhold/BigNumCalc.html http://java.sun.com/products/jdk/1.1/docs/api/java.math.BigInteger.html (note: many computer languages have built-in big integer capabilities, including Python, Scheme and J). Although Java is useful to learn, I advocate starting with an interpreted language with an interactive shell, moving to Java and/or C++ etc. from there. Python is a useful starting place, as Jython (Python implemented in Java) gives you access to the Java class hierarchy (more on that soon). Full text: http://www.mathforum.com/epigone/math-teach/swoystexzher ============================ Jython 2.1 on java1.4.0 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> from java.util import Random >>> from java.math import BigInteger >>> def getprime(bits=1024,certainty=100): ... rnd = Random() ... return BigInteger(bits,certainty,rnd) ... >>> getprime() 1067722720141438416936329289263562925035919827052678321832681866990063551831478848783821605522120173 6810758438542124774962778293181664954075068528879431188671218617821416729983420767730160839601649102 7878857263718814234305416020293364487398387002390977394929459089980299322531800903440856855529607114 180383003 >>> getprime() 1635022550460085571394950585678011702182813484094648009782139177599579586182605830422264786759942806 6019544571783674607592559827973071614319273868858895160925422316661623514842803442153354380766931493 9242514490725373277904794746971911859355192254290778916168701651664990099347432156336759947584206104 118948493 >>> getprime() 15706222468499394013126985176537386112522449249758855356092634960514837608365322425798261607230541327 89581600957239025130461151581105193875191042660095633244943545323662018745303479566186530171082550165 31711741827949634958045834621953209681970713938226207782244603038171287845793911833631631265924892410 373287 >>> bigint = getprime() >>> type(bigint) >>> bigint.floatValue() Infinity >>> bigint.isProbablePrime(99) 1 >>> bigint.isProbablePrime(100) 1 >>> bigint.pow(2) 214793268321532821588032256725613858449483467767599346997237912568050073085731530361161226 725695449134622769743890477430905392637048124102454975861838931014229255152730779852520534 254378200892173836345052779200400122433349130797672576059665755720489272089893954150124169 523901608928637574073289079575702579235625324740500238669587719886835908838641130320542845 578194705858533582910376157235151754487862211543516033122087730609216769159405204723344850 797077730939061275722013680290323910220972076841881318348356037709865572730712481257166680 40788211105810341358163047403420965747220457580382148416014744960379763788929 >>> c = bigint.toString() >>> c '146558271114779742269301322602100529404339825949953501568329885567000695069308802534706613 9041468129102794812323684613120434312882417587175479128356285499832976028096600983849374227 9122680205473294626276722594258350825671715818394020427154688565234068066088213224883990455 9424077012873102161456076093117316673' >>> type(c) >>> def getpubkey(): ... return getprime().multiply(getprime()) ... >>> getpubkey() 127133456493088279995776882752806725520417953316178756866731817439300154920002336273874812973 932018769546144576391745529354677995406208924278599998857560993300626991338228551502052810615 810760467669950222620774460378427571545522173710439024339715394303867361788519087423082692724 751114134332697560062232157681946561523101996375783766149719220687611858586527051123811845006 341374879830653553796763328516750433647605584361271831289770121536089641369031180740570946982 659204264071753670488187301082391699009142364892039468587514022324815769559211318637652948317 84031938596412373659538624251864114757452178888891855688569 From glingl@aon.at Sun Aug 4 01:22:49 2002 From: glingl@aon.at (Gregor Lingl) Date: Sun, 04 Aug 2002 02:22:49 +0200 Subject: [Edu-sig] Girls, women and Programming (- and Python) References: <3D485C3F.3060304@aon.at> Message-ID: <3D4C73D9.2000704@aon.at> Hi Pythonistas! I'm currently preparing some introductory material to programming for young people (13-17 years approx.), and for this Python is my language of choice. I'll do it in German and I hope to get it published, as there is a very severe lack of material of this kind in the German speaking countries. (On the other side Python still is not very well known at least among teachers in Germany - so it's quite uncertain who will be willing to study such things. Nevertheless trying to make Python more popular is worth the effort.) Of course many important questions concerning this activiy turn around in my head, and among these there is one problem, which I consider to be especially important but don't know how to tackle it. I'll formulate two questions: 1) Why are there so few girl and women interested in programming? (look, for instance, at the list of partiicipants of all those mailing lists) And consequently 2) How do I get them interested? Which kinds of material, approaches, examples etc. are appealing to female students? Do YOU have any experiences concerning this question. Jeff Elkners Python-Video implicitly adresses this problem in a very fine way, choosing a girl as the main propagator of Python. On the other hand looking at a video and reading a tutorial text are different things - so possibly your opinions, experiences and hints could help me to adress this problem in my work. I would really wish to make programming more interesting, enjoying and challenging to female students. Thanks in advance for your replies Gregor Lingl From cce@clarkevans.com Sun Aug 4 16:32:19 2002 From: cce@clarkevans.com (Clark C . Evans) Date: Sun, 4 Aug 2002 11:32:19 -0400 Subject: [Edu-sig] Girls, women and Programming (- and Python) In-Reply-To: <3D4C73D9.2000704@aon.at>; from glingl@aon.at on Sun, Aug 04, 2002 at 02:22:49AM +0200 References: <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <20020804113219.A10638@doublegemini.com> | 1) Why are there so few girl and women interested in programming? | (look, for instance, at the list of partiicipants of all those mailing | lists) In the U.S. this is mostly cultural, programming is a "boy" thing since it is "technical". This really irritates me, but both my teen-age cousin and my little sister (now in college) quoted me this exact idology -- no amount of resoning helped. Their parents did them the greatest dis-service by re-enforcing this insane cultural division and rebutting me on every turn. Consequently, one is now becoming a nurse and the other one is a sales clerk. Both of them had the brains to be strong programmers. Pity. I'd say the biggest problem leading up to this is that Girls are typically shorted in Math and Science. Teachers don't go out of their way to explain hard concepts and the Girls are culturally penalized for being inquisitive. Instead they are focused on their Language, Social Studies, and other Liberal Arts classes. Thus, one of the biggest problems when teaching Girls to program (as I tried to teach my little sister) is that they frequently lack solid Mathematical background, and hence fall short when facing simple logical constructs; such as the transtive property: (A or B) and C <==> (A and C) or (B and C) | 2) How do I get them interested? Which kinds of material, approaches, | examples etc. are appealing to female students? Following are thoughts as to how I would do it... they are not tested and are merely specification. So please take any statements given very lightly. First, I'd be very concrete. If possible, I'd start with a local shop keeper who has a concrete problem to be solved. Have the girls document this problem in detail, writing out the requirements and other such things. This step will "orient" themselves to the end goal of programming -- to help someone else save time. I speculate that once programming is grounded in a real-world need such as this, Girls will be much more attentive to the learning exercise. Further, in this step you are leveraging their strong liberal art background, thus leading them into computer science from their strong hand. Next, I'd have them formally write out the requirements in a language like "structured english". Unfortunately, the best text on this subject, Tom DeMarco's Structured Analysis and System Specification is out of print. This book in particular has a brilliant explanation of what programming is all about -- model building. And it goes into detail about old-style system specifications; which, BTW, use indentation for structure. Parallel to the thread above, I'd start them off with Charles Petzold's book CODE. This is an exquisite introduction to how information is stored in a computer, how transistors work, etc. Without this sort of book everything that Python does is "magic" ... and you want to avoid magic if at all possible. For an excersise, I'd start having children learn to count in binary using their fingers. Then, if you have a 30 some group; I'd build an adder. Have each person be an OR or AND circut. Do this outside on the playground so that it's fun. Have them pass around blocks with a 1 on one side and a 0 on the other. Following Petzold's work, I would dive directly into logic and formalism. For an class here in the U.S., I'd start with and ambiguous sentance "Tom or Jane will go to the store". This could mean Either Tom or Jane, but not Both; or Tom or Jane or Both Tom and Jane. Explain that computers are very strict and that they form a "model" or "interpretation" of reality. At this point, so that they don't loose track of their end goal; I'd have them re-write their requirements to be a bit more "formal". At this point, you can teach them about transitive law by simple use of truth tables, etc. These sort of things are best done in an "oh by the way" as if they were just "mere details" as to how the "comptuer program operates". Avoid at all costs the word "think". Comptuters do not think, they operate. Talking about computers as if they think just adds to the mysticism and creates fear. Computers are dumb boxes that do exactly what you tell them to do. It's very important that the student feel like they are in control at all times. Somewhere around now, you will want to explain the parts of a computer to your class. The CPU, the BUS, MEMORY, etc. If possible do this in a role-playing manner. Have one person be the CPU, another person be the BUS, still another person be the MEMORY (in front of a bookshelf if at all possible). Getting a mental model for how a comptuter operates is very important step that should be tackled before showing them how to sling code. This is *alot* of work up till this point, but here, and only here should you introduce them to slinging code. Start with small stuff, and motivate each thing you teach them as part of the "solution" to the problem that they started the class with. Let the program which solves the shop keeper's problem emerge in front of them. It's perfectly OK for you to write the code out and explain it for them. Better yet, develop it interatively. Don't bother about explaining HOW it works. If you've done your job up till now (via Logic, Petzold, etc) it will be obvious to them how it works... they should grasp it intutitively. What is important is that a working program is pumped out very quickly here, don't worry about everyone getting everything. Once they see a working program constructed before their very eyes (with them suggesting how to build it), computers will no longer be magical for them. And taking away the magic is the most important thing that can happen. Finally, you can start-in with your traditional programming course. Going through line by line how the program written works, and making improvements to it. After a short while, then you can start in with having them do their own creative works of authorship... in groups. I'd never have them work individually till the very end. Programming, IMHO, is a group activity. Think Pair Programming and XP all the way through this. Let the student guide you... they will know what has to be done, they just won't know how to do express it in code. With time they will learn by example. I hope this makes sense; after teaching a few people how to program and musing how this would scale to a class, this is probably how I would approach it. Kinda non-traditional, but then again, I wouldn't know what traditional is... | Do YOU have any experiences concerning this question. Jeff Elkners | Python-Video implicitly adresses this problem in a very fine way, choosing | a girl as the main propagator of Python. | | On the other hand looking at a video and reading a tutorial text are | different things - I'm sorry that I can't give "experiential" knowlege. Above is idealistic thoughts as to how it could work, albeit thoughts which are extrapolated from many small teaching experiences. Best, Clark -- Clark C. Evans Axista, Inc. http://www.axista.com 800.926.5525 XCOLLA Collaborative Project Management Software From ajs@ix.netcom.com Sun Aug 4 16:41:42 2002 From: ajs@ix.netcom.com (Arthur) Date: Sun, 4 Aug 2002 11:41:42 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython? Message-ID: <011401c23bcd$74592950$9865fea9@arthur> Kirby - Not relevant so much to the Jython issue, but I think quite relevant to your full-text post at the mathforum, is Tim Berners-Lee's IPC10 presentation - notes at: http://www.w3.org/2002/Talks/0206-python/ Art From djrassoc01@mindspring.com Sun Aug 4 18:18:35 2002 From: djrassoc01@mindspring.com (djr) Date: Sun, 04 Aug 2002 12:18:35 -0500 Subject: [Edu-sig] Girls, women and Programming (- and Python) References: <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <3D4D61E9.6409EC29@mindspring.com> (Also sent to the original poster...) Gregor Lingl wrote: > ... > I'll formulate two questions: > > 1) Why are there so few girl and women interested in programming? > (look, for instance, at the list of partiicipants of all those mailing > lists) > > And consequently > 2) How do I get them interested? Which kinds of material, approaches, > examples etc. are appealing to female students? > > Do YOU have any experiences concerning this question. J Yes, I have some experiences in this area. See my Pearls of Perl handout, the other Perl items, and the Mars Space camp link. http://home.mindspring.com/~djrassoc01/ I did the computer club sessions last year using the same approach as with Perl but using Python and it worked well. The handouts are not ready to go up yet though. If I had to boil what I learned about this down to 25 words or less, I would say: Boys learn by taking things apart. Girls learn by putting things together. The implication of this (gross oversimplification) is that in addition to the basic elements of the language you give boys examples which do things computationally (and they must all have a visual graphical componet) and encourage them to tear it apart, change it, and try to make it work. With girls, in addition to the basic elements of the language, you give them templates that they can expand upon and mold to their taste that produces something that they feel is intrinsically valuable as an end goal (like an interactive story or what-if diary). So, the task of writing an interactive story using Perl or Python or whatever works well as a vehicle for an overall goal of teaching a computing language because it is a goal beyond the learning of the computing language of itself and it is not mathematical but literary as a focus and that works better for many students who have written stories from Grade 1 but have not had the same experiences in Math. [You can lament this lack of math experience extensively and say it should be so and argue that you should use Python (or Perl or Java or C++ or whatever) to address it but I think such a tack is unproductive and it is better to address the main goal of interesting both boys and girls in becoming as literate in communicating to computers as they are in communicating to human beings.] Depending on the student, they can adapt the story vehicle to whatever it is that motivates them. Even if you don't get graphical elements going (which can be very hard to be successful at particularly with the expectations that kids get from seeing commercial programs), stories can engage the imagination (as they have for 3000 years). Boys in my experience tend to be more willing to focus on learning the language and 'messing around' with it. Girls tend to become motivated when you can propose a project which means something to them beyond the fact that it is a computer program written in Language X or Y or Z. It is also helpful if you partner with a woman as well as I have found that I am often times not as aware of what the dynamics is in the class setting. In particular, there are situations where you find that boys are totalling monopolizing you by asking questions while the girls are sitting patiently waiting to get a word in. You have to make sure you give equal time to them and if necessary let the boys not have as much time as they want. The above comments are based on my experiences and are not meant to assert the truth of any claim -- just to describe based on my limited experience 'what is' and 'what seems to work'. --David -- Dr. David J. Ritchie, Sr. djrassoc01@mindspring.com http://home.mindspring.com/~djrassoc01/ From urnerk@qwest.net Sun Aug 4 20:04:48 2002 From: urnerk@qwest.net (Kirby Urner) Date: Sun, 04 Aug 2002 12:04:48 -0700 Subject: [Edu-sig] Girls, women and Programming (- and Python) In-Reply-To: <3D4C73D9.2000704@aon.at> References: <3D485C3F.3060304@aon.at> Message-ID: <5.1.1.6.0.20020804112717.0273ab20@pop.ptld.qwest.net> > >so possibly your opinions, experiences and hints >could help me to adress this problem in my work. >I would really wish to make programming more interesting, >enjoying and challenging to female students. > >Thanks in advance for your replies > >Gregor Lingl I used to teach math in an all-girls high school. Certainly there was no lack of talent or aptitude. Young people, not just girls, are working a lot with self image, and it makes a difference to hear oneself talking about something, telling others. In math class, I would often pause and let girls who "got it" explain what they understood to others who still seemed lost or less clear (it could be different students at different times). Having students teach other students helps them formulate their thoughts, make themselves understood, and they hear themselves talking about math, which changes or impacts the self image somewhat. When I was a consultant in a large text book company, we paid a lot of attention to pictures. A standard thing you often find is the guy sitting at a computer, staring at something on screen (we don't usually see what it is), while the woman stands behind him, gazing over his shoulder. He's in the active role, she's the appreciative audience, perhaps admiring his ability. http://www.computertrainingschools.com/img/picture2.jpg http://www.urmc.rochester.edu/smd/CRC/Image23.gif http://www.epa.gov/safewater/dwa/images/trainingpic.jpg So we'd go out of our way to reverse this sometimes -- make the guy stand behind the woman, and put the woman in the driver's seat http://www.winthrop.org/gme/media/22-radio.jpg http://www.thephoenician.com/meeting_fac/assets/mf_bus_p1.jpg http://www.girlguides.ca/clipart/clipart_images/guidercomp01.jpg (actually, it's hard to find a picture where the guy is watching passively -- usually he's the instructor or is actively pointing to something on screen): http://www.theitpros.net/images/training.gif http://www.freedomscientific.com/images/custjaws.jpg You've got at least a couple stories about women making key contributions to the early evolution of computers. Ada Byron helped get parlour room conversations among the literati tracked into early debates about artificial (machine) intelligence (she was an earnest student of the Babbage engine): http://www.grunch.net/synergetics/adaessay.html and Rear Admiral Grace Hopper got the first compiler off the ground. You *might* find some ideas at http://www.girltech.com/index.html (seems a bit superficial -- mainly geared to selling products). Kirby PS: my 8 year old girl is really into playing chess. She teaches it to her girl friends so they can play with her. Having a CDROM or two helped (they made no assumptions about her gender), as did my encouragement and willingness to play. From e.kotyk@shaw.ca Mon Aug 5 00:22:53 2002 From: e.kotyk@shaw.ca (Eve Kotyk) Date: Sun, 04 Aug 2002 17:22:53 -0600 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <3D4C73D9.2000704@aon.at> References: <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <20020804172253.1ad43699.e.kotyk@shaw.ca> --=.c42,mc9rXjAK?E Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit > > I'll do it in German and I hope to get it published, as there is a > very severe lack of material of this kind in the German speaking > countries. (On the other side Python still is not very well known > at least among teachers in Germany - so it's quite uncertain who > will be willing to study such things. Nevertheless trying to make > Python more popular is worth the effort.) Kudos! I think this is great thing. > > 1) Why are there so few girl and women interested in programming? > (look, for instance, at the list of partiicipants of all those mailing > lists) I don't actually know the answer to this..it may still be partly enculturation. Its still not entirely cool for a women to think. Especially for them to think logically. As a generality it might be that girls often prefer to base their thinking on values rather than principle. Which is not a bad way to organized your thought processes it just means that that they prefer to be taught in a subjective manner rather than an objective manner. ie: How does this knowledge apply to them and the human being beside them.> > And consequently > 2) How do I get them interested? Which kinds of material, approaches, > examples etc. are appealing to female students? I'm determined to learn Phython but I find that my lack of general knowledge of programming makes it difficult to figure out what to write. Because I'm a painter, I'll use that as an analogy. Many people who do not know how to use the materials and language of paint will often flounder when asked to paint a picture. The question is "well what should I paint". When they know the language and the material it suddenly doesn't matter what they paint...anything will do just so you can make something beautiful with the language and the materials. When I speak of language here I'm speaking of the principles of pictorial depiction. So I think one of the ways to get girls (anyone really) interested is to design projects for them to do, that are fun and almost inadvertently teach the language. > > Do YOU have any experiences concerning this question. Jeff Elkners > Python-Video implicitly adresses this problem in a very fine way, > choosing a girl as the main propagator of Python. Hmmm I didn't know about this...will have search for it. E -- ekotyk http://members.shaw.ca/e.kotyk/virtualstudio.htm --=.c42,mc9rXjAK?E Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) iD8DBQE9TbdRyxm8dPG0oMIRAon4AJ0cjFeL5JdGqLF3VRlusjZ3hg0drQCgxaPF ODGGKpIGnShU2dQhH/j8OCY= =6xFz -----END PGP SIGNATURE----- --=.c42,mc9rXjAK?E-- From rob@zoism.org Tue Aug 6 01:58:44 2002 From: rob@zoism.org (Rob Brown-Bayliss) Date: 06 Aug 2002 12:58:44 +1200 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <3D4C73D9.2000704@aon.at> References: <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <1028595524.28495.11.camel@everglade.zoism.org> On Sun, 2002-08-04 at 12:22, Gregor Lingl wrote: > 1) Why are there so few girl and women interested in programming? > (look, for instance, at the list of partiicipants of all those mailing > lists) It's a silly question, but one that a few years ago I also would have found important... Then I had kids, I have a little girl (4.5 years) and a boy, (3 years). Now, without prompting, or pushing form either of us Zenobie, the girl loves babies, palying dressup and pink things, fairys and stuff. Luke, the boy, loves trains, trucks, diggers and racing cars, breaking things and being rough... Maybe you could rephrase your question, why are there so few men interested in fashion industry? How many men do you know who even contemplate making their own clothes? -- * * Rob Brown-Bayliss * From djrassoc01@mindspring.com Tue Aug 6 02:20:20 2002 From: djrassoc01@mindspring.com (djr) Date: Mon, 05 Aug 2002 20:20:20 -0500 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) References: <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <1028595524.28495.11.camel@everglade.zoism.org> Message-ID: <3D4F2453.FA947A05@mindspring.com> Rob Brown-Bayliss wrote: > > 1) Why are there so few girl and women interested in programming? > > (look, for instance, at the list of partiicipants of all those mailing > > lists) > > It's a silly question, but one that a few years ago I also would have > found important... In my opinion, it's not a silly question when you know girls who took Perl from you in 6th grade and Python from you in 8th grade and continue to impress you with their concentration in making updates to their object-oriented adventure game while the boys in the room carry on -- no doubt learning things but in quite different way. What is the approach that enhances the interests of the girls in going after their goals in the computing area? How does one make sure the environment does not impede their progress? Their other interests, that I knew about, were Highland Dance and Theater not atypical for their age. > Maybe you could rephrase your question, why are there so few men > interested in fashion industry? How many men do you know who even > contemplate making their own clothes? Can't answer that but I can tell you that I have heard about sewing machines that are run by Windows PC's and am waiting for the Sewing teacher (where my son learned to make a pair of boxer shorts in 7th grade) to stop me and ask about Python and Sewing Machines... All the 7th grade students (boys and girls) take L.I.F.E which we used to call Home Ec. and do a number of cooking and sewing projects. --D. -- Dr. David J. Ritchie, Sr. djrassoc01@mindspring.com http://home.mindspring.com/~djrassoc01/ From p.kent@mail.com Tue Aug 6 11:57:46 2002 From: p.kent@mail.com (Phillip Kent) Date: Tue, 06 Aug 2002 11:57:46 +0100 Subject: [Edu-sig] Girls, women and Programming (- and Python) In-Reply-To: <20020804113219.A10638@doublegemini.com> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <5.1.0.14.2.20020806114553.00a26020@pop1.mail.com> At 11:32 AM 8/4/02 -0400, Clark C . Evans wrote: >| 1) Why are there so few girl and women interested in programming? >| (look, for instance, at the list of partiicipants of all those mailing >| lists) > >In the U.S. this is mostly cultural, programming is a "boy" thing >since it is "technical".... Hello All, Good reading on this is: Sherry Turkle and Seymour Papert, Epistemological pluralism and the revaluation of the concrete Online version at: http://www.papert.com/articles/EpistemologicalPluralism.html The paper also appears in Harel & Papert (Eds), "Constructionism" (Ablex Publishing 1992) - a wonderful collection of articles produced in the first decade of MIT's Epistemology & Learning Group. Sherry Turkle is, I think, one of the best-known writers about the girls/computers issue - see for example "Life on the Screen". Seymour Papert is, for me, the greatest writer and one of the greatest researchers on computers and learning - see www.papert.com for starters. - Phillip ++++++ Dr Phillip Kent, London, UK mathematics education technology research p.kent@mail.com mobile: 07950 952034 www.anamorphosis.com ++++++ From bea@webwitches.com Tue Aug 6 15:16:57 2002 From: bea@webwitches.com (Bea Fontaine) Date: 06 Aug 2002 17:16:57 +0300 Subject: Have gender, will program, was [Edu-sig] Girls, women and Programming (- and Python) Message-ID: <1028643418.6338.184.camel@snowblind> Hi! After having had the messages of this thread forwarded to me by my Python-programming s.o. I finally decided to join the list myself... I hope I'm not coming in with too much noise. I: 35. Female. M.A. in English Philology. Self-employed since '95, mainly as project manager and web developer in (mostly academic) eLearning projects. Devout Debian Linux user since I was forcefully evangelized into admitting it's BETTER. Budding Zope developer. Don't write my own Python code (yet) but know just enough to adapt/change code for my purposes. Usual opener on IRC: "bea?" "is that your real name?" (yes) "why don't you have a handle?" (why?) "you mean... you're a *girl*? (could I be your mother?) Maybe one practical way to go about this is to ask _me_ why I don't write Python yet. Answer: 'coz I don't have to. That may sound like a really daft answer but it probably is one that many females will give. The guiding principle is: it's not supposed to be _fun_, it's supposed to be _useful_. I am not entirely sure to which degree that attitude is inflicted upon us by nature and to which degree by culture but I would argue that both go hand in hand, which makes gender issues so difficult to deal with, in every respect. Although I find the academic approach very interesting (and indulge in it myself when life gets boring), I daresay that it shoots right beyond the ears of women who are, as the stereotype goes, practical and target-oriented rather than playful and tool-oriented. I could tell stories for hours of things that have happened to my biz partner (also female) and me over the years because we are "computer girls" by profession and by passion. I read a quote by a female senior manager a few weeks ago (beats me where I found it, I hope she welcomes being repeated...) that went along the lines of "there is no glass ceiling, there is just a thick layer of men". Well: enter a geek-driven IRC Channel as a girl and say something... it always amounts to: "Hello, Thick Layer!". It takes guts... guys may find that weird, but many women will silently acquiesce and smirk. It's great fun though. So there I am talking about social issues, about my self-image, about bits of my life. The issue of "how to get girls to program" is a vehicle rather than the topic. That is the difference in a nutshell. You will _not_ easily get women to discuss Python as such. But you will get them to write it if there is a good reason to. And if it's cool, they'll write more Python. And when they know it _really_ well, then they may even talk about it (first amongst themselves as a crash test, then to men). The primary enjoyment will, however, be found in what they have accomplished with it and whether that product of their effort will be lauded. Women also will, the moment they find something that accomplishes the target better, in their opinion, SWITCH to something else, washing powder, facial cream or programming language. No soccer fanclub there and no outrage at the ones who write... JAVA... VB... C++... You name it! If it works, we'll use it. But if we believe in it, we'll stick with it for better or worse. After that rather elaborately polemic circumnavigation of the issue, here are my bits of (well-meant and purely subjective) advice, for whatever it's worth: - you need to offer a practical purpose that justifies using that particular tool called Python rather than something else (it's never about the super-duper 2002 8-cylinder spring model sewing machine, it's about the gorgeous clothes you get because the machine is so cool - but you know that, if you're terrible at sewing, the product will look awful, anyway) - you need to have a practical result at the end of _each_ lesson or they think they've missed the point - try to make these girls feel good about themselves - that requires a special effort and _no_ patronizing (don't make it look too easy, in other words) - don't make it look super-difficult either just because it makes you feel more secure about your knowledge (or is that just my own personal bad habit...?). They will feel defeated before the beginning - maybe find a female friend who is willing to cover the ground with you where you are (maybe as a token student who is on your side from the beginning) - offer them the chance of having a girls-only class. You may find that ridiculous, but I _know_ it will work - especially when in a mixed class, try to watch the communication patterns that evolve and to influence them accordingly. Girls will fold behind a forceful female character just as much as behind a forceful male one. Force of bad habit and genetics, I maintain. Lots of trouble for a bunch of gals, huh? Anything else? I think anyone who wants to discuss this sort of topic will do fine, solely based on the fact that they thought of asking the question. It is certainly true that many things have changed in the last 20 years and some of my misgivings are definitely only a sign of my particular generation (secondary school mid 70's, univ. mid 80's), However, we also went to an international conference in Finland last year that was entitled "high heels to hi-tech" (the theme of the conference was how to get women into engineering and computer science and was the result of a project that was attempting to work at the grassroots level). I criticized the title rather adamantly and argued that they shouldn't be surprised if girls stalled and bolted at a name like that. It turned out that it had been chosen by the women involved and they felt I was being difficult - also about criticising the sweet blond smiling little thing on the brochure, holding a mobile phone shaped like a high-heeled shoe. Since the subtitle of the conference was "increase gender equality in ICT-education and professions", I didn't think the picture reflected the topic, really. Nevertheless, I spoke at the conference and it was, after all, both controversial and interesting. Small steps, Ellie. I hope that I managed to contribute some useful bits. bea -- bea@webwitches.com ****************** "Women have never been wizards. It's against nature: You might as well say that witches can be men." (Equal Rites, T. Pratchett) From urnerk@qwest.net Tue Aug 6 16:39:03 2002 From: urnerk@qwest.net (Kirby Urner) Date: Tue, 06 Aug 2002 08:39:03 -0700 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <1028595524.28495.11.camel@everglade.zoism.org> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> > >Now, without prompting, or pushing form either of us Zenobie, the girl >loves babies, palying dressup and pink things, fairys and stuff. > >Luke, the boy, loves trains, trucks, diggers and racing cars, breaking >things and being rough... > >Maybe you could rephrase your question, why are there so few men >interested in fashion industry? How many men do you know who even >contemplate making their own clothes? A different question: why is computer programming supposedly less like loving babies and designing dresses, and more like breaking things? Based on the above description, I can see why it might be a priority to get the boys *out* of programming :-D. Kirby From sandysj@asme.org Sat Aug 10 20:00:24 2002 From: sandysj@asme.org (Jeff Sandys) Date: Sat, 10 Aug 2002 12:00:24 -0700 (PDT) Subject: [Edu-sig] Re: Have gender, will program ... Message-ID: <20020810190024.87399.qmail@web12808.mail.yahoo.com> Thanks for your great comments, Bea, I have paraphrased them on this webpage. http://www.seapig.org/GirlProgrammers Since this is a wiki you are welcome to weigh in on the subject. Thanks, Jeff Sandys __________________________________________________ Do You Yahoo!? HotJobs - Search Thousands of New Jobs http://www.hotjobs.com From guido@python.org Sat Aug 10 22:08:32 2002 From: guido@python.org (Guido van Rossum) Date: Sat, 10 Aug 2002 17:08:32 -0400 Subject: [Edu-sig] Re: Have gender, will program ... In-Reply-To: Your message of "Sat, 10 Aug 2002 12:00:24 PDT." <20020810190024.87399.qmail@web12808.mail.yahoo.com> References: <20020810190024.87399.qmail@web12808.mail.yahoo.com> Message-ID: <200208102108.g7AL8Wu20670@pcp02138704pcs.reston01.va.comcast.net> > Thanks for your great comments, Bea, I have paraphrased them on this > webpage. > http://www.seapig.org/GirlProgrammers > > Since this is a wiki you are welcome to weigh in on the subject. Hm, perhaps the edu-sig ought to have its own section on the Python.org wiki too? http://www.python.org/cgi-bin/moinmoin --Guido van Rossum (home page: http://www.python.org/~guido/) From Jason Cunliffe" An excellent use of Jython is to provide CLI interface for Phil Burke's remarkable 'Jsyn' - Java Audio Synthesis API. "JSyn allows you to develop interactive computer music programs in Java. You can run them as stand-alone applications, or as Applets in a web page using the JSyn Plugin. JSyn uses native methods written in 'C' to provide real-time audio synthesis for Java programmers. JSyn can be used to generate sound effects, audio environments, or music. JSyn is based on the traditional model of unit generators which can be connected together to form complex sounds. For example, you could create a wind sound by connecting a white noise generator to a low pass filter that is modulated by a random contour generator." http://www.softsynth.com/jsyn/ http://www.softsynth.com/jsyn/slides/ http://www.softsynth.com/jsyn/examples/ http://music.columbia.edu/%7Ebrad/jlooch/ For Edu-Sig JSyn/Jython is another beautiful bridge between modeling, interactivity, and wave formation with sinaesthetic feedback. Lots for teacher/student/programmer to explore. When I raised the topic of Jython on the Jsyn list a while back, Robert Marsyani replied: "I did a little experimenting with jython/jsyn and liked it. It's nice to be able to instantiate 20 oscillators by typing in a 3-line loop and executing it right there..." I have not still used Jython for Jsyn yet as I've been really slow exploring Jython. But I don't know Java. Verbose, and the installation and changing terminology keeps me confused. But Java is potent and the APIs get better all the time like Python. Often when I install some cool new Java thing it I breaks some other cool Java thing. I am pleased to say that to date Jsyn has been very well-behaved. Have been put off diving in deeper with it for lack of Java skills. Jython offers the best of both worlds as far as I can tell. Yesterday in B&N was browsing the O'Reilly 'Jython Essentials' book. Seemed lucid, readable and helpful. Any recommendations about this or Jython for Java P rogrammers by Robert W. Bill ? ./Jason ______________________________________________ Jason Cunliffe [NOMADICS: Director art+design] Tel/fax: +1 718 422-1078 jasonic@nomadics.org N 43:00.000' W 074:31.875' ALT:1144 ft 84 Henry Street #3C Brooklyn NY 11201 USA From Jason Cunliffe" ...some interesting reading, skills and attitude at http://www.linuxchix.org/ ./Jason ______________________________________________ Jason Cunliffe [NOMADICS: Director art+design] Tel/fax: +1 718 422-1078 jasonic@nomadics.org From ajs@ix.netcom.com Sun Aug 18 16:23:39 2002 From: ajs@ix.netcom.com (Arthur) Date: Sun, 18 Aug 2002 11:23:39 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython Message-ID: <000701c246cb$3bc1d7a0$9865fea9@arthur> Jason writes - >>An excellent use of Jython is to provide CLI interface for Phil Burke's >>remarkable 'Jsyn' - Java Audio Synthesis API. As a general statement, obviously a beauty of Jython is the ability to access Java libraries and apps from Python. But certainly there is a "learning to program" aspect in addition.. >From my own experience - my exploration of Jpython led naturally into an exploration of Java. At some point the transition to writing pure Java came easily. The fact that I ended up returning to CPython almost surprised me. But it happens that VPython provided me with most of the 3d graphics capabilities I needed and had been looking to Java libraries to provide, and that I "think better" in Python - partly because it feel more finite and with less "magic" to it. What I miss most about Java, though, is one particular brand of magic - method overloading. >From the user prospective, for the kind of thing I am doing, it greatly simplified things. For example, I could provide for a class taking two arguments of different type to accept the arguments in either order. In Python I need to either use named argments, or handle it on initialization in ways that get to be complex, or use separate classes, or expect my user to learn or reference the acceptable order of argmuents. So far I have put the burden of the user. Since the only very active user happens to be me - it works out well enough. Probably less acceptable for this kind of app if it were to have a wider user base - especially where the novice is the intended audience. Advice being welcomed on this issue. Art From pobrien@orbtech.com Sun Aug 18 18:08:54 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sun, 18 Aug 2002 12:08:54 -0500 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <000701c246cb$3bc1d7a0$9865fea9@arthur> Message-ID: [Arthur] > > What I miss most about Java, though, is one particular brand of magic - > method overloading. > [snip] > > Advice being welcomed on this issue. Could you post an actual code example of what you are trying to accomplish? If so, we might be able to come up with some alternatives. But I can't think of a solution without having a bit more detail to think about. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From ajs@ix.netcom.com Sun Aug 18 20:45:18 2002 From: ajs@ix.netcom.com (Arthur) Date: Sun, 18 Aug 2002 15:45:18 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython References: Message-ID: <000d01c246ef$ce4e6f10$9865fea9@arthur> Patrick writes - > Could you post an actual code example of what you are trying to accomplish? > If so, we might be able to come up with some alternatives. But I can't think > of a solution without having a bit more detail to think about. Well say I have a Point class which basically defines a drawing method, and keyword args like "color", and "pointsize" to control appearance. I am working in 3d space. A point defined as an intersection can be defined - let's say - by a plane and a line (or a line and a plane) or two lines (if the lines are coplanar). Where I am now in Python is two separate classes: PlaneIntersection(plane, line, **kw) #argument order therefore significant and LineIntersection(line,line,**kw) In Java, Intesection will behave on the basis of the signature of constructor: I can do something significantly more verbose, but effectively akin to: Intersection(Point): def __init__(*args,**kws): Point.__init__(**kw) (initialize class attributes here) def update(self): (test for existence of intersection and update position of point here) and so where "plane" is a Plane instance "line" is a Line instance Intersection(plane,line) Intesection(line,plane) Intersection(line,line) could all work appropriately without too much todo. Now I think I understand it is mostly Python's dynamic nature that makes this kind of facility difficult (impossible?) to implement as a built_in language feature. And I think I understand the possiblities, at least in general, of a lot of isinstance or type testing of *args - but its ugly, and error-prone - at least, that is, up until the point at which the rest of the design is sufficiently stabilized so that I know *exactly* what it is I want to be testing for and am not expecting any more changes to be coming down the pike. Seems to be the nature of my approach, that I never quite get to that point. So, I am beginning to try to digest the meaning and significance of "multimethods" - for which there are Python modules. I guess then my question, which I am pursuing, is what are multimethods, and how might they relate to the issue I am trying to deal with? Art From pobrien@orbtech.com Sun Aug 18 22:19:34 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sun, 18 Aug 2002 16:19:34 -0500 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <000d01c246ef$ce4e6f10$9865fea9@arthur> Message-ID: [Arthur] > [example snipped] > > Now I think I understand it is mostly Python's dynamic > nature that makes this kind of facility difficult (impossible?) > to implement as a built_in language feature. Yes and no. It certainly isn't Python's default mode of operation to care too much about the type of an object, versus what an object is capable of doing. > And I think I understand the possiblities, at least in general, > of a lot of isinstance or type testing of *args - but its ugly, and > error-prone - at least, that is, up until the point at which the rest of > the design is sufficiently stabilized so that I know > *exactly* what it is I want to be testing for and am not > expecting any more changes to be coming down the pike. > Seems to be the nature of my approach, that I never quite get > to that point. Checking via isinstance() shouldn't be too difficult. But it may not even be necessary. > So, I am beginning to try to digest the meaning and significance > of "multimethods" - for which there are Python modules. I found one at http://www.sff.net/people/neelk/open-source/Multimethod.py. Is that the same one you are talking about? > I guess then my question, which I am pursuing, is what are > multimethods, and how might they relate to the issue I am > trying to deal with? Multimethods appear to be exactly what you are asking for. But I'm not sure they are the right thing to be asking for, if you know what I mean. :-) Let's look at your example of an Intersection constructor and the variations you want to support: Intersection(plane,line) Intersection(line,plane) Intersection(line,line) What I'd ask is why do you need to know the types of the two parameters? At what point does it matter? What method(s) of Intersection need to function differently in each of the three cases? I think we need to see more code to figure out whether this can't be handled without too much regard for object types. And even if some type checking needed to take place, multimethods seem like overkill to me. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From ajs@ix.netcom.com Mon Aug 19 00:35:10 2002 From: ajs@ix.netcom.com (Arthur) Date: Sun, 18 Aug 2002 19:35:10 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython References: Message-ID: <004701c24718$0c8a4290$9865fea9@arthur> Patrick writes - > Checking via isinstance() shouldn't be too difficult. But it may not even >benecessary. No. And would work fine, I'm sure, if I wasn't doing as much experimentation and on the fly kind of stuff as I go. Even if a bit messy, at least I know I don't need to worry about this kind of thing as a performance issue of significance, if I can limit the isinstance checking to the initialization routine. I *am* sensitive to trying to keep that kind of thing out of any update cycle where possible, as the app is graphical and dynamic and performance can be an issue. Perhaps I am just being somewhat lazy in my approach - and I need to be doing more of this upfront as I go along. > > > So, I am beginning to try to digest the meaning and significance > > of "multimethods" - for which there are Python modules. > > I found one at http://www.sff.net/people/neelk/open-source/Multimethod.py. > Is that the same one you are talking about? > And one at: http://bent-arrow.com/python which I'm thinking is more recent and under more active development - but I'm not sure. > Multimethods appear to be exactly what you are asking for. But I'm not sure > they are the right thing to be asking for, if you know what I mean. :-) > > Let's look at your example of an Intersection constructor and the variations > you want to support: > > Intersection(plane,line) > Intersection(line,plane) > Intersection(line,line) > > What I'd ask is why do you need to know the types of the two parameters? >At what point does it matter? What method(s) of Intersection need to function > differently in each of the three cases? > I think we need to see more code to figure out whether this can't be > handled without too much regard for object types. And even if some type checking > needed to take place, multimethods seem like overkill to me. Well, I am senstive to taking the discussion too far off topic to edu-sig - though I do have every intention of doing my best to pick your brain off list. Art From delza@mac.com Mon Aug 19 20:07:17 2002 From: delza@mac.com (Dethe Elza) Date: 19 Aug 2002 12:07:17 -0700 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <004701c24718$0c8a4290$9865fea9@arthur> References: <004701c24718$0c8a4290$9865fea9@arthur> Message-ID: <1029784040.1555.49.camel@laptop> Arthur, Don't be too quick to take this off-list. While your situation is pretty specific, the general case of "why doesn't Python support feature X of language Y" seems to be appropriate here. There are several possible answers, all valuable in an educational context: 1) It does support X, but the python idiom looks like X() 2) X isn't needed because of python feature Z 3) Python doesn't support X because X is a bad idea for such and such a reason 4) Python doesn't support X, but you can do Z to simulate it etc. In your case, if both Line and Point have methods getHalfIntersection(), could you then have: def intersection(first, second): return first.getHalfIntersection() * second.getHalfIntersection() where "*" is replace with the real operation or set of operations needed and getHalfIntersection is replaced with whatever is specific to lines and/or points? --Dethe From dblank@brynmawr.edu Mon Aug 19 21:05:47 2002 From: dblank@brynmawr.edu (Douglas S. Blank) Date: Mon, 19 Aug 2002 16:05:47 -0400 Subject: [Edu-sig] Women, robots, and Python Message-ID: <3D614F9B.6050302@brynmawr.edu> Greetings! I've just joined this list, and have found the last couple of weeks' discussions to be right on target for me. I teach at Bryn Mawr College, an all women's school just getting a computer science (and cognitive science) program off the ground. The problems of gender and CompSci are complex ones, but ones that I think Python has a role in which to play. I hope that discussion continues here. We aren't ready to teach any courses in Python (yet) but the last project that I started is written in Python, called Pyro, for Python Robotics. It wasn't too long ago that planning a robotics system in an interpreted language would have seemed insane (and there are probably some that still think that!) But Python has turned out to work very well for our uses. One of the main goals was to encourage students to understand all aspects of the robotic control system, especially the "brains". we also wanted the system to be able to be used by "real" robotics researchers. So far, we have succeeded. The system is fast enough to control different types of robots (with lasers, sonars, and cameras) using simple Python control programs, to more complex ones written in Fuzzy logic, or neural networks... all in Python. You can download (or just checkout) Pyro at http://emergent.brynmawr.edu/wiki/?Pyro I look forward to conversations on intro teaching, gender issues, robots, and Python. Thanks, -Doug -- Douglas S. Blank, Assistant Professor dblank@brynmawr.edu, (610)526-6501 Bryn Mawr College, Computer Science Program 101 North Merion Ave, Park Science Bld. Bryn Mawr, PA 19010 dangermouse.brynmawr.edu From pobrien@orbtech.com Mon Aug 19 21:45:13 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Mon, 19 Aug 2002 15:45:13 -0500 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <1029784040.1555.49.camel@laptop> Message-ID: [Dethe Elza] > > In your case, if both Line and Point have methods getHalfIntersection(), > could you then have: > > def intersection(first, second): > return first.getHalfIntersection() * second.getHalfIntersection() > > where "*" is replace with the real operation or set of operations needed > and getHalfIntersection is replaced with whatever is specific to lines > and/or points? Good point. Here is another very simple (and contrived) example as further support of your point: >>> def dup(first, second): ... return first * second ... >>> dup(3, "this") 'thisthisthis' >>> dup("this", 3) 'thisthisthis' >>> -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From ajs@ix.netcom.com Mon Aug 19 22:31:43 2002 From: ajs@ix.netcom.com (Arthur) Date: Mon, 19 Aug 2002 17:31:43 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython Message-ID: <00e201c247c7$d2d6ed40$9865fea9@arthur> Dethe writes - >>Don't be too quick to take this off-list. I'm game. >While your situation is pretty specific, the general case of "why doesn't Python support feature >X of language Y" seems to be appropriate here. There are several >possible answers, all valuable in an educational context: >1) It does support X, but the python idiom looks like X() >.2) X isn't needed because of python feature Z >3) Python doesn't support X because X is a bad idea for such and such a >reason >4) Python doesn't support X, but you can do Z to simulate it I would think as to method overloading we are in the realm of 4). >In your case, if both Line and Point have methods getHalfIntersection(), >could you then have: >def intersection(first, second): > return first.getHalfIntersection() * second.getHalfIntersection() I get the gist of your suggestion, but the issue is pervasive and might overly tax my ingenuity. My current thinking is this: I need some testing of the arguments and some decent error reporting for inappropriate arguments, in any case. Right now you send a Line where the class needs a Plane, and somewhere down the pike you'll probably get a message about object x not having an attribute "normal" let's say -which Planes's have and Line's don't. For me, as a user, I pretty now where to go. For someone else, as a user, it would be a mystery. (Again, I am assuming this is a necessary byproduct of dynamic typing. I believe that Java would give an error message on construction that would be specific enough to allow me to forego some of this. OTOH, I went through the process far enough to understand some of what the dynamic typing of Python is *giving* me and *saving* me versus Java's typing methodology to know not to resent - more than just a little - what it might be costing me. I could elaborate with specifics, but won't) And in doing some real error catching and reporting on arguments, I would expect isinstance will come into play, and in doing it, it should not be very much additional burden to do it in such a way so that at least I can make argument order irrelevant. After that I guess I need to see where I am, and then take the more complex issues of this kind on a case by case basis - there probably is no one-size answer for all cases. Art From pobrien@orbtech.com Mon Aug 19 23:00:31 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Mon, 19 Aug 2002 17:00:31 -0500 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <00e201c247c7$d2d6ed40$9865fea9@arthur> Message-ID: [Arthur] > > I get the gist of your suggestion, but the issue is pervasive and > might overly tax my ingenuity. > > My current thinking is this: > > I need some testing of the arguments and some decent error > reporting for inappropriate arguments, in any case. Right now > you send a Line where the class needs a Plane, and somewhere down the > pike you'll probably get a message about object x not having > an attribute "normal" let's say -which Planes's have and Line's > don't. For me, as a user, I pretty now where to go. For > someone else, as a user, it would be a mystery. > [snip] > > And in doing some real error catching and reporting on arguments, > I would expect isinstance will come into play, and in > doing it, it should not be very much additional burden to > do it in such a way so that at least I can make argument > order irrelevant. Here is a less contrived example of a similar situation. I'm working on a module used to generate proper xhtml documents in Python. To do this, I'm applying a certain level of type checking for each level of a typical html document hierarchy. For example, here is part of the Html class, which corresponds to the html element, which can only contain one head and one body element: class Html(Element, AttrstringMixin): """HTML class.""" name = 'html' format = '\n%(head)s%(body)s\n' def __init__(self, head=None, body=None, lang='en', xmllang='en', xmlns='http://www.w3.org/1999/xhtml', dir=None): if head is None: # Create a default head instance. self.head = Head() elif not isinstance(head, (str, Head)): raise TypeError, \ 'head must be a string, a Head instance, or None' else: self.head = head if body is None: # Create a default body instance. self.body = Body() elif not isinstance(body, (str, Body)): raise TypeError, \ 'body must be a string, a Body instance, or None' else: self.body = body self.attrs = { 'lang': lang, # Language. 'xml:lang': xmllang, # XML language. 'xmlns': xmlns, # XML namespace. 'dir': dir, # Direction. } Elsewhere I've got a Head class and a Body class defined. As you can see, I'm using isinstance() to guarantee that the proper type of objects are used by the Head instance. (Of course, I've intentionally left a big back door wide open by allowing a string as a valid parameter.) Anyway, I hope this helps illustrate one way of making Python stricter than usual. This module is a prototype and I'm playing around with various ideas so don't necessarily look at this as a suggestion for THE way to solve the problem, just one way that does work and isn't too hard to code. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From delza@mac.com Mon Aug 19 23:10:33 2002 From: delza@mac.com (Dethe Elza) Date: 19 Aug 2002 15:10:33 -0700 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <00e201c247c7$d2d6ed40$9865fea9@arthur> References: <00e201c247c7$d2d6ed40$9865fea9@arthur> Message-ID: <1029795034.1555.94.camel@laptop> > >4) Python doesn't support X, but you can do Z to simulate it > I would think as to method overloading we are in the realm of 4). Yes and no. Python doesn't have method overloading, but Java doesn't have keyword parameters. In my mind keyword parameters are more flexible, versatile, and powerful. There is also a general OO pattern of separating what changes from what stays the same and putting what changes into its own class. This is what I was trying to demonstrate with my Line and Point example. Often, a huge switch() statement Java is a symptom of needing to give each class a method which does the right thing, replacing the switch with polymorphic behaviour. Your example doesn't require switch, but the same pattern may apply. Another pattern is demultiplexing. In this you would determine the types of parameters and call a more specific routine: def intersection(first, second): if first instanceof Line: lineIntersection(first, second) else: pointIntersection(first, second) def lineIntersection(first, second): if second instanceof Line: lineLineIntersection(first, second) else: linePointIntersection(first, second) def lineLineIntersection(first, second): # now we know the types, do something with them. etc... This is slightly more verbose than Java overloading, and requires additiaonl function/method call overhead, but keeps the intent relatively clear. The biggest problem is one which you will also have with method overloading: Combinatorial Explosion. Say we have two java classes, which I'll simulate with the following pseudocode: class Point: def Intersection(Line, Line) def Intersection(Point, Line) def Intersection(Point, Point) def Intersection(Line, Point) class Line: pass OK, now you add class Plane and you want to calculate intersections. Then you add NonEuclideanPlane. And LineSegment. Relying on method overloading will soon result in hundreds of method definitions, when all you want is a fairly simple method comparing two *things*. If each *thing* can present itself in a thing-neutral way, you only need one method with no overloading, no demultiplexing, and no named variables. Of course, that's not always possible. Sometimes you know you won't ever need more than these two things, or all of the new classes will be subclasses of the first two, or whatever. But these are two strategies which can be used or mutated for quite a lot of situations. > I get the gist of your suggestion, but the issue is pervasive and > might overly tax my ingenuity. > > My current thinking is this: > > I need some testing of the arguments and some decent error > reporting for inappropriate arguments, in any case. Right now > you send a Line where the class needs a Plane, and somewhere down the > pike you'll probably get a message about object x not having > an attribute "normal" let's say -which Planes's have and Line's > don't. For me, as a user, I pretty now where to go. For > someone else, as a user, it would be a mystery. If you want early failure, in an appropriate way, assert() is the way to go. > (Again, I am assuming this is a necessary byproduct of dynamic > typing. I believe that Java would give an error message on > construction that would be specific enough to allow me to forego > some of this. OTOH, I went through the process far enough to > understand some of what the dynamic typing of Python is > *giving* me and *saving* me versus Java's typing methodology > to know not to resent - more than just a little - what it might > be costing me. I could elaborate with specifics, but won't) What Java is giving is that it takes positional arguments and demultiplexes for you based on type (and only on type). What python gives you is that you can demultiplex based on name. Since python can mix positional parameters and named parameters, and you can test type yourself easily enough, it seems more powerful to me. > And in doing some real error catching and reporting on arguments, > I would expect isinstance will come into play, and in > doing it, it should not be very much additional burden to > do it in such a way so that at least I can make argument > order irrelevant. That seems like a reasonable expectation. > After that I guess I need to see where I am, and then take the more > complex issues of this kind on a case by case basis - there > probably is no one-size answer for all cases. There is, but it doesn't fit. --Dethe From urnerk@qwest.net Mon Aug 19 23:32:26 2002 From: urnerk@qwest.net (Kirby Urner) Date: Mon, 19 Aug 2002 15:32:26 -0700 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <1029795034.1555.94.camel@laptop> References: <00e201c247c7$d2d6ed40$9865fea9@arthur> <00e201c247c7$d2d6ed40$9865fea9@arthur> Message-ID: <5.1.1.6.0.20020819152331.034a4070@pop.ptld.qwest.net> I think the usual thing with method overloading in Java is to accommodate different numbers of arguments of various types, e.g. (int int int) verus (int int) or (int int) versus (float int) -- all with the same method name (the compiler tells them apart by the type signature of the parameters, same as in C++). What I *don't* think any standard Java API is designed to accommodate is simple parameter switching, i.e. to catch (int a, int b) verus (int b, int a). Nor even (int a, float b) versus (float b, int a). It *is* possible to code for these multiple variations and permutations, but it's entirely customary to burden the class user with the job of at least getting the *order* of the parameters right. The multiplicity of methods has to do with differences that are *not* at the level of parameter ordering alone. Someone please correct me if I'm wrong about this. Kirby From rob@zoism.org Tue Aug 20 01:45:13 2002 From: rob@zoism.org (Rob Brown-Bayliss) Date: 20 Aug 2002 12:45:13 +1200 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> Message-ID: <1029804312.3472.21.camel@everglade.zoism.org> On Wed, 2002-08-07 at 03:39, Kirby Urner wrote: > A different question: why is computer programming supposedly > less like loving babies and designing dresses, and more like > breaking things? Based on the above description, I can see why > it might be a priority to get the boys *out* of programming :-D. Havent looked here for a while, hence teh late reply.... It has nothing to do with breaking things (unless your are the type to break things when they don;t go your way) and everything to do with this: Boys and Girls/ Women and Men are different. Celebrate it! Seriously, why does the world think "sexual equality = same as". I dont. I[*] am all for women having equal rights, equal opportunities, but dont turn girls in to boys and boys into girls. celebrate the differences. I read a study about 10-12 years ago, it mentioned simple facts, Women make better Biologists, men make better physicists. There were several other examples. None of that means a man cant be a world class biologist, or even the best, and same about women and physics. Just that in general, taking 1000 men and 1000 women in each filed and comparing skills and knowledge there are differences. Why? Because we are different. Not greater and lesser, just different. Women obviously relate better to biology, the concepts grab their attention perhaps? Who knows, but given a choice I prefer female doctors to male ones any day... On the other hand, men relate to physical things better than women, we have a better understanding of spatial relationships for example. does not mean a women cant be the greatest jet pilot in the world. We could take this concept further, and make it racial. Look at the Olympic sprinters, the great ones. More often than not that are from African racial stock, as opposed to Europeans. The opposite seems to hold for swimming. There are racial differences, does not mean that one race is better, nicer or mare caring about the environment does it? Just that some races run faster in general, one swims faster in general... So back to the girls and programming, yse, there will be girls who like the idea, and are great at it, but dont go pushing all girl;s into it just to satisfy your own ideals... Let them take it or leave it depending on their own desires. But, by all means do make them do an intorduction, cant make a choice with out trying can they? [*] I am in fact a house dad, I look after the kids while lean earns the money. Simply because we dont believe in placing young kids in someones care 8-10 hours a day while we both work and Leanne wanted to make use of her education., -- * * Rob Brown-Bayliss * From rob@zoism.org Tue Aug 20 01:49:42 2002 From: rob@zoism.org (Rob Brown-Bayliss) Date: 20 Aug 2002 12:49:42 +1200 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <3D4C73D9.2000704@aon.at> References: <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <1029804581.3474.27.camel@everglade.zoism.org> On Sun, 2002-08-04 at 12:22, Gregor Lingl wrote: > And consequently > 2) How do I get them interested? Which kinds of material, approaches, > examples etc. are appealing to female students? another thought for an introduction to programming, and one that might get a lot of interests is POVray. Kind of like logo was used when I was in school, teaching the very basics (loops, checking one value against another, thinking about the intended result before starting etc). It's quite quick for small simple renderings, free so not a burden to a school etc. Might do quite well for the first few lessons, then take what they have learned and use it with python, getting another lessons in the process, Languages are similar in may respects and that skills from one can be used in another. -- * * Rob Brown-Bayliss * From urnerk@qwest.net Tue Aug 20 03:19:07 2002 From: urnerk@qwest.net (Kirby Urner) Date: Mon, 19 Aug 2002 19:19:07 -0700 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <1029804312.3472.21.camel@everglade.zoism.org> References: <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> Message-ID: <5.1.1.6.0.20020819191536.03307750@pop.ptld.qwest.net> At 12:45 PM 8/20/2002 +1200, Rob Brown-Bayliss wrote: >So back to the girls and programming, yse, there will be girls who like >the idea, and are great at it, but dont go pushing all girl;s into it >just to satisfy your own ideals... Let them take it or leave it >depending on their own desires. For the sake of discussion, we could buy your assertion that programming is more of a "guy thing" and then talk about what about programming makes it so. But we could also, for the sake of discussion, suggest that once girls break the stereotypes and get into programming in a bigger way, it'll turn out that their just better at it than guys -- a genetic thing. But the whole thing about civilization is it doesn't just leave it to the genes. We enable people according to their aspirations even if pure biology would tilt the balance in another direction. So we encourage boys to be programmers too. :-D >But, by all means do make them do an intorduction, cant make a choice >with out trying can they? Right on. >[*] I am in fact a house dad, I look after the kids while lean earns >the money. Simply because we dont believe in placing young kids in >someones care 8-10 hours a day while we both work and Leanne wanted to >make use of her education., I'm sort of a house dad too. My daughter is 8. I do a lot of telecommuting, as well as physical commuting. Kirby From urnerk@qwest.net Tue Aug 20 03:21:19 2002 From: urnerk@qwest.net (Kirby Urner) Date: Mon, 19 Aug 2002 19:21:19 -0700 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <1029804581.3474.27.camel@everglade.zoism.org> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> Message-ID: <5.1.1.6.0.20020819191934.03309690@pop.ptld.qwest.net> At 12:49 PM 8/20/2002 +1200, Rob Brown-Bayliss wrote: >It's quite quick for small simple renderings, free so not a burden to a >school etc. > >Might do quite well for the first few lessons, then take what they have >learned and use it with python, getting another lessons in the process, >Languages are similar in may respects and that skills from one can be >used in another. I completely agree. Python + Povray has been a triple-underline theme for me (Art was into it too -- even did T-shirts with the technology). See my http://www.inetarena.com/~pdx4d/ocn/numeracy0.html and following for examples of Python + Povray in action (even for doing mundane things like graphs). Kirby From pobrien@orbtech.com Tue Aug 20 03:47:40 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Mon, 19 Aug 2002 21:47:40 -0500 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <5.1.1.6.0.20020819152331.034a4070@pop.ptld.qwest.net> Message-ID: [Kirby Urner] > > I think the usual thing with method overloading in Java is to > accommodate different numbers of arguments of various types, > e.g. (int int int) verus (int int) or (int int) versus (float > int) -- all with the same method name (the compiler tells > them apart by the type signature of the parameters, same as > in C++). > > What I *don't* think any standard Java API is designed to > accommodate is simple parameter switching, i.e. to catch > (int a, int b) verus (int b, int a). Nor even (int a, float b) > versus (float b, int a). > > It *is* possible to code for these multiple variations and > permutations, but it's entirely customary to burden the class > user with the job of at least getting the *order* of the > parameters right. The multiplicity of methods has to do > with differences that are *not* at the level of parameter > ordering alone. > > Someone please correct me if I'm wrong about this. I'm not a Java guy, but your interpretation matches my experience with other languages that support method overloading. Of course, I think this is in large part due to the fact that it is relatively rare that the order of parameters is insignificant, or can be made insignificant through type checking or method overloading. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From Jason Cunliffe" <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020819191934.03309690@pop.ptld.qwest.net> Message-ID: <002f01c247f9$c95f73e0$6501a8c0@vaio> My wife thinks we should develop love-oriented programming.. I would enjoy very much to hear your suggestions ./Jason From ajs@ix.netcom.com Tue Aug 20 03:47:13 2002 From: ajs@ix.netcom.com (Arthur) Date: Mon, 19 Aug 2002 22:47:13 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython Message-ID: <010601c247fa$0d600d70$9865fea9@arthur> >If you want early failure, in an appropriate way, assert() is the way to >go. It would be fun to throw that sentence out to a nonprogrammer, without a hint as to its context, for a guess as to what was being said :) >What Java is giving is that it takes positional arguments and >demultiplexes for you based on type (and only on type). What python >gives you is that you can demultiplex based on name. Since python can >mix positional parameters and named parameters, and you can test type >yourself easily enough, it seems more powerful to me. Not disagreeing - but the customer is always right, and in this case customer Numero Uno is me, who refuses to work with named arguments in building his geometric constructions. Just interrupts the flow, he claims. As he is me I find it hard to disagree. Making life harder for me, the Developer - who must try to accomodate myself by working with position arguments alone. We - the whole crew of us - will get there (or close enough) eventually, I'm sure. Art From ajs@ix.netcom.com Tue Aug 20 04:24:39 2002 From: ajs@ix.netcom.com (Arthur) Date: Mon, 19 Aug 2002 23:24:39 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython Message-ID: <010701c247fa$0d8c4d90$9865fea9@arthur> Kirby writes - >What I *don't* think any standard Java API is designed to >accommodate is simple parameter switching, i.e. to catch >(int a, int b) verus (int b, int a). Nor even (int a, float b) >versus (float b, int a) I don't pretend to know what is customary - but while int a, int b v. int b,int a won't fly I don't see why (int a, float b), (float b int a) wouldn't, and if it flies and helps - why not use it. But I agree with you in the sense that if I were in fact working in Java I would be less concerned about insulating a user from an API that might make argument order significant. The poor gal has to deal with a compile cycle, casting about of types, etc. and etc. in any case. They are programming, in the most formalistic sense of the word, whether they want to be or not. But in Python/VPython/PyGeo one is working in immediate mode. And when it comes to the point when a user is building geometric constructions by script, I would ideally like them to be thinking more as a geometer, then as a programmer. If 'them' is basically just me, it is no less true. Since there is no *geometric* reason for plane, line to be preferable over line, plane in finding an intersection, I would like there not to be an artificially imposed way it needs to be done. Basically just trying to get out of the way. Art From urnerk@qwest.net Tue Aug 20 05:00:30 2002 From: urnerk@qwest.net (Kirby Urner) Date: Mon, 19 Aug 2002 21:00:30 -0700 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <010701c247fa$0d8c4d90$9865fea9@arthur> Message-ID: <5.1.1.6.0.20020819205531.02911250@pop.ptld.qwest.net> At 11:24 PM 8/19/2002 -0400, Arthur wrote: >Kirby writes - > > >What I *don't* think any standard Java API is designed to > >accommodate is simple parameter switching, i.e. to catch > >(int a, int b) verus (int b, int a). Nor even (int a, float b) > >versus (float b, int a) > >I don't pretend to know what is customary - but while >int a, int b v. int b,int a won't fly I don't see why >(int a, float b), (float b int a) wouldn't, and if it flies and >helps - why not use it. I think it makes the code far too prolix, to invent a method for every possible permutation of the same arguments. I guess the way we generally remove non-programmers from the nitty gritty of an API is to build a GUI. Pick all your parameters using widgets and hit "submit", and let the code sort it out. Another option is to prompt at the command line. IDLE has clue tips for functions when you hit the open paren, and other shells may go further, with popups ala Microsoft's "intellisense", showing what all the possible parameters might be. Given functions accept doc strings, you could have a standard way of providing help with the API for all users trying to use PyGeo in shell mode. Kirby From urnerk@qwest.net Tue Aug 20 05:05:42 2002 From: urnerk@qwest.net (Kirby Urner) Date: Mon, 19 Aug 2002 21:05:42 -0700 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: References: <5.1.1.6.0.20020819152331.034a4070@pop.ptld.qwest.net> Message-ID: <5.1.1.6.0.20020819210144.02904c50@pop.ptld.qwest.net> > >I'm not a Java guy, but your interpretation matches my experience with other >languages that support method overloading. Of course, I think this is in >large part due to the fact that it is relatively rare that the order of >parameters is insignificant, or can be made insignificant through type >checking or method overloading. It's a bit of a circle: the parameter order is rarely insignificant because the methods aren't overloaded to accommodate all permutations. If they were, order wouldn't matter. If you have just 3 parameters, that's six permutations right there. Four parameters means 4!=24 possible function signatures. No Java programmer want's to provide 24 ways of calling the exact same function with the exact same parameters -- just in different order. That would seem insane. Kirby From pobrien@orbtech.com Tue Aug 20 05:33:54 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Mon, 19 Aug 2002 23:33:54 -0500 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <010701c247fa$0d8c4d90$9865fea9@arthur> Message-ID: [Arthur] > > Since there is no *geometric* reason for plane, line to be > preferable over line, plane in finding an intersection, I would > like there not to be an artificially imposed way it needs to > be done. Basically just trying to get out of the way. I may be off target here, but I keep thinking that maybe overloading an operator is a cleaner solution for what you are describing. For example, can an intersection be represented by some mathematical operation on the two objects? intersection = someLine % somePlane Then each object would just have to define the special methods __mod__(self, other) and __rmod__(self, other). If the order of the operands is insignificant then the following line would yield an equivalent result as the example above: intersection = somePlane % someLine Thoughts? -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From ajs@ix.netcom.com Tue Aug 20 05:40:01 2002 From: ajs@ix.netcom.com (Arthur) Date: Tue, 20 Aug 2002 00:40:01 -0400 Subject: [Edu-sig] re: Does edu-sig extend to Jython Message-ID: <011601c24803$ab925170$9865fea9@arthur> Kirby writes - >If you have just 3 parameters, that's six permutations right there. >Four parameters means 4!=24 possible function signatures. No Java >programmer want's to provide 24 ways of calling the exact same >function with the exact same parameters -- just in different order. >That would seem insane. If there is no good reason, its insane. If there is a good reason, it's 4 hours work that stands there as long as you want it to. (Or at least until 3.0 comes out). Not exactly like building houses out of soda cans - whatever the hell I mean by that. But as I say, I don't see what the good reason would be if I were working in Java. But I do think I know why I would be wanting to accomplish it in my exact circumstances. Will look closer, and back-off of it if it proves truly unwieldy. Art From Jason Cunliffe" Jython showing up in very interesting edu-sig environments these days.. VisAd homepage http://www.ssec.wisc.edu/~billh/visad.html VisAD is a Java component library for interactive and collaborative visualization and analysis of numerical data. The name VisAD is an acronym for "Visualization for Algorithm Development". VisBio is a biological visualization tool designed to allow easy visualization and analysis of 4-D multispectral data--stacks of slices of biological data with multiple color values, animated across time. http://www.loci.wisc.edu/visbio/ Using Python with VisAD http://www.ssec.wisc.edu/~tomw/visadtutor/ Several small examples http://www.ssec.wisc.edu/~tomw/visadtutor/smallex.html Quick Reference to VisAD Python Interface Functions http://www.ssec.wisc.edu/~tomw/visadtutor/cheatsheet.txt ./Jason ______________________________________________ Jason Cunliffe [NOMADICS: Director art+design] Tel/fax: +1 718 422-1078 jasonic@nomadics.org N 43:00.000' W 074:31.875' ALT:1144 ft 84 Henry Street #3C Brooklyn NY 11201 USA From bea@webwitches.com Tue Aug 20 10:46:23 2002 From: bea@webwitches.com (Bea Fontaine) Date: 20 Aug 2002 12:46:23 +0300 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <1029804312.3472.21.camel@everglade.zoism.org> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> <1029804312.3472.21.camel@everglade.zoism.org> Message-ID: <1029836784.828.72.camel@snowblind> On Tue, 2002-08-20 at 03:45, Rob Brown-Bayliss wrote: [...] > Seriously, why does the world think "sexual equality = same as". I > dont. I[*] am all for women having equal rights, equal opportunities, > but dont turn girls in to boys and boys into girls. celebrate the > differences. First let me thank you for being in favour of my equal rights, it is most appreciated :) I couldn't agree more, by the way. You will not find many women who aspire at being men. We actually _like_ being ourselves (as long as we don't look at advertising, that is). I believe that the issue is actually one of turning girls into girls and boys into boys. My father recently mentioned at a family gathering that it was his greatest regret that he never realised my intelligence and potential when I was a kid and that he knows, nowadays, that is was because I had an older (very bright) brother and I was the girl. Since he is 65, I was very deeply touched by this moment of insight. Since he was a programmer for 40 years and I ended up glued to a keyboard after all, genetics seem to be the best explanation. I excelled at maths at school, I just found trigonometry to be an entertaining, but intensely useless skill at the time. So he thought I was daft... bizarre. Suffice it to say that my best personal examples of successful female mathematicians do NOT have brothers. Intellectual nurturing does not turn girls into boys. But lack of intellectual nurturing stops kids from developing brains and, at least in my generation (born '66), intellectual nurturing was still for the boys. There is sociological and also neurological evidence on that. There is a fair chance that many women simply _were_ kept pretty stupid for a long time and that attitude still has a lot of echoes in families, schools and workplaces. I am glad we have stopped celebrating that particular difference. [...] > So back to the girls and programming, yse, there will be girls who like > the idea, and are great at it, but dont go pushing all girl;s into it > just to satisfy your own ideals... Let them take it or leave it > depending on their own desires. Aah, the crux lies with the economy. It has become a political issue all over the computerized world that we require many more IT professionals than are available, so politicians have had this wonderful idea to let women have a piece of the cake. Hence, the doors were opened everywhere and women did not respond as happily as expected. They finally "let them" and women "left it". In the past, no one had made a great effort to bridge the gap and now it is not desire but necessity that has forced the issue. Well, women object to being "let in", they want to be _asked_ in :) Both genders operate on self-respect, that is a _similarity_ that is not being celebrated enough yet, as far as I'm concerned. > But, by all means do make them do an intorduction, cant make a choice > with out trying can they? That is precisely the issue. And since "they" are needed, it is also a good idea to introduce programming to them in the way they desire. Much of bad pedagogy is about spoonfeeding children with stuff they don't want to know, and much of good pedagogy is about finding out what makes children tick. Teaching girls how to program is just one of the latest chapters in that particular book and I am thrilled that this discussion is taking place here. > [*] I am in fact a house dad, I look after the kids while lean earns > the money. Simply because we dont believe in placing young kids in > someones care 8-10 hours a day while we both work and Leanne wanted to > make use of her education., Good for you! Sadly, statistics prove that the number of families who can live safely on one income is rather small in Europe and also that women usually earn a good bit less than their mates, no matter in what profession. So I am happy to hear that it works out for you. ciao bea -- bea@webwitches.com ****************** "Women have never been wizards. It's against nature: You might as well say that witches can be men." (Equal Rites, T. Pratchett) From ajs@ix.netcom.com Tue Aug 20 13:50:24 2002 From: ajs@ix.netcom.com (Arthur) Date: Tue, 20 Aug 2002 08:50:24 -0400 Subject: [Edu-sig] re: Girls, women and Programming (- and Python) Message-ID: <013101c24848$28d02510$9865fea9@arthur> >My wife thinks we should develop love-oriented programming.. >I would enjoy very much to hear your suggestions My wife's attitude is "why would anyone want to be a programmer." She considers it ministerial kind of work. Though she knows to be glad that there are people who actually want to do it. My own take, probably because I come from a family of strong women, is that this is much ado about nothing. My elder sister was an academic superstar, including near world class math aptitude. Near world class was not good enough for her, so she became a world class attorney - with a strong interest in women's issues, its true - and now is someone considered to be, let's say, important. Uncomfortable being specific. To me programming is like math, in that it has (or should have) zero gender related content. Not sure if I were a woman I would want to feel catered to, in any sense. Just the facts, thank you. Art From dblank@brynmawr.edu Tue Aug 20 15:32:09 2002 From: dblank@brynmawr.edu (Douglas S. Blank) Date: Tue, 20 Aug 2002 10:32:09 -0400 Subject: [Edu-sig] re: Girls, women and Programming (- and Python) References: <013101c24848$28d02510$9865fea9@arthur> Message-ID: <3D6252E9.10806@brynmawr.edu> Arthur wrote: [snip] > To me programming is like math, in that it has (or should have) zero > gender related content. Not sure if I were a woman I would want to > feel catered to, in any sense. Just the facts, thank you. > > Art My goal is not to have "gender unrelated" content in the courses I teach. That sounds a bit sterile, and possibly unrelated to what students are interested in. Rather, I would hope to have course content that is related to topics that cover a wide spectrum of interests. Whatever their background, race, gender, biases, etc., I would like to find stimulating assignments and methodologies that pique their interests. I find Python a good language to do this because it has very interesting connections to so many different levels. For example, one could explore the underlying C interface and issues closer to the machine, or one can explore 3D graphics via OpenGL. All in one consistent, simple, OO world. An interesting and productive thread for this conversation is: what kinds of assignments could one do with Python that you find interesting and stimulating? -Doug > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > > -- Douglas S. Blank, Assistant Professor dblank@brynmawr.edu, (610)526-6501 Bryn Mawr College, Computer Science Program 101 North Merion Ave, Park Science Bld. Bryn Mawr, PA 19010 dangermouse.brynmawr.edu From urnerk@qwest.net Tue Aug 20 16:35:53 2002 From: urnerk@qwest.net (Kirby Urner) Date: Tue, 20 Aug 2002 08:35:53 -0700 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <011601c24803$ab925170$9865fea9@arthur> Message-ID: <5.1.1.6.0.20020820083108.026b7720@pop.ptld.qwest.net> At 12:40 AM 8/20/2002 -0400, you wrote: >Kirby writes - > > >If you have just 3 parameters, that's six permutations right there. > >Four parameters means 4!=24 possible function signatures. No Java > >programmer want's to provide 24 ways of calling the exact same > >function with the exact same parameters -- just in different order. > >That would seem insane. > >If there is no good reason, its insane. > >If there is a good reason, it's 4 hours work that stands there >as long as you want it to. (Or at least until 3.0 comes out). >Not exactly like building houses out of soda cans - >whatever the hell I mean by that. Well, perhaps there's an elegant solution out there. In most cases, I think the suggestion to make the operator commutative, regardless of type, simply postpones to case/switch logic to a next level. Whatever the solution, it shouldn't add the overhead of slower speed. As a user, I don't want a programmer bending over backwards to accommodate my ignorance of programming, at the price of giving me slow-moving bloatware ala some Microsoft products. >But as I say, I don't see what the good reason would be if >I were working in Java. Why would you feel different about your user if it were a Java app? Don't you want the same freedoms to pass parameters in any order, no matter what the language? Just curious. >But I do think I know why I would be wanting to accomplish >it in my exact circumstances. Will look closer, and back-off of it if it >proves truly unwieldy. Well, you're the ultimate judge in your own exact circumstances. As a general rule of thumb though, I think it's not unreasonable to have clients of a class pay attention to parameter order. They have to think a bit like programmers because they're programming at this point. Kirby From delza@mac.com Tue Aug 20 17:41:32 2002 From: delza@mac.com (Dethe Elza) Date: 20 Aug 2002 09:41:32 -0700 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <002f01c247f9$c95f73e0$6501a8c0@vaio> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020819191934.03309690@pop.ptld.qwest.net> <002f01c247f9$c95f73e0$6501a8c0@vaio> Message-ID: <1029861693.1188.18.camel@laptop> On Mon, 2002-08-19 at 20:29, Jason Cunliffe wrote: > My wife thinks we should develop love-oriented programming.. One of my personal back-burner project is to write a book called "Programming for the Fun of It," but around the house I call it "Programming for the Daniela of It," because I test my ideas on my non-techie wife. If I can get her interest and keep it, showing her how and *why* programming can be useful and fun, then I should be able to do the same for anyone, or so the theory goes. I'm also working on my 5-year old daughter now that her reading skills have gotten to the point that she can handle most words after brief exposure to them. My 2-year old son is still safe, but my mom is arriving soon and she's already gone from a techno-phobe who couldn't turn on her first computer to teaching Photoshop and digital photography, so look out. --Dethe From delza@mac.com Tue Aug 20 18:02:32 2002 From: delza@mac.com (Dethe Elza) Date: 20 Aug 2002 10:02:32 -0700 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- and Python) In-Reply-To: <1029836784.828.72.camel@snowblind> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> <1029804312.3472.21.camel@everglade.zoism.org> <1029836784.828.72.camel@snowblind> Message-ID: <1029862952.1749.28.camel@laptop> Great discussion, all. On Tue, 2002-08-20 at 02:46, Bea Fontaine wrote: > > [*] I am in fact a house dad, I look after the kids while lean earns > > the money. Simply because we dont believe in placing young kids in > > someones care 8-10 hours a day while we both work and Leanne wanted to > > make use of her education., > > Good for you! Sadly, statistics prove that the number of families who > can live safely on one income is rather small in Europe and also that > women usually earn a good bit less than their mates, no matter in what > profession. So I am happy to hear that it works out for you. It's hard to live on one income in Canada too. I would prefer to be at home with the kids--I ended up with more nuturing genes than my wife. Unfortunately, we would be pretty strapped living on what she could earn as a linguist or ESL instructor, while we live pretty well on what I earn as a programmer. So I work and she stays with the kids for now, at least until Grandma moves closer. On the bright side, I've been able to telecommute at lot and be home with the kids, so I haven't missed their growing up entirely. --Dethe From Arthur" Kirby writes - >Whatever the solution, it shouldn't add the overhead of slower >speed. As a user, I don't want a programmer bending over >backwards to accommodate my ignorance of programming, at the >price of giving me slow-moving bloatware ala some Microsoft >products. Agreed. I'm figuring that whatever I do in the initialization routines will manifest itself, in the worst case, as a second or two at start-up. The update cycles - where the performance does really count - needs to be quite free of this kind of isinstance, or switch/case, or whatever. >Why would you feel different about your user if it were a Java >app? Don't you want the same freedoms to pass parameters in >any order, no matter what the language? Just curious. I tried to make that clear, and think it goes to the bottom of why I feel confident that I am in the right place with Python for what I am trying to do. To me "immediate mode" with dynamic typing versus compile cycle with static typing should be recognized as two very different experiences, with very different needs. I guess I consider myself as to be trying to build an SUI - script users interface. There are very specific and compelling (to me) reasons that I don't want to go too far toward either the GUI side, or the API side. Art From djrassoc01@mindspring.com Wed Aug 21 00:54:03 2002 From: djrassoc01@mindspring.com (djr) Date: Tue, 20 Aug 2002 18:54:03 -0500 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- andPython) References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> <1029804312.3472.21.camel@everglade.zoism.org> <1029836784.828.72.camel@snowblind> <1029862952.1749.28.camel@laptop> Message-ID: <3D62D689.564E85D@mindspring.com> Very off topic but in regard to this from Dethe... > > > > Good for you! Sadly, statistics prove that the number of families who > > can live safely on one income is rather small in Europe -- It is my suspicion that once the cultural values changed so that it was acceptable (or even desired) that both person's were employed a new equilibrium arose in which the salaries were such that both persons >must< work. I.e., The salary of the former stay at home went up while the salary of the person working went down in real purchasing power at least. Thus what you see now that both must work is simply a new equilibrium point far different from the 1950's one in which the person working was paid a certain amount because 'after all they have a family to support'. As I said..very off topic... -- Dr. David J. Ritchie, Sr. djrassoc01@mindspring.com http://home.mindspring.com/~djrassoc01/ From pobrien@orbtech.com Wed Aug 21 02:48:23 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Tue, 20 Aug 2002 20:48:23 -0500 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: <000501c248a1$77672c60$734ffea9@Arts> Message-ID: [Arthur] > > I tried to make that clear, and think it goes to the bottom of why I feel > confident that I am in the right place with Python for what I am trying > to do. To me "immediate mode" with dynamic typing versus compile cycle > with static typing should be recognized as two very different > experiences, with very different needs. I guess I consider myself > as to be trying to build an SUI - script users interface. There are very > specific and compelling (to me) reasons that I don't want to go too > far toward either the GUI side, or the API side. I can definitely relate to this feeling, though I haven't spent much time articulating it. I consider the Python shell to be the primary interface (in terms of importance) for the Python code I'm developing. Adding command-line, GUI or Web interfaces is secondary. And I find that the process of making modules, classes and functions useable in the interactive shell environment has a fundamental impact on the resulting code. Conversely, there are Python modules containing perfectly good code that aren't terribly useable in the shell environment, but could be with some refactoring. To me, the interactive Python shell is just as important and significant a feature of Python as the clear, elegant syntax. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From nagarjun@hbcse.tifr.res.in Wed Aug 21 08:32:44 2002 From: nagarjun@hbcse.tifr.res.in (Nagarjuna G.) Date: Wed, 21 Aug 2002 13:02:44 +0530 Subject: [Edu-sig] Women, robots, and Python In-Reply-To: <3D614F9B.6050302@brynmawr.edu> References: <3D614F9B.6050302@brynmawr.edu> Message-ID: <20020821073244.GC15857@hbcse.tifr.res.in> On Mon, Aug 19, 2002 at 04:05:47PM -0400, Douglas S. Blank wrote: > Greetings! > > I've just joined this list, and have found the last couple of weeks' > discussions to be right on target for me. > > I teach at Bryn Mawr College, an all women's school just getting a > computer science (and cognitive science) program off the ground. The > problems of gender and CompSci are complex ones, but ones that I think > Python has a role in which to play. I hope that discussion continues here. > > We aren't ready to teach any courses in Python (yet) but the last > project that I started is written in Python, called Pyro, for Python > Robotics. I have forwarded many of the mails from this thread to my colleagues who are interested in gender and science. Since this thread really is going on and on, and I wish to add my experince of Python and girls. I worked with seven girls recently on the developement of a Python/Zope based knowledge management project (called GNOWSYS http://www.zope.org/Members/nagarjuna/GNOWSYS). I have also worked with boys in the same project. I haven't found any marked difference in the nature of their contributions. They have exhibited same analytical skills as the boys, and in fact found the girls' contribution more substantial since I found them more sincere and have spent more time . But, I havent found anything that makes Python girl friendly. Python is programmer friendly, irrespective of gender. I am taking mostly girls this time in the project, because I want to have more female hackers around. Nagarjuna From bea@webwitches.com Wed Aug 21 10:06:03 2002 From: bea@webwitches.com (Bea Fontaine) Date: 21 Aug 2002 12:06:03 +0300 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- andPython) In-Reply-To: <3D62D689.564E85D@mindspring.com> References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> <1029804312.3472.21.camel@everglade.zoism.org> <1029836784.828.72.camel@snowblind> <1029862952.1749.28.camel@laptop> <3D62D689.564E85D@mindspring.com> Message-ID: <1029920763.831.48.camel@snowblind> On Wed, 2002-08-21 at 02:54, djr wrote: [snip] > I.e., The salary of the former stay at home went up while the salary > of the person working went down in real purchasing power at least. > Thus what you see now that both must work is simply a new equilibrium > point far different from the 1950's one in which the person working > was paid a certain amount because 'after all they have a family to support'. > > As I said..very off topic... I don't agree (see subject) and, since I am not in class, let me object. The original question was, I believe, how to get girls to enjoy programming and specifically, what to take into account when teaching Python to females. From that arose the question of necessity vs. desire. Over a few detours, the question came to who does what in a couple in terms of work. There seems to be a lot of discussion inside families going on between male programmers and female non-programmers (especially concerning attitude towards programming), otherwise there wouldn't have been this much constructive reaction on the issue. Mainly, however, I had stepped in to contradict a few sweeping and, i.m.h.o. rather shallow statements that were made on how to deal with the girl-boy issue. *Aside* Your comment sidesteps the real financial problem: the fact that there is a difference between what women do and what men do and what they get paid for it. The real problem is that single women ALSO earn less than their male counterparts and that is also true in technology. "Incidentally", that also creates a problem for parents without sufficient income, but that is "only" one part of it, although one of great impact. Same work, less money when you're a woman. THAT is the issue. No matter how you see it, that influences the professional choices women make quite significantly, and therefore the issue is relevant to that of teaching girls how to program. To bring it back to the specifics of getting girls to learn Python: women commonly define themselves by what is useful much more than by what is fun. That needs to be taken into account when trying to encourage them to learn how to program. Therefore, I daresay that most women don't care _what_ programming language they're using as long as it _works_ better than what they expected, for instance because it is easier to learn and apply to something useful, than another language - or because you can use it to earn more money than before. _That_ is something you can use as a "sales pitch" with girls, if you wish to convince them in favour of Python. bea -- bea@webwitches.com ****************** "Women have never been wizards. It's against nature: You might as well say that witches can be men." (Equal Rites, T. Pratchett) From urnerk@qwest.net Wed Aug 21 15:42:51 2002 From: urnerk@qwest.net (Kirby Urner) Date: Wed, 21 Aug 2002 07:42:51 -0700 Subject: [Edu-sig] re: Does edu-sig extend to Jython In-Reply-To: References: <000501c248a1$77672c60$734ffea9@Arts> Message-ID: <5.1.1.6.0.20020821073842.02a59ec0@pop.ptld.qwest.net> > >To me, the interactive Python shell is just as important and significant a >feature of Python as the clear, elegant syntax. I agree with this. Shell mode is a great place to "think in Python". Note: There are a couple of Java add-ons that give some of this flavor to Java as well, e.g. DynamicJava http://koala.ilog.fr/djava/ which I've not tested. BeanShell is another. http://www.beanshell.org/intro.html And of course, first and foremost in our circle, there's Jython, the Python/Java hybrid which in many ways brings the best of both worlds (Python's easy syntax and standard library, Java's huge class library) into very close association. Kirby From pfroehli@ics.uci.edu Thu Aug 22 00:05:38 2002 From: pfroehli@ics.uci.edu (Peter H. Froehlich) Date: Wed, 21 Aug 2002 16:05:38 -0700 Subject: [Edu-sig] Python for Algorithms and Data Structures... Message-ID: <81D2460B-B55A-11D6-9F6F-0003936CFB76@ics.uci.edu> Hi there, I am about to teach an introductory course (read: third course in the intro sequence, university level) on algorithms and data structures. I am looking for experiences in teaching such a course using Python. I have used Python successfully last summer for a compiler course, but since the "default" language for this course is supposed to be C++ I have a harder time balancing between the student's previous experience and my desire for a clean presentation (using Python as "pseudo code" of a sort). What this all comes down to: If you have used Python in any capacity for a similar course, please let me know about it. :-) Peter -- Peter H. Froehlich []->[!]<-[] http://nil.ics.uci.edu/~phf/ OpenPGP: D465 CBDD D9D2 0D77 C5AF 353E C86C 2AD9 A6E2 309E From djrassoc01@mindspring.com Thu Aug 22 03:19:02 2002 From: djrassoc01@mindspring.com (djr) Date: Wed, 21 Aug 2002 21:19:02 -0500 Subject: [Edu-sig] Re: [Tutor] Girls, women and Programming (- andPython) References: <3D4C73D9.2000704@aon.at> <3D485C3F.3060304@aon.at> <3D4C73D9.2000704@aon.at> <5.1.1.6.0.20020806083740.0245ed90@pop.ptld.qwest.net> <1029804312.3472.21.camel@everglade.zoism.org> <1029836784.828.72.camel@snowblind> <1029862952.1749.28.camel@laptop> <3D62D689.564E85D@mindspring.com> <1029920763.831.48.camel@snowblind> Message-ID: <3D644A13.5D6034E2@mindspring.com> Aha, in response to Bea's post, let me clarify my earlier remarks by saying that by "equilibrium point", I did not mean equal between men and women's salaries--I meant that both have changed--gone down in my view. I am well aware that typically men's to women's is 1 to 0.59 (or something on that order). What I meant is that total household income, it my unfounded suspicion, has gone down in terms of its ability to buy a certain standard of living as compared to 50 years ago. Thus, while initially a family may have been able to live a little better by having both parties work, I think over time, the ability of that income to buy that standard of living has decreased. I think it's probably a combination of employer's realizing there are more people out there and therefore they can pay a little less (and even less to the woman of the family) and costs of that standard of living getting bid up a little more. By describing this situation which I believe is fairly factual and generally the norm, I don't mean to be approving of it--just to describe it. The net result is that in fact you more than likely have to 'take a vow of poverty' (tongue somewhat in cheek here) to raise your children in the style to which you think they should be raised -- particularly if that style is one which says its overall better if when they come home on the school bus there's a mom or a dad there to welcome them. If one is luckly, it is still possible to live a somewhat imporverished life in order to achieve that. In some areas of the world (as we have heard on this list), that is not even possible -- which is unfortunate. My apologies to the list for wading through this off topic matter even more. If anyone wants to discuss further I invite them to write me directly. --D. -- Dr. David J. Ritchie, Sr. djrassoc01@mindspring.com http://home.mindspring.com/~djrassoc01/ From Jason Cunliffe" http://news.bbc.co.uk/2/hi/uk_news/education/2208547.stm From bea@webwitches.com Thu Aug 22 11:07:36 2002 From: bea@webwitches.com (Bea Fontaine) Date: 22 Aug 2002 13:07:36 +0300 Subject: [Edu-sig] BBC NEWS UK Education GCSE 'gender gap' sparks concern In-Reply-To: <000b01c249be$7ae902a0$6501a8c0@vaio> References: <000b01c249be$7ae902a0$6501a8c0@vaio> Message-ID: <1030010856.1990.34.camel@snowblind> On Thu, 2002-08-22 at 12:29, Jason Cunliffe wrote: > http://news.bbc.co.uk/2/hi/uk_news/education/2208547.stm now there is an interesting bit of info... especially if you read the analysis. It lets us know that a huge majority of kids chosing IT for the first time are still boys and an equally huge majority of kids chosing healthcare are still girls. Although, according to this survey, girls outdo boys in terms of results in IT at school (as well as pretty much everywhere else in terms of learning), it doesn't seem to significantly affect their career choice yet. Bizarre. A primary school teacher I know says that school is for little girls who always say yes. Maybe IT is just slurped up together with the other things that must be learned, with equal zeal and equal bemusement at the purpose, for lack of a reason not to? Are we being off topic again? I've had my wrists slapped twice already although several people seemed interested. Maybe I misunderstand the way the list is run? bea -- bea@webwitches.com ****************** "Women have never been wizards. It's against nature: You might as well say that witches can be men." (Equal Rites, T. Pratchett) From djrassoc01@mindspring.com Thu Aug 22 13:26:23 2002 From: djrassoc01@mindspring.com (djr) Date: Thu, 22 Aug 2002 07:26:23 -0500 Subject: [Edu-sig] BBC NEWS UK Education GCSE 'gender gap' sparksconcern References: <000b01c249be$7ae902a0$6501a8c0@vaio> <1030010856.1990.34.camel@snowblind> Message-ID: <3D64D85E.8589D55B@mindspring.com> From: djr 7:21 AM Subject: Re: [Edu-sig] BBC NEWS UK Education GCSE 'gender gap' sparksconcern To: Bea Fontaine In regard to Bea's post... > > Are we being off topic again? I've had my wrists slapped twice already > although several people seemed interested. Maybe I misunderstand the way > the list is run? I would say "No, you aren't being off topic if you think it is something that should be sent around to this list". In my opinion, we are each our own moderators on this list. (at least that seems to be how it is being run). With regard to the dicussion that I felt myself drawn into recently, I concluded >I< was getting pretty far afield for what >I< felt was the patience of other people who might want to receive e-mail mainly on the subject of education aspects of Python. That's why I recently invited others who wanted to discussion the item with me further to correspond with me directly. --D. -- Dr. David J. Ritchie, Sr. djrassoc01@mindspring.com http://home.mindspring.com/~djrassoc01/ From Jason Cunliffe" > Are we being off topic again? I've had my wrists slapped twice already > although several people seemed interested. Maybe I misunderstand the way > the list is run? I hope not. Life+learning mean little or nothing without context.. ./Jason From Jason Cunliffe" One of the thing which made me laugh/wince is how even the response is framed in largely negativ/competitive terms. Instead of celebrating that the girls are doing _well_, it's like ohno we have only a problem. Did you see the comment that the boys are all watching too much soccer [football] on TV? Not to mention all that cheap dutch Ecstacy they take on weekends >:-! The higher percentage of boys still in "IT", also provokes the question of what kind of teaching they are really getting and what should/could be done about it. It would be intersting to know what the figures are for all of Europe this summer... hell for the whole planet. That *would* be interesting. Does anyone know how many teenagers in the world are exposed to Python and where? I've been semi-watching the Annenburg/CPB on late night Channel 25 for the past 10 days. The mechanical universe, Mitch Resnick on computational literacy with 'crickets' and Lego Mindstorms. One series focused on early numeracy and problem solving. It had the teacher first put problems to the kids. Then the reverse. Wow they really woke up. You could see their brains going into a different gear. It made me think that that's a large part of what programming and especially with a CLI-based system like Python is sort of like. when the kids were 'designing' prblems for teh teacher, she became the computer system and they in their clusters became little alogothimic scripts. Fascinating ./Jason From pobrien@orbtech.com Thu Aug 22 14:55:06 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Thu, 22 Aug 2002 08:55:06 -0500 Subject: [Edu-sig] BBC NEWS UK Education GCSE 'gender gap' sparksconcern In-Reply-To: <003401c249e0$78ce8ea0$6501a8c0@vaio> Message-ID: [Jason Cunliffe] > > I've been semi-watching the Annenburg/CPB on late night Channel > 25 for the past > 10 days. The mechanical universe, Mitch Resnick on computational > literacy with > 'crickets' and Lego Mindstorms. One series focused on early > numeracy and problem > solving. It had the teacher first put problems to the kids. Then > the reverse. > Wow they really woke up. You could see their brains going into a > different gear. > It made me think that that's a large part of what programming and > especially > with a CLI-based system like Python is sort of like. when the kids were > 'designing' prblems for teh teacher, she became the computer > system and they in > their clusters became little alogothimic scripts. Fascinating Can you expand on that a bit? Do you mean the kids came up with math problems that the teacher then had to solve? Or some other kind of problem? I'm trying to understand exactly how they became little algorithmic scripts because it does sound fascinating to me as well. Thanks. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From ajs@ix.netcom.com Thu Aug 22 14:53:32 2002 From: ajs@ix.netcom.com (Arthur) Date: Thu, 22 Aug 2002 09:53:32 -0400 Subject: [Edu-sig] BBC NEWS UK Education GCSE 'gender gap' sparksconcern Message-ID: <018801c249e3$4df79430$9865fea9@arthur> Jason asks: >The higher percentage of boys still in "IT", also provokes >the question of what >kind of teaching they are really getting and what >should/could be done about it. Perhaps folks are making free choices, at levels of complexity we can not hope (nor should particularly care) to understand, and what should be done about it is nothing. Now if there is evidence that a women who chooses to make best efforts at a carreer in programming is inhibited in *any* way as a result of her gender - that is a totally different issue - and one which is worth a fight. But it seems that even if that fight is declared won, there are those who seem committed to needing something on their todo list connected to all this. Art From Jason Cunliffe" Message-ID: <006e01c249ea$9bfe3ba0$6501a8c0@vaio> > Can you expand on that a bit? Do you mean the kids came up with math > problems that the teacher then had to solve? Or some other kind of problem? > I'm trying to understand exactly how they became little algorithmic scripts > because it does sound fascinating to me as well. Thanks. Yes in the same session, first the teacher set the kids simple problems. Then she said ok now its your turn. They went off, some together, some solo, to think of a problem. After a time, she had them read out their problems and she would try to solve them. Of course, they also had to tell her if she was correct. I say 'algorithmic scripts' because you could see they were mostly following variations of the type of problems she had set them. But the form, [the algorithm], was an oral expression [story/puzzle], a public reading aloud derived from the actual arithmetic/calculation [scripts]which they had written on paper. You could see that at the same time they were thrilled by several things: 1. role reversal 2. developing variations on the problems she had set them 3. thinking of original problems 4. thinking and/or describing problems in a worldly context. Not just number problems, they related to objects, things/situations around them, or which they chosen to imagine 5. story telling game - with a component/motivation to make it 'hard' or 'harder', because they wanted something more sophisticated, more complex that perhaps the expert [teacher] would not be able to solve. Some kids were less confident of their own abilities and satisfied to just get it right. You could a few timid, cautious ones who were not sure even of their own answer/problem, while others were excited and motivated to push the limit. The timid ones were satisfied when it was over to be confirmed that they had got it right [full circle]. The brighter ones were trying to extend the pattern blocks of their problem to make a more difficult one. 6. faith ...in themselves, in their teacher, and in the reliability of the patterns [of problems] and the math it was based on. Even though the kids were young and the arithmetic problems simple, it was easy to see how this process, if used widely, and combined with early computer programming tools of any kind constitutes revolutionary and powerful approach. I am not a teacher so perhaps I am getting excited about something normal today in teaching practice. It was so encouraging to witness the learning dynamics of this class and extrapolate how this might develop broadly into new educational culture. Imagine being a young child now entering this kind of schooling. In some ways this is how I feel myself with computers, as I study all sorts of interactive programming. The major component being the extraordinary resource and culture of Internet sharing and teaching. The cycle in vibrant openSource communities like Python and others, where we are all teachers and students, and experience those roles and realizations in unfolding waves. hope I am making sense here.. ./Jason From Jason Cunliffe" Message-ID: <007401c249eb$87b4a3e0$6501a8c0@vaio> > Perhaps folks are making free choices, at levels of complexity we can not > hope (nor should particularly care) > to understand, and what should be done about it is nothing. Could be. I was concerned more about the overall presentation of "IT" and computational literacy issues than gender. But strongly suspect there are still all sorts of assumptions/stereotypes kicking around about boys vs girls and what IT is and can be. From the school curriculum down and from the kids up.. and vice versa ./Jason From urnerk@qwest.net Thu Aug 22 16:32:17 2002 From: urnerk@qwest.net (Kirby Urner) Date: Thu, 22 Aug 2002 08:32:17 -0700 Subject: [Edu-sig] BBC NEWS UK Education GCSE 'gender gap' sparksconcern In-Reply-To: <007401c249eb$87b4a3e0$6501a8c0@vaio> References: <018801c249e3$4df79430$9865fea9@arthur> Message-ID: <5.1.1.6.0.20020822082438.030b90a0@pop.ptld.qwest.net> >Could be. I was concerned more about the overall presentation of "IT" and >computational literacy issues than gender. >But strongly suspect there are still all sorts of assumptions/stereotypes >kicking around about boys vs girls and what IT is and can be. From the school >curriculum down and from the kids up.. and vice versa > >./Jason We should also be clear that learning to program, having programming skills, may not translate into a career in IT per se. What the 'Computer Programming for Everybody' initiative was about (DARPA funding for Python) was giving entre to the skills and shoptalk for people in *any* walk of life, not just career ITers of any kind. The fact that many girls/women are still going into health care is, by this reasoning, not mutually exclusive from having computer skills. Indeed, the health care industry is a primary consumer of computer services, and many of its staff positions require computer skills. The entertainment and graphic design industries are others. Classroom teacher is another position sterotypically more open to women, and here too programming skills may be extremely relevant. In my neck of the woods, the teacher training colleges are all about teaching future teachers how to use computer projectors and use programming in the classroom. Kirby PS: although a programmer by trade, I don't consider myself an IT person (I'm not an employee of any IT department or division). I do work in the health care industry however, for a large hospital system. From Jason Cunliffe" <5.1.1.6.0.20020822082438.030b90a0@pop.ptld.qwest.net> Message-ID: <003101c24a0a$9bdd5fa0$6501a8c0@vaio> > We should also be clear that learning to program, having programming > skills, may not translate into a career in IT per se. What the > 'Computer Programming for Everybody' initiative was about (DARPA > funding for Python) was giving entre to the skills and shoptalk for > people in *any* walk of life, not just career ITers of any kind. Yes exactly. I hope they present the vast scope of "IT". > The fact that many girls/women are still going into health care is, > by this reasoning, not mutually exclusive from having computer skills. > Indeed, the health care industry is a primary consumer of computer > services, and many of its staff positions require computer skills. > The entertainment and graphic design industries are others. This morning's new York Times has little article about handheld devices in hospitals. Smart-computing for patient data gathering and processing is set for huge changes/improvements. The most fascinating new periodical I read these days is "BioITWorld". It's a brilliant monthly which started in February. Somehow a free sub tumbled into mailbox. It is well written and accessible. A portal with an urgent unholy aliance between cuting edge tech, creative collaboration, greed and business. A lucid front row seat at the swirling theater of science, sequencing, visualization, simulation, programmimg, database, politics, software, money, hardware... http://www.bio-itworld.com > Classroom teacher is another position sterotypically more open to > women, and here too programming skills may be extremely relevant. > In my neck of the woods, the teacher training colleges are all > about teaching future teachers how to use computer projectors > and use programming in the classroom. That's good news. I wonder what teacher trainging will be 25 years from now? ./Jason From pobrien@orbtech.com Thu Aug 22 20:06:25 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Thu, 22 Aug 2002 14:06:25 -0500 Subject: [Edu-sig] BBC NEWS UK Education GCSE 'gender gap' sparksconcern In-Reply-To: <006e01c249ea$9bfe3ba0$6501a8c0@vaio> Message-ID: [Jason Cunliffe] > > hope I am making sense here.. You are. Thanks for the details. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From pfroehli@ics.uci.edu Thu Aug 22 20:36:10 2002 From: pfroehli@ics.uci.edu (Peter H. Froehlich) Date: Thu, 22 Aug 2002 12:36:10 -0700 Subject: [Edu-sig] Role Reversal... Message-ID: <6923C0B8-B606-11D6-8409-0003936CFB76@ics.uci.edu> Hi! I read the "teaching by role reversal" discussion, and while I like the general idea, I have to admit (maybe I am getting too old) that it sounds like quite a risky project. In my experience, many (most?) students are just not interested, all they need is a grade. The five exceptions to the rule per quarter make teaching fun. That might be a function of the US system, but I have the weird feeling that most of my class would stare at me blankly when I say "Okay, so those are the basics of hash tables. Now give me some problems regarding the data structure that I can solve for you." or something. On the other hand, maybe I am not getting the approach described correctly, or maybe I would even be surprised by the response once I do it in class. I think I will give it a whirl once or twice during the coming quarter, just to see what happens. Peter -- Peter H. Froehlich []->[!]<-[] http://nil.ics.uci.edu/~phf/ OpenPGP: D465 CBDD D9D2 0D77 C5AF 353E C86C 2AD9 A6E2 309E From delza@mac.com Thu Aug 22 20:44:17 2002 From: delza@mac.com (Dethe Elza) Date: 22 Aug 2002 12:44:17 -0700 Subject: [Edu-sig] Role Reversal... In-Reply-To: <6923C0B8-B606-11D6-8409-0003936CFB76@ics.uci.edu> References: <6923C0B8-B606-11D6-8409-0003936CFB76@ics.uci.edu> Message-ID: <1030045458.12165.91.camel@laptop> Teaching by asking questions is the essence of the Socratic method. Getting your students to ask the questions is recommended in "Teaching as a Subversive Activity" and "Zen and the Art of Motorcycle Maintenance." Of course, after having suprising success with the method (in Zen and...), Phaedrus then went mad. Teach at your own risk. --Dethe On Thu, 2002-08-22 at 12:36, Peter H. Froehlich wrote: > Hi! > > I read the "teaching by role reversal" discussion, and while I like > the general idea, I have to admit (maybe I am getting too old) that > it sounds like quite a risky project. > > In my experience, many (most?) students are just not interested, > all they need is a grade. The five exceptions to the rule per > quarter make teaching fun. That might be a function of the US > system, but I have the weird feeling that most of my class would > stare at me blankly when I say "Okay, so those are the basics of > hash tables. Now give me some problems regarding the data structure > that I can solve for you." or something. > > On the other hand, maybe I am not getting the approach described > correctly, or maybe I would even be surprised by the response once > I do it in class. I think I will give it a whirl once or twice > during the coming quarter, just to see what happens. > > Peter > -- > Peter H. Froehlich []->[!]<-[] http://nil.ics.uci.edu/~phf/ > OpenPGP: D465 CBDD D9D2 0D77 C5AF 353E C86C 2AD9 A6E2 309E > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig From Jason Cunliffe" Message-ID: <001701c24a1f$5cffba20$6501a8c0@vaio> > I read the "teaching by role reversal" discussion, and while I like > the general idea, I have to admit (maybe I am getting too old) that > it sounds like quite a risky project. Yes risky. But really what did she have to lose? Anyway in that class on that day it seemed to be a real success. There was also a tv crew there so perhasp they were on best behavior and excited also. Hard to say what goes on off camera and extra-editing. She was a very encouraging teacher with good kids. They were very young - before the stage when they are gripped with achievement duties and standardized performance fears. Later she mentioned, at that age they are very keen to show how grown up they are.. tie shoelaces, counting, sums.. big stuff. In another segment of the same series once bright kid figures out that 100 + 500 = 600 is just like 1 + 5 = 6. But clearly the clas was all very impressed. 100 is a big number.. > In my experience, many (most?) students are just not interested, > all they need is a grade. The five exceptions to the rule per > quarter make teaching fun. That might be a function of the US > system, but I have the weird feeling that most of my class would > stare at me blankly when I say "Okay, so those are the basics of > hash tables. Now give me some problems regarding the data structure > that I can solve for you." or something. If I can try to extend from the young children I saw on TV to your class example, I would say that the teacher did not just present the basics before throwing them loose on problem generation. Instead, it was a fairly smooth transition from first giving them basic problems [modelling and with hands-on worked-through examples], making sure they were reasonably getting it right. Then saying "ok now its your turn to try and create a problem me for me to solve". She made it clear by her demeanor that this ws not just a test of rigght answer vs. wronig answer. I would say that creating the problem was as important as the correct calculation. Which is why it made me think play = design = prgoramming. The 'problem' has at least two facets: 1. how to create a problme, [something kids are not formally encouraged to do in class] 2. making sure the problem they have created can also be solved by them There is a interesting tension there. Some problem were rooted in the classroom. [here's my trivial 'real-world' example] ... If there are 25 children in the class, and they each have an apple every day, How many apples will thay have eaten together after 1 week? A more richly'imagined' problem might involve fully things which cannot be seen or are 'realistic'. In the sgmetn I saw, some kids seemed to enjoy the fantasy aspect, while others prefered the reality. The class experience was made moer poweful because the math was the same. That's true without any role-reversal, but stronger for it. They all involve risk, error and learning to fix things. Getting something wrong in programming is how one learns as much as defining the problem. The rewards are throughuout - in the doing and then when it finally works and we get it right.. And as we know, there is seldom a finally anything in programming, becuase like evolution, success begats adaptation and experiment. We immediately get ambitous and try to go further. More abtract, elegant, powerful, complex .. faster better cheaper smaller vs. slower, worse, expensive and often fast cheap and out-of-control. [Kelly] > On the other hand, maybe I am not getting the approach described > correctly, or maybe I would even be surprised by the response once > I do it in class. I think I will give it a whirl once or twice > during the coming quarter, just to see what happens. hope my description helps.. I look forwards to hearing what happens. Good luck! From Laurent.Pierron@loria.fr Fri Aug 23 10:26:37 2002 From: Laurent.Pierron@loria.fr (Laurent Pierron) Date: Fri, 23 Aug 2002 11:26:37 +0200 Subject: [Edu-sig] Python for Algorithms and Data Structures... Message-ID: <3D65FFCD.6000807@loria.fr> Hi there... I'm trying to convince my colleague teachers to teach the science of computer programming with Python. It's not a problem to teach very basic computer programming with Python, but the major concurrent is VisualBasic which is more sexy with the graphic studio. For my colleagues now teaching basic computer programming is point-and-click to draw a nice interface and add some magic sentences to enforce the computer to do something, it's a non-sense and give a bad idea to the difficulty to think like a computer scientist. To teach "serious" computer programming (algorithm and data structure) there is some problems using Python, in France the course of algorithmic contains a large part about pointers (no pointers in Python), about Pascal-like record and data types, it's independant of the language but very Pascal-oriented. It's not dfficult to teach Pascal-like record with empty classes. Data types is just a matter of convention. But how to introduce pointer with Python, pointer is very important in computer science because it's very used in C and C++, and C/C++ are very used in computer science ? -- Laurent PIERRON -*- mailto:Laurent.Pierron@loria.fr Ingénieur de développement Service SeDre : http://www.loria.fr/LORIA/EXT/services/SEDRE/ INRIA-Lorraine / LORIA -*- bureau : B 042 615, rue du Jardin Botanique -*- mobile/SMS : +33 6 72 23 03 80 B.P. 101 -*- voix : +33 3 83 59 30 93 54602 Villers les Nancy (France) -*- fax : +33 3 83 27 83 19 From gritsch@iue.tuwien.ac.at Fri Aug 23 11:18:01 2002 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Fri, 23 Aug 2002 12:18:01 +0200 Subject: [Edu-sig] Python for Algorithms and Data Structures... References: <3D65FFCD.6000807@loria.fr> Message-ID: <3D660BD9.6060204@iue.tuwien.ac.at> Laurent Pierron wrote: > Hi there... > > It's not dfficult to teach Pascal-like record with empty classes. > Data types is just a matter of convention. > But how to introduce pointer with Python, pointer is very important in > computer science because it's very used in C and C++, and C/C++ are very > used in computer science ? In my opinion: Pointers are not necessary. They are only an artefact of C which you have to know and to use to write useful code. C++ introduces references and actually Python also uses references. Python combines this with mutual and non-mutual data types which is IMHO quite elegant. The separation of algorithm and data-types is done in C because C has no method for including algorithms into data-types, i.e. Classes. Therefore generating this artificially in Python by struct-like Classes seems not optimal to me. To decouple algorithms and data-types when really needed, C++ introduced templates. This is only necessary because of the static typing of C++ variables. Python has dynamic typing, so there is no need for templates there. Polymorphism is also a strong technique, but just not supported by C. My 2c, Markus From pobrien@orbtech.com Fri Aug 23 13:52:48 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Fri, 23 Aug 2002 07:52:48 -0500 Subject: [Edu-sig] Python for Algorithms and Data Structures... In-Reply-To: <3D660BD9.6060204@iue.tuwien.ac.at> Message-ID: [Markus Gritsch] > > Pointers are not necessary. They are only an artefact of C which you > have to know and to use to write useful code. C++ introduces references > and actually Python also uses references. Python combines this with > mutual and non-mutual data types which is IMHO quite elegant. I've never heard of "mutual and non-mutual data types" and a Google search produced no results at all. Can you explain what you mean by these terms? Just curious. Thanks. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From gritsch@iue.tuwien.ac.at Fri Aug 23 14:02:38 2002 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Fri, 23 Aug 2002 15:02:38 +0200 Subject: [Edu-sig] Python for Algorithms and Data Structures... References: Message-ID: <3D66326E.1080407@iue.tuwien.ac.at> Patrick K. O'Brien wrote: > [Markus Gritsch] > >>Pointers are not necessary. They are only an artefact of C which you >>have to know and to use to write useful code. C++ introduces references >>and actually Python also uses references. Python combines this with >>mutual and non-mutual data types which is IMHO quite elegant. > > I've never heard of "mutual and non-mutual data types" and a Google search > produced no results at all. Can you explain what you mean by these terms? > Just curious. Thanks. Excuse me. I meant "mutable" and "immutable" http://www.python.org/doc/current/ref/types.html Markus From rhseabrook@aacc.edu Fri Aug 23 14:54:43 2002 From: rhseabrook@aacc.edu (Seabrook, Richard) Date: Fri, 23 Aug 2002 09:54:43 -0400 Subject: [Edu-sig] Python for Algorithms and Data Structures... Message-ID: I think both views have merit. On one hand, pointers aren't essential for any particular algorithm, they are a subject in and of themselves requiring considerable exposure and experimentation to grasp. On the other, languages that do not have pointers invariably get into some explanation difficulties sooner or later. For example, in Python some copying and assignment operations result in two names referring to the same object, rather than two unique objects. In languages with pointers this is much easier to explain, once students grasp the idea of a pointer. Dick S. -----Original Message----- From: Markus Gritsch To: Laurent Pierron; edu-sig@python.org Sent: 8/23/02 6:18 AM Subject: Re: [Edu-sig] Python for Algorithms and Data Structures... Laurent Pierron wrote: > Hi there... > > It's not dfficult to teach Pascal-like record with empty classes. > Data types is just a matter of convention. > But how to introduce pointer with Python, pointer is very important in > computer science because it's very used in C and C++, and C/C++ are very > used in computer science ? In my opinion: Pointers are not necessary. They are only an artefact of C which you have to know and to use to write useful code. C++ introduces references and actually Python also uses references. Python combines this with mutual and non-mutual data types which is IMHO quite elegant. The separation of algorithm and data-types is done in C because C has no method for including algorithms into data-types, i.e. Classes. Therefore generating this artificially in Python by struct-like Classes seems not optimal to me. To decouple algorithms and data-types when really needed, C++ introduced templates. This is only necessary because of the static typing of C++ variables. Python has dynamic typing, so there is no need for templates there. Polymorphism is also a strong technique, but just not supported by C. My 2c, Markus _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig From gritsch@iue.tuwien.ac.at Fri Aug 23 15:03:34 2002 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Fri, 23 Aug 2002 16:03:34 +0200 Subject: [Edu-sig] Python for Algorithms and Data Structures... References: Message-ID: <3D6640B6.8010109@iue.tuwien.ac.at> Seabrook, Richard wrote: > > I think both views have merit. On one hand, pointers aren't essential > for any particular algorithm, they are a subject in and of themselves > requiring considerable exposure and experimentation to grasp. Agreed. > On the > other, languages that do not have pointers invariably get into some > explanation difficulties sooner or later. For example, in Python some > copying and assignment operations result in two names referring to the > same object, rather than two unique objects. In languages with pointers > this is much easier to explain, once students grasp the idea of a pointer. > Dick S. I think that the lack of pointers in Python is no shortcoming as long as you explain to the students, that the assignment operator actually assigns the *reference* of an object to the new object and that only in the case of immutable types a new object is created. For me this is as easy to grasp as the concept of pointers, but probably it's just a matter of taste. Being-totally-happy-with-just-references yr's Markus From gritsch@iue.tuwien.ac.at Fri Aug 23 15:12:01 2002 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Fri, 23 Aug 2002 16:12:01 +0200 Subject: [Edu-sig] Python for Algorithms and Data Structures... References: <3D6640B6.8010109@iue.tuwien.ac.at> Message-ID: <3D6642B1.1080407@iue.tuwien.ac.at> Markus Gritsch wrote: > Seabrook, Richard wrote: > >> >> I think both views have merit. On one hand, pointers aren't essential >> for any particular algorithm, they are a subject in and of themselves >> requiring considerable exposure and experimentation to grasp. > > > Agreed. > >> On the >> other, languages that do not have pointers invariably get into some >> explanation difficulties sooner or later. For example, in Python some >> copying and assignment operations result in two names referring to the >> same object, rather than two unique objects. In languages with pointers >> this is much easier to explain, once students grasp the idea of a >> pointer. >> Dick S. > > > I think that the lack of pointers in Python is no shortcoming as long as > you explain to the students, that the assignment operator actually > assigns the *reference* of an object to the new object and that only in > the case of immutable types a new object is created. Actually, using the pure assignment operator together with immutable objects *also* only copies references: >>> a = 5 >>> id(a) 135109992 >>> b = 5 >>> id(b) 135109992 This is done for performance and memory reasons. Only if you assign a new value to 'b' a new object is created. >>> b = 10 >>> id(b) 135109872 But that are just details which don't have to be explained to students for the sake of grasping the reference-stuff. Markus From urnerk@qwest.net Fri Aug 23 16:02:52 2002 From: urnerk@qwest.net (Kirby Urner) Date: Fri, 23 Aug 2002 08:02:52 -0700 Subject: [Edu-sig] Python for Algorithms and Data Structures... In-Reply-To: <3D6642B1.1080407@iue.tuwien.ac.at> References: <3D6640B6.8010109@iue.tuwien.ac.at> Message-ID: <5.1.1.6.0.20020823072757.022b29c0@pop.ptld.qwest.net> Is this a course for computer science majors? If it is, then I don't think one can get away with purely Python for the whole curriculum, even if it's the most used in particular courses, nor should one. You likely agree. People getting deeply into programming as an area of specialization *must* learn more than one language. Python is an ideal entre into many concepts central to programming. It is a very good language to start with. But to teach about pointers, it's best to use C itself, although the more general concept is "indirection" meaning you work with the addresses of data, index into it (some typical chatter re indirection at [1]). It helps increase awareness of the hardware itself to think about addresses as physical locations in RAM. Python doesn't really foster this awareness. Assembler and C (a higher level assembler) both do foster this awareness. A given computer course need not focus on just one language to the exclusion of all others. You don't have to become a master of C, or Python, in any one course. Besides, Python is written in C. All the people currently developing Python know C and therefore understand pointers. In many schools, the most rigorous data structures and algorithms courses are built around Scheme. They use that book by Abelson & Sussman (SICP)[2]. This isn't a bad way to go either, but again, I don't think it's a matter of picking just one language. If you're really getting deeply into programming, you need to work with strongly typed, compiled languages, not just interpreted dynamically typed ones. All that being said, I agree that an algorithm, in the abstract sense, should not be confused with the syntax and design of any specific language. Indeed, when going the multiple languages route, as described above, it pays to implement the very same algorithm in multiple languages. Kirby [1] http://developer.apple.com/techpubs/mac/runtimehtml/RTArch-28.html [2] http://mitpress.mit.edu/sicp/full-text/book/book.html From Jason Cunliffe" Message-ID: <005701c24ad3$ea05d1c0$6501a8c0@vaio> Thsee are my top 5 arguments to use Python as a teaching base today: 1. openness Python has good politics [license], good Karma. It is free and sends a fundamental message about the open nature of programmability and social implications of technology selection. Part of the global trend by public sector administristrations to choose Linux and its ilk as the basis of government and education platforms: Finland, Korea, China... 2. interoperability The scope and relationship to other major languages and toolkits [C, Java, .NET etc] make it perhaps the most practical choice. Python is both superglue and superstructure. And it travels cross-platform with almost no overhead. 3. community The diversity and quality of Python's on-line community has to be one its greatest virtues/strengths. High signal to noise, talented, generous and encourging. Used from Nasa to Hollywood, from Google to Multimedia API's, from advanced university science departments to edu-sig high schools! Show them the library of contributed software [Vaults of Parnassus] 4. interactivity The instrinsic dynamics of CLI/script based system make it more conducive to students. 5. readability For students this is especially important as they may spend much more time reading code than writing it. This aids the transition from general algorithms [pseudocode] to implementation and sharing. At the same time I believe Python encourages clearer writing habits. Anyone care to debate this and why it might be so? I agree with Kirby that one must learn several languages. Python Seems to be a great starting point. Habits, lessons learned, and issues will carry well to other languages and complement theitr features. Even the discussion on pointers in Python shows the pros and cons clearly. Forth would be a good companion to studying pointers and hardware. There are some great CLI Forths out there. People think Forth is dead, but they ignore that Forth and its derivitives are widely embedded all around us in commercial products. From washing machines to desktop printers. A case in point [pun intended], Postcript is Forth :-) good luck ./Jason From Jason Cunliffe" <005701c24ad3$ea05d1c0$6501a8c0@vaio> Message-ID: <009c01c24ad9$b8cb8720$6501a8c0@vaio> > Even the discussion on pointers in Python shows the pros and cons clearly. Forth > would be a good companion to studying pointers and hardware. There are some > great CLI Forths out there. People think Forth is dead, but they ignore that > Forth and its derivitives are widely embedded all around us in commercial > products. From washing machines to desktop printers. > A case in point [pun intended], Postcript is Forth :-) fyi, I just did quick google and found this edu-sig thread on implementing FORTH in Python http://mail.python.org/pipermail/edu-sig/2000-October/000744.html There are many FORTHs but a good one might be Phil Burke's PForth. Phil is also the main author of JSyn, the Java audio synthesis api I mentioned in a recent Jython thread. http://www.softsynth.com/jsyn/ http://www.softsynth.com/pforth/ """ PForth is a public domain, portable ANS Forth based on a kernel written in ANSI 'C'. This makes it easy to port pForth to multiple platforms. So far, pForth has run on Macs, PCs, SUNs, Amigas, Linux, BeOS, Nokia Communicator, SGI Indys, 3DO ARM systems, 3DO PowerPC systems, WebTV systems, Hitachi SH4, OpenTV prototypes, and some internal projects at Lucent. If you build pForth for an embedded system, please let me know and I will add your machine to the list of machines that pForth has run on. """ ./Jason From Jason Cunliffe" <005701c24ad3$ea05d1c0$6501a8c0@vaio> <009c01c24ad9$b8cb8720$6501a8c0@vaio> Message-ID: <00a601c24adc$6e3012a0$6501a8c0@vaio> Hi again.. well the pForth links page http://www.softsynth.com/forthlinks.html led me to this: Minotaur for Perl, Python, andTcl Minotaur is an extension which can be used from Tcl, Python, or Perl to run scripts in any of the other languages. http://www.equi4.com/minotaur/minotaur.html It turns out the author is Jean-Claude Wippler, of MetaKit fame. He has written an intresting article on the need for low-level glue in scripting languages. This is clearly the thinking behind the Minotaur experiment. The nuts and bolts of scripting http://www.equi4.com/moam/bolts.html Scripting - the fourth generation http://www.equi4.com/moam/scripting.html MetaKit http://www.equi4.com/metakit/ MetaKit for Python http://www.equi4.com/metakit/python.html """ MetaKit is an embeddable database which runs on Unix, Windows, Macintosh, and other platforms. It lets you build applications which store their data efficiently, in a portable way, and which will not need a complex runtime installation. In terms of the data model, MetaKit takes the middle ground between RDBMS, OODBMS, and flat-file databases - yet it is quite different from each of them. """ ./Jason From pfroehli@ics.uci.edu Fri Aug 23 22:05:26 2002 From: pfroehli@ics.uci.edu (Peter H. Froehlich) Date: Fri, 23 Aug 2002 14:05:26 -0700 Subject: [Edu-sig] Python, Pointers, and lots of Languages... Message-ID: <0BD216A6-B6DC-11D6-B571-0003936CFB76@ics.uci.edu> Hi! I am not convinced that Python is all students should learn, but probably for slightly different reasons than mentioned here before. Being exposed to various levels of programming is important, and I would even include assembly for some platform at the lowest level. Helps students appreciate what's going on inside, and makes my job easier when I teach compilers. :-) Having a working knowledge of C is also important. Whether you like it or not, you will probably have to at least read C code in one or the other form for the rest of your life, so you better know how to. Python would be my current language of choice for "prototyping" things, and also for "executable pseudo code" during lectures. It does, however, have one serious drawback in my book: No static type checking. Back in my compiler course, I had to explain a lot of "weird asserts" in my sample code... I believe that students should be exposed to a language with a strict type discipline as well, probably something like Java, Eiffel, or Oberon-2. I'd prefer the latter, just for size reasons, although with Eiffel you could cover more ground (e.g. generics, contracts). Finally, giving students an understanding of modern functional programming through either ML or Haskell seems desirable as well. The whole type inference business provides a nice trade-off between what you have to declare and what the language will help you with anyway. Ideally, I believe students should run into these languages as part of "normal classes", not just in the upper division "Programming Languages" course. That course should be for the really weird stuff, and for comparisons and emphasis on concepts. Having said all that, let me get back to the pointer thing: I think students should be made aware of the fact that "pointers" are a different beast in different languages. Addresses in assembler, mostly addresses in C, not at all addresses in the rest of the languages I listed. Wirth's old "variables whose values are (anonymous) variables" explanation of pointers is much more appropriate at those levels (yes, no variables in Haskell but what the heck), with addresses being one possible implementation for the necessary indirection. Whew, what a rant. Sorry for wasting some bandwidth... :-) Peter -- Peter H. Froehlich []->[!]<-[] http://nil.ics.uci.edu/~phf/ OpenPGP: D465 CBDD D9D2 0D77 C5AF 353E C86C 2AD9 A6E2 309E From delza@mac.com Fri Aug 23 23:27:21 2002 From: delza@mac.com (Dethe Elza) Date: 23 Aug 2002 15:27:21 -0700 Subject: [Edu-sig] Python, Pointers, and lots of Languages... In-Reply-To: <0BD216A6-B6DC-11D6-B571-0003936CFB76@ics.uci.edu> References: <0BD216A6-B6DC-11D6-B571-0003936CFB76@ics.uci.edu> Message-ID: <1030141642.2246.193.camel@laptop> Python should definitely *not* be the first language students learn. It will irrevocably spoil them and they'll never go on to learn other languages. First-year students should be taught assembly or C++, possibly both. They can only use Perl for group projects that involve reading each other's code. Reports should be coded directly in Postscript. Students should be discouraged from learning Python, if not outright banned. After all, we had to suffer to get where we are, why shouldn't they? tongue-firmly-in-cheek'ly, --Dethe From Jason Cunliffe" <1030141642.2246.193.camel@laptop> Message-ID: <00e701c24af7$58960740$6501a8c0@vaio> > Students should be discouraged from learning Python, if not outright > banned. After all, we had to suffer to get where we are, why shouldn't > they? Now there's an idea! Banning Python will surely make it irresistible... ./Jason From pobrien@orbtech.com Sat Aug 24 01:32:29 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Fri, 23 Aug 2002 19:32:29 -0500 Subject: [Edu-sig] iCanProgram.com Message-ID: Interesting story about iCanProgram.com at http://www.linuxplanet.com/linuxplanet/reports/4392/1/. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From justrewards.autoresponder@globaloneonline.com Sat Aug 24 08:42:24 2002 From: justrewards.autoresponder@globaloneonline.com (Nobody) Date: Sat, 24 Aug 2002 02:42:24 -0500 Subject: [Edu-sig] New Just Rewards Email Address Message-ID: <200208240742.g7O7gOV04084@cypria.host4u.net> Please use the following email address to email Just Rewards: justrewards@justrewardsonline.com From Jason Cunliffe" http://news.bbc.co.uk/2/hi/uk_news/education/2209365.stm Geetha Thaninathan says studying makes her happy """ A six-year-old girl has passed a GCSE in information technology. Geetha Thaninathan, from Maidstone, Kent, who scored a C, is thought to be the youngest child to pass the exam. She began playing on her parents' computer at the age of two. Her father, Kandasamy Thaninatha, who is an electronics engineer said: "Whenever I did some work, she wanted to join me, she came and sat on my lap and said, `Let me do it, I want to do it'. "Initially, it annoyed me, and then I said, I will show you how to do it. "I showed her how to do ABC and then she started with typing her own name." """ ./Jason From Jason Cunliffe" http://www.oreilly.com/catalog/pythoncook/chapter/index.html A new Python book out, edited by the legendary Alex Martelli and David Ascher. Judging by the sample chapter on O'Reilly it's a real honey... Written loosely in a 'patterns' approach -> problem/solution, it appears to address experienced real-world ~ real-python needs. Valuable tips for applying 2.2 features/advantages. Readable and eminently lucid, as you would expect. It's beautifully oriented towards answering "How do I do xyz? in Python?", thus filling a valuable hole in the bookshelf. Random Examples: 1.7 Collecting a Bunch of Named Items Credit:Alex Martelli Problem You want to collect a bunch of items together,naming each item of the bunch,and you find dictionary syntax a bit heavyweight for the purpose. 1.8 Finding the Intersection of Two Dictionaries Credit:Andy McKay,Chris Perkins,Sami Hangaslammi Problem Given two dictionaries,you need to find the set of keys that are in both dictionaries. 1.8 Finding the Intersection of Two Dictionaries Credit:Andy McKay,Chris Perkins,Sami Hangaslammi Problem Given two dictionaries,you need to find the set of keys that are in both dictionaries. 1.8 Finding the Intersection of Two Dictionaries Credit:Andy McKay,Chris Perkins,Sami Hangaslammi Problem Given two dictionaries,you need to find the set of keys that are in both dictionaries. http://www.oreilly.com/catalog/pythoncook/chapter/index.html bravo+thanks ./Jason From pobrien@orbtech.com Sun Aug 25 15:15:05 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sun, 25 Aug 2002 09:15:05 -0500 Subject: [Edu-sig] new book out In-Reply-To: <000701c24c25$ed87dc00$6501a8c0@vaio> Message-ID: [Jason Cunliffe] > > 1.8 Finding the Intersection > of Two Dictionaries > Credit:Andy McKay,Chris Perkins,Sami Hangaslammi > Problem > Given two dictionaries,you need to find the set of keys that are in both > dictionaries. > > 1.8 Finding the Intersection > of Two Dictionaries > Credit:Andy McKay,Chris Perkins,Sami Hangaslammi > Problem > Given two dictionaries,you need to find the set of keys that are in both > dictionaries. > > > 1.8 Finding the Intersection > of Two Dictionaries > Credit:Andy McKay,Chris Perkins,Sami Hangaslammi > Problem > Given two dictionaries,you need to find the set of keys that are in both > dictionaries. 1.8.a Finding Duplicates In a List Seriously, though, I've got the book and it is excellent intermediate material that is well-written and well-edited. Alex and David and all the contributors did a terrific job. -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From nagarjun@hbcse.tifr.res.in Sun Aug 25 15:34:55 2002 From: nagarjun@hbcse.tifr.res.in (Nagarjuna G.) Date: Sun, 25 Aug 2002 20:04:55 +0530 Subject: [Edu-sig] Python for AI Message-ID: <20020825143455.GC14111@hbcse.tifr.res.in> I feel that Python can be used for teaching regular AI topics. I would like to attempt teaching without using traditional LISP/Prolog. Nothing against them, but only to develop material for a Python based course. I would like to know if any of you already know material that would help me in shaping this course or develop examples. Any help will be appreciated. Nagarjuna From johnharvey@earthlink.net Sun Aug 25 16:24:40 2002 From: johnharvey@earthlink.net (John Harvey) Date: Sun, 25 Aug 2002 08:24:40 -0700 Subject: [Edu-sig] Python for AI In-Reply-To: <20020825143455.GC14111@hbcse.tifr.res.in> Message-ID: <5.1.1.6.0.20020825080953.04651b10@pop.earthlink.net> Hi All, At 08:04 PM 8/25/2002 +0530, Nagarjuna G. wrote: >I feel that Python can be used for teaching regular AI topics. I would >like to attempt teaching without using traditional LISP/Prolog. >Nothing against them, but only to develop material for a Python based >course. I would like to know if any of you already know material that >would help me in shaping this course or develop examples. Any help >will be appreciated. I am looking forward to the publication of the 2nd edition of Artificial Intelligence, A Modern Approach, later this year. At the book's website[1] are listed links to examples in Lisp, PYTHON, C++, Prolog, and Java. The Lisp and PYTHON examples are being provided by the authors, Stuart Russell, Professor of Computer Science at UC Berkeley, and Peter Norvig, Director of Search Quality, Google Inc. Enjoy, John [1] http://www.cs.berkeley.edu/~russell/aima.html From johnharvey@earthlink.net Sun Aug 25 16:42:19 2002 From: johnharvey@earthlink.net (John Harvey) Date: Sun, 25 Aug 2002 08:42:19 -0700 Subject: [Edu-sig] Python for AI In-Reply-To: <20020825143455.GC14111@hbcse.tifr.res.in> Message-ID: <5.1.1.6.0.20020825083625.0197e070@pop.earthlink.net> Hi again, I did a little surfing after my last post and found Stuart Russell and Peter Norvig's AI on the Web[1] page. It has about a dozen references to Python. Why am I so careful about how much effort my progams use to search and I just meander?? Enjoying the stroll, John [1] AI on the Web, http://www.cs.berkeley.edu/~russell/ai.html From dblank@brynmawr.edu Sun Aug 25 20:01:22 2002 From: dblank@brynmawr.edu (Douglas S. Blank) Date: Sun, 25 Aug 2002 19:01:22 -0000 Subject: [Edu-sig] Python for AI In-Reply-To: <20020825143455.GC14111@hbcse.tifr.res.in> Message-ID: <200208251901.g7PJ1MwS017098@ada.brynmawr.edu> Of course, it depends on what you mean by "AI". For traditional AI, John pointed to some good sites, especially those from Peter Norvig to supplement his textbook ("AI: A Modern Approach"): http://www.norvig.com/python/python.html If you are interested in the what you might want to call "Post-Modern AI" (including neural networks, evolutionary computation, and fuzzy logic) you can try out some code that we have been developing over the last year. (If anyone finds more AI-related Python code, please let us know. I'm planning to translate some Prolog-like logic resolution, forward and backward chaining code into Python from Scheme. If that has already been done, that'd be great.) Here is part of a message I sent to someone on this list just last week: We have three modules for fuzzy, neural networks, and genetic algorithms: pyro.brain.fuzzy pyro.brain.conx pyro.brain.ga You can find them individually at: http://bubo.brynmawr.edu/cgi-bin/viewcvs.cgi/pyro/brain/ or find our whole system at: http://emergent.brynmawr.edu/wiki/index.cgi/Pyro (Pyro is Python Robotics, and is a larger system for experimenting with robotic control using Python and a variety of AI techniques). The neural network is a fairly sophisticated back-propagation of error simulator. It does feed-forward networks (and simple recurrent networks). For more information on that style you can follow the "Parallel Distributed Processing" (or PDP) books by McClellend and Rumlehart. There is a Wiki page for conx documentation at: http://emergent.brynmawr.edu/wiki/index.cgi/PyroConx The Fuzzy logic is home grown, and handles the combination of Fuzzy values using the overloaded | and &. To turn a value into a Fuzzy value, the syntax looks something like: Fuzzy(min, max) >> value Fuzzy(min, max) << value The >> makes min = 0 and max = 1, whereas the << makes min = 1, and max = 0. We don't really have any good documentation on Fuzzy logic yet. But there are some examples in: http://bubo.brynmawr.edu/cgi-bin/viewcvs.cgi/pyro/plugins/brains/ (see the files that start with BB, which stands for "behavior based"). Our Genetic Algorithm is a simple system, but combined with the neural network module, you can even evolve the weights of a neural network. Find it at: http://bubo.brynmawr.edu/cgi-bin/viewcvs.cgi/pyro/brain/ga.py -Doug "Nagarjuna G." said: > > I feel that Python can be used for teaching regular AI topics. I would > like to attempt teaching without using traditional LISP/Prolog. > Nothing against them, but only to develop material for a Python based > course. I would like to know if any of you already know material that > would help me in shaping this course or develop examples. Any help > will be appreciated. > > Nagarjuna > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Douglas S. Blank, Assistant Professor dblank@brynmawr.edu, (610)526-6501 Bryn Mawr College, Computer Science Program 101 North Merion Ave, Park Science Building Bryn Mawr, PA 19010 dangermouse.brynmawr.edu From guido@python.org Sun Aug 25 21:30:44 2002 From: guido@python.org (Guido van Rossum) Date: Sun, 25 Aug 2002 16:30:44 -0400 Subject: [Edu-sig] Python for AI In-Reply-To: Your message of "Sun, 25 Aug 2002 20:04:55 +0530." <20020825143455.GC14111@hbcse.tifr.res.in> References: <20020825143455.GC14111@hbcse.tifr.res.in> Message-ID: <200208252030.g7PKUiF03392@pcp02138704pcs.reston01.va.comcast.net> > I feel that Python can be used for teaching regular AI topics. I would > like to attempt teaching without using traditional LISP/Prolog. > Nothing against them, but only to develop material for a Python based > course. I would like to know if any of you already know material that > would help me in shaping this course or develop examples. Any help > will be appreciated. Mark Lutz wrote an expert system shell in Python named "Holmes". I don't recall where it was published; maybe he used it as an example in Programming Python (1st ed.). Try a Googe search for "expert system Python". --Guido van Rossum (home page: http://www.python.org/~guido/) From Jason Cunliffe" Message-ID: <005a01c24c78$db5d3360$6501a8c0@vaio> > 1.8.a Finding Duplicates In a List ouch! Apologies for my ridiculous cut'n'paste snafu. I had selected several different examples. Not sure how that happened.. ./Jason From pobrien@orbtech.com Sun Aug 25 22:55:52 2002 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sun, 25 Aug 2002 16:55:52 -0500 Subject: [Edu-sig] Python for AI In-Reply-To: <200208252030.g7PKUiF03392@pcp02138704pcs.reston01.va.comcast.net> Message-ID: > Mark Lutz wrote an expert system shell in Python named "Holmes". I > don't recall where it was published; maybe he used it as an example in > Programming Python (1st ed.). Try a Googe search for "expert system > Python". I found the file (holmes.tar.gz) at: ftp://ftp.python.org/pub/python/contrib-09-Dec-1999/Misc/ Here are some other links that may be worthwhile: http://www.strout.net/python/ai/ http://www.python.eu.org/software/clips/python-clips.html -- Patrick K. O'Brien Orbtech ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- Web: http://www.orbtech.com/web/pobrien/ Blog: http://www.orbtech.com/blog/pobrien/ Wiki: http://www.orbtech.com/wiki/PatrickOBrien ----------------------------------------------- From Jason Cunliffe" <005a01c24c78$db5d3360$6501a8c0@vaio> Message-ID: <00ac01c24c89$53d82560$6501a8c0@vaio> Interview with the editors: http://www.onlamp.com/pub/a/python/2002/08/01/cookbook.html ./Jason From nagarjun@hbcse.tifr.res.in Mon Aug 26 07:00:50 2002 From: nagarjun@hbcse.tifr.res.in (Nagarjuna G.) Date: Mon, 26 Aug 2002 11:30:50 +0530 Subject: [Edu-sig] Python for AI In-Reply-To: References: <200208252030.g7PKUiF03392@pcp02138704pcs.reston01.va.comcast.net> Message-ID: <20020826060050.GA32727@hbcse.tifr.res.in> On Sun, Aug 25, 2002 at 04:55:52PM -0500, Patrick K. O'Brien wrote: > > Mark Lutz wrote an expert system shell in Python named "Holmes". I > > don't recall where it was published; maybe he used it as an example in > > Programming Python (1st ed.). Try a Googe search for "expert system > > Python". > > I found the file (holmes.tar.gz) at: > > ftp://ftp.python.org/pub/python/contrib-09-Dec-1999/Misc/ > > Here are some other links that may be worthwhile: > > http://www.strout.net/python/ai/ > > http://www.python.eu.org/software/clips/python-clips.html > It is a delight to see this morning so much on the thread. I am thankful to all those who responded to the query. I have so much material now, I will take some time to digest this material. I have Mark Lutz's book (Programming Python 2nd Ed), fortunately, on my table, so looked at it immediately. Evidently I did not cover all the ground I have before I asked help. Sorry for bothering you. But this gave me confidence that next year I can actually offer this as a course after working with the existing material. I am presently involved in a project to develop a Zope based application for semantic web mostly using the structure of topic maps specification called GNOWSYS, (http://www.zope.org/Members/nagarjuna/GNOWSYS/) which is still in a development stage. I wish to develop this tool with AI enabled features, particularly as an expert system. I expect to release the first stable version by December 2002. Thanks again Nagarjuna From sandysj@asme.org Mon Aug 26 17:04:05 2002 From: sandysj@asme.org (Jeff Sandys) Date: Mon, 26 Aug 2002 09:04:05 -0700 (PDT) Subject: [Edu-sig] re: Python for AI Message-ID: <20020826160405.47386.qmail@web12801.mail.yahoo.com> Norvig has published all the Python code for the next version of _Artificial Intelligence: A Modern Approch_ at his web site. If you have the first (lisp) edition you can read the discription of the problems. http://www.norvig.com/python/python.html __________________________________________________ Do You Yahoo!? Yahoo! Finance - Get real-time stock quotes http://finance.yahoo.com From nagarjun@hbcse.tifr.res.in Tue Aug 27 05:25:45 2002 From: nagarjun@hbcse.tifr.res.in (Nagarjuna G.) Date: Tue, 27 Aug 2002 09:55:45 +0530 Subject: [Edu-sig] re: Python for AI In-Reply-To: <20020826160405.47386.qmail@web12801.mail.yahoo.com> References: <20020826160405.47386.qmail@web12801.mail.yahoo.com> Message-ID: <20020827042544.GB1666@hbcse.tifr.res.in> On Mon, Aug 26, 2002 at 09:04:05AM -0700, Jeff Sandys wrote: > Norvig has published all the Python code for the next version of > _Artificial Intelligence: A Modern Approch_ at his web site. If > you have the first (lisp) edition you can read the discription > of the problems. > http://www.norvig.com/python/python.html > This is like a fully baked cake, ready to eat. Thanks a lot. Nagarjuna From Jason Cunliffe" http://www.ibiblio.org/obp/pyBiblio/ From Jason Cunliffe" http://www.cs.utoronto.ca/~trebla/humour/programming_books.html From Jason Cunliffe" http://www.cis.upenn.edu/~jnimerof/life/cphysics.html