From fig@monitor.net Tue Jan 2 20:49:51 2001 From: fig@monitor.net (Stephen R. Figgins) Date: Tue, 02 Jan 2001 12:49:51 -0800 Subject: [Edu-sig] Kids and Crypto Message-ID: <3A523EEF.A58E31D@monitor.net> Someone tipped me off to this site. I don't believe it was mentioned here before. It's a NASA site with math and crypto puzzles for kids. It might be worth a look-see. http://www.nsa.gov/programs/kids/index.html -Stephen From sabren@manifestation.com Tue Jan 2 21:16:53 2001 From: sabren@manifestation.com (Michal Wallace) Date: Tue, 2 Jan 2001 16:16:53 -0500 (EST) Subject: [Edu-sig] Kids and Crypto In-Reply-To: <3A523EEF.A58E31D@monitor.net> Message-ID: On Tue, 2 Jan 2001, Stephen R. Figgins wrote: > Someone tipped me off to this site. I don't believe it was mentioned > here before. It's a NASA site with math and crypto puzzles for kids. > It might be worth a look-see. > > http://www.nsa.gov/programs/kids/index.html Yikes! Not NASA.. the NSA... Of all the people to have a public website! Hmm.. Y'all ever see the movie Mercury Rising? :) Cheers, - Michal ------------------------------------------------------------------------ www.manifestation.com www.sabren.net www.linkwatcher.com www.zike.net ------------------------------------------------------------------------ From pdx4d@teleport.com Tue Jan 2 23:18:39 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Tue, 02 Jan 2001 15:18:39 -0800 Subject: [Edu-sig] Kids and Crypto In-Reply-To: References: <3A523EEF.A58E31D@monitor.net> Message-ID: <3.0.3.32.20010102151839.009294d0@pop.teleport.com> >Yikes! Not NASA.. the NSA... Of all the people to have a public >website! Hmm.. Y'all ever see the movie Mercury Rising? :) > >Cheers, > >- Michal Thanx for the URL; added some links from my http://www.inetarena.com/~pdx4d/ocn/clubhouse.html While on the subject, the CIA has a Kids' Page too. http://www.odci.gov/cia/ciakids/index.html Kirby From b.fallenstein@gmx.de Thu Jan 4 03:26:31 2001 From: b.fallenstein@gmx.de (Benjamin Fallenstein) Date: Thu, 04 Jan 2001 04:26:31 +0100 Subject: [Edu-sig] Question about a programming system Message-ID: <3A53ED67.3FDCAF4D@gmx.de> Hi everybody! I've been lurking on this list for a while and it seems you're quite Python-centered; but I read somewhere this is the place for discussion of the CP4E project, so I thought I'd post this here. I am developing a system for programming which I hope can greatly simplify that task (yes, I *know* many others said that before ;) ), and I'd appreciate some comments on the underlying idea. Yes, I do like Python, it's actually my prefered programming language, but I think something else would be better for non-technical programming novices. Despite it being much more readable than many other programming languages, it does not take this air of being something very complex away from programming. One of my favourite examples for my programming system is the following statement: "Move the selected card to the stack the user clicked on." In Python, the same statement may read: "move(selCard, clickStack)" I do think the first version is more readable. Yet, in my system it's functionally equivalent to the Py command. How? Well, it's not keyed in, but rather assembled on the screen, from three different parts: "the selected card," "the stack the user clicked on," and "move [which card?] to [which stack?]." The first two parts are references to variables, the third, surrounding one, a procedure call with two parameters. Thus, you have the freedoms of combination programming gives, i.e. you could change the statement to, for example, "Move the selected card to the stack the Queen of Diamonds is on," provided you have the corresponding symbols "the stack [which card?] is on", and "the Queen of Diamonds." There's mouse-over highlighting of the different levels of symbols so you won't get confused. Computer programs usually have the bad property to look like a big piece of math *to the people who are afraid of math*. Now there are a lot of people like that out there, far too many. Well, you know that. A program written with my system, on the contrary, would be understandable to everyone who's able to read the natural language in which the different symbols are expressed. At times, it may sound exhaustingly formal, but even then it will be far more readable to a non-programmer than a program written in a usual programming language. Moreover, the meaning of concepts like "parameter" will be much more "intuitively" clear, because they will rely on the referential mechanisms employed by natural language. (Where these mechanisms become unclear, the computer will provide clarification ("that card" -- WHICH card?) when a symbol is mouse-overed, encouraging interactive exploration.) I call this system the "zaubertrank" (TSAU-ber-trunk), which means "magic potion" in German, because I want it to make people into programmers as fast as the magic potion in the Asterix comics makes him an invincible warrior. ;) ;) I do think this system holds some promise for the goal of "computer programming for everyone." In fact, I started seriously working on it because sometime soon, I'll be teaching a course in which non-techies (humanities and social science students) will be required to learn to program, and I hope that with this system the learning curve will be much better than even with Python. From conditionals to function declarations, many things become trivial to understand. ("def points(card): if card.rank > 7: return 10; else: return 5" is replaced by "The value of a card in points is 10 if the rank of the card is 8 or higher; otherwise, it is 5." Yes, that's exactly the same program! (Except it's described more like with the ?: operator of C.)) Does this scale up to very complex programs? Which programming paradigms work best with it (i.e., what translates best to natural language)? Frankly, I don't know. I'm trying it out. Feel free to bash me if you think it won't lead anywhere. :) At the moment, it seems to me that a lot of functional programming would be a good ingredient, because that maps quite well to the concept of "definitions" we're so familiar with; the points function above is an example. The imperative concept of storing intermediate values in variables doesn't seem to work as well. ("System" variables -- system like in simulated system -- do work, on the other hand, like the cards and the stacks they're on in the card-game example.) Last summer, I started prototyping in Python, but then I decided to base this on the GZigZag platform, a system designed by Ted Nelson, inventor of the hypertext. ( http://www.gzigzag.org/ ) The reason for this decision was that GZigZag has many inherent visualization and data modeling capabilities which I thought would work together with the zaubertrank quite well. Now, GZigZag is still not ready for prime time; there are a lot of unfinished ends. So, needing the platform quickly made me a member of the development team... anyway, the system supports enough of what I need for a very basic demo, which I now have running on my computer, but it still has a long way to go, esp. in terms of usability. Therefore, the only publicly available stuff (if you don't call the few files hidden in the GZigZag CVS tree on sourceforge publicly available) are still the design studies from last summer. If you are interested, you can look at them on http://sourceforge.net/projects/zaubertrank . Also, at http://www.zaubertrank.org/ , you can read another rehash of the points presented in this post. ;) So, I'd really appreciate comments on this. Am I making sense? Am I underestimating the complexity of programming constructs if I think they can be canned in natural language statements? Am I overestimating the relevance of the "fear of math" factor? Please tell me what you think (and which important questions I've left open)! Thanks. :o) - Benja P.S. In the highly unlikely case anyone on this list is interested enough in this system to devote some time to it, especially by discussing how to map programming abstractions to natural language, that would be of course more than welcome. :) From guido@python.org Thu Jan 4 13:41:55 2001 From: guido@python.org (Guido van Rossum) Date: Thu, 04 Jan 2001 08:41:55 -0500 Subject: [Edu-sig] Question about a programming system In-Reply-To: Your message of "Thu, 04 Jan 2001 04:26:31 +0100." <3A53ED67.3FDCAF4D@gmx.de> References: <3A53ED67.3FDCAF4D@gmx.de> Message-ID: <200101041341.IAA11815@cj20424-a.reston1.va.home.com> Benjamin, I think that for limited domains your approach makes a lot of sense. Alice effectively does the same, mapping hierarchical menu choices to Python statements -- but statements chosen from a limited domain. That said, for a full-fledged programming language, your proposal reminds me of Apple's Hypertalk, which (in my eyes) is not a good general programming language -- the English syntax really gets in the way. --Guido van Rossum (home page: http://www.python.org/~guido/) From Arthur_Siegel@rsmi.com Thu Jan 4 16:22:29 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Thu, 4 Jan 2001 10:22:29 -0600 Subject: [Edu-sig] A fact on the ground Message-ID: <0034FC49.N22121@rsmi.com> A quick story. Steve is an old friend - a teacher for over 25 years at the Bronx High School of Science - which has graduated well better than its share of laureates of various stripes. His subject has been what was called Industrial Science. He is personally a master woodworker, clocksmith, etc. - all approached with a true scientific spirit (his brother happens to be a physicist). He was an enthusiastic teacher of craftmanship. Last year he was essentially forced to take a sabbatical - an advised to use it to learn programming. Took a few Java courses at a local college - found he had no interest or aptitude. His shop is closed and he is now teaching programming - I expect badly. There is evidence I have read that this story is quite typical - that with limited space and budget, schools aren't just adding computer labs, they are converting art rooms, music rooms, etc and taking from their budgets. To me this outcome is largely a result of approaching computer literacy, programming, etc as an isolated discipline. And why the integrated approach - math/programming seems the most natural - an important fight, IMO. From b.fallenstein@gmx.de Thu Jan 4 18:43:36 2001 From: b.fallenstein@gmx.de (Benjamin Fallenstein) Date: Thu, 04 Jan 2001 19:43:36 +0100 Subject: [Edu-sig] Question about a programming system References: <3A53ED67.3FDCAF4D@gmx.de> <200101041341.IAA11815@cj20424-a.reston1.va.home.com> Message-ID: <3A54C458.76C26262@gmx.de> Hi Guido, thanks for your input! I'll definitely have a second look on Alice in this respect. And I understand about your objections in the direction of general purpose programming (although I'll still play with the concept ;) ). - Benja Guido van Rossum wrote: > I think that for limited domains your approach makes a lot of sense. > Alice effectively does the same, mapping hierarchical menu choices to > Python statements -- but statements chosen from a limited domain. > > That said, for a full-fledged programming language, your proposal > reminds me of Apple's Hypertalk, which (in my eyes) is not a good > general programming language -- the English syntax really gets in the > way. From pdx4d@teleport.com Thu Jan 4 19:04:56 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 04 Jan 2001 11:04:56 -0800 Subject: [Edu-sig] A fact on the ground Message-ID: <3.0.3.32.20010104110456.00a51a30@pop.teleport.com> >so, why don't we look at computer science as a discipline of its own, >teach it on its own, and then use it to enhance -other- subjects, not the >other way around. maybe we'd get more people interested in computers early >if it wasn't tied to acheievement in some other subject, so those who like >it can be good at it instead of having to prove themselves at something >they may not like first. > > >Andrew I think a better solution is to make sure that no math barrier prerequistes get set up to prevent those eager to learn programming from getting into it. Your remark that your math skills have improved through programming is precisely the reason I advocate phasing in more programming, starting early, and not making it a matter of prerequisites. It's just that math courses are cram packed with stuff it makes sense to program around. So even IF the computer science or programming courses ARE offered separately down the hall, by other teachers, my sincere hope is that the math teachers don't sit on their hands and make do with mere calculators, while the real party passes them by. Math class should be fully endowed with high tech, not languish as a "calculator ghetto" while all the good stuff happens in other areas. Kirby From jeff@elkner.net Thu Jan 4 21:20:28 2001 From: jeff@elkner.net (Jeffrey Elkner) Date: 04 Jan 2001 16:20:28 -0500 Subject: [Edu-sig] A fact on the ground In-Reply-To: <20010104115851.A5612@everest.yooniks.org> References: <0034FC49.N22121@rsmi.com> <20010104115851.A5612@everest.yooniks.org> Message-ID: <200101042122.QAA27780@angelo.arlington.k12.va.us> I want to thank Andrew for his thoughful and thought provoking comments! This brings to mind a thread from last year on this list concerning gender equity. Doretha suggested that we focus more on text processing examples in an effort to make the subject more interesting to women. I have been thinking about her comments ever since and am very interested in exploring this discussion further. Andrew writes from the heart, and he makes two very important points: 1. Math skills are frequently used as a barrier to programming classes, both practically and socially. 2. Learning to program develops logical thinking skills, which can in turn help improve skills in math. I don't think Andrew's experience necessarily negates what Arthur is saying, however. If programming skills were integrated into mathematics classes (and I mean, ALL, math classes, not just high level ones) then everyone would be exposed to programming. Andrew would have found something that interested him in his math class, and he already recounted how his math skills improved because of programming. Three students at Yorktown are working on developing curriculum materials aimed at 5th and 6th graders that will integrate Python and mathematics. They are basically doing what Arthur suggested. This still doesn't address the perception problem of programming as something which is only of interest to "math nerds", and it in fact reinforces this perception. There are many useful applications for basic programming skills that apply to disciplines other than mathematics. Integrating programming with one of the humanities might be a way to reach those students not currently being reached. Next year I will be team teaching a pilot course with a social studies teacher that we are calling eGovernment. This course will be a two period, two credit course that offers students a Government Credit combined with a Technology Credit. The technology component will mostly be Internet and Web related topics, but I would love to be able to introduce programming in the course, provided I can find a way to integrate it effectively with the Government curriculum. It is of primary importance to us to reach students who do not typically take computer courses, and we are taking measures to assure gender equity. I am greatly looking forward to team teaching this course. Thanks again, Andrew! The most important voices in developing CP4E are those of students actually learning to program, and your comments were both enlightening and inspiring. jeff elkner yorktown high school arlington, va On 04 Jan 2001 11:58:51 -0500, Andrew G Feinberg wrote: > On Thu, Jan 04, 2001 at 10:22:29AM -0600, Arthur_Siegel@rsmi.com wrote: > > > And why the integrated approach - math/programming seems the most natural > > - an important fight, IMO. > > this is precisely the way to turn kids off from programming. I am what we > refer to as a "math idiot." Yet, I've managed to become quite proficient > with a computer. > > at my school, the computer science classes (introduction to programming -- > VB, C++, and APCS -- soon to be Java) are inexorably tied to math by way > of prerequisites. For instance, in order to take VB, you must have > completed algebra II, which is a 11th grade class for "on-level" students > and a 10th grade class for "above level" students, aka the ones who did > well on their 4th grade placement exam. So, some kids aren't even allowed > to take the intro class until their senior year. The result is that they > don't get enough introduction to programming early in high school, and > since it is tied to math it is limited to those who can get the math class > out of the way early. it develops a stigma as a section for "math nerds" > and many kids who would otherwise be interested are turned off. this has > also spawned a phenonenon of kids teaching themselves because they can't > get into the classes because of math. > > interestingly, my math skills have improved because of my programming, and > my lack of them never hindered my ability to grasp a language. i've been > published in a national computer magazine, and am a contributer to a large > international software project. yet, i had to -fight- to get into a > computer class that wasn't "how to use M$ office" so i could get a credit > to graduate, just because of my percieved lack of math skills. yet, as i > have stated above, my work with computers has improved my math. > > so, why don't we look at computer science as a discipline of its own, > teach it on its own, and then use it to enhance -other- subjects, not the > other way around. maybe we'd get more people interested in computers early > if it wasn't tied to acheievement in some other subject, so those who like > it can be good at it instead of having to prove themselves at something > they may not like first. > > > Andrew From jeff@elkner.net Thu Jan 4 21:40:23 2001 From: jeff@elkner.net (Jeffrey Elkner) Date: 04 Jan 2001 16:40:23 -0500 Subject: [Edu-sig] A fact on the ground In-Reply-To: <3.0.3.32.20010104110456.00a51a30@pop.teleport.com> Message-ID: <200101042142.QAA28122@angelo.arlington.k12.va.us> On 04 Jan 2001 11:04:56 -0800, Kirby Urner wrote: > It's just that math courses are cram packed with stuff > it makes sense to program around. So even IF the computer > science or programming courses ARE offered separately > down the hall, by other teachers, my sincere hope is that > the math teachers don't sit on their hands and make do > with mere calculators, while the real party passes them > by. It doesn't "make sense" to program around math stuff to someone who finds math unpleasant to begin with. Instead, they associate programming with math and become convinced that programming is not for them either. > Math class should be fully endowed with high tech, not > languish as a "calculator ghetto" while all the good stuff > happens in other areas. Graphing calculators are getting powerful enough to qualify as "good stuff", and they have the added advantage of being possible to use. Even in a compartively wealthy school district like Arlington, there is very limited opportunity for math classes to have access to computer labs. Graphing calculators, by contrast, are affordable. I'm not at all saying that we shouldn't advocate curriculum integration, but if we are serious about having an impact we need to have a real sense of the possible. jeff elkner yorktown high school arlington, va From jeff@elkner.net Thu Jan 4 21:59:48 2001 From: jeff@elkner.net (Jeffrey Elkner) Date: 04 Jan 2001 16:59:48 -0500 Subject: [Edu-sig] number-line graphics for teaching arithmetic In-Reply-To: <20001228104032.A15576@enteract.com> Message-ID: <200101042201.RAA28539@angelo.arlington.k12.va.us> Hi Fred! James Kaylin, Donald Oellerich, and Ryan Stephans (three Yorktown students who are also on this list) are working on creating just the kind of thing your talking about. They are currently investigating the new livewires modules, which you can get at: http://www.livewires.org.uk/python They have already written a program which displays a simple xy plane and randomly plots a point. They then prompt the user for the coordinates of the point, and display the point entered by the user. We will have more to say after we have had more time to experiment, but it would be great if you would join us in our efforts. jeff elkner yorktown high school arlington, va On 28 Dec 2000 10:40:32 -0600, Fred Yankowski wrote: > My 7-year-old son is learning arithmetic and I'd like him to be able > to play with some kind of interactive number line program in order to > learn some visualizations of arithmetic. I'm thinking that this group > -- with its keen interest in Python and graphics -- might have some > suggestions of how I could find/create such a program. > > Here are some scenarios of use: > > + Child types "8 + 5" into a text box (or describes that same > calculation in some point&click interface). Program then displays a > number line with a vector drawn from 0 to 8, labeled with the quantity > "8", and another vector drawn from 8 to 13, labeled "5". > > + Child types "16 - 9". Program displays a vector from 0 to 16 and > another vector of length 9 from 16 back to 7. > > + As above, but program also draws an additional vector to represent > the sum of the original vectors. > > + Working from the graphic for "8 + 5", the child drags the right-most > end of the "5" vector. The program interactively redraws the "5" > vector, relabeling it to new lengths based on current pointer > location. Only whole-number points on the number line can be > selected. > > As you can see, this is quite trivial. The goal (at least at first) > is not to teach programming, but rather to provide an interactive > visualization of basic arithmetic. Even so, Python seems > well-suited. So what graphic packages might work well with Python to > allow me to do this? The ability to deploy the resulting application > via a web page would be a big plus, but not essential. (Thinking > about that last point, perhaps Flash might be the way to go in the > long run.) > > -- > Fred Yankowski fred@OntoSys.com tel: +1.630.879.1312 > Principal Consultant www.OntoSys.com fax: +1.630.879.1370 > OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://www.python.org/mailman/listinfo/edu-sig From guido@python.org Thu Jan 4 23:57:30 2001 From: guido@python.org (Guido van Rossum) Date: Thu, 04 Jan 2001 18:57:30 -0500 Subject: [Edu-sig] A fact on the ground In-Reply-To: Your message of "04 Jan 2001 16:40:23 EST." <200101042142.QAA28122@angelo.arlington.k12.va.us> References: <200101042142.QAA28122@angelo.arlington.k12.va.us> Message-ID: <200101042357.SAA13068@cj20424-a.reston1.va.home.com> > It doesn't "make sense" to program around math stuff to someone who > finds math unpleasant to begin with. Instead, they associate > programming > with math and become convinced that programming is not for them either. Let me confirm that there is a difference between aptness for math and for programming! While I have a math degree, it became clear to me that I wasn't a math-head about halfway my second year in college. Around the same time it was also abundantly clear that I loved programming! :-) --Guido van Rossum (home page: http://www.python.org/~guido/) From Arthur_Siegel@rsmi.com Fri Jan 5 01:36:44 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Thu, 4 Jan 2001 19:36:44 -0600 Subject: [Edu-sig] re: Question about a programming system. Message-ID: <00359065.N22121@rsmi.com> >I think that for limited domains your approach makes a lot of sense. >Alice effectively does the same, mapping hierarchical menu choices to >Python statements -- but statements chosen from a limited domain. One of those days. Please Guido what does that mean? Maybe compare it to something like VPython, or Blender, or Lightflow or something like PovTalk "a Natural Language based 3D scene generator. By Stacey Verner." (still a live link from the edu-sig page) which accomplishes a natural language instruction set with stunning graphics in a few kilobytes of Python/PyOpenGL. And the code is accessible and explorable. . It's not that I am unwillingly to understand. And, it is not fair to assume I am the only one confused on this. Though certainly either the most confused or the most vocal. If there is something significant about how Alice implements Python scripting compared to these others - please what is it?. Or are we talking about a certain class of software which uses Python scripting, of which Alice is an example and the one with which you happen to be most familiar? From Econoprof@aol.com Fri Jan 5 00:59:20 2001 From: Econoprof@aol.com (Econoprof@aol.com) Date: Thu, 4 Jan 2001 19:59:20 EST Subject: [Edu-sig] A fact on the ground Message-ID: <3a.f07a4ea.27867668@aol.com> The government component is a natural for programming. You've got census statistics, budget numbers (calc the deficit, calc the social security bill in 20 years, etc), population flows, environmental change, all the DOT statistics on airlines that are available for free download, and on, and on. (Can you all tell that I used to teach in a public admin program?) In fact, the accrediting organization for Public Admin programs, NASPAA, was a pioneer in requiring curriculum-wide integration of computer skills into grad programs which often served folks from non-mathy backgrounds. Lots of ideas there. More generally, you have to have people who have fun using technology to do the integration into the curriculum, and they are too often few and far between. My experience has been that one staff teacher assigned to service all of an elementary school's computing needs is not going to foster a computer-friendly environment, nor will the school be in a rush to try anything new that the teacher doesn't understand. Too bad. It takes money and time to develop this stuff, at any level. Public libraries pushing computer skills are likely to be more willing to allow CP4E to develop in their facilities. Joan From Arthur_Siegel@rsmi.com Fri Jan 5 04:09:47 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Thu, 4 Jan 2001 22:09:47 -0600 Subject: [Edu-sig] re: A Fact on the Ground Message-ID: <0035B620.N22121@rsmi.com> >Let me confirm that there is a difference between aptness for math and >for programming! In my case programming made math useful and anything useful is interesting. I'm rarely called upon to divide hectors of land, or calculate the the angle of the sun in the horizon. But damn well sure I wanted to rotate that cylinder. Nobody can really think that wrapping rotateX(180) in a function called StandMeOnMyHeadbutDont AskMeHowThatsforMathFolkAndItsNotIntheCurriculumAnd DontLookInTheCodeBecauseWeMadeItComplicatedSoICanStandOnMyHeadRealRealFast() is a significant step in the direction of progress. Like I said, one of those days From pdx4d@teleport.com Fri Jan 5 04:58:40 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 04 Jan 2001 20:58:40 -0800 Subject: [Edu-sig] re: A Fact on the Ground In-Reply-To: <0035B620.N22121@rsmi.com> Message-ID: <3.0.3.32.20010104205840.0086eb10@pop.teleport.com> Here's a supportive letter I got after I posted some of my stuff in newsgroups (name of sender withheld)... =========================== on 12/11/00 12:13 PM, Kirby Urner at urner@alumni.Princeton.EDU wrote: > I'm a big fan of the computer-at-your-elbow approach to > studying math concepts, and am frustrated that classroom > teachers seem stuck on an evolutionary plateau with graphing > calculators. Calculators are cool, but a lot of school > districts have pumped big bucks into computers, and now > feel ripped off because Johnny only uses them to run CDROM > page-turner software or play games, and Sally just wants > to download MP3s. > > But that's a failure of the curriculum, not the technology. Boy, did you strike a nerve with this! My daughter attends a public school with beautiful Macintosh teaching labs, several computers in every classroom, and either 100MB Ethernet or wireless networks covering the school. However, most of what gets done on the computers is called "multimedia" and I was required to buy my daughter a graphing calculator this year for precalculus, even though we have much more capable "graphing calculators and other graphics programs on the computers. None of the math curriculum uses the computers in any meaningful way even though the computer programming curriculum (Basic followed by C++) is controlled by the math department. OK, I'm calm now. Back to work. Keep up the good fight. [XXXXXX] Univ. of Pittsburgh From pdx4d@teleport.com Fri Jan 5 05:00:26 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 04 Jan 2001 21:00:26 -0800 Subject: [Edu-sig] A fact on the ground Message-ID: <3.0.3.32.20010104210026.0085b930@pop.teleport.com> >It doesn't "make sense" to program around math stuff to someone >who finds math unpleasant to begin with. Instead, they associate >programming with math and become convinced that programming is >not for them either. > "Wow, if they'd only taught math THIS way when I was a kid, I probably would have LOVED the stuff". >Graphing calculators are getting powerful enough to qualify as >"good stuff", and they have the added advantage of being possible >to use. Even in a compartively wealthy school district like >Arlington, there is very limited opportunity for math classes >to have access to computer labs. Sounds like someone's being selfish. Poor math people, stuck in their calculator ghetto while the computer people get to play all day. >Graphing calculators, by contrast, are affordable. I'm not at >all saying that we shouldn't advocate curriculum integration, >but if we are serious about having an impact we need to have >a real sense of the possible. And it's hardly possible that we're going to let those math people graduate from calculators to some REAL computing machinery. No way. Too bad for them. Hah hah! Kirby From pdx4d@teleport.com Fri Jan 5 05:00:35 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 04 Jan 2001 21:00:35 -0800 Subject: [Edu-sig] A fact on the ground Message-ID: <3.0.3.32.20010104210035.0085a910@pop.teleport.com> >Let me confirm that there is a difference between aptness for math and >for programming! While I have a math degree, it became clear to me >that I wasn't a math-head about halfway my second year in college. >Around the same time it was also abundantly clear that I loved >programming! :-) > >--Guido van Rossum (home page: http://www.python.org/~guido/) > I think any fork in the road between being a "math head" or a "programmer" could/should come later in life. In K-12 at least, we don't want to overspecialize. Synergy, integration, making connections, is what's good for young and growing neural nets. You'll have all the time you need to specialize and narrow your focus later in life. But lets start with more of a commitment to well roundedness. Let's call it "numeracy" if labels are the problem. Calling it "math" or "computer science" gives people the wrong idea that we're trying to mirror specialists in these respective disciplines. There need be no hard lines between math and computer science in the early grades (unless your goal is to play turf wars, in which case maybe we should transfer our kids to a school with a more enlightened faculty). Kirby From b.fallenstein@gmx.de Fri Jan 5 06:57:40 2001 From: b.fallenstein@gmx.de (Benjamin Fallenstein) Date: Fri, 05 Jan 2001 07:57:40 +0100 Subject: [Edu-sig] re: Question about a programming system. References: <00359065.N22121@rsmi.com> Message-ID: <3A557065.F9524AC8@gmx.de> Hi Arthur, Arthur_Siegel@rsmi.com wrote: > >I think that for limited domains your approach makes a lot of sense. > >Alice effectively does the same, mapping hierarchical menu choices to > >Python statements -- but statements chosen from a limited domain. > > One of those days. > > Please Guido what does that mean? > > Maybe compare it to something like VPython, or Blender, or Lightflow or > something > like PovTalk "a Natural Language based 3D scene generator. By Stacey Verner." > (still a live link from the edu-sig page) which accomplishes a natural > language instruction > set with stunning graphics in a few kilobytes of Python/PyOpenGL. And the code > is accessible > and explorable.. I can't say anything about Alice menuing yet (haven't found anything related to it), but about PovTalk. (At least about the comparison to the notes about my programming system experiment.) PovTalk let's you *key in* statements in natural language, an approach that doesn't scale up even to the simplest bit of programming. I don't say it's uninteresting; it's fun to play around with; but it doesn't scale up in the least bit. Why? Because you have to remember the subset of natural language used. (Same problem in text adventures, which work only because they aren't programming either.) It's not that hard if there are ten or twenty symbols to remember. But if there are thousands and thousands of symbols, it doesn't work. Lightflow I haven't looked at in detail, but it seemes it generates Py files from 3d scenes. That, of course, is not programming, but describing something static in a programming language (akin to HTML). In my system, on the other hand, you do actual programming (including function definitions, conditionals etc.), but you assemble the statements with the mouse. I guess that was what Guido meant about Alice, though I haven't found docs about that yet. So that's what would make it comparable. Comparable to e.g. PovTalk, I think it's not. (The natural language thing is, in a way, just the presentation: my system could show Python code just as well. However, the symbols will be designed in a way so that they work well together with natural language. And that may get in the way for more complex programming, as I can imagine, and as I understood Guido.) - Benja From Arthur_Siegel@rsmi.com Fri Jan 5 14:53:31 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Fri, 5 Jan 2001 08:53:31 -0600 Subject: [Edu-sig] re: Question about a programming system. Message-ID: <0036584C.N22121@rsmi.com> Benjamin Fallenstein on 01/05/2001 08:57:40 AM To: Arthur Siegel/NewYork/MP/RSMi@RSMi cc: edu-sig@python.org Subject: Re: [Edu-sig] re: Question about a programming system. >I can't say anything about Alice menuing yet (haven't found anything >related to it), but about PovTalk. (At least about the comparison to the >notes about my programming system experiment.) PovTalk let's you *key >in* statements in natural language, I believe I understand, in broad terms at least, why none of the apps I cited are greatly on point to what you are trying to accomplish. What I don't understand is why Alice is. Nor apparentlyt do you, yet. What I would say is that one of the greaqt challenges you face is achieving simplicity and accessibility while avoiding condescension. Looked at it aestthetically, rather than technically, Python achieves this wonderfully. Alice, for whatever else it might accomplish (and I admit I'm even missing that) fails miserably. I see Python|Alice as a monstrous aesthetic clash. Which is why I persist in seeking an explanation from Guido on what he sees and I miss. From charlie@webmind.com Fri Jan 5 14:12:14 2001 From: charlie@webmind.com (Charlie Derr) Date: Fri, 5 Jan 2001 09:12:14 -0500 Subject: [Edu-sig] A fact on the ground In-Reply-To: <200101042142.QAA28122@angelo.arlington.k12.va.us> Message-ID: ~ It doesn't "make sense" to program around math stuff to someone who ~ finds math unpleasant to begin with. Instead, they associate ~ programming ~ with math and become convinced that programming is not for them either. ~ Forgive me for stating what (to me seems to be) the obvious. It just doesn't make sense to teach programming "without" math stuff. Sure the math aspect doesn't have to be emphasized, but i think that the more math that can be included (whether it's "sneaked" in by not calling it math), the better. I think that Joan's post on integrating computing with a government class illustrates this. All the examples that were cited by her involved math directly. Again, this doesn't mean that the mathematical aspect has to be front and center, but I think we should acknowledge that in a certain sense programming "is" math. just my $.0199999... ~c From guido@python.org Fri Jan 5 14:36:30 2001 From: guido@python.org (Guido van Rossum) Date: Fri, 05 Jan 2001 09:36:30 -0500 Subject: [Edu-sig] re: Question about a programming system. In-Reply-To: Your message of "Fri, 05 Jan 2001 08:53:31 CST." <0036584C.N22121@rsmi.com> References: <0036584C.N22121@rsmi.com> Message-ID: <200101051436.JAA16033@cj20424-a.reston1.va.home.com> > I see Python|Alice as a monstrous aesthetic clash. Which is why I > persist in seeking an explanation from Guido on what he sees and I > miss. Arthur, I can't enter into a discussion about this with you if you keep making statements like this. I was going to ignore your previous request for an explanation, worded in a similarly offensive way, but your insistence just got to me. Please don't address me in email any further -- it upsets me too much. --Guido van Rossum (home page: http://www.python.org/~guido/) From pdx4d@teleport.com Fri Jan 5 15:32:36 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Fri, 05 Jan 2001 07:32:36 -0800 Subject: [Edu-sig] re: Question about a programming system. In-Reply-To: <3A557065.F9524AC8@gmx.de> References: <00359065.N22121@rsmi.com> Message-ID: <3.0.3.32.20010105073236.00a3d4e0@pop.teleport.com> A >In my system, on the other hand, you do actual programming (including >function definitions, conditionals etc.), but you assemble the >statements with the mouse. <> > >- Benja Benja, have you checked out ToonTalk? Pretty wild, gets my vote for most original learning-to-program world for kids. Kirby From sabren@manifestation.com Fri Jan 5 15:51:31 2001 From: sabren@manifestation.com (Michal Wallace) Date: Fri, 5 Jan 2001 10:51:31 -0500 (EST) Subject: [Edu-sig] A fact on the ground In-Reply-To: <3.0.3.32.20010104210035.0085a910@pop.teleport.com> Message-ID: On Thu, 4 Jan 2001, Kirby Urner wrote: > I think any fork in the road between being a "math head" or a > "programmer" could/should come later in life. In K-12 at least, > we don't want to overspecialize. Synergy, integration, making > connections, is what's good for young and growing neural nets. Maybe... But.. You could just as easily say programming ought to be tied in with writing. In my whole career a professional software developer, I've used next to no math. I think the "hardest" thing I've had to do was calculate a weighted average once. In my shopping cart program, and all the libraries underneath it (a fairly large amount of code), there's one procedure to calculate sales tax, and a couple places where I add things together, and that's it. That's pretty typical of business software, I think. On the other hand, every single day I'm writing code that tries to explain ideas a logical, easy to read manner. Kinda like those "how-to" essays we always had to write in school. Most of the time for me software has a lot more in common with rhetoric than with math. Programming should definitely be used to teach math, and I really admire your work in doing so.. But programming is about modelling, and expressing those models in code. Math's just one model out of many. Haha.. I just had a vision of high school quarterbacks writing python scripts for those x-o play diagrams they always draw, but animated.. It could even suggest how the opposition would respond.. :) Cheers, - Michal ------------------------------------------------------------------------ www.manifestation.com www.sabren.net www.linkwatcher.com www.zike.net ------------------------------------------------------------------------ From pdx4d@teleport.com Fri Jan 5 19:02:17 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Fri, 05 Jan 2001 11:02:17 -0800 Subject: [Edu-sig] A fact on the ground In-Reply-To: References: <3.0.3.32.20010104210035.0085a910@pop.teleport.com> Message-ID: <3.0.3.32.20010105110217.00a3f710@pop.teleport.com> At 10:51 AM 01/05/2001 -0500, Michal Wallace wrote: >On Thu, 4 Jan 2001, Kirby Urner wrote: > >> I think any fork in the road between being a "math head" or a >> "programmer" could/should come later in life. In K-12 at least, >> we don't want to overspecialize. Synergy, integration, making >> connections, is what's good for young and growing neural nets. > >Maybe... But.. You could just as easily say programming ought to be >tied in with writing. Good post Michal, plus I even agree with a lot of it. When I write about "math through programming", it's not about grafting programming onto existing math while not changing math at all. Math, as taught in schools, needs to change, big time. For one, it should include more music (with computer tools), and more writing. I'm more interested in developing a kind of fluency in students where they're not afraid of and/or turned off by technical communications. And by "technical communications" I mean everything from computer manuals to instruction booklets to memoranda and reports to articles on technical subjects. There's a kind of comfort level that needs to be reached with technical stuff, in order to operate successfully in a highly technological society. I'm sort of assuming the high tech is here to stay, even if you live in the words and raise goats (you still have those fuel cells and biodomes to manage). The "math" that I push includes a lot more operations with alphanumeric stuff than contemporary math textbooks will include. Like, check out my concluding paragraphs under "Math makeover in the Silicon Forest" at http://advisor.com/Articles.nsf/ID/FA9903.URNEK01 if interested. Ultimately we're talking mega-trends here. I'm not the world's boss, nor have I met or learned about anyone who is. Math is whithering on the vine in a lot of ways, is a sinking ship, with bitter recriminations going on (the acrimony on the Association of Mathematics Teacher Educators was so high they had to close the list). Teachers are leaving the field for computer science in droves and new recruits are hard to find. Math as we know it is struggling for its very survival -- and I think it will die (math as we know it, from early school days). Something else will rise in its place, like a phoenix from the ashes. So when I talk about teaching math with programming, it's not the math you learned in school. Some elements in common of course, but in some ways it's rather alien (I call it "ET math" in some posts). Kirby From hei@adtranzsig.de Fri Jan 5 19:51:50 2001 From: hei@adtranzsig.de (Dirk-Ulrich Heise) Date: Fri, 05 Jan 2001 11:51:50 -0800 Subject: [Edu-sig] A fact on the ground Message-ID: <3.0.3.32.20010105115150.00a40750@pop.teleport.com> Dirk confirms he intended this for the list, suggested I could redirect... ============= BvR: > >Let me confirm that there is a difference between aptness for math and > >for programming! While I have a math degree, it became clear to me > >that I wasn't a math-head about halfway my second year in college. > >Around the same time it was also abundantly clear that I loved > >programming! :-) > > > >--Guido van Rossum (home page: http://www.python.org/~guido/) > > > KU: > I think any fork in the road between being a "math head" or a > "programmer" could/should come later in life. In K-12 at least, > we don't want to overspecialize. Synergy, integration, making > connections, is what's good for young and growing neural nets. > > You'll have all the time you need to specialize and narrow your > focus later in life. But lets start with more of a commitment > to well roundedness. Here's how i came to computers: In the age of 15 or so, i started soldering together some synthesizer modules. They sounded terrible, very noisy, and every circuit knew just one trick. As the first sound samplers appeared on the scene, i built my first 8080- based computer in order to make sound. Instead, it turned out to be much more fascinating to build computers and do systems programming. In school, math was easy for me, but i *never* used my homebrew computers or the then-arriving CBMs and C64s for solving math problems. It was always two very distinct things for me. Computing and outputting a sine wave in real time is nearly no math but a lot of assembler language. I understand that it seems natural for math teachers to associate computers with math. They would make just as much sense in music (if music teachers were not so conservative about what is music and what is noise in their ears), natural sciences etc. Using computers is usually a meta-activity, or it starts as a meta-activity: you want to improve the electronic sounds you can make, so you program a computer to produce sounds.You want to visualize a geometric shape, so you program a computer to do that. You want to synthesize natural language, so you build a program for that. Whatever. It has nothing to do with math. Maybe it has more to do with languages than with math. Okay, i use simple arithmetic all the time, like return x[i] is some address arithmetics (at least, it would be in C.). Well, what a lot of complicated math that is!!! You really want to convince me programming and math are related??? Insofar buying a loaf of bread and counting the change is a very math-related activity! Python is quite good for doing math programming, and bad for realtime I/O control, so no wonder that on a Python-centric list people associate "CP4E" with "math". The language you use determines what you can think about. Dipl.Inform. Dirk-Ulrich Heise business: hei@adtranzsig.de private: dheise@debitel.net From rpanek@mitre.org Fri Jan 5 20:43:56 2001 From: rpanek@mitre.org (Richard J Panek Jr) Date: Fri, 5 Jan 2001 15:43:56 -0500 Subject: [Edu-sig] A fact on the ground In-Reply-To: <3.0.3.32.20010105115150.00a40750@pop.teleport.com> Message-ID: <200101052023.PAA06545@smtpsrv1.mitre.org> On Fri, 05 Jan 2001 11:51:50 -0800, wrote: >Dirk confirms he intended this for the list, suggested >I could redirect... >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >BvR: >> >Let me confirm that there is a difference between aptness= for >>math and >> >for programming! While I have a math degree, it became clear= to >>me >> >that I wasn't a math-head about halfway my second year in college. >> >Around the same time it was also abundantly clear that I= loved >> >programming! :-) >> > >> >--Guido van Rossum (home page:= http://www.python.org/~guido/) >> > >> >KU: >> I think any fork in the road between being a "math head" or a >> "programmer" could/should come later in life. In K-12 at= least, >> we don't want to overspecialize. Synergy, integration,= making >> connections, is what's good for young and growing neural= nets. >> >> You'll have all the time you need to specialize and narrow= your >> focus later in life. But lets start with more of a= commitment >> to well roundedness. > >Here's how i came to computers: In the age of 15 or so, i= started >soldering together some synthesizer modules. They sounded= terrible, >very noisy, and every circuit knew just one trick. As the first >sound samplers appeared on the scene, i built my first 8080- >based computer in order to make sound. Instead, it turned out= to >be much more fascinating to build computers and do systems >programming. > >In school, math was easy for me, but i *never* used my homebrew >computers or the then-arriving CBMs and C64s for solving math >problems. > >It was always two very distinct things for me. Computing and >outputting >a sine wave in real time is nearly no math but a lot of= assembler >language. > >I understand that it seems natural for math teachers to= associate >computers with math. > >They would make just as much sense in music (if music teachers >were not so conservative about what is music and what is noise >in their ears), natural sciences etc. > >Using computers is usually a meta-activity, or it starts as a= meta- >activity: >you want to improve the electronic sounds you can make, so you >program a computer to produce sounds.You want to visualize >a geometric shape, so you program a computer to do that. >You want to synthesize natural language, so you >build a program for that. Whatever. It has nothing to do with= math. >Maybe it has more to do with languages than with math. Okay, >i use simple arithmetic all the time, like > return x[i] >is some address arithmetics (at least, it would be in C.). >Well, what a lot of complicated math >that is!!! You really want to convince me programming and >math are related??? Insofar buying a loaf of bread and counting >the change is a very math-related activity! > >Python is quite good for doing math programming, and bad >for realtime I/O control, so no wonder that on a Python-centric= list >people associate "CP4E" with "math". The language you use >determines what you can think about. > >Dipl.Inform. Dirk-Ulrich Heise >business: hei@adtranzsig.de >private: dheise@debitel.net > > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://www.python.org/mailman/listinfo/edu-sig I mostly agree with the idea of computing as a meta-activity- computers are a tool we use to do neat things. However math and= programming are a natural fit because they primarily center on problem solving. Music, government, and humanities do not have= this focus, and I think it would be difficult to conceptualize a= problem 'solved' by music (and I certainly can't think of one solved by government!). Kidding aside, the ability to take a problem= stated in a natural language, decompose it into more abstract concepts,= apply some basic logic to those concepts, and then present the results= in a manner consistent with the language the problem was stated in is= a skill that has traditionally been taught through math, and is a necessary skill for programming. Perhaps a language-oriented approach would also be valid, but natural language contains a lot= of ambiguity and context-sensitive information that I think would= only make the task of problem solving even harder. -- Richard J Panek Jr, rpanek@mitre.org on 01/05/2001 From fig@monitor.net Fri Jan 5 23:33:05 2001 From: fig@monitor.net (Stephen R. Figgins) Date: Fri, 05 Jan 2001 15:33:05 -0800 Subject: [Edu-sig] re: Question about a programming system. References: <0036584C.N22121@rsmi.com> Message-ID: <3A5659B1.AB32239A@monitor.net> Arthur_Siegel@rsmi.com wrote: > What I don't understand is why Alice is. I think I do. Alice fits as an example of making programming accessible to non-programmers. This is one possible interpretation of CP4E. As described in Matt Conway's dissertation, a main point of the exploration was how to create an API that a non-programmer could use, without needing to really know how to program. While compared to Logo, Alice wasn't really educational as much as an experiment in giving non-programmers access to tools that programmers had. If you have the other reading of CP4E, which is teaching programming to everybody, then Alice isn't much of an example at all. Though it may expose people to some programming and inspire them to learn more, it isn't really a learning tool itself. In terms of literacy, it is more of a first grade reader, the Dick and Jane of programming. I think you tend more to the second interpretation. I understand you as saying "what does this Dick and Jane crap have to do with learning programming? If we dumb programming down so people can grasp it we give them no reason to stretch themselves, no reason to grow." Am I understanding you right? From Arthur_Siegel@rsmi.com Sat Jan 6 01:01:38 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Fri, 5 Jan 2001 19:01:38 -0600 Subject: [Edu-sig] A fact on the ground Message-ID: <0036EE92.N22121@rsmi.com> Any kind of programming one might be doing of any seriousness- math related or not - it is a means to some end, not an end to itself. That statement would seem to be supportable by everyone who posted up on the topic. If programming is going to be introduced into the school system, it should earn its place - be a means to some end Which is a more controversial statement, perhaps, but reasonable I think, where precious resources are being consumed, and a small percentage of the students are likely to have a lifelong interest in the subject. So it is not so such a matter of introducing programming in a math curriculum, but enhancing math education with the tool. One does need to buy-in that a grounding in and excitement about math is a worthy goal And I hope we are not at the point where that is a controversial matter. The best intentions of using elementary programming skills to enhance other fundamental subject matter in fundamental ways has been discussed abstractly Kirby's work - which he knows well I have my own quibbles with - is well beyond the abstract discussion stage. We know we are talking about something real So hoping we send the math teachers to Kirby's math school rather tham Industrial Artists to Java school, should not be a suggestion that should raise many hackles here, I would think. From Arthur_Siegel@rsmi.com Sat Jan 6 01:27:53 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Fri, 5 Jan 2001 19:27:53 -0600 Subject: [Edu-sig] re: Question about a programming system. Message-ID: <0036EFE5.N22121@rsmi.com> "Stephen R. Figgins" on 01/05/2001 04:33:05 PM To: Arthur Siegel/NewYork/MP/RSMi@RSMi, edu-sig@python.org cc: Subject: Re: [Edu-sig] re: Question about a programming system. >Am I understanding you right? Not fully. I wouldn't be quite as passionate if it was only that. I happily accept Alice for what it publically states itself to be - "free and easy interactive 3d graphics for the world wide web" I think is the wording. But if you look at the history of the project it has become whatever it needs to say it is to different audiences at different times to try to justify its existence. And it has been all over the lot, It has never stated clearly what its intention were and lived within those statements. I see it as fundamentally without integrity. And the dissertation to the extent it has pretenses to being science, is corrupt science. Love to be knocked down on this. I have already been accused of everything from missing its importance as exploration of computer/human interaction to not appreciating how cute the bunnies are. IMO, now that you've asked From fig@monitor.net Sat Jan 6 02:05:52 2001 From: fig@monitor.net (Stephen R. Figgins) Date: Fri, 05 Jan 2001 18:05:52 -0800 Subject: [Edu-sig] Alice (was re: Question about a programming system.) References: <0036EFE5.N22121@rsmi.com> Message-ID: <3A567D80.94195E2B@monitor.net> > >Am I understanding you right? > > Not fully. I wouldn't be quite as passionate if it was only that. Well, this is why I ask. You have more of a specific objection to this project. You consider it opportunistic and bad science. The only knowledge I have about Alice is what is presented on their web pages. I haven't found anything there to object to, but I am probably no real judge of good vs. bad science. I actually didn't get the impression that it was meant to be science at all (not testing a particular hypothesis), but rather an exploration of how to create a programming interface for non-programmers. More like a study. Did you get your negative impression from the web pages and the dissertation directly? Do you have some other personal experience with the project? I think you are seeing something here that the rest of us are failing to see. -Stephen From Arthur_Siegel@rsmi.com Sat Jan 6 17:31:33 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Sat, 6 Jan 2001 11:31:33 -0600 Subject: [Edu-sig] Re: Alice (was re: Question about a programming system.) Message-ID: <00370448.N22121@rsmi.com> "Stephen R. Figgins" on 01/05/2001 07:05:52 PM >>You have more of a specific objection to this project. You consider >>it opportunistic and bad science. Keyword - "opportunistic" >>I actually didn't get the impression that it was meant to be science at >>all I'm disarmed again. I can't argue against Alice as science because its not supposed to be science. I can't argue against it as relevent to education because its not supposed to be relevant to education. I can't argue against it as relevant to teaching programming because of course that was never its intent. And the unavoidable truth is that my issue is with owner@edu-sig - who keeps citing its significance while being unwilling to engage on the topic. Did I make up the fact he cited the Alice "studies" as a key factor in a decision whether to case insensitize Python, nearly turning the world on its head. Did I make up the fact that his Linux Journal article on CP4E never mentioned Python, but was all about some abstract conception of human/computer interface. We are not being honest if we don't see the Alice in it. So either I'm blowing smoke at straw horses in which case I'm happy to shut-up, or I'm taking a stand on something that is of clear significance to the business of Python/CP4E - in which case I am happy to continue the discussion. From pdx4d@teleport.com Sat Jan 6 18:02:36 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sat, 06 Jan 2001 10:02:36 -0800 Subject: [Edu-sig] Re: Alice In-Reply-To: <00370448.N22121@rsmi.com> Message-ID: <3.0.3.32.20010106100236.009acb10@pop.teleport.com> I guess my own view at this time is Alice is harmless so long as it doesn't motivate any major changes to Python itself (in the direction of dumbing it down, under which heading I'd file case insensitivity). I think being anti anything is an inherently weaker stance than being pro something of your own (not a dig at either Arthur or Guido, as both are fonts of creativity). So I think the best way to keep the bunny rabbits from running amok is to continue elaborating a curriculum through which Python interweaves, as a language, be that through music, math, GUI design, XML or whathaveyou. Lots not leave the stage to Alice alone. Computerworld is absolutely brimming with riches, is my experience. It's a similar experience to going into a Hollywood Video outlet: even if they stopped making new movies today, it'd take a lifetime to just see what we've already got. Of course matters of taste arise, and the subset of the total inventory you'd consider "gems" would only partially overlap mine. Like, what about ToonTalk? A gem! (say I). To be fair to Alice, I personally haven't used it enough to say anything strongly pro or con, nor studied the background literature as thoroughly as Arthur has. I've played with it some. I'm glad it's around. I hope people keep evolving and using it, or stealing good ideas from it. But I don't think it should be allowed to stereotype or typecast Python in education. Typecasting is always a danger (something which happened to Xbase, to its lasting detriment). Finally, I'm very glad many people are working on Python- related projects with an eye to education that are quite different from my own. My slant is useful and valuable, I would claim (most would agree), but it's not the one and only, or be all and end all. I'm especially interested in the music angle, as I think math and music, which used to be taught together, belong in closer association down the road. And of course Arthur's PyGeo is right in the same neck of the woods as my stuff in a lot of ways, an inspiration and source of encouragement. Kirby PS: unrelated question for which I've never gotten an answer: is it true that the Mac version of IDLE doesn't apply color coding to key words? That seemed to be the case when I installed from Mac binaries to an iMac recently, a 2.0 beta version. Answers welcome. From Arthur_Siegel@rsmi.com Sat Jan 6 20:09:45 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Sat, 6 Jan 2001 14:09:45 -0600 Subject: [Edu-sig] Re: Alice Message-ID: <003707E0.N22121@rsmi.com> >>I guess my own view at this time is Alice is harmless ... Essentially true, now. But some efforts towards keeping its ambitions in check may not be a wholly unworthy or unnecessary endeavor. Truly sadly to me, that has come to mean tangling with Guido. Knowing I might seem off on a crazy tangent to most. And suspecting I will not be winning any popularity contests in the community. >> Arthur or Guido, as both are fonts of creativity I don't put myself anywhere near his class. But I do consider myself at least as worldly. From jhrsn@pitt.edu Sun Jan 7 00:26:33 2001 From: jhrsn@pitt.edu (Jim Harrison) Date: Sat, 06 Jan 2001 19:26:33 -0500 Subject: [Edu-sig] Re: Alice In-Reply-To: <00370448.N22121@rsmi.com> Message-ID: on 1/6/01 12:31 PM, Arthur_Siegel@rsmi.com at Arthur_Siegel@rsmi.com wrote: Re: Alice >>> You have more of a specific objection to this project. You consider >>> it opportunistic and bad science. > Keyword - "opportunistic" -- etc. etc. etc. I hesitate to add to this thread, partly because it's difficult to know exactly what the various participants are really thinking from what's been written. I hope I'm not severely missing the point when I offer these several thoughts: It's true that Randy Pausch sometimes comes across like a motivational speaker when he talks about Alice, and his presentations for general audiences are mostly gee-whiz and don't really focus on the science. In my experience, most successful leaders of university R&D groups have this characteristic--marketing yourself and your work energetically is almost a requirement in a setting where external funding defines a person's worth. The incentives are strongly in the opportunistic direction, but this doesn't mean that the science isn't also good. It's just that you have to sell your work as hard as you can using anything you can think of (including your personality or your work's gee-whiz aspects) in addition to the science. To evaluate the science, observers must ignore the hype and go to the original published work. Useful information on Alice and it's development group is at http://www.alice.org/stage3/projects.html and a list of peer-reviewed publications is at http://www.alice.org/stage3/pubs.html. Arthur, you may be very familiar with the studies that have been carried out in conjunction with Alice but your references to opportunism and bad science--which could be correct--are difficult to evaluate as appropriate for this list or to respond to because you haven't mentioned specific examples of bad science or critiqued specific published hypotheses or results (forgive me if you've done this and I've just missed it). I'm not an expert on Alice, but I have heard Randy Pausch speak and I have read a bit about Alice. I understand it to be a limited but interesting environment that provides opportunities to study various kinds of people's interactions with computer-generated three-dimensional representations. Using an environment like this, experimental user interfaces for creating and manipulating the environments can be created and tested. One interesting issue that has seen some investigation within the Alice group is the perception of 3D computer environments by visual artists, writers and engineers. These perceptions bear on whether a unified interface for manipulating 3D objects might be optimal for humans or whether the optimal 3D interface might vary based on the point of view and background of the user. In a sense, this use of Alice is similar to the studies that Xerox PARC drew upon to create the Star and strongly influence the Mac (note that Alice is not analogous to the Star, but to the laboratories where the key issues were identified and tested that influenced the Star design). Ultimately the work done with Alice will combine with a large number of other studies to influence 3D interface design. An environment like Alice might be re-purposed to be useful in other areas. Once could conceive of a number of settings where creation of 3D environments might be useful in education. As a simple example, Alice might be useful in teaching programming. The manipulation of 3D objects provides an outcome that is easy to grasp cognitively and logic errors are quickly perceived. Manipulation of 3D graphics is also strongly reinforcing to many people. On the other hand, aspects of Alice's design may be suboptimal for this use. Enthusiasm from Alice proponents in this direction is, I think, understandable opportunism. In any case, it doesn't invalidate Alice's usefulness as a 3D interface-design laboratory. Alice will be used for secondary purposes to the extent that it is truly beneficial. It's reasonable for Python to point to projects with a certain coolness factor like Alice as examples of the capabilities of the language. In the end, though, Alice itself plays to a limited audience. Python will incorporate lessions from Alice and other research, but it's real success will depend on projects like Zope, optimal relational and object-oriented database access libraries, porting up-to-date XML processing software into the Python libraries, Kirby's math curriculum examples, Jeff Elkner's students' demonstration of excellence, and the like. Jim Harrison Univ. of Pittsburgh From dbarker@turing.cs.camosun.bc.ca Sun Jan 7 04:02:52 2001 From: dbarker@turing.cs.camosun.bc.ca (Deryk Barker) Date: Sat, 6 Jan 2001 20:02:52 -0800 Subject: [Edu-sig] A fact on the ground In-Reply-To: <200101042357.SAA13068@cj20424-a.reston1.va.home.com>; from guido@python.org on Thu, Jan 04, 2001 at 06:57:30PM -0500 References: <200101042142.QAA28122@angelo.arlington.k12.va.us> <200101042357.SAA13068@cj20424-a.reston1.va.home.com> Message-ID: <20010106200252.A30843@turing.cs.camosun.bc.ca> Thus spake Guido van Rossum (guido@python.org): > > It doesn't "make sense" to program around math stuff to someone who > > finds math unpleasant to begin with. Instead, they associate > > programming > > with math and become convinced that programming is not for them either. > > Let me confirm that there is a difference between aptness for math and > for programming! While I have a math degree, it became clear to me > that I wasn't a math-head about halfway my second year in college. > Around the same time it was also abundantly clear that I loved > programming! :-) Although I hadn't actually discovered an enthusiasm for programming (punching FORTRAN on cards by hand for an IBM 7094 and waiting 2 weeks for the output to be mailed back somehow put me off) I too was in my second year of a maths degree when I realised this was not for me... -- |Deryk Barker, Computer Science Dept. | Music does not have to be understood| |Camosun College, Victoria, BC, Canada| It has to be listened to. | |email: dbarker@camosun.bc.ca | | |phone: +1 250 370 4452 | Hermann Scherchen. | From Arthur_Siegel@rsmi.com Sun Jan 7 05:20:27 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Sat, 6 Jan 2001 23:20:27 -0600 Subject: [Edu-sig] re: Alice Message-ID: <00371074.N22121@rsmi.com> Jim - Thanks for an honest take from another perspective. Looked at the project site. First let me congratulate myself on one thing I learned. Squeak Alice is here. http://www.alice.org/stage3/sqalice.html A much, much better match of aesthetics. My high regard for my own worldliness is reinforced and we prove once again that even paranoids have enemies. >I hesitate to add to this thread, partly because it's difficult to know >exactly what the various participants are really thinking I think I can be accused of ignorance, or stupidity. But I'm saying what I'm thinking. Which is probably my worst stupidity. >In my experience, most successful leaders of university R&D groups have this >characteristic--marketing yourself and your work energetically is almost a >requirement in a setting where external funding defines a person's worth. Heh. Sounds like the world I live in too. And Randy a master by all accounts. But I vote for a world in which the most successful leaders of university R&D groups are those doing the most important work, with the most integrity. I am I Don Quixote. >you haven't mentioned specific examples of bad science or >critiqued specific published hypotheses or results (forgive me if you've >done this and I've just missed it). Alice doesn't have hypothesis and conclusions. Apparently that's old fashion science. It has "lessons". Lessons don't reveal their source or basis which is convenient because you can't refute them. So I will quote from Alice's lessons at http://www.alice.org/stage3/lessons.html Vocabulary Matters The choice of names for behaviors is critically important in a system for novices. Among the more notable examples in the names we use are: Move, not Translate: Translation, to novices, is the process by which English is translated to French. Resize, not Scale: A scale is an object used to weigh other objects, not a verb. But whereas you can't refute lessons, you can laugh at them and call them names if you are so inclined. I am so inclined: Laughable shameful silliness. But the lesson I like the best, which gets its own 14 point bold: Typing is Hard And of course anyone else is well entitled to laugh at my laughing and call me names. Which I guess is why real science is a good thing.. >Using an environment like this, experimental user interfaces for creating >and manipulating the environments can be created and tested. Never said Alice couldn't be used in doing science. So can card decks and inkblots. >The manipulation of 3D objects provides an outcome that is easy to grasp >cognitively and logic errors are quickly perceived. Manipulation of 3D graphics >is also strongly reinforcing to many people. 100% insanely enthusiatic agreement. > Enthusiasm from Alice proponents in this direction is, I think, > understandable opportunism. A term hard to ponder. But I know I don't like it. If those proponents are serious let them give it some real attention in a serious way. And once we all understand where VR research ends and education begins, I will be the first to welcome them. I am quite serious about that. Stephen Figgins, if he can remember, should be able to verify that one of the first things I ever said about Alice was that I wish I was on the team. No question they are having fun. I like fun. > In any case, it doesn't invalidate Alice's usefulness as a 3D > interface-design laboratory. Alice will be used for secondary purposes > to the extent that it is truly beneficial. No it doesn't invalidate anything. Just having my say on how beneficial I think it has been in this arena to date. >It's reasonable for Python to point to projects with a certain coolness >factor like Alice as examples of the capabilities of the language. Absolutely. The bunnies *are* cute. But I think Lightflow way cooler. >Python will incorporate lessons from Alice and other research People much more important to the future of Python than I have expressed some displeasure about the possible incorporation of at least one of Alice's "lessons". >but it's real success will depend on projects like Zope, optimal relational >and object-oriented database access libraries, porting up-to-date XML >processing software into the Python libraries, Kirby's math curriculum >examples, Jeff Elkner's students' demonstration of excellence, and the like. Amen. From hei@adtranzsig.de Mon Jan 8 09:16:20 2001 From: hei@adtranzsig.de (Dirk-Ulrich Heise) Date: Mon, 8 Jan 2001 10:16:20 +0100 Subject: [Edu-sig] A fact on the ground References: <200101052023.PAA06545@smtpsrv1.mitre.org> Message-ID: <003201c07953$a9dd8f50$13ec1fc2@adtranzsig.de> -----Ursprüngliche Nachricht----- Von: "Richard J Panek Jr" An: Gesendet: Freitag, 5. Januar 2001 21:43 Betreff: Re: [Edu-sig] A fact on the ground > I mostly agree with the idea of computing as a meta-activity- > computers are a tool we use to do neat things. However math and > programming are a natural fit because they primarily center on > problem solving. Music, government, and humanities do not have this > focus, and I think it would be difficult to conceptualize a problem > 'solved' by music (and I certainly can't think of one solved by > government!). Kidding aside, the ability to take a problem stated in > a natural language, decompose it into more abstract concepts, apply > some basic logic to those concepts, and then present the results in a > manner consistent with the language the problem was stated in is a > skill that has traditionally been taught through math, and is a > necessary skill for programming. So, can programming also be called "the art of making plans"? I think so. It's a little bit of a pity that in school, this is usually tied to math, and doesn't occur so much in other areas. Or does it? Writing an essay in English is something you gotta make a plan for, as well. Composing some music has it, as well. There were some few lessons in my school days were we had to create, in groups, music of or own. These were the most entertaining lessons for me. Oh, and of course there's art in school. You have to have a plan to draw the picture you have in your head. In all these disciplines the "art of making a plan" is hidden, but maybe not talked so much about explicitly. It's obvious in math, that's where you're right. Don't get me wrong: I don't wanna *fight* the ambitions of math teachers to bring more programming into math; i'm just philosophing... Math is all crisp and clear und we're used to what you're describing, decomposing problems, applying logic and so on in the realm of math. In the "artistic" or "creative" disciplins like writing, painting, or composing, things get much more fuzzy. But maybe it just feels this way because it has been taught this way. Dipl.Inform. Dirk-Ulrich Heise business: hei@adtranzsig.de private: dheise@debitel.net From dorothea@impressions.com Mon Jan 8 13:41:51 2001 From: dorothea@impressions.com (Dorothea Salo) Date: Mon, 8 Jan 2001 07:41:51 -0600 Subject: [Edu-sig] Re: Edu-sig digest, Vol 1 #205 - 8 msgs References: <20010106170105.B18B2E91B@mail.python.org> Message-ID: <029c01c07978$c1c0fa60$2000c886@ep2> > programming are a natural fit because they primarily center on > problem solving. Music, government, and humanities do not have= > this > focus, and I think it would be difficult to conceptualize a= > problem > 'solved' by music (and I certainly can't think of one solved by > government!). Er, please insert a polite way of saying "bovine excrement" here. Have you ever actually taken a music theory class? It's all *about* problem-solving. Here's a figured-bass line and a starting chord. Write the rest of the chords. Here's a chord progression and a starting chord. Write the rest. Here's a piece of music. What's the chord progression? Oops, key change -- where's the pivot chord, and how does it fit into both keys? Back when I was taking music theory in college, we used to practice these things on HyperCard stacks. Really. Would've been way cooler to be able to program 'em ourselves. Kidding aside, the ability to take a problem= > stated in > a natural language, decompose it into more abstract concepts,= > apply > some basic logic to those concepts, and then present the results= > in a > manner consistent with the language the problem was stated in is= > a > skill that has traditionally been taught through math, and is a > necessary skill for programming. Perhaps a language-oriented > approach would also be valid, but natural language contains a lot= > of > ambiguity and context-sensitive information that I think would= > only > make the task of problem solving even harder. Depends on how you approach it. A lot of serious language study is precisely about figuring out how ambiguity and context-sensitivity work. (Same for text markup, which may be of slightly more interest to the tech-heads here.) If you approach natural language as an icky-nasty horrible thing that should be gotten out of the way as quickly as possible so that the real work can take place -- which is, I hope I need not say, exactly the approach to mathematics that rightly annoys so many people here -- then of course the task of problem solving is harder; you're making it harder because of your attitude toward it. If, however, you approach natural language with an awareness of its beauty, variety, and power of fascination, there's no reason on earth that computers can't fit nicely into the picture. Just like math. Dorothea -- Dorothea Salo Impressions Book and Journal Services, Inc. phone: (608) 244-6218 fax: (608) 244-7050 http://www.impressions.com From Arthur_Siegel@rsmi.com Mon Jan 8 16:08:26 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Mon, 8 Jan 2001 10:08:26 -0600 Subject: [Edu-sig] Natural language programming Message-ID: <00373DBB.N22121@rsmi.com> Websters Deluxe Unabridged Dictionary Second Edition: Translate: 1. to change from one place, position, or condition to another 2. to change from one language to another Anyone is welcome to look it up. So apparently further research needs to be done about whose natural language we need to be using - especially when we happen to be working with an unusual population that has its 1. and 2. definitions reversed. From rpanek@mitre.org Mon Jan 8 15:40:31 2001 From: rpanek@mitre.org (Richard J Panek Jr) Date: Mon, 8 Jan 2001 10:40:31 -0500 Subject: [Edu-sig] Re: Edu-sig digest, Vol 1 #205 - 8 msgs In-Reply-To: <029c01c07978$c1c0fa60$2000c886@ep2> Message-ID: <200101081519.KAA03471@smtpsrv1.mitre.org> On Mon, 8 Jan 2001 07:41:51 -0600, Dorothea Salo wrote: > Er, please insert a polite way of saying "bovine excrement"= here. Thank you for being polite :-) > Have you ever actually taken a music theory class? It's all * >about* >problem-solving. Here's a figured-bass line and a starting= chord. >Write the >rest of the chords. Here's a chord progression and a starting= chord. >Write >the rest. Here's a piece of music. What's the chord= progression? >Oops, key >change -- where's the pivot chord, and how does it fit into= both >keys? You're right- I've never taken a music theory class. I was= thinking more of the 'everybody' level, and while I acknowledge that I= know very little about music, I have gone through school, college,= etc. and thus believe I have a good idea of what is taught on a= general level, and programming would be hard to incorporate into the= limited curriculum that I was exposed to. > > Back when I was taking music theory in college, we used to >practice >these things on HyperCard stacks. Really. Would've been way= cooler >to be >able to program 'em ourselves. > I'm pretty sure I'm missing something here, but using HyperCard= to present practice problems is a lot different from writing a= program to solve the problems. Or did the stacks solve the problems themselves? > Depends on how you approach it. A lot of serious language= study >is precisely about figuring out how ambiguity and >context-sensitivity work. >(Same for text markup, which may be of slightly more interest to= the >tech-heads here.) If you approach natural language as an= icky-nasty >horrible thing that should be gotten out of the way as quickly= as >possible so that >the real work can take place -- which is, I hope I need not= say, >exactly the >approach to mathematics that rightly annoys so many people here= -- >then of course the task of problem solving is harder; you're= making >it harder because of your attitude toward it. > > If, however, you approach natural language with an awareness= of >its >beauty, variety, and power of fascination, there's no reason on >earth that >computers can't fit nicely into the picture. Just like math. I understand that natural language is a wonderful thing, and a= lot of the interesting stuff in CS is closely related to language. I= just think that it would be a hard way to teach programming and still= teach language concepts at the same time. Can writing a program= give greater appreciation for a work of literature? Maybe it can, and= I would love to see some examples. With math, however, programming= can uncover things that would otherwise go unnoticed, and the= programming is relatively simple. Of course math is not the only possible way, but it's probably= the most likely way. Other subjects would require a pretty extensive= re-evaluation of current curricula and teaching methods. Of= course, I think most subjects require that anyway so maybe incorporating= computers would be one way to do it. > >Dorothea >-- >Dorothea Salo >Impressions Book and Journal Services, Inc. >phone: (608) 244-6218 fax: (608) 244-7050 >http://www.impressions.com > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://www.python.org/mailman/listinfo/edu-sig -- Richard J Panek Jr, rpanek@mitre.org on 01/08/2001 From Max.Haas@unibas.ch Mon Jan 8 16:48:03 2001 From: Max.Haas@unibas.ch (Max Haas) Date: Mon, 08 Jan 2001 17:48:03 +0100 Subject: [Edu-sig] Richard J Panek/Dorothea Salo In-Reply-To: <200101081519.KAA03471@smtpsrv1.mitre.org> Message-ID: am 8.1.2001 16:40 Uhr schrieb Richard J Panek Jr unter rpanek@mitre.org: > On Mon, 8 Jan 2001 07:41:51 -0600, Dorothea Salo wrote: [snip] > >> Have you ever actually taken a music theory class? It's all * >> about* >> problem-solving. [snip] > > You're right- I've never taken a music theory class. I was thinking > more of the 'everybody' level, and while I acknowledge that I know > very little about music, I have gone through school, college, etc. > and thus believe I have a good idea of what is taught on a general > level, and programming would be hard to incorporate into the limited > curriculum that I was exposed to. > >> >> Back when I was taking music theory in college, we used to >> practice >> these things on HyperCard stacks. Really. Would've been way cooler >> to be >> able to program 'em ourselves. >> > > I'm pretty sure I'm missing something here, but using HyperCard to > present practice problems is a lot different from writing a program > to solve the problems. Or did the stacks solve the problems > themselves? I would like to support first Dorotheas view (= 1) and then add another point (= 2). Unfortunately I haven't read all the mails during the last weeks and I might be the case of the bad outsider who should shut up. I shall see and learn about it. (e.g. I didn't understand Arthurs mail and think that I have a big lack of knowledge). (1a): Hope to be able to do something by way of example. When we give the sequence /rto/ (= three phonems: r, t, o) to competent German speakers (sorry! Don't know of a well suited English/American example) and ask them if /rto/ is a German word they will say "no!". This is interesting because they will agree to the fact that they don't know every German word. When we spend some combinatorics to our candidate /rto/ then we might produce something like "rot", "Ort" or "Tor". These are really German words. From this point of view linguists (following this strategy) do two things: they answer the question "Of what does a language consist?" in the form that they enumerate the shortest elements of a language (possible for any language) and then they give the rules how these elements can be combined to build sequences. (1b): Natural language is a sort of a linear chain of symbols. Men produce those chains twice (apart from physiological processes): when they speak (write) and when they produce music (when they write music down). In the history of science music was used as paradigm for a continuous system and a discrete system. When you give for a certain idiom (of music, e.g. 500 chants of any population) the answer which elements build this idiom (which phrases, formulas) and which are the rules to combine those elements you solve a problem. In my experience it's easier to ask those questions with some programming. (You can do it in HyperCard, Python, Ada or Assembler ...) (1c) Richard: Naturally I didn't try to bring up an argument in favor of music. I have another question: could it be that we have imaginations about "hard" and "soft" and that we are educated in the belief that 'music' is "soft" - no problem solving in and with music? I tried to sketch the thing with linear symbol chains because on this level we have firstly a complete theory about "The Mathematical Structures of Language", written and published by Zellig S. Harris, New York 1979 (there are some other books ....) . When we secondly try to think more about these foundations we read in the "Handbook of Formal Languages" of G. Rozenberg/A. Salomaa. I don't think that we deal here with "natural language", "programming" or "music" but with the possibility to speak about all things in the greatest concreteness and in the greatest abstractness. (Greetings from Plato and Aristotle). (BTW: In Greek music theory music was the thing which made men knowing something about 'time', 'movement', 'place', 'space' and 'measure'. Rather "hard" things, aren't they?) (2) Can I take this opportunity and add a thing? Once upon a time somebody here quoted the statement about a mathematics which makes the invisible visible. I like the statement. As far as I try to do this and visualize music I have always the same problems with Python. I could do all the programming (together with students who never have programmed before) with Python - great language - but the possibilities to visualize these processes would need quite other graphic capabilities. This is _not_ a complaint! I haven't Guido's brain and to do my job I must then (on a Mac) work with Lisp (or REALbasic), because I can't produce _my_ Python. Interesting for me are the limitations - as if the combination of Python and math would be an argument for poor visualization capabilities. Regards Max From rpanek@mitre.org Mon Jan 8 17:49:57 2001 From: rpanek@mitre.org (Richard J Panek Jr) Date: Mon, 8 Jan 2001 12:49:57 -0500 Subject: [Edu-sig] Richard J Panek/Dorothea Salo In-Reply-To: Message-ID: <200101081728.MAA01122@smtpsrv1.mitre.org> On Mon, 08 Jan 2001 17:48:03 +0100, Max Haas wrote: >I would like to support first Dorotheas view (=3D 1) and then add >another >point (=3D 2). Unfortunately I haven't read all the mails during= the >last >weeks and I might be the case of the bad outsider who should= shut >up. I >shall see and learn about it. (e.g. I didn't understand Arthurs= mail >and >think that I have a big lack of knowledge). > >(1a): Hope to be able to do something by way of example. When= we >give the >sequence /rto/ (=3D three phonems: r, t, o) to competent German >speakers >(sorry! Don't know of a well suited English/American example)= and >ask them >if /rto/ is a German word they will say "no!". This is= interesting >because >they will agree to the fact that they don't know every German= word. >When we >spend some combinatorics to our candidate /rto/ then we might produce >something like "rot", "Ort" or "Tor". These are really German= words. >From >this point of view linguists (following this strategy) do two >things: they >answer the question "Of what does a language consist?" in the= form >that they >enumerate the shortest elements of a language (possible for any >language) >and then they give the rules how these elements can be combined= to >build >sequences. > >(1b): Natural language is a sort of a linear chain of symbols.= Men >produce >those chains twice (apart from physiological processes): when= they >speak >(write) and when they produce music (when they write music= down). In >the >history of science music was used as paradigm for a continuous >system and a >discrete system. When you give for a certain idiom (of music,= e.g. >500 >chants of any population) the answer which elements build this= idiom >(which >phrases, formulas) and which are the rules to combine those= elements >you >solve a problem. In my experience it's easier to ask those= questions >with >some programming. (You can do it in HyperCard, Python, Ada or >Assembler ...) > >(1c) Richard: Naturally I didn't try to bring up an argument in >favor of >music. I have another question: could it be that we have >imaginations about >"hard" and "soft" and that we are educated in the belief that >'music' is >"soft" - no problem solving in and with music? I tried to sketch= the >thing >with linear symbol chains because on this level we have firstly= a >complete >theory about "The Mathematical Structures of Language", written= and >published by Zellig S. Harris, New York 1979 (there are some= other >books >.....) . When we secondly try to think more about these= foundations >we read >in the "Handbook of Formal Languages" of G. Rozenberg/A.= Salomaa. I >don't >think that we deal here with "natural language", "programming"= or >"music" >but with the possibility to speak about all things in the= greatest >concreteness and in the greatest abstractness. (Greetings from= Plato >and >Aristotle). (BTW: In Greek music theory music was the thing= which >made men >knowing something about 'time', 'movement', 'place', 'space'= and >'measure'. >Rather "hard" things, aren't they?) > >(2) Can I take this opportunity and add a thing? Once upon a= time >somebody >here quoted the statement about a mathematics which makes the >invisible >visible. I like the statement. As far as I try to do this and >visualize >music I have always the same problems with Python. I could do= all the >programming (together with students who never have programmed >before) with >Python - great language - but the possibilities to visualize= these >processes >would need quite other graphic capabilities. This is _not_ a >complaint! I >haven't Guido's brain and to do my job I must then (on a Mac)= work >with Lisp >(or REALbasic), because I can't produce _my_ Python. Interesting= for >me are >the limitations - as if the combination of Python and math would= be >an >argument for poor visualization capabilities. > >Regards > >Max > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://www.python.org/mailman/listinfo/edu-sig I've already admitted I don't know anything about music theory= and probably should slink off to a dark corner, but what the hey, no= one wants to argue with me at work today... There is problem solving in music, language, etc. I made too= over- broad a statement in my first post. It really comes down to a= matter of practicality- math has been taught with problem solving as a= key concept. Language and music haven't, at least not in the US= school systems I'm aware of. I can see a math teacher hitting Kirby's website and incorporating some of the ideas rather easily. I= don't see it happening in a language or music class. The /rto/ problem= is interesting, but most curricula seem to be moving away from= things like grammar and spelling, whole language is used to teach= reading, and don't correct mistakes or you'll damage self-esteem. I think= the concreteness of writing programs would be met with open hostility= by many teaching those subjects. Unfortunately math curricula are slowly falling prey to the same mentality. -- Richard J Panek Jr, rpanek@mitre.org on 01/08/2001 From dorothea@impressions.com Mon Jan 8 17:37:20 2001 From: dorothea@impressions.com (Dorothea Salo) Date: Mon, 8 Jan 2001 11:37:20 -0600 Subject: [Edu-sig] Re: Edu-sig digest, Vol 1 #207 - 5 msgs References: <20010108170107.BD11AEC93@mail.python.org> Message-ID: <037a01c07999$a70a9660$2000c886@ep2> > I'm pretty sure I'm missing something here, but using HyperCard= > to > present practice problems is a lot different from writing a= > program > to solve the problems. Or did the stacks solve the problems > themselves? Insofar as the stack had to figure out the right answer, yes. I'm practically positive the right answers were algorithmically-derived, not handed to the program up front -- in at least one case I remember, at least two correct solutions were possible, and the program accepted two (the two I tried, anyway) as correct. Essentially, the stack would show you a problem, let you solve it, and tell you whether you were right or wrong. If you were wrong, it would show you the problem ("parallel fifth here" "that isn't really a ii chord") so that you could revise your solution. > I understand that natural language is a wonderful thing, and a > lot of > the interesting stuff in CS is closely related to language. I > just > think that it would be a hard way to teach programming and still > > teach language concepts at the same time. Can writing a program > give > greater appreciation for a work of literature? Maybe it can, and > I > would love to see some examples. With math, however, programming > can > uncover things that would otherwise go unnoticed, and the > programming > is relatively simple. Same for language (which is not the same thing as literature; let's not get our fields mixed here). It's relatively simple to write a program to produce regular verb paradigms from natural-language-of-choice. In the process, though, students absolutely will uncover a lot of knowledge about language they didn't know they had. Toss irregulars into the mix (easier for Romance languages, harder but still possible for English), and you have a winner -- tough-but-interesting programming problem that touches on a significant pedagogical problem. As for literature, I'd turn kids loose on writing a concordancer in a hot minute. It's absolutely astonishing what you can learn about an author's use of language from a concordance. For English poetry, I think stress analysis would be fun (especially combined with a pre-written speech synthesis module). If you stress a poem precisely according to The Rules, does it sound right? Why or (more often!) why not? What departures from The Rules do poets make? Does a poem that precisely fits The Rules necessarily sound better than one that breaks them every now and then? (For Spanish poetry, syllable analysis is the analogous-but-not-identical problem.) > Other subjects would require a pretty extensive > re-evaluation of current curricula and teaching methods This is probably true, but once again, if our goal is genuinely Programming for Everyone, we can't balk at that. In a way, too, part of what I'm putting forward is Natural Language for Programmers, who are reputed (how fairly or unfairly I can't say, not having taught a large enough sample) to have difficulty learning foreign languages. I think the two-way enrichment is part of what CP4E is after. Dorothea -- Dorothea Salo Impressions Book and Journal Services, Inc. phone: (608) 244-6218 fax: (608) 244-7050 http://www.impressions.com From b.fallenstein@gmx.de Mon Jan 8 18:21:50 2001 From: b.fallenstein@gmx.de (Benjamin Fallenstein) Date: Mon, 08 Jan 2001 19:21:50 +0100 Subject: [Edu-sig] Natural language programming References: <00373DBB.N22121@rsmi.com> Message-ID: <3A5A053E.BFA1E862@gmx.de> Arthur_Siegel@rsmi.com wrote: > Websters Deluxe Unabridged Dictionary Second Edition: > > Translate: > > 1. to change from one place, position, or condition to another > 2. to change from one language to another > > Anyone is welcome to look it up. Sure. Oxford Advanced Learners Dictionary of Current English, Third Edition: translate: vt, sth (from) (into): 1. give the meaning of (sth said or written) in another language 2. remove (a bishop) to a different see; (in the Bible) take to heaven without death. You're welcome to look it up as well. :) I'm not trying to make a statement about Alice, btw. But I agree with them about "translate." - Benja From b.fallenstein@gmx.de Mon Jan 8 18:22:46 2001 From: b.fallenstein@gmx.de (Benjamin Fallenstein) Date: Mon, 08 Jan 2001 19:22:46 +0100 Subject: [Edu-sig] re: Question about a programming system. References: <00359065.N22121@rsmi.com> <3.0.3.32.20010105073236.00a3d4e0@pop.teleport.com> Message-ID: <3A5A0576.2FC60F0D@gmx.de> Kirby Urner wrote: > Benja, have you checked out ToonTalk? Pretty wild, gets my > vote for most original learning-to-program world for kids. Hi Kirby! Thanks for pointing that out! No, I hadn't looked at ToonTalk yet, but it's way cool. And I though graphical programming wasn't a breakthrough in making programming accessible. :) I don't know if I can use any ideas from it in my work (except constraint-based programming in the widest sense, which I thought about anyway), but I'll see and may be inspired. In any case, a very rewarding and educating first look at it! Thanks a *lot*! - Benja From pdx4d@teleport.com Tue Jan 9 04:41:31 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 08 Jan 2001 20:41:31 -0800 Subject: [Edu-sig] Python in Education In-Reply-To: <3A5A053E.BFA1E862@gmx.de> References: <00373DBB.N22121@rsmi.com> Message-ID: <3.0.3.32.20010108204131.00a05410@pop.teleport.com> First, I think it's a premise of this list that we're talking about using Python in some way. Not necessarily to the exclusion of other tools. On the contrary, Python is very powerful as a "synergizer" -- works well with others. So, once you're in the realm of the Python language, you're doing something at least precise enough to use Python for. Other aspects of the toolkit might be less precise, but Python is Python -- it has to at least have well-formed syntax or it won't run. My tack has been to eye the math classroom and see a lot of ways in which programming fits. But this isn't the standard approach. Most people, when they think of Python in Education, think (a) of a computer programming or computer science course and (b) of using Python as a main language in that course. That's the standard way of thinking about Python in Education, and it puts Python in competition with languages already being used to teach programming in those kinds of courses: VB, C++, DrScheme or whatever. So again, I'm doing something non-standard: suggesting we phase Python into the K-12 math curriculum. To me, that's a direction you'd need to go if you're really, trully serious about "programming for everybody" -- because math has a wider audience, is more core to the curriculum, than computer programming courses. Programming is mostly an elective subject, offered only in high school initially (with more to follow in college). Math is something everybody studies, starting in kindergarden. Now, if you look at the current situation in the USA at least, there's a lot of controversy about how to best teach math. We've got these so-called "math wars" raging and everyone is up in arms about "fuzzy math" or the retreat to "traditionalist" approaches (already proven turn-offs) or whatever. Plus you've got everyone jabbering about calculators, whether they're good or bad. If they talk about computers at all (and they do -- a little), it's not with reference to programming them, but with reference to using canned applications: dynamic geometry packages, CDROMs, other stuff. That seems to really narrow the discussion, and marginalizes voices like mine, which want to talk about how to program around math concepts, in the context of the math curriculum. So I come along and say: hey, lets rescue math from being such a dull, stale subject AND let's adhere to this CP4E rhetoric. Instead of manufacturing a lot of applications (e.g. Alice) in separate computer science courses, and taking up programming only in programming classes, lets make programming more second nature, the kind of thing anybody might do when trying to work on a problem. The way to do that, it seems to me, is to phase out those calculators (harder to program) in favor of a VHLL (very high level language) like Python -- plus assorted tools (e.g. Povray, VRML, etc. etc.). Now, if you look at it this way, you're immediately confronted with a lot of challenges (not to mention resistence). For one thing, math as a school subject couldn't stay the way it is now if we brought a lot of computer programming into the picture. The way we teach math would have to change quite a bit. And I enjoy thinking along those lines. I'm _glad_ math would have to change -- I don't like the status quo. But certainly there's a lot to think about. More than if you just imagine Python swapping in for C++ in a standard computer programming course -- things wouldn't have to change that much, except you could probably move faster and not lose so many students (because Python is a lot easier to learn and start using effectively than C++). So whereas I have no problem whatsoever with the fact that most people want to brainstorm around putting Python into a computer programming classroom (makes sense), I _am_ a little surprised that there's not more interest in this "programming in a math classroom" approach. Because math is withering on the vine right now, in a lot of trouble. Because math is way more widely taught than computer programming, so CP4E would be given a really serious boost if math teachers start to embrace Python and computers, over those silly calculators (great for TI, but is this what's best for our future?). To me, pushing Python towards mainstream math looks a lot more pro-CP4Eish than saying it should just be taught in computer programming courses. So on the one hand, I talk to math teachers who may well know nothing about programming, let alone Python, and on the other, I talk to computer programming teachers who seem reluctant to think about programming outside of the standard, already known context. Whereas programming languages + math would seem to be a natural, obvious, no-brainer kind of synergy, it's actually not being promoted by either those into teaching math, or by those into teaching programming -- not by many that I can find. And I find that most curious. Kirby From pdx4d@teleport.com Tue Jan 9 18:02:32 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Tue, 09 Jan 2001 10:02:32 -0800 Subject: [Edu-sig] Python, Art and Math In-Reply-To: <3.0.3.32.20010108204131.00a05410@pop.teleport.com> References: <3A5A053E.BFA1E862@gmx.de> <00373DBB.N22121@rsmi.com> Message-ID: <3.0.3.32.20010109100232.0097a100@pop.teleport.com> As you would see if you popped up my one Jan 8 post to this 'Trigonometry' thead on math-teach... http://www.mathforum.com/epigone/math-teach/salfalblel ... I list a book 'Connections' by Jay Kappraff as highly worthwhile. The subtitle of that book is 'The Geometric Bridge Between Art and Science'. Just as math and music have many intimate connections (some of which Jay explores in that book), so do math and the visual arts. As long time posters to this list well know, I'm a big fan of the Python + Povray synergy (not to the exclusion of other combos). Povray is used by visual artists to do fancy ray tracings. It's downloadable for free and a longtime favorite of the ray tracing crowd. I've recently added a 3rd software tool to the mix: Qhull. Qhull is written in C (as is Povray) and the way I interact with it is through invoking the same command in Python that I'd manually type in a DOS box in Windows, e.g. comm = "g:\qhull\qhull < g:\python20\waterman.txt o > qwater.txt" os.system(comm) (this could be tweeked for Linux). The result is a text file (qwater.txt) which I then read into Python using readlines(), and parse. Qhull does some rather complicated math to figure out what geometric shape most tighthly "shrink wraps" all the vertices you give it. It does other stuff too, but that's what I'm using it for. It's a free download. The game I'm playing is: the vertices all have to be equidistant from a common center. And (even more restrictive): the vertices, and the common center, all have to be at the centers of spheres in what we call a "cube centric packing" (ccp) or, equivalently, "face centered cubic" packing (fcc), or (Bucky Fuller) an "isotropic vector matrix" (ivm). Basically, it's the packing you get when you stack oranges at a grocery store, or cannon balls at a war museum. Here's an article about this packing (shows oranges) from the BBC website: http://news.bbc.co.uk/hi/english/sci/tech/newsid_148000/148645.stm The results are very interesting. Here's where math meets art through geometry. I encourage tourism (really, these are pretty -- especially on the pages marked with an asterisk): http://www.inetarena.com/~pdx4d/ocn/wgraphics.html http://www.inetarena.com/~pdx4d/ocn/wgraphics1.html * http://www.inetarena.com/~pdx4d/ocn/wgraphics2.html http://www.inetarena.com/~pdx4d/ocn/wgraphics3.html * Kirby From Arthur_Siegel@rsmi.com Wed Jan 10 01:43:42 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Tue, 9 Jan 2001 19:43:42 -0600 Subject: [Edu-sig] re: Python in Education Message-ID: <0037F104.N22121@rsmi.com> >So again, I'm doing something non-standard... Kirby, Probably what people do appreciate about your efforts, and I do sense wide appreciation from the people who are aware of it, may not be directly related to programming, math, 3d, etc. It's really a guerilla teaching style. It is not - I am the teacher who is teaching what I learned, years ago and far aware. It is - I am the teacher teaching what I discovered yesterday, because I love discovery, and what I am really teaching is most importantly the love of discovery. You and I agree that Python, math, 3d, etc provide a fertile ground for that kind of teaching. But folks like you will always find the best tools that happen to be available - and again in the end it doesn't matter much what they happen to be. The only teacher I ever had that had a profound influence on me was in grade school, and he worked with mimeographed hand-drawn cartoons, soma blocks, chess sets, etc. I think most people feel that Kirby can't be scaled or rolled out, and therefore of less interest than the question of what might be the NEXT BIG THING in education. What I wish and doubt the next big thing in education would be is more people like Kirby, better integrated into the school systems that kids like my son attend. One can dream. And at least with the internet the Kirbys can scale a bit. Which is exciting in itself. In that regard I mention another favorite site of mine: http://aleph0.clarku.edu/~djoyce/home.html Much of interest to explore and discover. ART From pdx4d@teleport.com Wed Jan 10 01:11:27 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Tue, 09 Jan 2001 17:11:27 -0800 Subject: [Edu-sig] Overcoming the prejudice... In-Reply-To: <3.0.3.32.20010109100232.0097a100@pop.teleport.com> References: <3.0.3.32.20010108204131.00a05410@pop.teleport.com> <3A5A053E.BFA1E862@gmx.de> <00373DBB.N22121@rsmi.com> Message-ID: <3.0.3.32.20010109171127.00888100@pop.teleport.com> WE SHALL OVERCOME:=20 REGARDING THE USE OF A VERY HIGH LEVEL LANGUAGE IN THE PRE-COLLEGE MATHEMATICS CLASSROOM by Kirby Urner Oregon Curriculum Network January 9, 2001 Table of Contents: Overcoming a Prejudice The Case of APL Python as a "Math Language" Case Study: SIGMA Notation Operating on Operators The Advantage of Immediate Feedback Case Study: PI Notation Advanced Topics for Further Exploration A Final Word on Prejudice First posted to edu-sig@python.org listserv, with=20 a copy to math-teach@forum.mathforum.com (expect a=20 web version with typos fixed at the Oregon Curriculum=20 Network website: http://www.inetarena.com/~pdx4d/ocn/ ) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D OVERCOMING A PREJUDICE Yes, I think it's mostly just a prejudice that math teachers=20 have against mixing programming languages with their "pure"=20 math language. =20 They're still thinking back to the days of punch card FORTRAN=20 (some of them), or basing their conclusions on trying to program=20 a TI -- neither experience being that great a basis upon which=20 to judge what it'd be like to use a VHLL (very high level=20 language) like Python in the math classroom. THE CASE OF APL I don't know how much exposure Guido had to APL (A Programming=20 Language) before coming up with Python, but in my own case, APL was the first real computer language I ever learned=20 (not counting programming my friend's dad's HP-65 calculator when in high school). In those days, most programming really was still with punch cards, and APL was one of the few=20 languages offering an "environment" -- a place to interact with the language at a command line, in a "you type, computer responds" session. All around campus, including in my dorm, were these "APL terminals" connected directly to the=20 IBM 370 at the computer center. Instead of normal keyboards, they had these weird greek-looking squiggles for upper case options. These were the APL symbols. APL originally evolved as a chalkboard notation. It could easily "pass" for a math notation, because that's exactly=20 was it was, to start. Kenneth Iverson wanted a math notation that could be implemented directly in an interpreted=20 environment. A single operator, like i (squiggly-looking i) would output a list of values, like i(6) meant (gave you) [0,1,2,3,4,5] -- or something like that (I forget if 6 was included, or if the values really had commas in=20 between, or just spaces -- doesn't matter right now). Using APL notation, you could express rather involved=20 mathematical operations in a single line, just as you can with regular "pure" math typography. APL, like text book math notation, is highly "crypto-compressed". Perhaps too crypto-compressed -- which is one reason why it failed to take the programming world by storm (I think Princeton had all those APL terminals around campus because some anticipated that it might -- this is 1976-77, and APL seemed like the wave of the future). PYTHON AS "MATH LANGUAGE" Python is, in a lot of ways, a lot like APL. Instead of i(6), you write range(6). The greek-looking symbols have been replaced with old fashioned English-type words. But you can still build with them, like Leggos [TM], to make rather complex expressions. The basic built-in functions and operators fit together in all kinds of interesting=20 ways; the language is highly "orthogonal" as computer=20 scientists like to put it. So what I think about Python is that it's really another math language, like APL was/is -- not "just" a programming language. By this I mean, it's human-readable, a way to capture math concepts and algorithms in a communicative=20 format, just as math typography is. A VHLL like Python=20 isn't just about "talking to machines", it's about "talking to other humans" (_and_ its machine-executable -- as are=20 conventional math typographies these days, in packages=20 such as MathCad).=20 And so if you're having some trouble getting what's going=20 on using the conventional math typography, then here's=20 Python, executable, interactive, and likewise fairly concise,=20 giving you a second chance, an alternative approach, a=20 different way of saying the same thing. I think for a=20 lot of students, it's the introduction of an alternative=20 entr=E9 that will make math come alive. It's like being able to "see in stereo" all of a sudden, because now you have=20 two images, each from a slightly different angle. This=20 can make a world of difference. SIGMA NOTATION Consider sigma notation: a capital greek Sigma (somewhat alien-looking to students, as we don't teach Greek anymore=20 in most curricula, the "classical education" template having been long ago abandoned in large degree), followed by some=20 expression with indexing in it (some i, or j, to be=20 successively replaced with successive integer values, starting=20 and stopping according to what's written at the bottom and=20 top of the Sigma sign. =20 And so we write (using ascii SIGMA in place of the greek symbol): n SIGMA (A[i])^2 i=3D0 ...except that would be "A sub i" -- the i as a superscript, indicating we're accessing some sequence of values labeled A. This is a specific SIGMA expression, and involves raising=20 successive terms to the 2nd power, and summing them ("to=20 sigma" is "to sum"). But the above expression is not something you can "do" yet. We don't know what n is, nor what the sequence A looks like. So to actually generate a value corresponding to the above=20 expression, you have to define both n and A. These then=20 become your "parameters", are the variables relative to=20 which the above expression makes sense. Now consider the same concept using Python: def sigma(A,n): sum =3D 0 for i in range(n+1): sum =3D sum + A[i]**2 return sum So far, this is as general as the SIGMA version, as we haven't defined either A or n. Translation involves understanding the range() function -- outputs a list up to _but not including_=20 the single argument (2 or 3 argument forms an option -- see=20 below). So we say range(n+1), i.e range(3) -> [0, 1, 2]. So let's consider A to be a sequence of numbers: A[0] =3D 1, A[1] =3D 3 A[3] =3D 5 A[4] =3D 7... Looks like the odd numbers. OK, A =3D odd numbers. Now we just=20 have to decide how many of them we want. Let's say n =3D 10. n SIGMA (A[i])^2 where n=3D10, and A[0]=3D1, A[i] =3D 2i+1 i=3D0 Result: 1771 Now in Python (>>> is the prompt, where the user types, with=20 lines flush to the left being what the computer answers): >>> A =3D range(1,100,2) >>> A [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29,=20 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57,=20 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85,=20 87, 89, 91, 93, 95, 97, 99] ... another use of range(), from 1, to 100 -- not including 100)=20 -- step by 2. >>> sigma(A,n) 1771 OPERATING ON OPERATORS Notice that we expressed the set of odd numbers using a rule, in the SIGMA example. A[i] =3D 2i + 1. That's interesting, as=20 it suggests turning A into a function of i. >>> def A(i): return 2*i + 1 >>> A(10) 21 Let's rewrite the sigma function to accept a _function_ as a=20 parameter. This is starting to get interesting, because any higher=20 math teacher will tell you that students often have conceptual difficulty trying to look at functions as _objects_ of other=20 operators. Yet that's what we're going to do: def sigma(A,n): sum =3D 0 for i in range(n+1): sum =3D sum + A(i)**2 return sum Notice the subtle difference: 'A' is coming in as a function, and A(i) is derived by working the function using 'i' as input. Interactively now: >>> sigma(A,10) 1771 Now write another function named B for the even numbers: >>> def B(i): return 2*i >>> sigma(B,10) 1540 Remember, our specific sigma expression (above) is summing the=20 _2nd powers_ of the terms generated by A(i) or B(i). Since=20 this isn't really what SIGMA means by itself, generically, it=20 makes more sense to define SIGMA as simply the sum of whatever=20 terms. =20 We can do this even more succinctly using orthongonal=20 "leggo language" constructs: >>> import operator >>> def SIGMA(f,n): return reduce(operator.add,map(f,range(n+1)) The use of f is specifically designed to have us think=20 'function'. To map a function is to apply it to the=20 list that follows, i.e.=20 map(f,[1,2,3,4,5]) =3D [f(1),f(2),f(3),f(4),f(5)] To reduce with an operator is to go=20 1 op (2 op (3 op (4 op 5)))=20 -- whatever op might be, in this case add (+). So if we want to sum the squares of the first 10 odd=20 numbers, the burden of generating these terms should be=20 on f: >>> def f(x): return (2*x + 1)**2 Then pass this as a parameter to sigma: >>> SIGMA(f,10) 1771 Or change f to make it return the square of the ith even number: >>> def f(x): return pow(2*x,2) # alternative powering notation >>> SIGMA(f,10) 1540 So we now have a Python definition of sigma that's consistent with the following, using more traditional typography: n SIGMA f(i) i=3D0 We're free to define our f however we like, and pass it to=20 SIGMA() as a parameter, i.e. SIGMA(f,n). THE ADVANTAGE OF IMMEDIATE FEEDBACK Now, in the above interactive session with Python, were we=20 somehow criss-crossing between two separate disciplines,=20 math and computer programming. I suppose you could say so. But from my point of view, the VHLL is acting very much like a math notation, with the added advantage that it's interactive and therefore gives instantaneous feedback. You don't have to wait for the teacher to correct your homework to know whether you're doing the syntax properly. Plus I think you've done something which more traditional K-12 text books have a hard time communicating: by writing both sigma and f as functions, and passing f to sigma as=20 a parameter, you're better helping students form the generic=20 concept of an 'operator' -- operators which work on other operators. PI NOTATION Last note: It really makes sense, while you're developing a notion of SIGMA, to develop the corresponding notion of PI (capital greek letter -- not to be confused with lowercase pi, which is about circles). SIGMA is to PI as addition is to multiplication. Note that we're taking advantage of Python's case sensitivity=20 and capitalizing both SIGMA and PI, to help make the hyperlink=20 to the capital greek letter equivalents: >>> def SIGMA(f,n): return reduce(operator.add,map(f,range(n+1))) >>> def PI(f,n): return reduce(operator.mult,map(f,range(n+1))) So now you want to product of the first 20 prime numbers? Well, we need a function that outputs the ith prime. =20 I'm going to simply import something I wrote and saved=20 earlier for that purpose: >>> import primes >>> def getprime(i): =20 """ Return last term from first i primes in sequence """ return primes.get2nb(i+1)[-1] >>> getprime(0) # 0th prime is 1st in the list 2 >>> getprime(1) # and so on... 3 >>> getprime(2) 5 >>> map(getprime,range(20)) [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,=20 59, 61, 67, 71] =20 >>> PI(getprime,5) # range(5) =3D [0,1,2,3,4]; 2 is 0th prime 30030 That's 2*3*5*7*11*13 -- builds up quickly, so if you plan to go a lot higher you'll want your getprime() to output "long integers". =20 Something to discuss in another lesson, e.g. when we start generating=20 primes of 100 digits or more: >>> primes.bigppr() Working... Percent chance of being prime: 99.9999999999 Elapsed time: 4.75655894333 seconds 372106324940930886970978581418419848613328680550192993614919012 38607299599499654601573369854695139659L The L on the end means "long integer" -- calculators usually can't get into this territory at all, but in the math classroom of the future, students will as a matter of routine (or so I would hope). ADVANCED TOPICS FOR FURTHER EXPLORATION Because of the alternate meaning of + (add) with regard to=20 strings, we can limber up student minds a little by using our sigma function a little differently: >>> def wordscan(i): return "CAT"[i] >>> sigma(wordscan,2) 'CAT' This may seem like a trivial "programming trick" and not very=20 "math oriented" but this is not the case. What's true about=20 algebra systems is that whereas we might use the symbols + and * for operations, we don't prejudice ourselves regarding=20 (a) what these might mean or (b) what kind of object they might operate upon. =20 For example, in group theory, we define an operator and a set=20 of objects such that various rules are followed e.g. there's an identity object such that: =20 object.op(identity) --> object and an inverse object.inv() for every object such that: object.op(object.inv()) --> identity Note that I'm using object oriented notation to express math concepts here. It works, plus reinforces the syntax of the Python language -- and most other OO languages as well. For=20 a discussion of OO notation with regard to math concepts, see my "OOP Meets Algebra, Suggesting New "Ways of Looking" at http://www.inetarena.com/~pdx4d/ocn/oopalgebra.html Because Python lets you override the meaning of + and * when defining objects (as well as other operators), we're in an ideal environment in which to explore SIGMA with respect to different meanings of + (as in the case of 'CAT' above). To take another example, consider vectors as objects under=20 consideration and define a function that returns a random=20 vector with integer coordinates between -10 and 10: >>> import random, coords # coords.py is an OCN module >>> def randomvector(i): x =3D random.randint(-10,10) y =3D random.randint(-10,10) z =3D random.randint(-10,10) return coords.Vector((x,y,z)) >>> randomvector(1) Vector (2.0, 3.0, -5.0) >>> randomvector(1) Vector (7.0, 4.0, 0.0) So now we can apply sigma to a list of random vectors, without=20 changing the code in any way, and get a vector result: >>> sigma(randomvector,10) Vector (-23.0, 19.0, 18.0) Even though sigma is defined around the concept of 'add' (uses=20 the 'add' operator), the meaning of 'add' is specific to the=20 algebra at hand. In a vector algebra + means we add the vectors=20 to return a vector. =20 We can talk about the "closure" property here -- another=20 characteristic of groups is that ops with objects always get=20 you more objects of the same type. A FINAL WORD ON PREJUDICE We're going to see other objections from math purists against using Python as an alternative math lingo. A lot of people will say it's confusing to have 0-based indexing, i.e. in many math games, it's more the norm to start your subscripting with 1 and not 0. =20 It's possible to write around these conventions, to accommodate them. On the other hand, there's a limit as to how far we should=20 go to make allowances for this kind of rigidity, as there's=20 nothing about SIGMA per se, for example, which dictates that=20 indexing should start with 1 or 0. A lot of these conventions are "just cultural", and in some cases the "culture" has gotten too inbred and closed-minded for its own good. A far better approach than always bending over backwards to=20 conform to current conventions is to alert students to the fact=20 that these various different conventions (e.g. 0-based and 1-based=20 indexing) do in fact exist, including within mathematics itself=20 (nevermind about Python). It's flexibility that we want to=20 foster, keeping minds limber, adaptable. Teachers may argue that it's "confusing" to keep switching between=20 different sets of rules, doing things one way here, and another=20 way there -- but this is also the "real world" we're talking=20 about. We want to keep up a level of complexity that mirrors=20 the kinds of challenges for which school is designed to help=20 students prepare. Life is often complex and confusing -- best=20 to train for that then. Math classes should _not_ just about teaching the math you need to=20 know to be a math teacher, as if the goal were to create some=20 hermetically sealed subcultural feedback loop that has nothing=20 whatever to do with math in the real world. This "math through=20 programming" approach is designed to foster just such a "worldly=20 feel" to mathematics, because most students will be using math=20 in some way, shape or form "on the job" -- but without necessarily=20 themselves becoming "pure mathematicians". This is not to say that an approach to learning mathematics which includes one or more computer languages is in any way a "dumbed down" approach, not suitable for would-be purists. That's the prejudice I'm trying to address. =20 On the contrary, I hope I've showed in this paper that a Pythonic=20 approach may stimulate thinking at an even _higher_ level of=20 abstraction than is normally achieved in K-12 today, in part=20 because of: * the "operator override" feature (making + or * mean different=20 things) * the "operating on operators" feature (passing functions to=20 other functions)=20 * the interactive, immediate feedback environment in general,=20 which frees the student to concentrate on the problem even=20 while relying on tools previously programmed and/or introduced=20 in earlier lessons. This is an exciting world we could be entering. I would think=20 professional educators would be chomping at the bit to make this=20 world a reality for more students. Certainly many students are anxious to learn how to use their=20 computers, which are becoming ever more powerful, affordable=20 and ubiquitous. The mathematics classroom is a logical place to=20 see to it that this real student need is addressed, and in a=20 way consistent with the larger goals of an intelligently=20 designed, high quality math curriculum. For further reading: http://www.inetarena.com/~pdx4d/ocn/cp4e.html#python From Arthur_Siegel@rsmi.com Wed Jan 10 03:01:15 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Tue, 9 Jan 2001 21:01:15 -0600 Subject: [Edu-sig] Natural Language Programming Message-ID: <0037F538.N22121@rsmi.com> One last effort - Anyone who has worked at all with 3d graphics knows that a pretty standard vocabulary has developed, by a process of natural selection, over numbers of years. 99.5% (please don't quote me on the statistic and find other exceptions) of the 3d graphics world has settled on a vocabulary. Presumably lots of very smart people where involved in the trial and error process. And what we have is what I suspect is exactly what has been determined to be the most natural language (in standard English) necessary to do a particular job, while avoiding ambiguities and other evils. Could certain vocabulary words turned out diffierently. Probably. But the point is its done, and without *COMPELLING* evidence there is no reason to change it. I would serious suggest that anyone with a deep interest in the subject of natual language technology study the development. of 3d vocabulary. Because in the end what we are left with is substanital (though not perfectly - we do go to third and fourth defintions of standard English words) natural language. And vocabulary is about nothing if it is not about communication. The population of interested parties settling - by some natural process intimately tied to the entire issue of language development, and well beyond anything I understand - is the gist of the process. After that process is substantially complete - the Dr. Moreau constructs simply struggle and die. And every game has its vocabulary. Monopoly has its vocabulary. Pokemon has its vocabulary. Bridge (the card game() has its vocabulary. If you are not using the vocabulary, you are not playing the game. One would think I was simply being obnoxious if I asked what the folks interested in natural langauge music programming are going to do with Alice's discovery about the word "scale". And I am sure someone could stretch for and find a fine distinction. But just a fine one. But why do I get emotional. I have a simple premise. If something is easy for me to comprehend, it is easy for the next guy. I am not sure who I would be if I thought otherwise. Not someone I would like very much. By calling the next guy stupid, you're calling me stupid because in some other area of endeavor I am going to be the novice. And I am not even going to have the opportunity to tell you - "translate", "move" - got it, next. If someone is going to take action and espouse what loops (that they are in) someone else needs to be left out of for their own good- and if you are going near 3d graphics, its established vocabulary is a loop - I want *COMPELLING* evidence. Because it seems clear that Alice is making itself important at some expense that I will not pay without "COMPELLING* evidence. That is a postion. Politics if one needs to call it that. It is irrational in the sense that I don't even offer anybody a "reason" - but only in that sense. And as our technological society evolves it will become a more and more important issue, IMO. So yes, Alice espouses a position without offering my standard of compelling evidence. I therefore reject it and try to limit it's influence. Its all simple common sense, to me. And I suspect only in a few select arenas would it be seen as otherwise - this being one. And to the folks who want to tell me I fundamentally misunderstand Alice, I say I am wrong about what the problem with Alice is. The problem with Alice is that is too easy for someone to fundamentally misundertand it. But I'm pretty much back to where I was. ART From gritsch@iue.tuwien.ac.at Wed Jan 10 08:25:41 2001 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Wed, 10 Jan 2001 09:25:41 +0100 Subject: [Edu-sig] KineticsKit - A Physics-Based General 3D Mass-Spring System Message-ID: <3A5C1C85.84C0BDB8@iue.tuwien.ac.at> This is a multi-part message in MIME format. --------------D98C2BE375E4DFD36440C4D2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi! I'd like to present you KineticsKit - A Physics-Based General 3D Mass-Spring System. It's purely written in Python and has several example programs included. Just give it a try - you will like it. Requirements: ------------- Python 2.0 or higher VPython available from http://virtualphoton.pc.cc.cmu.edu/projects/visual/ Objective: ---------- KineticsKit provides some classes to simulate the behaviour of a 3D mass-spring-system. It can be used to investigate some basic kinetics, but I wrote it mostly for the fun of programming it and playing with it. Usage: ------ First a System has to be generated. The System has several attributes like gravity, viscosity and timestep which must be given in the constructor. Some of them are mandatory (timestep), the rest of them are optional. Next Masses are generated and inserted into the System. Masses also have lots of attributes like m, pos, if it should be fixed at its initial location, its initial velocity and the color. Most of them are implemented as keyword arguments and can thus be omitted if they are not used. After this, the Masses can be connected with Springs. There is no restriction in making the connections so one Mass can be connected with several others. A Spring needs to know which two Masses it should connect, and its spring-constant. The rest of the constructor arguments are again implemented as keyword arguments, but I recommend to take a look at them. They are useful to tense the Spring, specify a damping value or give it a nicer color. Finally the System has to be started and kept running with an infinite loop. Interaction with the system is possible with the mouse. A Mass is picked by clicking at it. It can be moved around and the rest of the system responds to the movement. To release the Mass the mouse must be clicked again. """A Physics-Based General 3D Mass-Spring System. by Markus Gritsch (gritsch@iue.tuwien.ac.at) Objective: ---------- KineticsKit provides some classes to simulate the behaviour of a 3D mass-spring-system. It can be used to investigate some basic kinetics, but I wrote it mostly for the fun of programming it and playing with it. Usage: ------ First a System has to be generated. The System has several attributes like gravity, viscosity and timestep which must be given in the constructor. Some of them are mandatory (timestep), the rest of them are optional. Next Masses are generated and inserted into the System. Masses also have lots of attributes like m, pos, if it should be fixed at its initial location, its initial velocity and the color. Most of them are implemented as keyword arguments and can thus be omitted if they are not used. After this, the Masses can be connected with Springs. There is no restriction in making the connections so one Mass can be connected with several others. A Spring needs to know which two Masses it should connect, and its spring-constant. The rest of the constructor arguments are again implemented as keyword arguments, but I recommend to take a look at them. They are useful to tense the Spring, specify a damping value or give it a nicer color. Finally the System has to be started and kept running with an infinite loop. Interaction with the system is possible with the mouse. A Mass is picked by clicking at it. It can be moved around and the rest of the system responds to the movement. To release the Mass the mouse must be clicked again. Zooming / rotating of the scene is also done with the mouse by holding the left / right mouse button down. For further details please have a look at the example programs and the constructors of the classes System, Mass and Spring. Have fun! -- |\/\/\/| /------------------------------------------------------------------\ | | | Markus GRITSCH | phone: +43 / 1 / 58801-36015 | | | | Institute for Microelectronics | cellular: +43 / 676 / 4973431 | | (o)(o) | Technical University of Vienna | fax: +43 / 1 / 58801-36099 | C _) | Gusshausstrasse 27-29 / E360 | email: gritsch@iue.tuwien.ac.at | | ,___| | A-1040 Vienna / AUSTRIA | SMS: 436764973431@max.mail.at | | / \------------------------------------------------------------------/ /____\ / \ "Computers let you make more mistakes faster than any other invention in human history, with the possible exception of handguns and tequila." Mitch Radcliffe --------------D98C2BE375E4DFD36440C4D2 Content-Type: application/x-zip-compressed; name="KineticsKit.zip" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="KineticsKit.zip" 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 0qOiDmOVD+MdSv9d30upbCbDFgMdo/o9Is5jVvVn+Yz+Qy+rqVOBepEk/afeRA+e4sGCeqXA G1AVv8ka1Li6o9NKVoorGisb4TnTUYqrlBRXWnCDS9Xi2/N3zOXde6EklVjfPF4Pe00/bPMb vziRh7+q3utwIL97empC0+E3L42G3DvsYkfq9YI2ZS95CZNdoZVKkaGRSb8KUtT4b3VAbS9m WdUPHlFeP1WF11fnH52/c/6OeXv+rgPWfwNQSwMEFAAAAAgAoEEqKpctUIQMCwAAmCUAAA4A AABLaW5ldGljc0tpdC5wee1ZbY/bNhL+rl/BS3CInXq13m0LFAF8uFyDTYNee8X1rh8uCAyu RNu8lURXpPzy7++ZISVRsnY3BQrclxqJVyKH8/rMcEi/ePHirfhpd7Y6s1d/k1bl4r2qVC0L 8eU78YO09urnfa2rrfj5bJ0q0+T+jOH6obHifa2dzXZitvUPf9WNSl1z1KpKZZZKN0+Sf9z/ V2VOH9Sb5Kr7JN/rSjlI/F47sa/NQefKCmtKJbICIvHijLC6bArplHA7Je7VTh60aWphNkJC t6Qk3SzrdmW9bkJ8cCKTFahFQ6aAi64Oyjq9JUYs4V7CVvEQNFiI+8aJD8mxNiCAOqWxrjiL jalZ7qapSCKU3NayLMkRIJJVLvaFPNPrUbsdxtIk+beV287O5E7XFpTBb2In2ShotmX/OpVD 339BRERg1YFdL52rNRSDIwr9oBLIPmh3XoiDtpmxeGQVnC5hm9qL404jDmUDgSQA7q5gOBuQ mcq6usmcqSHvZ3gggT2YKYWslSjBR2LuLGYtt/mCF9Z4ETGp2TttKlnA0h/VyTE4oCBNdSax WrqyqqYXXcFi15kI+e2awhoYfFCiMM6SQiOLRbkQe4Po6A352+5MU+Rk20afSIrDqAV/7TTc VZhMkm4LGk3a0YPCeOcqdkXBTvjBjCzT5b5QparYACse1Plo6jyR9bahUcscCFduB9hDC1Nq xwYykzMzqYxj0ME9bzdOEXy09a4MVgdkIiIVcgLLGTo+vawHAyljwYq9X+uMrIJBCNMDYS0E lJZjglJGmMrzf4R7iyiDpbVNk7dBnqiUyhmRD5U5BgC5o2l17Z0eGC58aOHfkHMMLFm5gOII LjHmROREGCe3EtZE/k56f/ekISnBMzMlRjiRnQQsJGJtHij+FDwv2rsfrt80RUKECvjzsGNN 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 dGUucHlQSwUGAAAAAAgACAAZAgAAlikAAAAA --------------D98C2BE375E4DFD36440C4D2-- From smorris@cereva.com Wed Jan 10 16:08:33 2001 From: smorris@cereva.com (Morris, Steve) Date: Wed, 10 Jan 2001 11:08:33 -0500 Subject: [Edu-sig] Natural Language Programming Message-ID: <8010912471E0D41189930090278D4E480FE73F@SPAWN> Hi Art, > One last effort - One last reply. :-) > Anyone who has worked at all with 3d graphics knows that > a pretty standard vocabulary has developed, by a process > of natural selection, over numbers of years. > > 99.5% (please don't quote me on the statistic and find other > exceptions) of the 3d graphics world has settled on a vocabulary. > Presumably lots of very smart people where involved in the > trial and error process. And what we have is what I suspect is > exactly what has been determined to be the most natural > language (in standard English) necessary to do a particular > job, while avoiding ambiguities and other evils. Could certain > vocabulary words turned out diffierently. Probably. But the > point is its done, and without *COMPELLING* evidence there > is no reason to change it. > > I would serious suggest that anyone with a deep interest > in the subject of natual language technology study the development. > of 3d vocabulary. Because in the end what we are left with is > substanital (though not perfectly - we do go to third and fourth > defintions of standard English words) natural language. > And vocabulary is about nothing if it is not about communication. Here is where I disagree or at least disagree with your conclusions. Language is about communicating in the broad sense. Sometimes the communication is on many levels and often one of those levels is a level of exclusion. Vocabulary can be used to say "I am an insider and you are an outsider." Take legal language for example. This has also evolved by a process of natural selection, over a number of years. It exists the way it does (opaque) for several reasons 1) It creates a level of precision. 2) It evolved this way from archaic forms of English. 3) There is resistance to change for fear that the precision will be lost. If it ain't broke don't fix it. 4) It creates a private club with a language understood only by the practicioners thus inreasing the value of their skills. It is part of what sets apart those special people who have "passed the bar." 5) Practicioners are not bothered by the vocabulary once they have entered the priesthood and have little incentive to change it. 4 is a not inconsiderable issue. There is a lot of legal pomp and circumstance that is intended merely to emphasize the importance and solemnity of the occasion and to create respect for the process. There no legal reason that the judge needs to sit on his high bench. The bench represents his authority. "All rise." Why the heck should we rise when the judge enters. These proceedures and the language of the law in general exist at least partially to reduce communication. The entire legal process is an excercise in controlled communication (ie limiting communication.) Many things are not allowed to be said in the courtroom, Perry Mason to the contrary. In other words the language of the law is about limiting communication. And how about music. Music notation is a kludge. Only music in the key of C makes sense. Sharps and flats are repairs to the defective system. In a properly designed music notation system intervals (the relationship between notes) would be implicit in the notation. Music is interval and timing. An octave should leap out at you just from the notation. A fifth should shout its existance. Music notation was designed for playing, not composition or analysis. The structure of music (what sounds interesting and why) is highly mathematical. I defy anyone to see the mathematics in music notation. The closely held secret of music theory is that it is simple. It is only the language that is more opaque than it could be. There's many a potential talented musician who couldn't learn to read music. Is the defect in them or the notation? I suggest that it is the notation, hundreds of years of acceptance or not. An M4E program would have to address this. Just because there is an accepted vocabulary doesn't mean that it is easy to learn or that there aren't better alternatitives. What we have here is what economists call lock in. (VCS vs. Beta is the classic example.) Current practice is often far from best known practice. This is true of any evolutionary system. Why this happens is a large, well studied subject that I don't want to go into to deeply here but I'll make a simple pass. Physicists think of these as local minima. A marble rolling down a hill doesn't always reach the lowest point in spite of the driving force of gravity. The path is critical. Local dips in the terrain grab it and prevent it from going lower. The same is true of the evolution of vocabulary. > I have a simple premise. If something is easy for me to > comprehend, it > is easy for the next guy. I am not sure who I would be if I thought > otherwise. > Not someone I would like very much. Strange premise. There are things that are easy for you that are hard for me. This is a simple fact and no insult. I am baffled as to why you would dislike yourself for acknowledging this simple fact. > By calling the next guy stupid, you're calling me stupid > because in some > other area of endeavor I am going to be the novice. And I am not even > going to have the opportunity to tell you - "translate", > "move" - got it, > next. Since you like being personal in these discussions let me offer myself as one of several examples. Perhaps this personification will make my point clearer to you. I do not consider myself stupid even though my ability to acquire vocabulary is limited. I have strengths that I quite immodestly think are more important and make me a quite capapable person. We all have different blends of strengths and weaknesses. The world would be boring if this were not true. People come in all shapes and sizes and capapabilities. For some, new vocabularies are a snap. My father in law was an amazing amateur linguist. He was fluent in 5 languages and did technical translation in 20 more. If he new the subject he could translate in languages he had never seen before as long as it shared common roots with one or more of the languages he did know. (He claimed that most technical words are the same in all languages anyway.) If he wanted to read something he could pick up a working capability for a language in a few weeks. He didn't work hard at this. It came naturally to him. I think the real key to his success was an almost eidetic memory for vocabulary. He had it in large measure. I have it almost not at all. You are probably somewhere in the middle. CP4E needs to address people at my end of the scale. It is an insult to no one to say that my vocabulary learning skills are less than yours. It is a simple fact. My proceedural memory and skills just might be better than yours. They certainly have helped me compensate. I test high in langauge skills because my comprehension of grammer and syntax is high. In spite of that I have never been able to learn other verbal languages because I can't get over the vocabulary hurdle. I have tried again and again. On the other hand I know over 20 programming languages, maybe as many as 30 (it's hard to count because I keep forgetting about the ones I rarely use.) There are generally fewer than 10 key words (basic vocabularly) in programming languages. These are langueages with high syntatic and grammatical content but are almost vocabulary free. So I'm a great programmer but a lousy linguist. I am suggesting very simply and personally that "translate" instead of "move" (and similar words) could have been a barrier to me. By refusing to acknowledge this difference between people you would eliminate people with my strengths and weaknesses from the people you would recruit into a CP4E type effort. Just because you don't have a problem with vocabulary doesn't mean no one else does. It is no insult to me to say so. Special vocabularies are not a barrier to everyone but they are a barrier to some. I am one. Your insistance that my abilities are the same as yours is exclusionary. You deal with my weaknesses by denying that they exist and thus don't help me work around them. That's like saying we should design programs only for the rich because everyone has the same ability to acquire money. I obviously don't mean me personally. I have successfully compensated for my problems with vocabulary, partially by my choice of careers. I over compensate perhaps in working on acquiring and using English vocablary. However CP4E, if the E means anything, should include people to whom vocabulary is a barrier. I assure you that there are more of us than you might think. CP4E (in the broad sense, not just Guido's grant projects) should be about identifying barriers to entry and addressing them. Programming is clearly something that anyone can learn. They don't largely because of various barriers to entry. The correct way to handle this particular barrier is probably with transitional vocabularies (perhaps simple aliases to the less 'naturally' named commands) just the way kindergarden uses transitional spelling stratagies to teach spelling. If you are going to teach 3d programming, eventually the student needs to know the standard vocabulary or they can't benefit from the current body of knowledge. That is no reason to say they shouldn't be allowed into the temple of 3D learning with out jumping this vocabulary hurdle first. I think the heat you see on this subject is from people like me, to whom specialized vocabulary IS a barrier, taking personally your suggestion that our problem doesn't exist or deserve to be addressed. CP4E doesn't mean CP4 everyone whose learning abilities exactly match Arthur Siegel's. Regards, Steve Morris From guido@python.org Wed Jan 10 16:23:01 2001 From: guido@python.org (Guido van Rossum) Date: Wed, 10 Jan 2001 11:23:01 -0500 Subject: [Edu-sig] KineticsKit - A Physics-Based General 3D Mass-Spring System In-Reply-To: Your message of "Wed, 10 Jan 2001 09:25:41 +0100." <3A5C1C85.84C0BDB8@iue.tuwien.ac.at> References: <3A5C1C85.84C0BDB8@iue.tuwien.ac.at> Message-ID: <200101101623.LAA26598@cj20424-a.reston1.va.home.com> > I'd like to present you KineticsKit - A Physics-Based General 3D > Mass-Spring System. It's purely written in Python and has several > example programs included. Just give it a try - you will like it. Markus, If you create a webpage for it, I'll link it into the edu-sig webpage under "Software". This offer applies to everyone who has educational software written in Python. I apologize for not having kept up-to-date with past announcements in this list; if you announced something previously that you think would be interesting for others, please send me an email with a URL and a one-sentence blurb similar to the ones that are already there in the "Software" section at the edu-sig webpage: http://www.python.org/sigs/edu-sig/ --Guido van Rossum (home page: http://www.python.org/~guido/) From pdx4d@teleport.com Wed Jan 10 17:06:44 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 10 Jan 2001 09:06:44 -0800 Subject: [Edu-sig] KineticsKit - A Physics-Based General 3D Mass-Spring System In-Reply-To: <200101101623.LAA26598@cj20424-a.reston1.va.home.com> References: <3A5C1C85.84C0BDB8@iue.tuwien.ac.at> Message-ID: <3.0.3.32.20010110090644.00a3e6a0@pop.teleport.com> Arthur -- I hope you'll send a sentence re PyGeo, as the link on the page mentioned is broken (not updated since you moved). Kirby >Python. I apologize for not having kept up-to-date with past >announcements in this list; if you announced something previously that >you think would be interesting for others, please send me an email >with a URL and a one-sentence blurb similar to the ones that are >already there in the "Software" section at the edu-sig webpage: > > http://www.python.org/sigs/edu-sig/ > >--Guido van Rossum (home page: http://www.python.org/~guido/) From pdx4d@teleport.com Wed Jan 10 18:12:05 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 10 Jan 2001 10:12:05 -0800 Subject: [Edu-sig] Natural Language Programming In-Reply-To: <8010912471E0D41189930090278D4E480FE73F@SPAWN> Message-ID: <3.0.3.32.20010110101205.00a8e100@pop.teleport.com> These are complicated and eternal matters re language that we're tackling. In terms of economics, it's a question of "pay off". People generally don't read Buckminster Fuller's 'Synergetics' (a home base for a lot of the geometry I'm phasing in to K-12) because, upon cracking the cover, they immediately see that the vocabulary is (a) somewhat duanting and (b) fairly unique to Fuller in a lot of ways. It's (b) especially that's the turn-off. Like, what's to gain if what I learn only helps me navigate Bucky Lit 101?? I want _transferrable_ skills. As I'm a product of the Philosophy Department in a lot of ways, I'm used to picking up books with as many flavors of "Being" as Eskimos apocryphally have for "snow". The author will have been pain-stakingly precise, and invented a language that doesn't really exist except between these two covers. Actually, I've just described 'Synergetics' again -- except "Being" isn't the "Snow" in this book (more like "System" or "Tetrahedron"). There are those of us who are tempermentally curious about Individual Philosophers and don't really care that we're spending time in Private Worlds (Wittgenstein's is another I savor). Maybe that's why I like science fiction as well. No, this Universe doesn't really exist and therefore, when I'm done with the book, or the series, and learned a hell of a lot about the ins and outs, I'll maybe be no more "worldly" vis-a-vis the Universe which actually obtains. Or will I? I'm reading 'Red Mars' these days, by the way. The thing about these remote, private languages, these weirdo Philosophies, is that, like Poetic works, they may of partake of what's generalized and principled. So you _do_ absorb something that's of eternal value. And because the Work (Opus) was _internally_ tight, consistent, like a clockworks in a lot of ways, you really _do_ come away with deeper comprehension of Worldly Matters. Transferrability is a possibility, even an actuality. Or so I would claim, based on my personal experience. OK, so now substitute Software Package for Philosophy Book, or Curriculum for Science Fiction Universe, and you start to see where I'm coming from. "Is it really worth my time to master this arcane package and/or language and/or "environment" (I can hear Arthur scoffing)??" That's the central question after all, because life is short. Is there Quality here? Or am I going to be Wasting My Time (cardinal sin?). A good teacher isn't necessarily in a position to answer that in some simple "yes" or "no" way. The best one can do is perhaps say "this is what I found valuable, this is what worked for me along my journey". If the student respects where the teacher ended up, i.e. looks to the teacher as a role model in some ways (kind of what we _mean_ by teacher), then these hints, clues and cues may carry some weight. The earnest student will go check out the teacher's teachers. That's how it really does work in the real world. Finally, as Arthur points out, we over time develop a Community that speaks a similar shop talk, so in gaining entre to a Philosophy (or software package, or language), it's not just a set of skills you're mastering, but a set of contacts, relationships, peers, cronies, colleagues (living and dead). It's not necessarily a point against a Community to say "oh, that's just an inner circle, and exclusive group!" I mean, like, yeah? So? Got a problem with that? Of _course_ we have clubs and clubhouses in this world. Like what'd you expect?? Like, I remember when E.J. Applewhite invited me to his Cosmos Club that time. I didn't have a dinner jacket on me, so we skipped the drink, but I got the tour, and still have the Cosmos Club comb I picked up in the fancy marbled bathroom where it was a true privilege to pee. So if you want to talk shop with the computational geometers, probably a good idea to start learning the lingo, which includes translate, scale, vector, matrix, lattice, symmetry, rotation, symmetry group, polyhedron, vertex, edge, face, Euler, Gauss, Coxeter, Fuller... blah blah blah blah blah blah. Really, it'll be worth your time, if this is the Community in which you seek membership. Or if you're more an Idea Merchant, a Gypsy traveling between Systems, it's at least worth learning some of the key terms and meanings each Community holds dear -- the better to trade with them my dear, and profit from the endless Synergies you will find, if you only live long enough to become trully Worldly Wise (not something you'll become overnight -- and it really helps to find some good teachers). Kirby PS: In Python, don't forget that you can just define synonyms. Like, if your Vector object has a translate(self,v) method (mine does), feel free to write: def move(self,v): return self.translate(v) And you could define resize() as an alternative to scale(). In other words, most powerful languages admit synonyms, even if at the lower levels, we don't admit them because we're trying to be spare (stark, austere, economical) so as not to confuse the poor compiler/interpreter (like, at the level of quantum mechanics, you just want the one proton and neutron, whatever we call 'em). From jeff@elkner.net Wed Jan 10 18:56:04 2001 From: jeff@elkner.net (Jeffrey Elkner) Date: 10 Jan 2001 13:56:04 -0500 Subject: [Edu-sig] How to think like a computer scientist... and In Search of the Perfect Case Study... Message-ID: <200101101858.NAA24981@angelo.arlington.k12.va.us> Hi All! The Python version of "How to think like a computer scientist" has been updated. The source format is now LaTeX, and I'm generating the HTML from that with a script (in Perl... oops ;-) that Jonah Cohen wrote for that purpose. Also, there is very nice review of the text at: http://www.lightandmatter.com/cgi-bin/asbook.cgi?book=42 Now comes the part where I ask for your help. I think the book is two or three chapters short of completion. Specifically, the missing content includes: 1. file I/O and data persistance (pickle and shelve) 2. exceptions 3. a REALLY GOOD case study that uses 1 and 2 and maybe even.... 4. a short intro to simple graphics programming? I'm looking for the perfect case study. It should be: instructive, fun, easy to understand, fun, make use all the programming ideas discussed previously, and fun. Did I mention it should be fun? I want to write the missing chapters around a discussion of the case study, introducing file I/O, persistance, and exceptions as they arise. I'm not a programmer, so I am asking help in finding this case study. I really need something that students will want to learn. Something that they will find fun and useful when it is done. Also, in keeping with the free license of the book itself, I'm looking for a case study which is GPL'd. Can we please have a discussion on edu-sig around this topic? Thanks in advance for your help. jeff From delza@antarcti.ca Wed Jan 10 19:47:17 2001 From: delza@antarcti.ca (Dethe Elza) Date: Wed, 10 Jan 2001 11:47:17 -0800 Subject: [Edu-sig] Natural Language Programming References: <3.0.3.32.20010110101205.00a8e100@pop.teleport.com> Message-ID: <00af01c07b3e$25339460$29777318@poco1.bc.wave.home.com> When I tackled Synergetics I wished that Bucky was able to express his ideas in software, because they could be made so much more expressive and accessible. He was describing some seriously dynamic systems, and the line drawings and text can only convey so much. I think some of the reasons he had to invent so much of the language he used are: 1) As you described, an effort to define precise terms, 2) Inability to *show* the dynamic systems, and 3) his own ego. Part of what I like about your work (and Struck, etc.) is that the dynamic aspects of Synergetics are finally being modelled and illustrated as they should be, which make his ideas available to those who aren't willing to struggle through his weighty tomes (I was one of only two people who checked out Nine Chains to the Moon from my university library--the other was a professor who was as difficult to understand, in his own way, as Bucky). Python also appeals to me in the way it makes programming more accessible. It's still not *easy* by any stretch of the imagination--even with Python's simplicity I find myself reaching for the reference books quite a bit--but it is a big improvement over other programming languages/environments I've worked with (C/C++/Java/Pascal/Awk/Perl/JavaScript/Prolog), enough of improvement that I could imagine teaching it to a "normal" (non-computer-geek) person. There is still room for improvement, of course, especially in the proliferation of GUI tools, but I can at least imagine it. I may have the opportunity to test out my theory soon, as I'm going to try expanding the continuing-ed course on XML I teach at UBC, both to other area universities and colleges, and into a series which includes Python. Programming for the Fun of It needs some reality checks which only students can provide. Thanks for the thought-provoking work. --Dethe p.s., how is Red Mars? I just finished reading Antarctica, by the same author, and was very impressed. It was among the better science fiction, the kind which changes the way you look at the real and present world. From pdx4d@teleport.com Wed Jan 10 20:02:18 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 10 Jan 2001 12:02:18 -0800 Subject: [Edu-sig] Long floats? In-Reply-To: <3.0.3.32.20010110090644.00a3e6a0@pop.teleport.com> References: <200101101623.LAA26598@cj20424-a.reston1.va.home.com> <3A5C1C85.84C0BDB8@iue.tuwien.ac.at> Message-ID: <3.0.3.32.20010110120218.00a95600@pop.teleport.com> Here's something from a math teacher who hangs out on math-teach (where I've been cross-posting a few of my "math through programming" essays). He wonders if there's a way to get "long floats". I don't think there is, except maybe there's an add-on module I don't know about. Any clues? Kirby ============================================================== Date: Tue, 09 Jan 2001 20:49:15 -0800 From: ...@stanfordalumni.org> Subject: Re: Math through Programming (CP4E) To: urner@alumni.princeton.edu Thanks to your posts, I started playing with Python a bit. The first thing I wanted to explore was something a student pointed out: on their calculator, there are patterns around the last few digits of (1 / sqrt(5)) * ((1 + sqrt(5))/2)^n, and they wondered if it was just rounding error or something interesting going on or a coincidence or what. I figured getting some further decimal places would be easy in Python, but while long integers are there for the having, I couldn't find any way to get additional precision in my floats. I read the manual a bit and was still lost. It wasn't hard to put together the loop to do the nth powers, and it only took me a little while to realize that I needed to type math.sqrt instead of sqrt (or define my own function to be math.sqrt). I still forget to put the : at the end of the line when I need to, and haven't quite gotten used to the interpreter yet, so I end up retyping stuff more than I should. I'm running it on a mac; probably if I ran it under linux instead I'd be happier living in my emacs window. Anyway, if you know anything about python packages that do floating point with 100 digits of precision, that would be nifty. In any case, thanks for writing something on math-teach that isn't just still more arguing between GG and MPG and their ilk. Actual math content! Wow! --XXXXX From infonuovo@email.com Wed Jan 10 20:36:28 2001 From: infonuovo@email.com (Dennis E. Hamilton) Date: Wed, 10 Jan 2001 12:36:28 -0800 Subject: [Edu-sig] OT - Specialized Language In-Reply-To: <8010912471E0D41189930090278D4E480FE73F@SPAWN> Message-ID: The emergence and preservation of specialized language is an interesting subject for me. When I learned to speak pig-Latin in elementary school, we used it to exclude others from the conversation. The same when we practiced using cyphers with each other. I think you underestimate the value of (4), however. Just like watching Roberts Rules be applied in a group activity (a process that many people think is weird and controlling), you can also see that one of the things it provides is an assured way to bring a situation to a conclusion while still providing for due consideration and deliberation. (Notice that the U.S. Congress has come up with lots of rules that undermine that, but the Constitution gives them permission. You get to say how that works for you only at the ballot box or by standing for election.) Robert's Rules are designed to provide a reliable structure for deliberative processes that must come to a definite conclusion, avoiding perpetual revisiting of the same arguments, etc. It takes people being willing to abide by the process, even when they think it is a waste of time. A lot of what happens in a courtroom is structured to get to a conclusion among individuals who are unable or unwilling to do that themselves (e.g., in a civil action). This means that establishing and preserving the authority of the court is a very big deal and part of the "language" of it. The structure of the courtroom gives something that is very important to the conversations that happen there. We got to see that in the recent civics lessons on election processes and how courts are used to resolve disputes and disagreements. Don't underestimate the value of playing dress-up! Or playing any game by the rules of that game. It seems to me that specialized language is inevitable, and that means specialized vocabulary. We are constantly working to assure that we have a common vocabulary, yet it would seem that everything about language, especially our inability to ever be *certain* that we mean the same thing that the other person does, works toward drift in language usage. An experiment. Look at a sport that you like and that you follow closely, maybe play in. Look at one that you have no interest in. Notice how much alien vocabulary exists among people who are more intimately involved with the second one. (Cricket baffles me. Every tried to explain baseball to someone from a non-baseball culture?) Then look at what it is like for someone who doesn't know about your favorite sport, or has only superficial interest. Or consider the language around automobiles or fashion. Or cosmetics We have a Clinique representative in our household. That use of specialized language is all noise to me. We also have a family member who is a theater professional. His relationship to make-up is different than that of the other two of us, and I still have to ask which is upstage, downstage, stage left, and stage right. I am inclined to doubt your lack of facility with vocabulary. I get that when you work at acquiring vocabulary, you find that you have trouble with it. I bet that you are as masterful at unconsciously, automatically acquiring vocabulary as you are articulate in e-mail and comfortable with different programming language structures. When you take on maintaining someone else's program, do you find that you struggle with the vocabulary of the original authors and their choice of programming idioms? I do. And I am usually good at re-abstracting what is going on and what the intention for the program is, as part of figuring out how to maintain it. If I am in a situation where I can recast the program, even better. I can't even leave Knuth's expression of algorithms alone. Something I have recently begun a self-conscious look at: http://www.infonuovo.com/orcmid/readings/R010101.htm I haven't attempted learning another human language since I struggled with high-school German over 40 years ago. My wife and I are working at learning Italian, and not doing too badly. The two victories were (1) realizing that I don't even know how I learned English, so believing that learning Italian should look a particular way and that I was failing if it didn't was something I had made up; (2) being with that I didn't understand the journey and simply accepting that if I kept doing the work and stop trying to understand everything first, I would ultimately acquire Italian. Exactly what my instructors have been trying to tell me. I don't dream in Italian yet, but I sense that it could happen any day now. I can't remember what it was like not to know how to program (after being at it for 43 years), and I am not sure how I first began to see abstraction and design in programs. Or be able to talk about it. -- Dennis -- Dennis AIIM DMware Technical Coordinator AIIM DMware http://www.infonuovo.com/dmware ODMA Support http://www.infonuovo.com/odma ------------------ Dennis E. Hamilton tel. +1-425-793-0283 mailto:orcmid@email.com fax. +1-425-430-8189 -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Morris, Steve Sent: Wednesday, January 10, 2001 08:09 To: edu-sig@python.org Subject: RE: [Edu-sig] Natural Language Programming Hi Art, > One last effort - One last reply. :-) [ ... ] > [ ... ]Because in the end what we are left with is > substanital (though not perfectly - we do go to third and fourth > defintions of standard English words) natural language. > And vocabulary is about nothing if it is not about communication. Here is where I disagree or at least disagree with your conclusions. Language is about communicating in the broad sense. Sometimes the communication is on many levels and often one of those levels is a level of exclusion. Vocabulary can be used to say "I am an insider and you are an outsider." Take legal language for example. This has also evolved by a process of natural selection, over a number of years. It exists the way it does (opaque) for several reasons 1) It creates a level of precision. 2) It evolved this way from archaic forms of English. 3) There is resistance to change for fear that the precision will be lost. If it ain't broke don't fix it. 4) It creates a private club with a language understood only by the practicioners thus inreasing the value of their skills. It is part of what sets apart those special people who have "passed the bar." 5) Practicioners are not bothered by the vocabulary once they have entered the priesthood and have little incentive to change it. 4 is a not inconsiderable issue. There is a lot of legal pomp and circumstance that is intended merely to emphasize the importance and solemnity of the occasion and to create respect for the process. There no legal reason that the judge needs to sit on his high bench. The bench represents his authority. "All rise." Why the heck should we rise when the judge enters. These proceedures and the language of the law in general exist at least partially to reduce communication. The entire legal process is an excercise in controlled communication (ie limiting communication.) Many things are not allowed to be said in the courtroom, Perry Mason to the contrary. In other words the language of the law is about limiting communication. And how about music. Music notation is a kludge. Only music in the key of C makes sense. Sharps and flats are repairs to the defective system. In a properly designed music notation system intervals (the relationship between notes) would be implicit in the notation. Music is interval and timing. An octave should leap out at you just from the notation. A fifth should shout its existance. Music notation was designed for playing, not composition or analysis. The structure of music (what sounds interesting and why) is highly mathematical. I defy anyone to see the mathematics in music notation. The closely held secret of music theory is that it is simple. It is only the language that is more opaque than it could be. There's many a potential talented musician who couldn't learn to read music. Is the defect in them or the notation? I suggest that it is the notation, hundreds of years of acceptance or not. An M4E program would have to address this. Just because there is an accepted vocabulary doesn't mean that it is easy to learn or that there aren't better alternatitives. What we have here is what economists call lock in. (VCS vs. Beta is the classic example.) Current practice is often far from best known practice. This is true of any evolutionary system. Why this happens is a large, well studied subject that I don't want to go into to deeply here but I'll make a simple pass. Physicists think of these as local minima. A marble rolling down a hill doesn't always reach the lowest point in spite of the driving force of gravity. The path is critical. Local dips in the terrain grab it and prevent it from going lower. The same is true of the evolution of vocabulary. > I have a simple premise. If something is easy for me to > comprehend, it > is easy for the next guy. I am not sure who I would be if I thought > otherwise. > Not someone I would like very much. Strange premise. There are things that are easy for you that are hard for me. This is a simple fact and no insult. I am baffled as to why you would dislike yourself for acknowledging this simple fact. > By calling the next guy stupid, you're calling me stupid > because in some > other area of endeavor I am going to be the novice. And I am not even > going to have the opportunity to tell you - "translate", > "move" - got it, > next. Since you like being personal in these discussions let me offer myself as one of several examples. Perhaps this personification will make my point clearer to you. I do not consider myself stupid even though my ability to acquire vocabulary is limited. I have strengths that I quite immodestly think are more important and make me a quite capapable person. We all have different blends of strengths and weaknesses. The world would be boring if this were not true. People come in all shapes and sizes and capapabilities. For some, new vocabularies are a snap. My father in law was an amazing amateur linguist. He was fluent in 5 languages and did technical translation in 20 more. If he new the subject he could translate in languages he had never seen before as long as it shared common roots with one or more of the languages he did know. (He claimed that most technical words are the same in all languages anyway.) If he wanted to read something he could pick up a working capability for a language in a few weeks. He didn't work hard at this. It came naturally to him. I think the real key to his success was an almost eidetic memory for vocabulary. He had it in large measure. I have it almost not at all. You are probably somewhere in the middle. CP4E needs to address people at my end of the scale. It is an insult to no one to say that my vocabulary learning skills are less than yours. It is a simple fact. My proceedural memory and skills just might be better than yours. They certainly have helped me compensate. I test high in langauge skills because my comprehension of grammer and syntax is high. In spite of that I have never been able to learn other verbal languages because I can't get over the vocabulary hurdle. I have tried again and again. On the other hand I know over 20 programming languages, maybe as many as 30 (it's hard to count because I keep forgetting about the ones I rarely use.) There are generally fewer than 10 key words (basic vocabularly) in programming languages. These are langueages with high syntatic and grammatical content but are almost vocabulary free. So I'm a great programmer but a lousy linguist. I am suggesting very simply and personally that "translate" instead of "move" (and similar words) could have been a barrier to me. By refusing to acknowledge this difference between people you would eliminate people with my strengths and weaknesses from the people you would recruit into a CP4E type effort. Just because you don't have a problem with vocabulary doesn't mean no one else does. It is no insult to me to say so. Special vocabularies are not a barrier to everyone but they are a barrier to some. I am one. Your insistance that my abilities are the same as yours is exclusionary. You deal with my weaknesses by denying that they exist and thus don't help me work around them. That's like saying we should design programs only for the rich because everyone has the same ability to acquire money. I obviously don't mean me personally. I have successfully compensated for my problems with vocabulary, partially by my choice of careers. I over compensate perhaps in working on acquiring and using English vocablary. However CP4E, if the E means anything, should include people to whom vocabulary is a barrier. I assure you that there are more of us than you might think. CP4E (in the broad sense, not just Guido's grant projects) should be about identifying barriers to entry and addressing them. Programming is clearly something that anyone can learn. They don't largely because of various barriers to entry. The correct way to handle this particular barrier is probably with transitional vocabularies (perhaps simple aliases to the less 'naturally' named commands) just the way kindergarden uses transitional spelling stratagies to teach spelling. If you are going to teach 3d programming, eventually the student needs to know the standard vocabulary or they can't benefit from the current body of knowledge. That is no reason to say they shouldn't be allowed into the temple of 3D learning with out jumping this vocabulary hurdle first. I think the heat you see on this subject is from people like me, to whom specialized vocabulary IS a barrier, taking personally your suggestion that our problem doesn't exist or deserve to be addressed. CP4E doesn't mean CP4 everyone whose learning abilities exactly match Arthur Siegel's. Regards, Steve Morris _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://www.python.org/mailman/listinfo/edu-sig From tim.one@home.com Thu Jan 11 00:09:20 2001 From: tim.one@home.com (Tim Peters) Date: Wed, 10 Jan 2001 19:09:20 -0500 Subject: [Edu-sig] Natural Language Programming In-Reply-To: <3.0.3.32.20010110101205.00a8e100@pop.teleport.com> Message-ID: I'm gonna skip all the *interesting* stuff and get straight to the technical Python nit : [Kirby Urner] > ... > PS: In Python, don't forget that you can just define synonyms. > Like, if your Vector object has a translate(self,v) method (mine > does), feel free to write: > > def move(self,v): > return self.translate(v) Too hard! It's enough to do move = translate inside the class body, after the "translate" method has been defined. Example: class C: def hifalutin_offputting_name(self, arg): print arg plainfolks_friendly_name = hifalutin_offputting_name C().plainfolks_friendly_name(42) prints 42. > And you could define resize() as an alternative to scale(). No, I'm afraid that one isn't allowed . Oh, all right, it is. You can actually have any executable code whatsoever in a class body. At the end of the class body, whatever is sitting in the class's local namespace becomes the content of the class __dict__. And this is why assignment works just as well as a "def" to define a method in the class. sometimes-the-chisel-is-as-surprisingly-interesting-as-the- sculpture-ly y'rs - tim From Arthur_Siegel@rsmi.com Thu Jan 11 01:59:12 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Wed, 10 Jan 2001 19:59:12 -0600 Subject: [Edu-sig] Natural Language Programming Message-ID: <003861DA.N22121@rsmi.com> Kirby wrote : >PS: In Python, don't forget that you can just define synonyms. >Like, if your Vector object has a translate(self,v) method (mine >does), feel free to write: > def move(self,v): > return self.translate(v) >And you could define resize() as an alternative to scale(). Absolutely agreed. But to achieve the full objective we need to talking at least about open source. This is quite similar to the idea I was trying to express in my grandly titled: "My New CP4E Mega-Theory" post of last month. OOP can be used to layer complexity and language issues. We can be demonstrating the langauge concept of synonym and the programming concept of OOP inheritance simultaneously. But it is only effective if we have the source, the source itself is crisp and straight-forward - ,and we are not afraid to look it. Which is exactly why Python is central to it all, in my mind. And then this great big issue goes away to everybody's (I think) satisfaction. ART From dyoo@hkn.eecs.berkeley.edu Thu Jan 11 02:03:38 2001 From: dyoo@hkn.eecs.berkeley.edu (Daniel Yoo) Date: Wed, 10 Jan 2001 18:03:38 -0800 (PST) Subject: [Edu-sig] Long floats? In-Reply-To: <3.0.3.32.20010110120218.00a95600@pop.teleport.com> Message-ID: On Wed, 10 Jan 2001, Kirby Urner wrote: > Here's something from a math teacher who hangs out on math-teach > (where I've been cross-posting a few of my "math through > programming" essays). > > He wonders if there's a way to get "long floats". I don't > think there is, except maybe there's an add-on module I don't > know about. Any clues? According to the documentation at: http://python.org/doc/current/lib/module-mpz.html there should be a rational numbers module in one of the Demos directories (Demo/classes/Rat.py). Here's an interpreter session that plays a little bit with it. ### >>> from Rat import rat >>> rat(5,3) Rat(5,3) >>> str(rat(1,3)) '(1/3)' >>> 1000-.0001 999.99990000000003 >>> rat(1000) - rat(.0001) 999.99990000000003 # whoops! >>> rat(1000) - rat(1, 1000) Rat(999999,1000) # ah, that's better. ### Hope this helps! From jasonic@nomadicsltd.com Thu Jan 11 03:14:38 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Wed, 10 Jan 2001 22:14:38 -0500 Subject: [Edu-sig] Kx Message-ID: <001a01c07b7c$a1f19860$c3090740@megapathdsl.net> !!!WOW!!! http://www.kx.com/ [check it out and play with the demo including web access to Kdb..] - Jason ___________________________________________________________ Jason CUNLIFFE = NOMADICS['Interactive Art and Technology'] From furman@sciences.aum.edu Thu Jan 11 03:25:33 2001 From: furman@sciences.aum.edu (Furman Smith) Date: Wed, 10 Jan 2001 21:25:33 -0600 (CST) Subject: [Edu-sig] collection of ACM programming problems Message-ID: Jeffrey Elkner wrote that he wanted a perfect case study to add to his free content textbook "How to think like a computer scientist" ( http://www.ibiblio.org/obp/thinkCSpy/ ) -- something instructive, easy to understand, fun, and illustrating the programming ideas introduced earlier in the book. "Perfect" is a strong word but please allow me to mention that I've enjoyed reading some of the archived problems from the ACM International Collegiate Programming Contests; links to the various volumes of problems can be found at http://acm.fi.uva.es/problemset/ . From pdx4d@teleport.com Thu Jan 11 08:53:17 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 11 Jan 2001 00:53:17 -0800 Subject: [Edu-sig] Natural Language Programming In-Reply-To: References: <3.0.3.32.20010110101205.00a8e100@pop.teleport.com> Message-ID: <3.0.3.32.20010111005317.00aa8100@pop.teleport.com> >Too hard! It's enough to do > > move = translate > Oh yeah... That's why I keep your around. :-D Kirby From pdx4d@teleport.com Thu Jan 11 09:58:13 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 11 Jan 2001 01:58:13 -0800 Subject: [Edu-sig] Long floats? In-Reply-To: References: <3.0.3.32.20010110120218.00a95600@pop.teleport.com> Message-ID: <3.0.3.32.20010111015813.00916a40@pop.teleport.com> >there should be a rational numbers module in one of the Demos directories >(Demo/classes/Rat.py). Here's an interpreter session that plays a little >bit with it. > Didn't find a Rat in my Windows Python 2.0 -- maybe under the sink or something. Not sure how a rat might help student X explore decimal digits of phi (sqrt(5)+1)/2 beyond what ordinary floating point will do. Maybe it's time to be dense -- 2 AM, can't even spell straight.\ Kirby From pdx4d@teleport.com Thu Jan 11 10:04:46 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 11 Jan 2001 02:04:46 -0800 Subject: [Edu-sig] Natural Language Programming In-Reply-To: References: <3.0.3.32.20010110101205.00a8e100@pop.teleport.com> Message-ID: <3.0.3.32.20010111020446.007a5730@pop.teleport.com> >Too hard! It's enough to do > > move = translate > And let's not forget, while we're at it, that a synonym for a word might by another symbol, like *, thanks to the "operator override" feature. >From my real "poly" class (polyhedron), written before I'd forgotten what Tim just showed me: class Poly: <> __mul__ = scale __rmul__ = __mul__ >>> import polys >>> a = polys.Octa() >>> b = a*3 >>> b Octa: origin=(0.0, 0.0, 0.0); volume=108.0 >>> c = a.scale(3) >>> c Octa: origin=(0.0, 0.0, 0.0); volume=108.0 Kirby From pdx4d@teleport.com Thu Jan 11 10:11:40 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 11 Jan 2001 02:11:40 -0800 Subject: [Edu-sig] Natural Language Programming In-Reply-To: <00af01c07b3e$25339460$29777318@poco1.bc.wave.home.com> References: <3.0.3.32.20010110101205.00a8e100@pop.teleport.com> Message-ID: <3.0.3.32.20010111021140.00919780@pop.teleport.com> >p.s., how is Red Mars? I just finished reading Antarctica, by >the same author, and was very impressed. It was among the >better science fiction, the kind which changes the way you >look at the real and present world. Satisfying. Haven't found a Python angle yet, as I did for 'Cryptonomicon' (that clubhouse page recently improved with 'cyclic permutations' I swipped from a group theory book). Except to say, I think if humans want to go to Mars then they'll need CP4E to kick in more than it has. Kirby From Arthur_Siegel@rsmi.com Thu Jan 11 16:56:43 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Thu, 11 Jan 2001 10:56:43 -0600 Subject: [Edu-sig] Natural Language Programming Message-ID: <00388F4D.N22121@rsmi.com> >And let's not forget, while we're at it, that a >synonym for a word might by another symbol, like *, >thanks to the "operator override" feature. Had also been playing with the feature with PyGeo, again trying to keep to "standard" symbolism, to the extent it has been developed. So for example: p1 + p2 might be the line connecting the two points. Line1^Line2 might be the point of intersection of the two lines. But to put my money where my mouth is, it was only interesting to me to the extent I could tie it to some recognized geometric notation. Its out there, but not too developed (or probably more accurately what had been developed has fallen into disuse). A PyGeo specific notation was and is not of much interest to me, so I pretty much dropped it.. From pdx4d@teleport.com Thu Jan 11 16:41:25 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 11 Jan 2001 08:41:25 -0800 Subject: [Edu-sig] Natural Language Programming In-Reply-To: <00388F4D.N22121@rsmi.com> Message-ID: <3.0.3.32.20010111084125.008a98f0@pop.teleport.com> >But to put my money where my mouth is, it was only >interesting to me to the extent I could tie it to some >recognized geometric notation. With regard to vectors, it's already standard. v1 + v2 are two "arrows" adding tip-to-tail, with v3 being the "new arrow" straight to where you end up. Here's a simple class for just doing vector addition (nothing else) -- I know you know this stuff but I was just sharing it with a math teacher so I'm getting double-duty via cut 'n paste... >>> from operator import * >>> class vector: def __init__(self, coords): self.xyz = coords def __add__(self, v): return vector(map(add,self.xyz,v.xyz)) >>> v1 = vector((1,2,3)) >>> v2 = vector((4,5,6)) >>> v3 = v1 + v2 >>> v3.xyz [5, 7, 9] Then I wrote (to the math teacher): "This shows me defining a class right at the >>> command line, but of course it's more practical to write such things in the full screen editor and import, e.g. >>> from mymodule import vector Students gradually build up their modules as they learn about vector addition (all I've shown so far), scalar multiplication, dot and cross product. What's cool is by defining __add__, we're overriding the + sign, so that we can actually use + in a new way, as an operator related to vector objects. Dunno, for some reason that's just the bee's knees as far as I'm concerned." What I take up in my little paper (recent) is how you can hyperlink to SIGMA notation (greek letter SIGMA) and go: def sigma(vlist): return reduce(add,vlist) to get a vector sum of lots of vectors (vlist is a list of vectors). Note: in my geometry programs, when you want an edge between any two points, it's >>> edge(v1,v2) And when you want a face (polygon) it's >>> face([v1,v2...vn]) I don't have any lines or planes of so-called "infinite" extent. Having those would be challenging, and I think you've done that in PyGeo somehow. Kirby PS: a math teacher dinking around with Python on the side on his school Mac confirms that the Mac IDLE has no color coding of key words. If there's an innovation I think'd make a difference to Python in the schools, it'd be duplicating Windows/Linux colorizing of key words on the Mac. Maybe a Tk issue? I know Guido's bro has a lot to do with the Mac version of IDLE. Wondering if there's a plan... From Arthur_Siegel@rsmi.com Thu Jan 11 23:51:13 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Thu, 11 Jan 2001 17:51:13 -0600 Subject: [Edu-sig] Natural Language Programming Message-ID: <0038C867.N22121@rsmi.com> >>With regard to vectors, it's already standard. Agreed We've being doing too much of that lately. Should we talk Euclid again, to give us some spice.. For vector stuff it absolutely makes sense to use the operator override functions. End up with a visual calculator . Neat I think. From jasonic@nomadicsltd.com Fri Jan 12 03:17:48 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Thu, 11 Jan 2001 22:17:48 -0500 Subject: [Edu-sig] GIS, CAD, and mapping daily news provided by Spatial News Message-ID: <000801c07c46$3dca58c0$c3090740@megapathdsl.net> This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C07C1C.54559FC0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hands High Software's New Teachers' Aide Delivers a Staff-Full of Help From a Hand-Held Computer http://spatialnews.geocomm.com/dailynews/2001/jan/11/news4.html ------=_NextPart_000_0005_01C07C1C.54559FC0 Content-Type: application/octet-stream; name="GIS, CAD, and mapping daily news provided by Spatial News.url" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="GIS, CAD, and mapping daily news provided by Spatial News.url" [DEFAULT] BASEURL=http://spatialnews.geocomm.com/dailynews/2001/jan/11/news4.html [InternetShortcut] URL=http://spatialnews.geocomm.com/dailynews/2001/jan/11/news4.html Modified=20CE0B2C467CC001A8 ------=_NextPart_000_0005_01C07C1C.54559FC0-- From vernier@vc.bc.ca Fri Jan 12 04:42:52 2001 From: vernier@vc.bc.ca (Bruno Vernier) Date: Thu, 11 Jan 2001 20:42:52 -0800 Subject: [Edu-sig] inline python for education Message-ID: <20010111204252.Z22319@vc.bc.ca> Hello everyone, I've followed this mailing list for several month. I am a math/computer science intructor (high school level). I have just written the first version of a zope product called Eduml which is an extension of an existing product called ZWiki. (everything is GPL) This package allows anyone to quickly include python, including PIL (python imaging library) , SQL queries, gnuplot commands, and LaTeX instructions in what appears to be a plain old web page (and oh yes, we can include HTML too but not directly inside the eduml elements) for example,

a simple example

A = randint(0,9) B = randint(0,9) simplify $$ \A \over \B $$ select * from lessons line ((0,0,100,100)) ellipse ((0,0,50,50)) sin(x) I've posted a showcase/sandbox area on http://ess.vancouver.bc.ca/zope/bruno/eduml Thanks, Bruno p.s. the new elements are part of an XML for education project I've been involved with for 2 years called EDUml (Educational Markup Language) but that is another story.
-- From tim.one@home.com Fri Jan 12 09:18:48 2001 From: tim.one@home.com (Tim Peters) Date: Fri, 12 Jan 2001 04:18:48 -0500 Subject: [Edu-sig] Long floats? In-Reply-To: <3.0.3.32.20010110120218.00a95600@pop.teleport.com> Message-ID: [Kirby Urner] > Here's something from a math teacher who hangs out on math-teach > (where I've been cross-posting a few of my "math through > programming" essays). > > He wonders if there's a way to get "long floats". I don't > think there is, except maybe there's an add-on module I don't > know about. Any clues? The only language I know of with native support for adjustable (by the user) precision floats is REXX. There are BigFloat libraries available at least for Perl and Ruby, and IIRC also Java. Some specialized numeric environments (e.g., Macsyma) also support them. As far as I know, nobody ever bothered to write one for Python. Python has something far more strange and wonderful, though: ftp://ftp.python.org/pub/python/contrib-09-Dec-1999/ DataStructures/real-accurate.pyar (I broke that into two lines, else my mailer would have broken it at an uglier place; paste them together without the leading blanks on the second line) That's an unusual implementation of the constructive reals. Arbitrary-precision floats are buried in there, but hard to get at as such. I'll just quote the start of the readme file: Real.README - documentation for real.py. Goes with version 1.11. Written by Jurjen N.E. Bos (jurjen@q2c.nl) Introduction ============ real.py is a library that introduces a new class, called Real, of abitrarily precise numbers, allowing computations with "infinite" precision. Each number keeps an approximation of the accuracy of the number. Routines are available to compute numbers with more and more digits. real.py allows you to: - compute with very high precision, e.g. 1000 digits - compute with very large or small numbers, up to about 10**500000000 - compute without unexpected precision loss: all digits guaranteed - compute with infinite precision, printing digits on the fly - printing floating point numbers to their exact accuracy Just to whet your appetite: >>> from real import pa,exp,pi,sqrt >>> pa('exp(pi()*sqrt(163))') 262537412640768743.99999999999925007259719818568887935385633733699086270 753741037821064791011860731295118134618606450419308388794975386404490572 871447719681485232243203911647829148864228272013117831706501045222687801 444841770346969463355707681723887681000923706539519386506362757657888558 223948114276912100830886651107284710623465811298183012459132836100064982 ... and so on. it's-especially-fun-if-you-have-infinite-memory-ly y'rs - tim From gritsch@iue.tuwien.ac.at Sat Jan 13 15:21:00 2001 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Sat, 13 Jan 2001 16:21:00 +0100 Subject: [Edu-sig] webpage for KineticsKit Message-ID: <003101c07d74$6fbb5440$2f442fd5@telekabel.at> Hi! I've put together a litte webpage for KineticsKit. KineticsKit can now be downloaded from this address: http://stud4.tuwien.ac.at/~e9326522/KineticsKit/ Code enhancements: Added a second visual representation of a spring (double-helix), made a small modification to the spring constructor, added another example (picture of it can be seen at the top of the webpage). enjoy, Markus From fred@ontosys.com Sat Jan 13 16:05:42 2001 From: fred@ontosys.com (Fred Yankowski) Date: Sat, 13 Jan 2001 10:05:42 -0600 Subject: [Edu-sig] webpage for KineticsKit In-Reply-To: <003101c07d74$6fbb5440$2f442fd5@telekabel.at>; from gritsch@iue.tuwien.ac.at on Sat, Jan 13, 2001 at 04:21:00PM +0100 References: <003101c07d74$6fbb5440$2f442fd5@telekabel.at> Message-ID: <20010113100541.A84653@enteract.com> Markus, Your kinetics examples are very cool. I'm amazed by what VPython can do, and your examples make good use of VPython's features. To get the "lattice" example to work I had to un-comment-out the mainloop() call at the end. That example is simply amazing, but it also manages to use every available cycle on my dual-800 NT system. I'm glad that the VPython team has made VPython so easy to install now as an add-on to Python 2.0. On Sat, Jan 13, 2001 at 04:21:00PM +0100, Markus Gritsch wrote: > I've put together a litte webpage for KineticsKit. KineticsKit can now be > downloaded from this address: > > http://stud4.tuwien.ac.at/~e9326522/KineticsKit/ -- Fred Yankowski fred@OntoSys.com tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA From pdx4d@teleport.com Sat Jan 13 18:50:34 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sat, 13 Jan 2001 10:50:34 -0800 Subject: [Edu-sig] Long floats? In-Reply-To: References: <3.0.3.32.20010110120218.00a95600@pop.teleport.com> Message-ID: <3.0.3.32.20010113105034.00aafa90@pop.teleport.com> At 04:18 AM 01/12/2001 -0500, Tim Peters wrote: >The only language I know of with native support for adjustable (by the user) >precision floats is REXX. There are BigFloat libraries available at least >for Perl and Ruby, and IIRC also Java. Some specialized numeric >environments (e.g., Macsyma) also support them. > >As far as I know, nobody ever bothered to write one for Python. Python has >something far more strange and wonderful, though: > >ftp://ftp.python.org/pub/python/contrib-09-Dec-1999/ > DataStructures/real-accurate.pyar Thank you Tim! Once again, your input is right on the money. I've been having a fun time computing things to the nth digit (plus/minus). Such a powerful little package! O frabjous day! Callooh! Callay!" He chortled in his joy. -- Lewis Carroll Kirby PS: appended, my letter to the math teacher, who is also turned on about Python at this point, probably chortling as well: On Fri, 12 Jan 2001 21:11:07 -0800, you wrote: >>Here's some feedback re the "long float" question from >>Tim Peters. He's a Python god and, even better, >>consistently helpful and forthcoming with hard-to-find >>information re Python and programming in general. > >Nifty! >I'd seen big floats in C++ but not in any of the other languages. >I'll give that library a whirl. >Looks like it has plenty of decimal places for me! > >Thanks, >--[XXXXXXXX] > Yes, I've been playing with it too (see appended value of PHI = (1+sqrt(5))/2 I'm not familiar with the .pyar extension. I renamed it to .py after downloading, and then, since hyphenated file names are problematic, I had to use a weird syntax for import, shown below. >>> __import__("real-accurate") # after changing extension to .py real.README : written. real.py : written. >>> import real >>> from real import * >>> pi() 3.141592653589793238462643383279503+-2 >>> sqrt(5) 2.23606797749978969640917366873127+-2 >>> (1+sqrt(5))/2 1.61803398874989484820458683436564+-1 >>> pow((1+sqrt(5))/2,2) 2.61803398874989484820458683436564+-5 >>> for i in range(10): print pow( (1+sqrt(5))/2,i ) 1 1.61803398874989484820458683436564+-1 2.61803398874989484820458683436564+-5 4.2360679774997896964091736687312+-4 6.854101966249684544613760503097+-2 11.09016994374947424102293417183+-2 17.94427190999915878563669467491+-3 29.03444185374863302665962884674+-3 46.97871376374779181229632352168+-3 76.0131556174964248389559523685+-3 >>> for i in range(10): print pow( (sqrt(5)*(1+sqrt(5))/2),i ) 1 3.6180339887498948482045868343656+-1 13.090169943749474241022934171827+-2 47.36067977499789696409173668730+-3 171.3525491562421136153440125775+-5 619.95934690622108325626137945+-1 2243.03398874989484820458683436+-3 8115.3732092183688247416272746+-1 29361.6961023423698826852022010+-2 106231.614465620005289717874632+-2 And here's PHI (only took a few seconds): >>> rep('(1+sqrt(5))/2') << SNIP -- iterations of lesser precision >> 1.61803398874989484820458683436563811772030917980576286213 5448622705260462818902449707207204189391137484754088075386 8917521266338622235369317931800607667263544333890865959395 8290563832266131992829026788067520876689250171169620703222 1043216269548626296313614438149758701220340805887954454749 2461856953648644492410443207713449470495658467885098743394 4221254487706647809158846074998871240076521705751797883416 6256249407589069704000281210427621771117778053153171410117 0466659914669798731761356006708748071013179523689427521948 4353056783002287856997829778347845878228911097625003026961 5617002504643382437764861028383126833037242926752631165339 2473167111211588186385133162038400522216579128667529465490 6811317159934323597349498509040947621322298101726107059611 6456299098162905552085247903524060201727997471753427775927 7862561943208275051312181562855122248093947123414517022373 5805772786160086883829523045926478780178899219902707769038 9532196819861514378031499741106926088674296226757560523172 7775203536139362107673893764556060605921658946675955190040 0555908950229530942312482355212212415444006470340565734797 6639723949499465845788730396230903750339938562102423690251 3868041457799569812244574717803417312645322041639723213404 4449487302315417676893752103068737880344170093954409627955 8986787232095124268935573097045095956844017555198819218020 6405290551893494759260073485228210108819464454422231889131 9294689622002301443770269923007803085261180754519288770502 1096842493627135925187607778846658361502389134933331223105 3392321362431926372891067050339928226526355620902979864247 2759772565508615487543574826471814145127000602389016207773 2244994353088999095016803281121943204819643876758633147985 7191139781539780747615077221175082694586393204565209896985 5567814106968372884058746103378105444390943683583581381131 1689938555769754841491445341509129540700501947754861630754 2264172939468036731980586183391832859913039607201445595044 9779212076124785645916160837059498786006970189409886400764 4361709334172709191433650137157660114803814306262380514321 1734815100559013456101180079050638142152709308588092875703 4505078081454588199063361298279814117453392731208092897279 2221329806429468782427487401745055406778757083237310975915 1177629784432847479081765180977872684161176325038612112914 3683437670235037111633072586988325871033632223810980901211 0198991768414917512331340152733843837234500934786049792945 9915822012581045982309255287212413704361491020547185549611 8087642657651106054588147560443178479858453973128630162544 8761148520217064404111660766950597757832570395110878230827 1064789390211156910392768384538633332156582965977310343603 2322545743637204124406408882673758433953679593123221343732 0995749889469956564736007295999839128810319742631251797141 4320123112795518947781726914158911779919564812558001845506 5632952859859100090862180297756378925999164994642819302229 3552346674759326951654214021091363018194722707890122087287 3617073486499981562554728113734798716569527489008144384053 2748378137824669174442296349147081570073525457070897726754 6934382261954686153312095335792380146092735102101191902183 6067509730895752895774681422954339438549315533963038072916 9175846101460995055064803679304147236572039860073550760902 3173125016132048435836481770484818109916024425232716721901 8933459637860878752870173935930301335901123710239171265904 7026349402830766876743638651327106280323174069317334482343 5645318505813531085497333507599667787124490583636754132890 8624063245639535721252426117027802865604323494283730172557 4405837278267996031739364013287627701243679831144643694767 0531272492410471670013824783128656506493434180390041017805 3395058772458665575522939158239708417729833728231152569260 9299594224000056062667867435792397245408481765197343626526 8944888552720274778747335983536727761407591712051326934483 7529916499809360246178442675727767900191919070380522046123 2482391326104327191684512306023627893545432461769975753689 0417636502547851382463146583363833760235778992672988632161 8583959036399818384582764491245980937043055559613797343261 3483049494968681089535696348281781288625364608420339465381 9441945714266682371839491832370908574850266568039897440662 1053603064002608171126659954199368731609457228881092077882 2772036366844815325617284117690979266665522384688311371852 9919216319052015686312228207155998764684235520592853717578 0765605036773130975191223973887224682580571597445740484298 7807352215984266766257807706201943040054255015831250301753 409411719101929890384+-1 Seems to be a powerful package. Fun, too (guess I must be a nerd, huh -- actually I prefer "geek" as an honorific). Kirby From tim.one@home.com Sun Jan 14 06:43:52 2001 From: tim.one@home.com (Tim Peters) Date: Sun, 14 Jan 2001 01:43:52 -0500 Subject: [Edu-sig] Long floats? In-Reply-To: <3.0.3.32.20010113105034.00aafa90@pop.teleport.com> Message-ID: Kirby, I'm delighted you're having fun with Jurjen's Real class! It is indeed a hoot. > ... > I'm not familiar with the .pyar extension. I renamed it > to .py after downloading, and then, since hyphenated file > names are problematic, I had to use a weird syntax for > import, shown below. If you read the top of the downloaded file, it says: #! /usr/local/bin/python # This is a Python archive; run through your Python to convert. # Supports bit error detection using MD5 (if available). That is, the downloaded file is a Python program that, when *executed*, *creates* the files real.README and real.py. So you should do something like python real-accurate.py from a command line to unpack the contents. As part of unpacking, it computes MD5 checksums to ensure that the download wasn't corrupted. Jurjen had a unique approach to things. pyar files never caught on. > >>> __import__("real-accurate") # after changing extension to .py > real.README : written. > real.py : written. > That's another odd way to execute the file. From now on you can *start* with the next line: > >>> import real > >>> from real import * > >>> pi() > 3.141592653589793238462643383279503+-2 > >>> sqrt(5) > 2.23606797749978969640917366873127+-2 > >>> (1+sqrt(5))/2 > 1.61803398874989484820458683436564+-1 > >>> pow((1+sqrt(5))/2,2) > 2.61803398874989484820458683436564+-5 > ... I'm not sure this is documented (it's been a while): the module attribute "default" controls how many digits are used by default. So, for example, >>> import real >>> real.pi() 3.141592653589793238462643383279503+-2 >>> real.default = 10 >>> real.pi() 3.14159265358+-2 >>> real.default = 50 >>> real.pi() 3.141592653589793238462643383279502884197169399375105+-2 >>> > ... > Seems to be a powerful package. Very, yes. It also has surprises; for example, >>> rep('pi() - pi()') .000000000000000000000000000000000+-4 .00000000000000000000000000000000000000000000+-3 0.+-4e-59 0.+-3e-79 0.+-4e-105 0.+-3e-140 0.+-3e-187 0.+-3e-249 0.+-4e-332 0.+-4e-443 0.+-3e-591 0.+-4e-788 0.+-3e-1051 0.+-3e-1401 0.+-3e-1868 ... which isn't surprising, but >>> pa('pi() - pi()') will never print anything. This will often happen when, for example, the exact result is an exact integer (like 0!): the error bounds keep getting tighter as more precision is used, but no finite amount of precision suffices to distinguish 4.00000000000000000000000000000000000000000000000 ... from 3.99999999999999999999999999999999999999999999999 ... So pa gets stuck, never sure what the first digit is. And it's a provable general result that *no* implementation of the constructive rules can always be sure of the first result digit. There are some very pretty results of that nature; as another example, comparison of the constructive reals is also uncomputable in general (for much the same reason: is 3.999999... < 4? it depends on whether that sequence of trailing 9s ever ends! if it does, we'll eventually discover that, but if it doesn't, we'll keep computing forever). > Fun, too (guess I must be a nerd, huh -- actually I prefer > "geek" as an honorific). Then I'm a nerd too -- well, I guess I was anyway . From Arthur_Siegel@rsmi.com Sun Jan 14 15:33:34 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Sun, 14 Jan 2001 09:33:34 -0600 Subject: [Edu-sig] Natural Language Programming Message-ID: <00395D30.N22121@rsmi.com> Kirby wrote - >I don't have any lines or planes of so-called "infinite" >extent. Having those would be challenging, and I think >you've done that in PyGeo somehow. What has been particularly challenging is having the visual being sufficiently suggestive of what is going on analytically. Your can't really *draw* an infinite plane in 3d space without mucking up the screen. You have to suggest this oriented square is really a visual symbol for an infinite plane in space. So even working purely visually one is still in the realm of creating a symbolic language of a kind. Sort of interesting. ART From pdx4d@teleport.com Fri Jan 19 08:56:29 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Fri, 19 Jan 2001 00:56:29 -0800 Subject: [Edu-sig] Exploring Bernoulli Numbers Message-ID: <3.0.3.32.20010119005629.00ac5620@pop.teleport.com> More of the usual math-through-programming jazz. A continuation of a thread on math-teach at the Math Forum... Kirby ===================================================== >We see that the number of subtriangles in each row = 2n - 1 >(series of odds, n = 1,2,3...) and that the n+1 row will >duplicate the previous, plus add 2 more triangles i.e. > > row(n+1) = (2n - 1) + 2 = 2n + 1 > ^^^^^^^^ ^ > triangles 2 > in last row more > >See: http://www.inetarena.com/~pdx4d/ocn/graphics/triarea.gif Of course this is a good visual proof that n^2 (n=1,2,3...) is the sum of the first n consecutive odd numbers, i.e. n n^2 = SIGMA (2n-1) i=1 Kids lucky enough to have a CLI can write: >>> def odd(n): return 2*n - 1 >>> import operator >>> def g(f,n): """ n g(f,n) = SIGMA f(i) i=1 """ return reduce(operator.add,map(f,range(1,n+1))) >>> g(odd,5) 25 and so on. This brings me to another beef I have with the way K-16 math is usually taught: we make the silly rule that if the students can't actually do the math that might be relevant in a given thread, then we probably shouldn't even talk about it. What other subjects do we teach according to this rule. Don't listen to Bach until you can play like Bach, don't read Shakespeare until you can write like Shakespeare -- ridiculous. And yet text books are careful to just coast along at the level of "exercises", where the students are supposed to do, do, do. Whatever happened to kicking back and appreciating the masters, getting a sense of what high quality mathematics is like without actually trying to be a master yourself? That's how we do it most music and art and literature. For some reason, math is supposed to be different. Why? For example, here we are talking about sums of 2nd power expressions expressible as a 3rd power equation (tetrahedral and cuboctahedral numbers), or 2nd powers = sums of 1st powers (e.g. sum of consecutive odds, or consecutive integers). There's the theme of degree, and of consecutive integers (plus the linear, areal, volume relationship for powers 1,2,3). What other mathematics is relevant in this connection? A student tracking this thread might ask, or, if told, might appreciate, that people asked themselves long ago whether the sum of consecutive integers to the 5th power might be expressed as a polynomial to the 6th power, or whether 1^7 + 2^7 + 3^7 +... + (n-1)^7 + n^7 might be equivalent to some polynomial in the form A[1] n^8 + A[2] n^7 + A[3] n^6 + ... + A[n] n, where A[1]... A[n] are rational coefficients. In general, given: n SIGMA f(i) where f(i) = i^x i=1 we want to find a corresponding: n+1 SIGMA A(i) n^i A(1)..A(n) = rational numbers i=1 that gives the same result. Just to be able to understand the problem, to appreciate what's being sought, is mental exercise enough at some levels. You don't have to expect kids to then sit down and pull the Bernoulli numbers out of a hat (the Bernoullis figure in to the computation of these coefficients, which are also functions of x -- see below). What's being exercised here is a kind of math literacy. We have SIGMAs flying around, and an exponent that's also a variable. It's like trying to decipher some code, to make sense of the terrain. Even before proofs, or derivations, you just need to practice with the lingo. It probably helps in many cases to write the top SIGMA as a simple program at the CLI: >>> def sumpow(n,x): sum = 0 for i in range(1,n+1): sum = sum + i**x return sum >>> sumpow(5,5) 4425 >>> 1**5 + 2**5 + 3**5 + 4**5 + 5**5 4425 This is a departure from my usual approach of defining f(i) and SIGMA and composing them as g(f,n). That's OK. We should do it both ways. One reason I like hyperlinking to the Bernoulli numbers at this point because here's where we hook in Ada, the Countess Lovelace. We have few enough women in the narrative, but Ada makes up for a lot of what's missing. She's a perfect character to include for young students: Five weeks after Ada was born Lady Byron asked for a separation from Lord Byron, and was awarded sole custody of Ada who she brought up to be a mathematician and scientist. Lady Byron was terrified that Ada might end up being a poet like her father. Despite Lady Byron's programming Ada did not sublimate her poetical inclinations. She hoped to be "an analyst and a metaphysician". In her 30's she wrote her mother, if you can't give me poetry, can't you give me "poetical science?" Her understanding of mathematics was laced with imagination, and described in metaphors And here's the link to Bernoulli numbers: When inspired Ada could be very focused and a mathematical taskmaster. Ada suggested to Babbage writing a plan for how the engine might calculate Bernoulli numbers. This plan, is now regarded as the first "computer program." A software language developed by the U.S. Department of Defense was named "Ada" in her honor in 1979. [ http://www.well.com/user/adatoole/bio.htm ] Of course critics will say the above narrative means Ada is a heroine in computer world, and her name has no relevance to math classes -- nevermind about the Bernoullis or that "computer science" wasn't even invented as a discipline yet (in those days, you weren't considered "interdisciplinary" just because you thought about computing machinery in connection with computing). Again, I think in K-12 at least, there's no need to carve learning into math without much programming on the one hand, and programming without much math on the other -- they synergize so well, that they deserve to be fused more deeply. Convergence is a trend, or should be a trend. It's a symptom of overspecialization that so many schools have fancy computer labs, but in math class kids have to make do with calculators. Back to Python, kids can import, and play with the Bernoullis. As rational numbers, they may be expressed as (numerator, denominator) pairs. Here's real.py in action (slightly tweeked by me to fin Python 2.0 syntax), a powerful, jewel of a module by Jurjen N.E. Bos: >>> from real import * >>> map(bern,range(0,20)) [(1L, 1L), (-1, 2), (1L, 6L), (0, 1), (-1L, 30L), (0, 1), (1L, 42L), (0, 1), (-1L, 30L), (0, 1), (5L, 66L), (0, 1), (-691L, 2730L), (0, 1), (7L, 6L), (0, 1), (-3617L, 510L), (0, 1), (43867L, 798L), (0, 1)] ... which is to say that B(i) is 0 for all odds except B(1), and B(2) = 1/6, B(4) = -1/30 B(6) = 1/42, B(8) = -1/30 and so on. The "L"s you see in the above tuples stand for "long": these are what we call BigNumbers, e.g.: >>> bern(200) (-498384049428333414764928632140399662108495887 4572066749680558226172636696215236875688658023 0221099913260141269761327939105865452714534051 5840099290478026350382802884371712359337984274 122861159800280019110197888555893671151L, 1366530L) We don't have our coefficients yet, but there's light at the end of the tunnel at last. For my coefficients, I turn to Chapter 20, The Bernoulli Era, in 'The History of Mathematics' by Carl Boyer (2nd edition, John Wiley and Sons, 1991), pg. 419. Again, this isn't something I can necessarily derive on my own, not being a mathematician of Jacques Bernoulli's caliber (I might be able to follow a proof -- none given in this context). But does this mean such math is uninteresting to me, or that I shouldn't be exposed to it? No way. Nor should my students be so insulated. "Math appreciation" means being able to follow what others have done _without_ making the claim that you could or should be able to do the same. We need to take away the notion that the only math worth reading, playing with, exploring, is math you have the capacity or ability to reinvent yourself, from scratch, ab initio. That doesn't mean we should teach mindless rule-following without comprehension at every turn. But it does mean there should be phases of study in which we're testing and verifying, applying and trying out -- because these activities also involve a level of comprehension and exercise. Math is a communal activity. No single human could reinvent it all, not even Gauss. That's life in the real world. For example I, or my student, can translate the mathematical notation provided by Boyer into executable, and therefore testable code. I've done this in my bernoulli.py, which contains coeffs(), a method for returning the sought-for coefficients -- for which the Bernoulli numbers were needed: from real import bern def coeffs(x): A = [(1,x+1),(1,2)] if x<2: return A num,den,k = x,2,2 while x>1: b = bern(k) A.append((num*b[0],den*b[1])) num = num*(x-1)*(x-2) den = den*(k+1)*(k+2) k = k+2 x = x-2 return A If I'm summing numbers to the 1st power, what are my coefficients? >>> bernoulli.coeffs(1) [(1, 2), (1, 2)] i.e. n SIGMA n = (1/2)n^2 + (1/2)n i=1 -- same as n(n+1)/2 derived in earlier posts. How about if I'm summing numbers to the 2nd power, what are my coefficients? >>> bernoulli.coeffs(2) [(1, 3), (1, 2), (2L, 12L)] i.e. n SIGMA n^2 = (1/2)n^3 + (1/2)n^2 + (1/6)^n i=1 So, to answer one of our earlier questions, what's 1^7 + 2^7 + 3^7 +... + (n-1)^7 + n^7 expressed as an 8th degree polynomial in terms of n? = (1/8)n^8 + (1/2)n^7 + (7/12)n^6 - (210/720)n^4 + (2520/30240)n^2 I have a function, poly() that will actually apply the coefficients to powers of n and compute this sum. Let's compute a few values: >>> bernoulli.poly(10,7) # 1^7 + ... + 10^7 18080424.9999999999999999999999+-2 >>> bernoulli.poly(11,7) # 1^7 + ... + 11^7 37567595.9999999999999999999999+-2 >>> bernoulli.poly(12,7) # 1^7 + ... + 12^7 73399404.0000000000000000000000+-2 The slightly off results come from working with decimals of limited precision. Now let's compute these sums more directly, by defining f(x) = x^7 and passing f as a parameter to our usual: n g(f,n) = SIGMA f(i) i=1 >>> bernoulli.g(f,10) 18080425 >>> bernoulli.g(f,11) 37567596 >>> bernoulli.g(f,12) 73399404 Same answers, approximately. If we're persuade the algorithm is correct, we could convert to integers as a last step in poly(), thereby assuring whole number answers. Kirby [1] module by Jurjen N.E. Bos: ftp://ftp.python.org/pub/python/contrib-09-Dec-1999/ DataStructures/real-accurate.pyar [2] bernoulli.py by K. Urner http://www.inetarena.com/~pdx4d/ocn/python/bernoulli.py From dorothea@impressions.com Fri Jan 19 17:36:16 2001 From: dorothea@impressions.com (Dorothea Salo) Date: Fri, 19 Jan 2001 11:36:16 -0600 Subject: [Edu-sig] Re: Edu-sig digest, Vol 1 #216 - 1 msg References: <20010119170156.03115F10A@mail.python.org> Message-ID: <146301c0823e$53b2bda0$2000c886@ep2> > Whatever happened to kicking back and appreciating the > masters, getting a sense of what high quality mathematics > is like without actually trying to be a master yourself? > That's how we do it most music and art and literature. > For some reason, math is supposed to be different. Why? Damned if I know. Makes no sense to me either. There's a ton of math literacy that should be taught this way and isn't. Statistics is my particular bugaboo; it truly irritates me how many people have no idea what a standard deviation is, or what goes into calculation of a margin of error. Now, I would have a terrible time *calculating* a margin of error, at least without a book at hand to refresh my memory, but I damn well know what it is, why it matters, and that it relates to factors like sample size and sample randomness. In these days of InstaPolls, this kind of basic "duh"-level understanding is *important*. > "Math appreciation" means being able to follow what others > have done _without_ making the claim that you could or > should be able to do the same. We need to take away the > notion that the only math worth reading, playing with, > exploring, is math you have the capacity or ability to > reinvent yourself, from scratch, ab initio. Brilliantly stated, sir. Bravo. Dorothea -- Dorothea Salo Impressions Book and Journal Services, Inc. phone: (608) 244-6218 fax: (608) 244-7050 http://www.impressions.com From smorris@cereva.com Fri Jan 19 19:33:04 2001 From: smorris@cereva.com (Morris, Steve) Date: Fri, 19 Jan 2001 14:33:04 -0500 Subject: [Edu-sig] Re: Edu-sig digest, Vol 1 #216 - 1 msg Message-ID: <8010912471E0D41189930090278D4E480FE83F@SPAWN> > > Whatever happened to kicking back and appreciating the > > masters, getting a sense of what high quality mathematics > > is like without actually trying to be a master yourself? > > That's how we do it most music and art and literature. > > For some reason, math is supposed to be different. Why There is a little difference. Music can be good or bad. Bad music is still music. Math is right or wrong. Wrong math is not math, it is a mistake. While math can be beautiful that isn't its purpose. The purpose of math isn't personal appreciation. The purpose of math is to get the answer to a specific kind of question. If you get the wrong answer you are usually worse off than no answer. That being said there is significant value in understanding what can be done with math even if you don't learn how to do it. Understanding someone elses proof is still valuable even if you couldn't have derived it yourself. Understanding the reach of math lets you know when to ask for a master. From pdx4d@teleport.com Sat Jan 20 01:00:50 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Fri, 19 Jan 2001 17:00:50 -0800 Subject: [Edu-sig] Re: Edu-sig digest, Vol 1 #216 - 1 msg In-Reply-To: <8010912471E0D41189930090278D4E480FE83F@SPAWN> Message-ID: <3.0.3.32.20010119170050.00a41b40@pop.teleport.com> At 02:33 PM 01/19/2001 -0500, Morris, Steve wrote: > > > Whatever happened to kicking back and appreciating the > > > masters, getting a sense of what high quality mathematics > > > is like without actually trying to be a master yourself? > > > That's how we do it most music and art and literature. > > > For some reason, math is supposed to be different. Why > >There is a little difference. Music can be good or bad. Bad music is still >music. Math is right or wrong. Wrong math is not math, it is a mistake. >While math can be beautiful that isn't its purpose. The purpose of math >isn't personal appreciation. The purpose of math is to get the answer to a >specific kind of question. If you get the wrong answer you are usually worse >off than no answer. We should teach correct, verified math. Not just "noise" (bad or wrong math). But in many cases the answers have already been obtained (thousands of years ago perhaps), and the appreciation comes from seeing the solutions. It's like finding out what's in the toolbox, what's there to use. If you don't know you have a screwdriver, and what it's for, you'll be at a disadvantage. But that doesn't mean you had to invent the screwdriver. Nor does it mean you have an immediate need for one. Just nice to know it's there and what it does. >That being said there is significant value in understanding what can be done >with math even if you don't learn how to do it. Understanding someone elses >proof is still valuable even if you couldn't have derived it yourself. >Understanding the reach of math lets you know when to ask for a master. Exactly. And it doesn't have to be the proof that you understand. You may just want to use the tool, not prove that it's correct -- you leave that to others. This may sound "lazy", but even within the domain of mathematics, people leave it to others to verify and prove a lot of the time, and just use the results to get on with it. In Mathematica, for example, you have all these "black boxes" that spit out everything from Bernoulli numbers, to large probable primes, to pictures of convex hulls given a point dispersion. Given the math you're exploring and/or applying at any given time, it may or may not be relevant to open each and every one of those black boxes and understand their inner workings (besides, many black boxes have more black boxes inside them, and so on). It's similar to using an API, an object library. Here are these utilities and here are the commands for invoking them. You may not have time to read the source code, nor will you always understand what you read. I'm not arguing that math should be treated as "black boxes" by everyone. The analogy with open source is a good one. We trust math because it's open source, and lots of good minds eyeball its codes, looking for lapses, errors and so on. But any given user/appreciator of the library isn't necessarily going to stop and study the source. And when it comes to math appreciation, we shouldn't forbid kids to access powerful "math objects" just because they're not at a level where they can completely comprehend how they do what they do. By analogy, we shouldn't forbid kids from using Python just because they haven't learned how it works under the hood in any real detail. Kirby From Arthur_Siegel@rsmi.com Sun Jan 21 01:27:15 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Sat, 20 Jan 2001 19:27:15 -0600 Subject: [Edu-sig] Exploring Bernoulli Numbers Message-ID: <003F1C3B.N22121@rsmi.com> Kirby writes - >"Math appreciation" means being able to follow what others >have done _without_ making the claim that you could or >should be able to do the same. We need to take away the >notion that the only math worth reading, playing with, >exploring, is math you have the capacity or ability to >reinvent yourself, from scratch, ab initio. I certainly also appreciate the point Kirby makes. And would like to give some emphasis to an analogous point. The same principal very much applies to programming. If we can get students to the point of being able to read source and understand the gist of how the code accomplishes what it does , we would be accomplishing a lot as educators. This despite the fact that creating that same code might be well beyond the current reach of that student. I for one could read Python code, well before I could write much of it. Seems the natural learning progression And brings other integrated curriculum possibilities to the table. Sort of the code as text concept I think I have raised before. ART From pdx4d@teleport.com Sun Jan 21 01:18:24 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sat, 20 Jan 2001 17:18:24 -0800 Subject: [Edu-sig] Exploring Bernoulli Numbers In-Reply-To: <003F1C3B.N22121@rsmi.com> Message-ID: <3.0.3.32.20010120171824.00a4dc00@pop.teleport.com> >I for one could read Python code, well before I could write much >of it. Same with learning French, English, Japanese... easier to track when native speakers are sourcing, than to source yourself. Yet valuable nevertheless, and good preparation for when you'll be able to stand and deliver. Little kids listen to adults and older people chatter for months and months, and that start to speak. In math, in programming, exposure to material that is well above your current level is important. We need curricula which do this, deliberately go "over your head" from time to time. This is as it should be -- no reason, in itself, to get frustrated and angry. Kirby From Arthur_Siegel@rsmi.com Mon Jan 22 20:24:44 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Mon, 22 Jan 2001 14:24:44 -0600 Subject: [Edu-sig] PyOpenGL 1.56 final Message-ID: <0040C4C3.N22121@rsmi.com> A public thanks to the current team of PyOpenGL maintainers/developers on the occassion of the release of PyOpenGL 1.5.6 final announced today. The subtly shaded realtime bouncing ball was picked up my Mike Fletcher and associates after a period of orphanage, and the folks had their priorities wonderfully in order - concentrating first on the install/build issues left over from 1.5.5, which had been exasperated by chasing a moving Python/Tcl/Tk. target. I could offer a long winded explanation as to why I think this is an appropriate forum to express gratitude for their efforts. But suffice it to say that IMO one needs not look beyond the PyOpenGL demos for effective and motivating CP4E material. ART From ANTIGEN_PDC_EXCHANGE@hsdrenthe.nl Tue Jan 23 14:50:10 2001 From: ANTIGEN_PDC_EXCHANGE@hsdrenthe.nl (ANTIGEN_PDC_EXCHANGE@hsdrenthe.nl) Date: Tue, 23 Jan 2001 15:50:10 +0100 Subject: [Edu-sig] Antigen forwarded attachment Message-ID: <6DFE6DA7C6EDD311AC17080009FE89300144CF97@PDC_EXCHANGE> This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C0854B.C915BBA0 Content-Type: text/plain Enclosed is your original file attachment from the message "[Edu-sig] GIS, CAD, and mapping daily news provided by Spatial News" sent to you by Jason Cunliffe (jasonic@nomadicsltd.com). ------_=_NextPart_000_01C0854B.C915BBA0 Content-Type: application/octet-stream; name="GIS, CAD, and mapping daily news provided by Spatial News.url" Content-Disposition: attachment; filename="GIS, CAD, and mapping daily news provided by Spatial News.url" [DEFAULT] BASEURL=http://spatialnews.geocomm.com/dailynews/2001/jan/11/news4.html [InternetShortcut] URL=http://spatialnews.geocomm.com/dailynews/2001/jan/11/news4.html Modified=20CE0B2C467CC001A8 ------_=_NextPart_000_01C0854B.C915BBA0-- From ANTIGEN_PDC_EXCHANGE@hsdrenthe.nl Tue Jan 23 14:50:08 2001 From: ANTIGEN_PDC_EXCHANGE@hsdrenthe.nl (ANTIGEN_PDC_EXCHANGE@hsdrenthe.nl) Date: Tue, 23 Jan 2001 15:50:08 +0100 Subject: [Edu-sig] Antigen forwarded attachment Message-ID: <6DFE6DA7C6EDD311AC17080009FE89300144CF91@PDC_EXCHANGE> This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C0854B.C7E21DA0 Content-Type: text/plain Enclosed is your original file attachment from the message "[Edu-sig] KineticsKit - A Physics-Based General 3D Mass-Spring System" sent to you by Markus Gritsch (gritsch@iue.tuwien.ac.at). ------_=_NextPart_000_01C0854B.C7E21DA0 Content-Type: application/octet-stream; name="KineticsKit.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="KineticsKit.zip" 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 ------_=_NextPart_000_01C0854B.C7E21DA0-- From sabren@manifestation.com Thu Jan 25 00:48:31 2001 From: sabren@manifestation.com (Michal Wallace) Date: Wed, 24 Jan 2001 19:48:31 -0500 (EST) Subject: [Edu-sig] Ms Lindquist Message-ID: Wow.. A while back I posted about using a socratic method to tutor students.. Ms Lindquist is along those lines: http://www.algebratutor.org/ Try answering her questions wrong... Cheers, - Michal ------------------------------------------------------------------------ www.manifestation.com www.sabren.net www.linkwatcher.com www.zike.net ------------------------------------------------------------------------ From twhittaker@columbus.rr.com Thu Jan 25 22:13:10 2001 From: twhittaker@columbus.rr.com (Todd Whittaker) Date: Thu, 25 Jan 2001 17:13:10 -0500 (EST) Subject: [Edu-sig] Proposing / defending Python in a curriculum Message-ID: Hello from a recent Python convert! I work as a professor at a local branch of a national technical college. For the past year, I've been struck by the sheer number of students who cannot formulate a solution to simple algorithmic problems. This is due in part to the sheer number of "buzz" languages that they're taught (Visual Basic, C, C++, Java, and Cobol), and the lack of depth in each of them (one semester each). The faculty here have recently been involved in changing the curriculum so that at most three languages (perhaps only 2) will be taught, and that we can now have some depth to them. I would like to propose that Python be used as the main OOP language for a 2.5 semester sequence. Thus, I have several questions that I'd like to ask of this community at large: 1. Have any college programs made such a "radical" switch from teaching a mainstream language (C++, Java) to Python specifically. I'm aware of the several Scheme based programs, but I'm interested in Python based success stories. I'm also aware of the work in Yorktown HS by Jeff Elkner. 2. Has anybody written up proposals that were presented to the powers-that-be concerning such a switch. This is what I need to do in order to spearhead this project. 3. Where is the data concerning the pedagogical effectiveness of Python over other more mainstream languages? I've looked at the CP4E pages, information about Alice, and TeachScheme, and nearly all of them generalize (and aren't Python-specific) 4. How can I overcome the prejudice of the Administration toward a non-mainstream language? My institution is exceptionally "market driven", and if there is no market for Python, it will be hard to sell, "Yes, but this makes better programmers who can easily switch to Java once they master algorithms." 5. Of course, there's the textbook problem. Is there a suitable textbook, complete with end-of-chapter review and exercise problems, transparencies, and testbanks? (Personally, I like making my own transparencies and tests, but other faculty members appreciate them.) Thanks for any feedback. -- Todd ------------------------------------------------------------- Todd A. Whittaker mailto:twhittaker@columbus.rr.com ------------------------------------------------------------- From senator@sgi.net Thu Jan 25 22:28:47 2001 From: senator@sgi.net (Bill Bradley) Date: Thu, 25 Jan 2001 17:28:47 -0500 Subject: [Edu-sig] Proposing / defending Python in a curriculum References: Message-ID: <3A70A89F.7F26E094@sgi.net> Todd Whittaker wrote: > 4. How can I overcome the prejudice of the Administration toward a > non-mainstream language? My institution is exceptionally "market > driven", and if there is no market for Python, it will be hard to > sell, "Yes, but this makes better programmers who can easily > switch to Java once they master algorithms." Ask them if they've ever heard of Google or Yahoo (both running under Python: Google exclusively and "Yahoo! People Search, Yellow Pages, Maps and Driving Directions to name a few" [according to Wesley Chun who is one of their programmers]) As for texts, Chun's book _Core Python Programming_ is a pretty heavy volume for a college text, you might want to look at O'Reilly's _Learning Python_ (which I've used with an intro programming course) and _Programming Python_ (which is aimed at more experienced users) The "open book" _How to Think Like a Computer Scientist: Python Edition_ is available online and is also a nice introduction. Bill New Castle High School Slippery Rock University From pdx4d@teleport.com Thu Jan 25 23:25:20 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 25 Jan 2001 15:25:20 -0800 Subject: [Edu-sig] Proposing / defending Python in a curriculum In-Reply-To: Message-ID: <3.0.3.32.20010125152520.00ae2bc0@pop.teleport.com> If you're allowing 2 languages, you could opt for Python & C/C++ (cheating?), thereby getting the benefit of Python for learning thought patterns and the OO paradigm (ala Eckel's upcoming 'Thinking in Python' [1]), then going forward in C to get a mainstream language. The benefit of this combo is of course that Python is written in C, so when learning C, having learned Python, you could learn how to extend Python in C. Of course Python & Java is another useful combo and there's a lot to be said for it, especially in light of Jython.[2] Students now have the CPython/C option and the Jython/Java option -- either of which'd be better than "just C" or "just Java" IMO. Kirby [1] http://www.eckelobjects.com/Python/ThinkingInPython.html [2] http://www.jython.org/ (Ver 2.0 released Jan 17, 2001) From phil@geog.ubc.ca Fri Jan 26 00:37:00 2001 From: phil@geog.ubc.ca (Phil Austin) Date: Thu, 25 Jan 2001 16:37:00 -0800 (PST) Subject: [Edu-sig] Proposing / defending Python in a curriculum In-Reply-To: References: Message-ID: <14960.50860.162593.784383@geog.ubc.ca> Todd Whittaker writes: > 1. Have any college programs made such a "radical" switch from > teaching a mainstream language (C++, Java) to Python specifically. > I'm aware of the several Scheme based programs, but I'm interested > in Python based success stories. I'm also aware of the work > in Yorktown HS by Jeff Elkner. this was posted to comp.lang.python this week: http://www.courses.fas.harvard.edu/~qr20/syllabus/syllabus.html Regards, Phil From liao@holycow.acusd.edu Sat Jan 27 01:17:49 2001 From: liao@holycow.acusd.edu (Luby Liao) Date: Fri, 26 Jan 2001 17:17:49 -0800 (PST) Subject: [Edu-sig] Proposing / defending Python in a curriculum In-Reply-To: <14960.50860.162593.784383@geog.ubc.ca> References: <14960.50860.162593.784383@geog.ubc.ca> Message-ID: <14962.8637.571842.884791@holycow.acusd.edu> I had an enormously successful experience of using Python as the primary language and Java as a complementary langauge in CS1 at the University of San Diego. This experience was presented at 1999 ORA Open Source Convention at Monterey. The conference paper can be found at http://www.acusd.edu/~liao/python.pdf I believe this 'radical' switch helped to de-mystify the myth that programming is hard. cheers, Luby --- Luby Liao, Department of Math/CS, University of San Diego, San Diego, CA 92110 (619)260-4021(O), (619)452-7644(H), (619)260-4293(fax) 'Twas brillig, and the slithy toves Did gyre and gimble in the wabe: All mimsy were the borogroves And the mome raths outgrabe -- L.C. > Todd Whittaker writes: > > 1. Have any college programs made such a "radical" switch from > > teaching a mainstream language (C++, Java) to Python specifically. > > I'm aware of the several Scheme based programs, but I'm interested > > in Python based success stories. I'm also aware of the work > > in Yorktown HS by Jeff Elkner. > > this was posted to comp.lang.python this week: > > http://www.courses.fas.harvard.edu/~qr20/syllabus/syllabus.html > > Regards, Phil > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > From binger@centre.edu Fri Jan 26 19:29:15 2001 From: binger@centre.edu (David Binger) Date: Fri, 26 Jan 2001 14:29:15 -0500 Subject: [Edu-sig] Proposing / defending Python in a curriculum References: <20010126170255.A2FD9EC34@mail.python.org> Message-ID: <3A71D00B.C4C1C2DC@centre.edu> Hi Python Educators, At Centre College, we made a change like this last fall. Our introductory course now uses python and subsequent courses will use java and/or python as seems appropriate. The main motivation for this change was to give more students more programming power earlier. When we taught C++ in the introductory course, I don't think nonmajors were going out and writing programs for themselves. With python, we think we are producing more students that enjoy programming more and feel more confident. Next fall, we will see how a class of python-trained programmers adapts to a data structures course that includes instruction in java. I hope and expect that that transition will be fairly smooth, but we won't know until we try it. As for the issue of a non-mainstream language, I think majors that know java (or C++) and python will not go hungry. I am sure that students with one course in python will be more powerful programmers than those with one course in C++. In my course, we used the VPython distribution, and the students had a blast creating little animated 3D scenes. David Binger Associate Professor of Computer Science Centre College Danville, Kentucky P.S. - I've used scheme in an introductory course before. Python is similarly easy for students, but they seem to appreciate it more. There is a new book, "Learn to Program Using Python," by Alan Gauld that might be useful as a text. I haven't seen it yet. All other books that I have seen seem to me to target a more sophisticated audience than I can expect in our introductory course. http://binger.centre.edu/classes/f00/cs17/syllabus.html From pdx4d@teleport.com Fri Jan 26 23:35:55 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Fri, 26 Jan 2001 15:35:55 -0800 Subject: [Edu-sig] Goofing with Groups In-Reply-To: <3A71D00B.C4C1C2DC@centre.edu> References: <20010126170255.A2FD9EC34@mail.python.org> Message-ID: <3.0.3.32.20010126153555.00ac4a10@pop.teleport.com> A Math Forum thread anchored at: http://www.mathforum.com/epigone/mathedu/swexprundwand is one we might call "Goofing with Group Theory" in that it's written as a cascade of error corrections -- but with each post getting closer to a fun little implementation of permutations and related operations, as typically found in group theory tomes. It attracted the attention of Ed Dubinsky, who is, I've learned, a long time exponent of "math through programming" (my lineage as well), harkening back to the SETL language, which perhaps had its hey day awhile back (but in some years, maybe we'll be looking back on Python in the same whistful way?). Anyway, in this vibrant present, given I travel light with only "carry on" modules (no major Python apps to my name), I decided to move to the bleeding edge this morning, somewhat impulsively, and blew away all my Pythons to go with the newest alpha 2.1. So now of course Numeric and PyOpenGL are busted (meaning PyGeo is down for the count) -- but I'm sure I'll get all my fave toys back in working order one of these days soon (probably I'll just go back and grab 2.0 again, now that I've realized the cost of upgrading -- I've got room for both under the same roof). Kirby PS: Anyone out there using SETL? The docs say UNIX and DOS, don't mention Linux and Windows, and so are showing their age. Not object oriented, designed to work with sets as a high level data structure, with interesting constructors for defining 'em, operators for combining 'em. From pdx4d@teleport.com Sat Jan 27 00:03:24 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Fri, 26 Jan 2001 16:03:24 -0800 Subject: [Edu-sig] Goofing with Groups In-Reply-To: <3.0.3.32.20010126153555.00ac4a10@pop.teleport.com> References: <3A71D00B.C4C1C2DC@centre.edu> <20010126170255.A2FD9EC34@mail.python.org> Message-ID: <3.0.3.32.20010126160324.007a47c0@pop.teleport.com> >It attracted the attention of Ed Dubinsky, who is, I've >learned, a long time exponent of "math through programming" >(my lineage as well), harkening back to the SETL language, >which perhaps had its hey day awhile back (but in some >years, maybe we'll be looking back on Python in the same >whistful way?). To be more fair, Dubinsky isn't using SETL but ISETL, and these seems to be more of a live proposition. There's a Windows version, and it's open right now in another window, with the graphing box right next to it. I'm looking forward to playing around. http://ppatten.ngc.peachnet.edu/finitetopology/fintop.htm What this has to do with Python is I always appreciate the opportunity to be influenced by the masters, as this will only improve my own writing in future. Even if I don't dive deeply into ISETL, I bet I'll learn some new "math through programming" techniques I can adapt to this environment. Kirby From tim.one@home.com Sat Jan 27 00:08:23 2001 From: tim.one@home.com (Tim Peters) Date: Fri, 26 Jan 2001 19:08:23 -0500 Subject: [Edu-sig] Goofing with Groups In-Reply-To: <3.0.3.32.20010126153555.00ac4a10@pop.teleport.com> Message-ID: [Kirby Urner] > ... > PS: Anyone out there using SETL? The docs say UNIX and > DOS, don't mention Linux and Windows, and so are showing > their age. Not object oriented, designed to work with > sets as a high level data structure, with interesting > constructors for defining 'em, operators for combining > 'em. SETL was developed in the late 1960s and early 70s, and like several languages developed then, is still decades ahead of its time <0.9 wink>. Of particular interest to you is ISETLW, a variant of ISETL developed for Windows (hence the "W"), which is in turn an interactive (hence the "I") variant of SETL: http://csis03.muc.edu/isetlw/isetlw.htm ISETLW was (still is? don't know) used in the Perdue Calculus Reform Project, "a pedagogical approach based on a constructivist theoretical perspective of how mathematics is learned" (which I paraphrase as "imagine that, people learn by doing!?"). There are links to that project on the ISETLW home page above, although it doesn't look like the pages they point to have been updated in years. David Bacon probably maintains the best set of pages about the current state of SETL, here: http://www-robotics.eecs.lehigh.edu/~bacon/ In undiluted form, SETL may be the closest thing to an "ultra high level" programming language I've seen. Any language in which "om" is a reserved word *must* be ultra high level . passionate-affairs-are-great-python-will-still-be-here-faithfully- awaiting-your-return-ly y'rs - tim From guido@digicool.com Sat Jan 27 03:28:23 2001 From: guido@digicool.com (Guido van Rossum) Date: Fri, 26 Jan 2001 22:28:23 -0500 Subject: [Edu-sig] Goofing with Groups In-Reply-To: Your message of "Fri, 26 Jan 2001 19:08:23 EST." References: Message-ID: <200101270328.WAA28026@cj20424-a.reston1.va.home.com> > SETL was developed in the late 1960s and early 70s, and like several > languages developed then, is still decades ahead of its time <0.9 > wink>. At this point (i.e. whenever SETL is mentioned :-) I insert something like this into the message stream: Python's roots were influenced (indirectly) by SETL. Remember that Python was derived from ABC. Lambert Meertens, ABC's main designer, spent a sabbatical year in New York City working with some SETL folks. (I believe the same folks who wrote the first validated Ada compiler -- in SETL. It took forever to compile "hello world", but it was the first compiler that received DoD validation. So there.) Anyway, Meertens was inspired by some of SETL's data structures, and claims to have written a SETL program that helped him evaluate the effectiveness of various combinations of primitive data structures, to come up with the ideal set of primitive data structures for ABC. I guess the program proved that sorted lists plus sorted dictionaries could do anything, when combined with numbers, strings and fixed-size tuples. --Guido van Rossum (home page: http://www.python.org/~guido/) From Jonathan Pennington Sat Jan 27 05:31:25 2001 From: Jonathan Pennington (Jonathan Pennington) Date: Sat, 27 Jan 2001 00:31:25 -0500 Subject: [Edu-sig] Re: Proposing/defending Python Message-ID: <20010127003125.C57146@coastalgeology.org> Here at the College of Charleston, Java is pretty much it for the official classes in the Computer Science department, at least where high level languages are concerned. I *am* however starting an informal course in the geology department (other sciences welcome), on intro programming for student scientists, all in Python. The department chair is excited about it, as well as a number of students *and* faculty who want to take it. All it took was a small demo of Python programming to get the ball rolling. It's a pretty serious ball, too, when you consider that faculty want to take this course, taught by me, an undergrad. Python's getting at least a good start here :-). -J -- Jonathan Pennington | http://coastalgeology.org Site Manager | Protection and stewardship CoastalGeology.Org (CGO) | through public education. john@coastalgeology.org | Join CGO, make a difference. From jasonic@nomadicsltd.com Sat Jan 27 08:29:28 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Sat, 27 Jan 2001 03:29:28 -0500 Subject: [Edu-sig] PyGLUT + Blender update Message-ID: <001501c0883b$440ca020$c3090740@megapathdsl.net> Well Happy New Year of The Snake to you all I am sorry if this is old or offedutopic news.. but I really thought you might appreciate to hear that the good work continues in the strangely feverish world of Blender developers and fans. http://www.blender.nl The new Game Blender v2.++ is attracting a lot of people initially make [doh] games+ 3Danimation. But soon they start asking about Python..sucked in by itse spell, promise and potential ;-) Seems to be gaining an especiatl following in the UK, Holland, Germany and France [The E-connection perhaps?] some links to browse.. a french site http://blender.free.fr/docs/didac1.htm an article in German on Python programming for Blender http://www.linux-magazin.de/ausgabe/2000/04/Blender/blender4.html exporting blender to other renderers http://www.q-bus.de/Blender/ Complete Blender - Python Script introduction [site is 'bilangue' = French + English!] Truly this is an excellent site - there is a so much here to consider. A valuable resource to demonstrate and motivate any Python class; how scripting languages connect to other program environments etc. http://jmsoler.free.fr/didactitiel/blender/tutor/english/python_script00.htm Lovely Potatoids!! http://jmsoler.free.fr/didactitiel/blender/tutor/english/python_script05.htm tesselate - eat your hearts out. http://jmsoler.free.fr/didactitiel/blender/tutor/python_wireshadows.htm http://jmsoler.free.fr/didactitiel/blender/tutor/english/index_prog_python.h tm Two key people in the Python-Blender work: 'jan' [the guy at Nan responsible for digging in deep to create for Blender a truly useful Python API] and 'tHe-IcemAn' [a master Blender user with some great tutorials and fan of PyGLUT http://205.152.62.12/gruff/ http://blender.free.fr/docs/didactic/iceman/index-ice.htm Also there is a very nice new beginners Blender book out from the lively 'No-Starch Press' http://www.nostarch.com/?blender Deutschsprachige Informationen zu Blender und dem Buch gibt es auf: http://www.blenderbuch.de/ Nan's revised tutuorial/books for v2 are due out soon too: http://www.blender.nl/showitem.php?id=103 http://www.blender.nl/shop/tuto2/index.html and an interesting book of Blender art by Shigeto Maeda http://www.blender.nl/shop/kara/index.html enjoy -Jason ___________________________________________________________ Jason CUNLIFFE = NOMADICS['Interactive Art and Technology'] From jasonic@nomadicsltd.com Sat Jan 27 08:44:15 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Sat, 27 Jan 2001 03:44:15 -0500 Subject: [Edu-sig] PyGLUT + Jan Walter's new Blsnder Python API documentation Message-ID: <000901c0883d$54a42500$c3090740@megapathdsl.net> oops.. I forgot to include these in my previous Blender post PyGlut PyGlut makes GLUT available from the Python interpreter. It exposes everything from GLUT 3.7 including the API version 4 stuff related to games (fullscreen modes for example). Most importantly, it allows Python functions to be registered as callbacks. http://www.users.globalnet.co.uk/~acox/PyGlut/index.html Some discussion about PyGLUT and on Blender site http://www.blender.nl/discussion/read.php?f=4&i=5375&t=5318 Jan Walter's Blender Pages This web page is intended to share experience with others about using Blender as an animation tool and for making games. In July 2000 I joined the Not a Number team and I moved to London (UK) in October 2000. http://www.janw.gothere.uk.com/ Documentation At Not a Number (NaN) I'm responsible for the Python API of Blender which can be used for writting plug-ins or export/import filters. The latest news and discussions about Python & Plugins can be found at NaN's discussion server. http://www.janw.gothere.uk.com/documentation.html Developer Documentation for the Python API (PDF version) [4-Jan-2001] Python API for using Blender as a modeling and animation tool (PDF version) [4-Jan-2001] Python API for the game engine (PDF version) [4-Jan-2001] Modeling and Animation http://www.janw.gothere.uk.com/PythonAPI/node2.html Subsections Importing the Blender Module Printing the Documentation Strings Writing an Export Script Game Engine http://www.janw.gothere.uk.com/PythonAPI/node6.html If you want to control the game flow of the game engine by writing Python scripts the process to write or load your script is exactly the same as described in section 1.1. But to execute the script you need to make a link e.g. to a PythonController in the game engine. The game is started by pressing the PKEY and the script is executed every time when the sensors connected to the PythonController shoot. - Jason ___________________________________________________________ Jason CUNLIFFE = NOMADICS['Interactive Art and Technology'] From jasonic@nomadicsltd.com Sat Jan 27 08:51:31 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Sat, 27 Jan 2001 03:51:31 -0500 Subject: [Edu-sig] molten Mandelbrot birthday cake! Message-ID: <001101c0883e$58c79a80$c3090740@megapathdsl.net> http://jmsoler.free.fr/didactitiel/blender/tutor/english/python_script06.htm [link to blender file at end of page] - Jason From jasonic@nomadicsltd.com Sat Jan 27 08:57:15 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Sat, 27 Jan 2001 03:57:15 -0500 Subject: [Edu-sig] What's Blender go to do with it Message-ID: <001c01c0883f$25965420$c3090740@megapathdsl.net> http://www.users.globalnet.co.uk/~acox/index.html Andrew Cox Welcome to my home page. Right now I have two things for you to look at. There is my (voxel modeling / volume sculpting / ...) tool Cavernosa and my Python binding for GLUT PyGlut. My main interest in life is programming, primarily in relation to 3d graphics and games. A current enthusiasm is the free 3d modeling. animation and rendering package Blender. If you don't know it, you should definitely check it out. It runs on most operating systems out there including Linux and MS Windows. Be warned however that it has an extremely steep learning curve. After a bit of initial effort, using it does become very natural in the end. At the end of december 2000 there was a release with a very capable new game engine included. Some headline features include Physics done by a former GDC speaker on collision detection and Python integrated into the game logic. For programmers, Blender includes the Python interpreter, exposing a full OpenGL binding as well as GUI componants and access to internals such as meshes, lamps etc. This makes it a great environment for the compositional programming paradigm where the main part of your application is in compiled loadable modules (DLLs on MS Windows) and the high level 'glue' such as a GUI is in a scripting language, so can be changed without recompilation. See Cavernosa for an example of this in action. I am interested in talking to any indie game developers and indie game publishers in the UK as well as any talented 3d modelers and other potential developers in London. How to Reach Me Email is your best bet: acox@globalnet.co.uk. ..'nuff said? - Jason ___________________________________________________________ Jason CUNLIFFE = NOMADICS['Interactive Art and Technology'] From tim.one@home.com Sat Jan 27 07:04:53 2001 From: tim.one@home.com (Tim Peters) Date: Sat, 27 Jan 2001 02:04:53 -0500 Subject: [Edu-sig] Goofing with Groups In-Reply-To: <200101270328.WAA28026@cj20424-a.reston1.va.home.com> Message-ID: [Guido, mentions Python's indirect connection to SETL, via Lambert Meertens and ABC] Guido (and everyone else only optionally ), you *have* to take a few minutes to check out David Bacon's 1997 survey paper, "SETL for Data Processing on the Internet" (confusingly, this has the same title as his later doctoral dissertation, which is also on this site): http://www-robotics.eecs.lehigh.edu/~bacon/survey-pap/survey-pap.html At http://www-robotics.eecs.lehigh.edu/~bacon/survey-pap/node2.html in particular, you'll find Python, ABC, Lambert and you mentioned *by name* . Oddly, though: Indeed, in the realm of data processing, SETL still has no peer. Its closest competitor is probably Python, an object-oriented language that in terms of CWI's support might fairly be called the successor to ABC. Semantically, Python has many of the same high-level conveniences as SETL, though it falls short of SETL's abhorrence of pointers. We really have to do something about all those pointers . I think he's obliquely referring to SETL's (like ABC's) "by value" semantics, but phrasing it misleadingly. Syntactically, however, it is rather a mess, Don't worry, Lispers hate SETL's syntax too <0.5 wink -- and Bacon returns the favor>. and has nothing like the set formers that give SETL so much of its flavor. It does now (i.e., Python 2.0's list comprehensions were adapted from Haskell, which in turn borrowed them from SETL). SETL was gloriously innovative, and still worthy of study. it's-a-small-world-if-not-entirely-a-vicious-one-ly y'rs - tim From dyoo@hkn.eecs.berkeley.edu Sat Jan 27 10:32:49 2001 From: dyoo@hkn.eecs.berkeley.edu (Danny Yoo) Date: Sat, 27 Jan 2001 02:32:49 -0800 (PST) Subject: [Edu-sig] WordNet Message-ID: I don't know if anyone's seen this already: Princeton's Cognitive Science Lab has been developing a very nice project called WordNet: http://www.cogsci.princeton.edu/~wn/ It's an extremely nice dictionary-like program that also shows relations between words. Python bindings for WordNet have been written here: http://www.cs.brandeis.edu/~steele/sources/wordnet-python.html What interests me about it is that it lets me play around with words effortlessly, and it's definitely one of the tools that I regularly use. It would be interesting to see if WordNet could be used in a CP4E curriculum --- it would offer a change of pace from doing "mathy" stuff, and it would allow students to explore a natural language with a computer language. From Arthur_Siegel@rsmi.com Sat Jan 27 17:33:40 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Sat, 27 Jan 2001 11:33:40 -0600 Subject: [Edu-sig] RE: Goofing with Groups Message-ID: <0042BC2F.N22121@rsmi.com> >and blew away all my Pythons to go >with the newest alpha 2.1. Couldn't resist a stab at the rich comparison overloading possibilities, I suspect. Looking forward to it myself. ART From pdx4d@teleport.com Sat Jan 27 17:18:34 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sat, 27 Jan 2001 09:18:34 -0800 Subject: [Edu-sig] RE: Goofing with Groups In-Reply-To: <0042BC2F.N22121@rsmi.com> Message-ID: <3.0.3.32.20010127091834.00ad4210@pop.teleport.com> At 11:33 AM 01/27/2001 -0600, Arthur_Siegel@rsmi.com wrote: >>and blew away all my Pythons to go >>with the newest alpha 2.1. > >Couldn't resist a stab at the rich comparison overloading possibilities, I >suspect. Exactly right. I'd just written a method to compare two objects based on the contents of their respective dictionaries and finding __cmp__ wasn't behaving intuitively for me. I starting ploughing through the docs looking for something like __eq__ that'd let me reference == specifically. Then a few hours later, I was back reading "What's New in 2.1" and there it was. So you'll find in my final post to the 'goofing' thread: "I also just this morning downloaded Python 2.1 alpha, which for the first time allows me to override the symbol == (comparison for equality) specifically, and this allows me to further improve the readability/intuitiveness of the source code. So now the dialog looks like this (more like a standard text book on group theory, permutations chapter): >>> from clubhouse import * >>> p1 = S(10) # random permutation of integers 1...10 >>> p2 = S(10) >>> p3 = S(10) # note: I changed class name from P to S >>> p1 [(10, 3, 2, 6, 5, 8, 4, 1), (9, 7)] >>> p1.order() # the order of p1 8 >>> p1**8 # p1**p1.order() = identity element [] <>" >Looking forward to it myself. > >ART Yes, I haven't tried all the new features yet, even the main ones. I've built up quite a little nest of mathish utilities. A year ago I'd have never been able to write a post which included info like this (shared that with some math teachers last night): sqrt(2) = 1.41421356237309504880168872420969+-2 941664/665857 = 1.414213562371500+-1 77227930/54608393 = 1.41421356237309528592+-2 519435045698/367296043199 = 1.414213562373095048801693965672+-1 Kirby From jasonic@nomadicsltd.com Mon Jan 29 07:42:57 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Mon, 29 Jan 2001 02:42:57 -0500 Subject: [Edu-sig] HORACE 11.2 - Less Is More The Secret of Being Essential Message-ID: <000801c089c7$199eab20$c3090740@megapathdsl.net> This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C0899D.3049FD40 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit http://www.essentialschools.org/pubs/horace/11/v11n02.html#sidebar1 Changes in Instructional Practice in Grades 9-12 Math Increased Attention to: The active involvement of students in constructing and applying mathematical ideas Problem solving as a means as well as a goal of instruction Questioning techniques that promote student interaction The use of a variety of instructional formats (small groups, individual explorations, peer instruction, class discussions, project work) The use of calculators and computers as tools for learning and doing mathematics Student communication of mathematical ideas orally and in writing The establishment and application of the interrelatedness of mathematical topics The systematic maintenance of student learnings and embedding review in the context of new topics and problem situations The assessment of learning as an integral part of instruction Decreased Attention to: Teacher and text as exclusive sources of knowledge Rote memorization of facts and procedures Extended periods of individual seatwork practicing routine tasks Instruction by teacher exposition Paper-and-pencil manipulative skill work The relegation of testing to an adjunct role with the sole purpose of assigning grades ------=_NextPart_000_0005_01C0899D.3049FD40 Content-Type: application/octet-stream; name="HORACE 11.2 - Less Is More The Secret of Being Essential.url" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="HORACE 11.2 - Less Is More The Secret of Being Essential.url" [DEFAULT] BASEURL=http://www.essentialschools.org/pubs/horace/11/v11n02.html [InternetShortcut] URL=http://www.essentialschools.org/pubs/horace/11/v11n02.html#sidebar1 Modified=809107EDC689C00115 ------=_NextPart_000_0005_01C0899D.3049FD40-- From Jonathan Pennington Mon Jan 29 13:27:02 2001 From: Jonathan Pennington (Jonathan Pennington) Date: Mon, 29 Jan 2001 08:27:02 -0500 Subject: [Edu-sig] lesson plans? Message-ID: <20010129082702.A16119@coastalgeology.org> Well, It looks like I'll soon be teaching Python in middle school *and* college. I was going through my "Learning Python" book (O'Reilly) and putting together some preliminary lesson plans when I thought that others might have some. Of course, we will all have different styles and angles, but they're only guides after all. I was also going to put together a lab-based learning manual for the middle school over the summer. It will be geared specifically to students around the 7-9 grade range, and hopefully run, start to finish, through an actual large programming task so that there is a definite finished product at the end of the year/cycle. This is to prevent the necessity of books, which we saddly cannot afford. Is anyone else planning something similiar? I'm going to write it in LaTeX and place it online in ps, pdf, and html. I know that there are alot of manuals online already, but with no offense to the authors, my middle school kids just don't "get it" when reading them. This book will be written *with* middle school kids. Collaboration is very welcome. -J -- Jonathan Pennington | http://coastalgeology.org Site Manager | Protection and stewardship CoastalGeology.Org (CGO) | through public education. john@coastalgeology.org | Join CGO, make a difference. From gritsch@iue.tuwien.ac.at Tue Jan 30 22:22:57 2001 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Tue, 30 Jan 2001 23:22:57 +0100 Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now ... Message-ID: <002101c08b0b$33246c20$2f442fd5@telekabel.at> Hi! I wrote to Jacopo Pantaleoni (jp@lightflowtech.com), the creator of the Lightflow rendering engine (http://www.lightflowtech.com/), if he would recompile the Python bindings for Python 2.0. This was about two weeks ago, but until now I got no answer. Maybe more individuals of us should ask him about this, to give him the feeling of enough interest in having bindings for Python 2.0 available. Be well, Markus From jasonic@nomadicsltd.com Tue Jan 30 22:41:56 2001 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Tue, 30 Jan 2001 17:41:56 -0500 Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now ... References: <002101c08b0b$33246c20$2f442fd5@telekabel.at> Message-ID: <008a01c08b0d$d9f01700$c3090740@megapathdsl.net> Markus Thanks for the strategic lobbying tip :-) Meanwhile, I would love to hear what you have done and/or woudl liek to do with lightflow. cheers >>> Jason ___________________________________________________________ Jason CUNLIFFE = NOMADICS['Interactive Art and Technology'] ----- Original Message ----- From: Markus Gritsch To: Sent: Tuesday, January 30, 2001 5:22 PM Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now ... > Hi! > > I wrote to Jacopo Pantaleoni (jp@lightflowtech.com), the creator of the > Lightflow rendering engine (http://www.lightflowtech.com/), if he would > recompile the Python bindings for Python 2.0. This was about two weeks ago, > but until now I got no answer. Maybe more individuals of us should ask him > about this, to give him the feeling of enough interest in having bindings > for Python 2.0 available. > > Be well, Markus From gritsch@iue.tuwien.ac.at Tue Jan 30 22:56:01 2001 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Tue, 30 Jan 2001 23:56:01 +0100 Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now ... References: <002101c08b0b$33246c20$2f442fd5@telekabel.at> <008a01c08b0d$d9f01700$c3090740@megapathdsl.net> Message-ID: <003801c08b0f$d1bd7a80$2f442fd5@telekabel.at> > Meanwhile, I would love to hear what you have done and/or woudl liek to do > with lightflow. Well, I was thinking of adding some class(es) to my KineticsKit VPython toy (http://stud4.tuwien.ac.at/~e9326522/KineticsKit/) to produce some *VERY* high quality renderings. OpenGL is ok, and a neccessarity for realtime tasks like interaction with the spring-mass-system, but there is certainly a difference between an OpenGL scene and something Lightflow can produce (http://www.lightflowtech.com/images/bspline2_b.jpg, http://www.lightflowtech.com/images/bspline3_b.jpg, http://www.lightflowtech.com/images/bspline5_b.jpg). If you want, you can take a look at an MPEG made with a previous version of KineticsKit by writing about 400 PovRay scene files: http://stud4.tuwien.ac.at/~e9326522/schwing/15x15_tense10x_SteelBorders_visc osity.mpeg http://stud4.tuwien.ac.at/~e9326522/schwing/11x11_relaxed_fixedBorder.mpeg and http://stud4.tuwien.ac.at/~e9326522/schwing/11x11_relaxed_looseBorder.mpeg are also a bit interesting and nice to watch. Enjoy, Markus From Arthur_Siegel@rsmi.com Wed Jan 31 00:45:07 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Tue, 30 Jan 2001 18:45:07 -0600 Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now Message-ID: <0043B48F.N22121@rsmi.com> >I wrote to Jacopo Pantaleoni (jp@lightflowtech.com), the creator of the >Lightflow rendering engine (http://www.lightflowtech.com/), if he would >recompile the Python bindings for Python 2.0. I will do the same. >Well, I was thinking of adding some class(es) to my KineticsKit VPython toy I am in the process of doing the same with Lightflow for my PyGeo toy. Good fun, but it *is* frustrating to be stuck on 1.5.2. I'm kind of assuming that Jacopo will get around to getting Lightflow Python bindings up-to- date, but who knows. Looked at the Povray site recently. There was an indication that a major rewrite of its scripting will be undertaken, which will not be backwards compatible. The developers specifically announced that they are not ready to accept public comment, suggestions about it at this time. But I have a great idea for them, when they're ready.... ART From guido@digicool.com Wed Jan 31 00:15:41 2001 From: guido@digicool.com (Guido van Rossum) Date: Tue, 30 Jan 2001 19:15:41 -0500 Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now ... In-Reply-To: Your message of "Tue, 30 Jan 2001 23:22:57 +0100." <002101c08b0b$33246c20$2f442fd5@telekabel.at> References: <002101c08b0b$33246c20$2f442fd5@telekabel.at> Message-ID: <200101310015.TAA30011@cj20424-a.reston1.va.home.com> > Hi! > > I wrote to Jacopo Pantaleoni (jp@lightflowtech.com), the creator of the > Lightflow rendering engine (http://www.lightflowtech.com/), if he would > recompile the Python bindings for Python 2.0. This was about two weeks ago, > but until now I got no answer. Maybe more individuals of us should ask him > about this, to give him the feeling of enough interest in having bindings > for Python 2.0 available. > > Be well, Markus Is there a reason why someone else can't do this? Is this close source? --Guido van Rossum (home page: http://www.python.org/~guido/) From guido@digicool.com Wed Jan 31 00:21:40 2001 From: guido@digicool.com (Guido van Rossum) Date: Tue, 30 Jan 2001 19:21:40 -0500 Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now In-Reply-To: Your message of "Tue, 30 Jan 2001 18:45:07 CST." <0043B48F.N22121@rsmi.com> References: <0043B48F.N22121@rsmi.com> Message-ID: <200101310021.TAA30058@cj20424-a.reston1.va.home.com> > I am in the process of doing the same with Lightflow for my PyGeo toy. > Good fun, but it *is* frustrating to be stuck on 1.5.2. Is Lightflow available as a shared library? In that case it will issue a warning about incompatible API versions when you use it from Python 2.0, but in actuality it's likely that it doesn't use any of the changed APIs, so it'll actually work just fine. Of course, this is for Unix or Linux; for Windows, the Python DLL name is (unfortunately?) compiled into extensions... --Guido van Rossum (home page: http://www.python.org/~guido/) From gritsch@iue.tuwien.ac.at Wed Jan 31 09:53:12 2001 From: gritsch@iue.tuwien.ac.at (Markus Gritsch) Date: Wed, 31 Jan 2001 10:53:12 +0100 Subject: [Edu-sig] no Python 2.0 bindings for Lightflow until now ... References: <002101c08b0b$33246c20$2f442fd5@telekabel.at> <200101310015.TAA30011@cj20424-a.reston1.va.home.com> Message-ID: <3A77E088.F427696C@iue.tuwien.ac.at> Guido van Rossum wrote: > Is there a reason why someone else can't do this? Is this close > source? Yes, unfortunately closed source. > Is Lightflow available as a shared library? In that case it will > issue a warning about incompatible API versions when you use it from > Python 2.0, but in actuality it's likely that it doesn't use any of > the changed APIs, so it'll actually work just fine. > > Of course, this is for Unix or Linux; for Windows, the Python DLL name > is (unfortunately?) compiled into extensions... I am currently doing the coding on Win32, because the usage and installation of VPython is much easier on this platform, and for me OpenGL runs smoother on Win32 (which is a shame). Kind regards, Markus