From Scott.Daniels at Acm.Org Tue Nov 1 14:08:17 2005 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Tue, 01 Nov 2005 05:08:17 -0800 Subject: [Edu-sig] Python as Application In-Reply-To: <000301c5de21$934f9340$1702a8c0@BasementDell> References: <000001c5dda5$419b3440$1702a8c0@BasementDell> <000301c5de21$934f9340$1702a8c0@BasementDell> Message-ID: Arthur wrote: > .... One of the things I *did* do is develop > my own kind of test suite - having come to understand the importance of > doing so, for a futzer. On the other hand there isn't that there are > significant tests being passed now that wouldn't have been passed in an > earlier iteration. The tests are there mostly as an assurance that my > refactoring does not have me going backward. But offer no particular clue > about how to go forward. So, my kneejerk reaction to test based development > is some fear that it would lead to a development style that makes passing > tests good enough. On the other hand, I don't fully understand the workflow > that test based development recommends and where it leads. You'd have a lot of fun talking with Ward for a day. I am not completely sold on test-driven development myself, but I lean there which is why I call my current style test-forward. By that I mean I put the tests as early in the process as I can stand. Two things that _are_ important in Ward's ideas and mine are: start with tests that fail and make them work. It is _shockingly_ easy to make a test that accidentally succeeds even in the face of bad code. More than once I've written a bad test, and eventually figured out that the test itself is bad. > When I do commercial work I have a pretty good idea where "good enough" is - > would the client (who doesn't really understand my process) want to pay for > further refinement (if they did understand my process). When I come to a > "no" - I stop. It's never that there aren't further refinements that could > be accomplished. In the for-money world, there are two other things Ward advocates. You break the work into tiny _costed_ chunks, some of which produce customer-visible results (and, perhaps) some of which do not). The ones you cannot make customer-visible get tied as pre-requisites to customer-visible chunks. You then let the customer choose what to work on next. The tests help confirm you are moving forward, not around. The estimates change, but the customer is tied in enough that he sees the new estimates each round. His choices are rarely the order you would choose, but they are his choices, not yours. Generally you try to make the chunks reflect equal amounts of work that are quickly terminable (half-day or day, for example). If you don't complete a task, you either put it back in the pile or (more likely) make new subtasks that finish this work. You track both your over-all progress, and the speed at which you dispatch tasks. You start calling your progress "four cards per week," for example. Your customer comes to see you hitting your estimates, and trusts the process more. You get better at estimating and teasing out prerequisites. You can even include tasks that are "break the goal into tasks" if the estimate is too shaky for your tastes. A couple of things I like about this model: it keeps you honest in promising what will happen, and it keeps your customer honest in that he is not asking for "free" work -- only costed trade-offs are available to choose from. --Scott David Daniels Scott.Daniels at Acm.Org From urnerk at qwest.net Tue Nov 1 17:03:28 2005 From: urnerk at qwest.net (Kirby Urner) Date: Tue, 1 Nov 2005 08:03:28 -0800 Subject: [Edu-sig] Python as Application In-Reply-To: <483798444.20051031124046@freshsources.com> Message-ID: <20051101160408.EF66D1E4009@bag.python.org> > That's fine, but call a spade a spade. I don't like seeing technical > programs masquerading as bachelor's degrees. We have plenty of > technical colleges people can go to for that sort of thing. It's the > deception I object to. > > -- > Best regards, > Chuck Fair enough, though I also find academia's nomenclature somewhat broken, as well as medieval. All these "philosophy doctors" (weird). Employers have to look well beyond just the degree stuff, to get a sense of what a candidate might actually know or be able to do. Kirby From chuck at freshsources.com Tue Nov 1 18:15:06 2005 From: chuck at freshsources.com (Chuck Allison) Date: Tue, 1 Nov 2005 10:15:06 -0700 Subject: [Edu-sig] Python as Application In-Reply-To: <483798444.20051031124046@freshsources.com> References: <483798444.20051031124046@freshsources.com> Message-ID: <872442028.20051101101506@freshsources.com> Hello Kirby, Tuesday, November 1, 2005, 9:03:28 AM, you wrote: >> That's fine, but call a spade a spade. I don't like seeing technical >> programs masquerading as bachelor's degrees. We have plenty of >> technical colleges people can go to for that sort of thing. It's the >> deception I object to. >> >> -- >> Best regards, >> Chuck KU> Fair enough, though I also find academia's nomenclature somewhat broken, as KU> well as medieval. All these "philosophy doctors" (weird). And I agree 100%! I am a dissertation away from a Ph.D. with no plans of finishing. I was a developer for 20+ years. The college I teach at is student-centered. We a yet offer only 2 and 4-year degrees. My favorite book on all of this is "Killing The Spirit: Higher Education in America". I highly recommend it. KU> Employers have to look well beyond just the degree stuff, to get a sense of KU> what a candidate might actually know or be able to do. And they do, of course. The degree promises some breadth, which is important. Probing interviews and meaningful references clinch the deal. -- Best regards, Chuck From urnerk at qwest.net Wed Nov 2 03:06:35 2005 From: urnerk at qwest.net (Kirby Urner) Date: Tue, 1 Nov 2005 18:06:35 -0800 Subject: [Edu-sig] Reading ahead... (tech future, background) Message-ID: <20051102091316.E4A131E4002@bag.python.org> At the risk of straying from matters Pythonic (IronPython would be the implicit link), I thought I'd say a few words about where Microsoft is going, and to some extent Mono i.e. .NET on Linux. A core technology is an XML for coding a UI (user interface), that'll be rendered using vector graphics ala SVG (scalable vector graphics), meaning the size of your monitor won't matter, you can zoom in, fly through and so on (more like in VRML and OpenGL games). This core tech is known as XAML. In XAML, you specify widgets in terms of objects, and point these back to code, possibly written in Python (most current examples use C#). Developer tools (like Visual Studio) will generate the XAML automatically, after the widgets have been arranged on a canvas, properties defined through the IDE. As with XUL (Mozilla's UI XML) the resulting application needn't look like it's in a browser window. You'll get things that look like regular thick client apps. The widgets will be native to the OS. The code might be on the local hard drive or on a server someplace, with a sandbox to keep things secure. Of course Microsoft is building a lot of tools designed to work only on Windows (Vista comes out late 2006?), plus a new file system (WinFS) that'll make it harder for tools like Samba to integrate (getting on to another topic -- need to do more reading here). I salute Novell and Miguel in particular for wanting to keep this nextgen technology more cross platform and open source. Microsoft is filing any number of patents, perhaps thinking to crush any open source initiative if it feels it needs to. C# 3.0 is in the works. Kirby Related reading: http://mono.myrealbox.com/source/trunk/mcs/tools/xamlc/README From ajsiegel at optonline.net Wed Nov 2 15:42:54 2005 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Nov 2005 09:42:54 -0500 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. Message-ID: <000001c5dfbb$b6ae45c0$1702a8c0@BasementDell> A business trip had me passing through New Haven. As a lover of books, and therefore bookstores, I took the opportunity to stop to look for a bookstore near the Yale campus - figuring I would find a bookstore with significantly more depth than those to which I normally have access. I was right. I will make this short. Without a question (IMO) - the least interesting section of the bookstore was the Computer area. Hundreds of how-tos on the commercial technologies currently hot. The end. Nothing worth talking about that precedes the current hot technologies - one would conclude from the book selection. Why would anyone spend $40,000 a year to study how-tos of technologies that will be obsolete by the time they are 30 - if not before. Its not even in the running as something worth considering. I am no more an intellectual than I am a comedian. But give me a good stand-up, or a facile, learned mind to try to follow and digest. Programming as an academic subject area is *way*, *way* off track - to the extent my little browse of yesterday was indicative of anything - which I do believe it was. Art From ajsiegel at optonline.net Wed Nov 2 18:42:10 2005 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Nov 2005 12:42:10 -0500 Subject: [Edu-sig] Reading ahead... (tech future, background) In-Reply-To: <20051102091316.E4A131E4002@bag.python.org> Message-ID: <000301c5dfd4$c12dc430$1702a8c0@BasementDell> > Behalf Of Kirby Urner > Sent: Tuesday, November 01, 2005 9:07 PM > To: edu-sig at python.org > Subject: [Edu-sig] Reading ahead... (tech future, background) > > At the risk of straying from matters Pythonic (IronPython would be the > implicit link), I thought I'd say a few words about where Microsoft is > going, and to some extent Mono i.e. .NET on Linux. Yeah - we know you like .Net. The great things about new things is that the hype is upfront, and the dossier on the downside takes time to develop. We get to be in love for a while. Eventually one thing catches up to another. The tech scene seems to me almost akin to a dating scene. Maybe there is a gender clue in here somewhere - women tending to be more sophisticated on these matters, and valuing constancy more. There was - even to myself - something a bit "boys being boys" about the computer section of the bookstore I visited. What web framework are the boys pollinating this week? Art From urnerk at qwest.net Wed Nov 2 19:18:03 2005 From: urnerk at qwest.net (Kirby Urner) Date: Wed, 2 Nov 2005 10:18:03 -0800 Subject: [Edu-sig] Reading ahead... (tech future, background) In-Reply-To: <000301c5dfd4$c12dc430$1702a8c0@BasementDell> Message-ID: <20051102181805.80C671E4002@bag.python.org> > > At the risk of straying from matters Pythonic (IronPython would be the > > implicit link), I thought I'd say a few words about where Microsoft is > > going, and to some extent Mono i.e. .NET on Linux. > > Yeah - we know you like .Net. > Or if I don't, so what? You seem to stop at "like/don't like" as if that's what really matters most. How about just focusing on what something *is*, whether you like it or not? Why should anyone care if "Kirby likes .NET" -- I know I don't (care). Kirby From john.zelle at wartburg.edu Wed Nov 2 19:38:03 2005 From: john.zelle at wartburg.edu (John Zelle) Date: Wed, 02 Nov 2005 12:38:03 -0600 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. In-Reply-To: <000001c5dfbb$b6ae45c0$1702a8c0@BasementDell> References: <000001c5dfbb$b6ae45c0$1702a8c0@BasementDell> Message-ID: <4369078B.2070203@wartburg.edu> Arthur wrote: > A business trip had me passing through New Haven. As a lover of books, and > therefore bookstores, I took the opportunity to stop to look for a bookstore > near the Yale campus - figuring I would find a bookstore with significantly > more depth than those to which I normally have access. > I'm a big bookstore fan too. It's the best place to go when you want to learn about some hot new technology ;-). It's not necesarily the place I go for a liberal education. > I was right. > > I will make this short. > > Without a question (IMO) - the least interesting section of the bookstore > was the Computer area. Hundreds of how-tos on the commercial technologies > currently hot. The end. They stock these books because that's what sells. Professionals buy books to learn new technologies. There are many such professionals in the New Haven area. > Nothing worth talking about that precedes the current hot technologies - one > would conclude from the book selection. Yes, one might conclude that from the book selections. But that would be a silly conclusion. > Why would anyone spend $40,000 a year to study how-tos of technologies that > will be obsolete by the time they are 30 - if not before. > One would be a fool to do this. Fortunately, that is not a description of very many academic programs, certainly not those in the liberal arts tradition (the ones you pay $40,000 for). On the other hand, if you actually ask students what they look for in a CS program, this is exactly the answer you'll often get. They _think_ they want to learn about all the latest hot technologies. It's more likely they don't go into CS because they perceive (correctly, in our opinion) it's not primarily about that. > I am no more an intellectual than I am a comedian. But give me a good > stand-up, or a facile, learned mind to try to follow and digest. I don't understand how this is precluded, just because certain kinds of technical books have a big market. If I look at the "psychology" section of a bookstore, I see tons of titles on self-improvement, birth order, quantum conciousness, and other assorted new-age poppycock. What does any of that have to do with the academic study of psychology? I certainly don't conclude from this that the study of psychology would be a waste of money. Bookstores are measures of markets, not of academic practice or worth. > Programming as an academic subject area is *way*, *way* off track - to the > extent my little browse of yesterday was indicative of anything - which I do > believe it was. > What you saw has very little to do with programming as an academic subject. Actually, most CS types would say that programming itself is not an academic subject; rather it is a skill of some importance to the study of "real" academic subjects such as Computer Science. I personally think programming teaches wonderful habits of mind including problem-solving, modeling/abstraction, mastering complexity, and attention to detail. But please don't confuse technology books with a CS curriculum. And again, I'm sorry to say that from where I sit, even fewer students would express an interest in CS if it were really presented to them in its academic glory. Technology is often a useful "hook" that can help to get them jazzed on more fundamental enduring principles and "deep" ideas. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Wed Nov 2 20:29:41 2005 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Nov 2005 14:29:41 -0500 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. In-Reply-To: <4369078B.2070203@wartburg.edu> Message-ID: <000001c5dfe3$c6595280$1702a8c0@BasementDell> > -----Original Message----- > From: John Zelle [mailto:john.zelle at wartburg.edu] > To: Arthur > > I'm a big bookstore fan too. It's the best place to go when you want to > learn about some hot new technology ;-). It's not necesarily the place I > go for a liberal education. Except that this one was clearly geared toward the Yale academic community - and exactly where one might go to pursue a liberal education. What I ended up with was a book from the math section on Hyerbolic Geometry, of just the kind that is useful for self-study (the answers to the exercises in the back ;)). Certainly *not* something I would see in a NYC Barnes and Noble. How many copies of that can be flying off the shelves? I am reading the downloadable On Lisp, and have become devoted enough to it to have decided to invest in a hard, bound copy - which is the kind thing I went to the Computer section to look for, and the kind of thing - in keeping with the character of all the other sections I had already visited - I had expected to find. I ended up in Java/C#/Oracle object oriented heaven. Yes, I do understand that this does not reflect the actual content of a CS curriculum. But do think it is significant that the character of this section was out of character - for this particular bookstore - to every other section I had browsed. It could be a one-off false read. Perhaps they simply did not happen to have a buyer on staff that understands the subject area. But they clearly are the character of bookstore who's economics is not dependent on volumes of copies they sell of each title they carry. And even if they were, I could identify for them probably 15 computer related books of some importance that have significantly more of a market than the one on hyperbolic geometry I picked up. I think that there was perhaps a false read, by a buyer without an understanding of the area, that CS types are only interested in what is hot and new. But that (mis)perception is to me an interesting data point in itself. Art From ajsiegel at optonline.net Wed Nov 2 20:33:44 2005 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Nov 2005 14:33:44 -0500 Subject: [Edu-sig] Reading ahead... (tech future, background) In-Reply-To: <0IPC006OMB58ZIB2@mta22.srv.hcvlny.cv.net> Message-ID: <000101c5dfe4$569c7980$1702a8c0@BasementDell> > -----Original Message----- > From: Kirby Urner [mailto:urnerk at qwest.net] > Sent: Wednesday, November 02, 2005 1:18 PM > To: 'Arthur'; edu-sig at python.org > Subject: RE: [Edu-sig] Reading ahead... (tech future, background) > > > > At the risk of straying from matters Pythonic (IronPython would be the > > > implicit link), I thought I'd say a few words about where Microsoft is > > > going, and to some extent Mono i.e. .NET on Linux. > > > > Yeah - we know you like .Net. > > > > Or if I don't, so what? But why do you keep bringing it up? Yes we know about IronPython. With Jim Huginin behind it, it has to take seriously - to the extent one takes .Net seriously. What else needs to be said - here. Art From urnerk at qwest.net Wed Nov 2 20:50:55 2005 From: urnerk at qwest.net (Kirby Urner) Date: Wed, 2 Nov 2005 11:50:55 -0800 Subject: [Edu-sig] Rich Data Structures (cont.) In-Reply-To: <20051029223432.25C5D1E4009@bag.python.org> Message-ID: <20051102195056.A13E81E4002@bag.python.org> Per previous post in this thread: cities = { 'Albany, N.Y.': [(42, 40, 'W'), (73, 45, 'N')], 'Albuquerque, N.M.': [(35, 5, 'W'), (106, 39, 'N')], 'Amarillo, Tex.': [(35, 11, 'W'), (101, 50, 'N')], 'Anchorage, Alaska': [(61, 13, 'W'), (149, 54, 'N')], 'Atlanta, Ga.': [(33, 45, 'W'), (84, 23, 'N')], ... } You might want to introduce students to another formatting style in which such data might be serialized: XML. Using the above dict as grist for the mill ... def makexml(thefile): f = open(thefile, 'w') f.write('\n') for city in cities: # cities is a global in this context loc = tuple([s.strip() for s in city.split(',')]) if len(loc)==3: f.write('\n' % loc) else: f.write('\n' % loc) f.write('\t\n' % cities[city][0]) f.write('\t\n' % cities[city][1]) f.write('\n') f.close() Usage: >>> mymodule.makexml('cities.xml') Output: And so on. Where to go next with the XML tools would be up to you. Or segue to a discussion of other serialization techniques e.g. using Python's Pickle. A useful curriculum segment would be to take the above xml and run it through a parser to create a bunch of city objects with lat and long attributes, i.e. XML used to instantiate objects. That'd be a good "cave painting" (= simplification, many essential aspects conveyed) of many real world applications (e.g. XAML). Kirby From urnerk at qwest.net Wed Nov 2 21:03:40 2005 From: urnerk at qwest.net (Kirby Urner) Date: Wed, 2 Nov 2005 12:03:40 -0800 Subject: [Edu-sig] Reading ahead... (tech future, background) In-Reply-To: <000101c5dfe4$569c7980$1702a8c0@BasementDell> Message-ID: <20051102200454.76BA21E4002@bag.python.org> > > Or if I don't, so what? > > But why do you keep bringing it up? > Because it's a feature of our shared landscape. If this were a mountain-climbers' list, I might keep bringing up Everest. Did you already know all that about XAML? Sorry. > Yes we know about IronPython. With Jim Huginin behind it, it has to take > seriously - to the extent one takes .Net seriously. What else needs to be > said - here. > > Art Your focus on personalities, money, politics... boring (to me). It's the actual technology itself I find somewhat interesting. Apropos to this list: how best to cover it, phase it in, fit it under umbrella concepts. Constituting Python UI objects from an XML file ala XAML -- is that more CS1 or CS2? I think there's lots to say about this stuff, but saying anything interesting actually requires doing some homework, learning some nuts and bolts. Who's behind it and who's making money off it is your department (yawn). So far, I've seen nothing from you to suggest you know much of anything about .NET, excepting the stuff that doesn't matter (to me). Kirby From ajsiegel at optonline.net Wed Nov 2 21:19:32 2005 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Nov 2005 15:19:32 -0500 Subject: [Edu-sig] Reading ahead... (tech future, background) In-Reply-To: <0IPC00D82FS5ST20@mta15.srv.hcvlny.cv.net> Message-ID: <000101c5dfea$bce67b90$1702a8c0@BasementDell> > -----Original Message----- > From: Kirby Urner [mailto:urnerk at qwest.net] > Who's behind it and who's making money off it is your department (yawn). Now we got a serious problem. You and I are boring each other, and together we are boring everybody else. I find myself quite interesting, but not as interesting as Wolfram finds Wolfram. I am a MUH in training, I guess. Art From rmalouf at mail.sdsu.edu Wed Nov 2 21:30:17 2005 From: rmalouf at mail.sdsu.edu (Rob Malouf) Date: Wed, 02 Nov 2005 12:30:17 -0800 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. In-Reply-To: <4369078B.2070203@wartburg.edu> References: <000001c5dfbb$b6ae45c0$1702a8c0@BasementDell> <4369078B.2070203@wartburg.edu> Message-ID: <1130963417.14905.8.camel@jaynes> On Wed, 2005-11-02 at 12:38 -0600, John Zelle wrote: > Actually, most CS types would say that programming itself is > not an academic subject; rather it is a skill of some importance to > the > study of "real" academic subjects such as Computer Science. It's also worth remembering that lots of programming and general technology use goes on outside of CS departments. Our computational linguistics program is based on Python, and the biology and geology departments here at SDSU also teach Python. We're not training our students to be programmers, we're just trying to give them the basic computational skills necessary to study language, genes, etc. Also, I just sat on the search committee for hiring a new director of operations for our language lab -- there was lots of discussion of the flashy new web frameworks that their tech people use. Sure, it's all going to be obsolete by the time our current students are 30, just like all those laser disks we have are obsolete now. But so what? They're not teaching .net, they're just using it to develop new ways of teaching languages, which is about as liberal-education-y a goal as you can get. -- Rob Malouf Department of Linguistics and Oriental Languages San Diego State University From chuck at freshsources.com Wed Nov 2 21:42:40 2005 From: chuck at freshsources.com (Chuck Allison) Date: Wed, 2 Nov 2005 13:42:40 -0700 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. In-Reply-To: <000001c5dfbb$b6ae45c0$1702a8c0@BasementDell> References: <000001c5dfbb$b6ae45c0$1702a8c0@BasementDell> Message-ID: <1751815093.20051102134240@freshsources.com> Hello Arthur, Wednesday, November 2, 2005, 7:42:54 AM, you wrote: A> A business trip had me passing through New Haven. As a lover of books, and A> therefore bookstores, I took the opportunity to stop to look for a bookstore A> near the Yale campus - figuring I would find a bookstore with significantly A> more depth than those to which I normally have access. A> I was right. A> I will make this short. A> Without a question (IMO) - the least interesting section of the bookstore A> was the Computer area. Hundreds of how-tos on the commercial technologies A> currently hot. The end. A> Nothing worth talking about that precedes the current hot technologies - one A> would conclude from the book selection. A> Why would anyone spend $40,000 a year to study how-tos of technologies that A> will be obsolete by the time they are 30 - if not before. A> Its not even in the running as something worth considering. A> I am no more an intellectual than I am a comedian. But give me a good A> stand-up, or a facile, learned mind to try to follow and digest. A> Programming as an academic subject area is *way*, *way* off track - to the A> extent my little browse of yesterday was indicative of anything - which I do A> believe it was. Don't judge all of academia by a bookstore (especially a non-campus one). We don't chase faddish technology at UVSC, although we don't ignore what's in use either. This is a multi-faceted topic, not so easily dismissed with an anecdote or two. -- Best regards, Chuck From chuck at freshsources.com Wed Nov 2 21:42:53 2005 From: chuck at freshsources.com (Chuck Allison) Date: Wed, 2 Nov 2005 13:42:53 -0700 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. In-Reply-To: <000001c5dfe3$c6595280$1702a8c0@BasementDell> References: <4369078B.2070203@wartburg.edu> <000001c5dfe3$c6595280$1702a8c0@BasementDell> Message-ID: <1965528933.20051102134253@freshsources.com> Hello Arthur, Wednesday, November 2, 2005, 12:29:41 PM, you wrote: >> I'm a big bookstore fan too. It's the best place to go when you want to >> learn about some hot new technology ;-). It's not necesarily the place I >> go for a liberal education. A> Except that this one was clearly geared toward the Yale academic community - A> and exactly where one might go to pursue a liberal education. What I ended A> up with was a book from the math section on Hyerbolic Geometry, of just the A> kind that is useful for self-study (the answers to the exercises in the back A> ;)). Certainly *not* something I would see in a NYC Barnes and Noble. How A> many copies of that can be flying off the shelves? I believe I've been to that bookstore. It's practically across the street from Yale, right? I was there in 1998. I remember browsing for a long time in Liberal Arts areas (mostly literature). The owner obviously didn't cater to CS subjects very well - there was nothing to look at of worth. Has no correlation to CS departments whatsoever. -- Best regards, Chuck From urnerk at qwest.net Wed Nov 2 22:42:14 2005 From: urnerk at qwest.net (urnerk@qwest.net) Date: Wed, 2 Nov 2005 16:42:14 -0500 Subject: [Edu-sig] Reading ahead... (tech future, background) Message-ID: <380-220051132214214387@M2W058.mail2web.com> > Who's behind it and who's making money off it is your department (yawn). Correction: I admit that I find *some* discussion of the personalities, politics and money interesting. However, I prefer to study the viewpoints of more tech-savvy sources (e.g. several blogs I check fairly regularly). Kirby -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web.com/ . From ajsiegel at optonline.net Wed Nov 2 23:50:45 2005 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Nov 2005 17:50:45 -0500 Subject: [Edu-sig] Reading ahead... (tech future, background) In-Reply-To: <380-220051132214214387@M2W058.mail2web.com> Message-ID: <000001c5dfff$dec45330$1702a8c0@BasementDell> > -----Original Message----- > From: urnerk at qwest.net [mailto:urnerk at qwest.net] > Sent: Wednesday, November 02, 2005 4:42 PM > To: ajsiegel at optonline.net; edu-sig at python.org > Subject: Re: [Edu-sig] Reading ahead... (tech future, background) > > > Who's behind it and who's making money off it is your department (yawn). > > Correction: I admit that I find *some* discussion of the personalities, > politics and money interesting. However, I prefer to study the viewpoints > of more tech-savvy sources (e.g. several blogs I check fairly regularly). By limiting your exposure to tech-savvy blogs I doubt you will get a very critical look at tech-savviness and what it has to offer. From the prospective of someone more interested in general intelligence and mindfulness then in what "tech-savvy" has come to mean, I see a lower correlation with the higher intelligences than I would have expected, and much less to offer than it thinks. The word "hubris" keeps coming to mind. Popular thing to say here? ;) Art From ajsiegel at optonline.net Thu Nov 3 00:18:35 2005 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Nov 2005 18:18:35 -0500 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. In-Reply-To: <1965528933.20051102134253@freshsources.com> Message-ID: <000001c5e003$c13bc290$1702a8c0@BasementDell> > -----Original Message----- > From: Chuck Allison [mailto:chuck at freshsources.com] > Sent: Wednesday, November 02, 2005 3:43 PM > To: Arthur I believe I've been to that bookstore. It's practically across the > street from Yale, right? I was there in 1998. I remember browsing for > a long time in Liberal Arts areas (mostly literature). The owner > obviously didn't cater to CS subjects very well - there was nothing to > look at of worth. Has no correlation to CS departments whatsoever. Not to belabor, but... This place was huge, with lots of breath and depth - including in math and science. *Only* the computer area seemed brain dead. It may be clear to you why a subject area close to your heart merited this special treatment, but it is not to me. BTW, a nice section on education - which I in fact browsed for the book that you had recently mentioned here (I do listen as well as talk), but could not find. Though I was pleased to find that there is a growing body of work making note of the effects of the growing influence (corruption) of educational institutions (and, through it, science itself) resulting from the dynamics Kirby finds it annoying I tend to notice, publicly, here. Maybe feeling as much the unrepentant capitalist that I do, it is easier for me to focus on this issue to the exclusion of other issues related to a fiercely market driven economy. Others, IOW, might focus their energies toward a broader critique. I am content to keep mine focused where I think the real issue is. And it is nice that a visit to the bookstore can confirm that there is growing company with this focus, and this view. Art From urnerk at qwest.net Thu Nov 3 01:12:09 2005 From: urnerk at qwest.net (Kirby Urner) Date: Wed, 2 Nov 2005 16:12:09 -0800 Subject: [Edu-sig] Rich Data Structures (cont.) In-Reply-To: <20051102195056.A13E81E4002@bag.python.org> Message-ID: <20051103001210.AD8931E400A@bag.python.org> > A useful curriculum segment would be to take the above xml and run it > through a parser to create a bunch of city objects with lat and long > attributes, i.e. XML used to instantiate objects. That'd be a good "cave > painting" (= simplification, many essential aspects conveyed) of many real > world applications (e.g. XAML). > > Kirby Just to round this out: My cities dict --> XML function made the mistake of not creating a 'root' tag, i.e. the elements floated outside any container. The SAX parser (SAX = Simple API for XML) didn't like that. So... A fixed function: # whatever path thepath = "c:/documents and settings/kirby/My Documents/" def makexml(thefile): """ dict --> XML file The dict in question is on file here: http://mail.python.org/pipermail/edu-sig/2005-October/005500.html """ f = open(thepath + thefile, 'w') f.write('\n') f.write('\n') for city in cities: # cities is a global in this context loc = tuple([s.strip() for s in city.split(',')]) if len(loc)==3: f.write('\n' % loc) else: f.write('\n' % loc) f.write('\t\n' % cities[city][0]) f.write('\t\n' % cities[city][1]) f.write('\n') f.write('\n') f.close() And here's another to read back the XML so generated, and recreate the dict. Not very elaborate or general, but enough to give some ideas I think. from xml.sax import make_parser from xml.sax.handler import ContentHandler class CityHandler(ContentHandler): """ Run through an XML file in a specific format: Create a dictionary like the one used to create the XML in the first place. """ def __init__(self): self.thedict = {} self.key = '' self.latlong = [] def startElement(self, name, attrs): if name=='city': key = "%s, %s" % (str(attrs.get('name')), str(attrs.get('state'))) country = str(attrs.get('country','')) # optional attribute if country<>'': key = key + ", " + country self.key = key if name in ['lat','long']: # build a list of two tuples of form (deg, min, dir) # using str because we don't want unicode self.latlong.append( (int(attrs.get('deg')), int(attrs.get('min')), str(attrs.get('dir')))) if name=='long': # time to create a new dict entry and start new city self.thedict[self.key]=self.latlong self.latlong=[] self.key='' def makecities(thefile): """ Take the xml file created above and reconstitute the same dictionary. """ parser = make_parser() thehandler = CityHandler() parser.setContentHandler(thehandler) parser.parse(thepath + thefile) print thehandler.thedict OK, I think that's enough for now. XML freaks could go a *lot* further. My goal is to keep it basic basic. Kirby From tjd at sfu.ca Thu Nov 3 01:47:25 2005 From: tjd at sfu.ca (Toby Donaldson) Date: Wed, 2 Nov 2005 16:47:25 -0800 Subject: [Edu-sig] Low Enrollments - programming as anit-intellectualism. anit-intellectualism. Message-ID: > Without a question (IMO) - the least interesting section of the bookstore > was the Computer area. Hundreds of how-tos on the commercial technologies > currently hot. The end. > > Nothing worth talking about that precedes the current hot technologies - one > would conclude from the book selection. > > Why would anyone spend $40,000 a year to study how-tos of technologies that > will be obsolete by the time they are 30 - if not before. > > Its not even in the running as something worth considering. > > I am no more an intellectual than I am a comedian. But give me a good > stand-up, or a facile, learned mind to try to follow and digest. > > Programming as an academic subject area is *way*, *way* off track - to the > extent my little browse of yesterday was indicative of anything - which I do > believe it was. > > Art The economics section of my local big bookstore seems to be far more of a travesty than the technology section (which does have a number of "deeper" books that are only of interest to CS people --- the same copies are there *every* time I go). I think CS has many similarities to economics. Roughly, both CS and economics have a theory side, and an *extremely* practical applied side. In the extreme, theoreticians in both fields are embarassed by the "uneducated" practitioners, and the practitioners shake their head at the obvious irrelevance of so much theory. Theory and practice both influence each other in a feedback loop. And both fields have a love-hate relationship with mathematics. Do working economists ever take derivatives? Do working programmers ever use L'Hopital's rule to compare algorithm performance? Is it because practitioners dislike mathematics? Or is it that the mathematics isn't actually practical? I don't worry too much about the people who go into CS expecting vocational training --- such people can very happily be steered towards excellent technical training outside of universities. But I suspect that CS is often a let-down to students who expect it to be as relevant as, say, engineering or business --- especially if they take any AI courses. :-) Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From ajsiegel at optonline.net Thu Nov 3 17:33:39 2005 From: ajsiegel at optonline.net (Arthur) Date: Thu, 03 Nov 2005 11:33:39 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism Message-ID: <000001c5e094$58fffc00$1702a8c0@BasementDell> Tony wrote - >I don't worry too much about the people who go into CS expecting >vocational training --- such people can very happily be steered >towards excellent technical training outside of universities. But I >suspect that CS is often a let-down to students who expect it to be as >relevant as, say, engineering or business --- especially if they take >any AI courses. :-) The head of the math department at the engineering college with whom I had some interaction explained to me that his department's role was in the first place in service to the general education goals of the college, which meant, as a practical matter, supplying the math courses tailored to the needs of an engineering student. There were math majors whose needs were being serviced as well, but not enough to justify the resources devoted to the math department, stand alone. He seemed well reconciled to that role for his department - despite the fact that the course content in his department tended not to be where his own mathematical interests were most focused. Does this have any relevancy to where the CS department may be evolving - as CS and programming skills become more and more relevant to a wider range of pursuits. As, for example, noted by Rob Malouf's recent post: """ We're not training our students to be programmers, we're just trying to give them the basic computational skills necessary to study language, genes, etc. """ There is - as I think John pretty much put - learning to program - to program, and learning to program - to learn. My own experience is more toward the learning to program to learn - in my case - mathematical ideas. But ultimately, to get to where I want to get, I realize that "basic computational skills" are not sufficient - that I need to get somewhat beyond the basics. I think that the linguist, or geneticist might also find the same to be true - eventually. Where are those needs to be services under current academic structures? Art From Scott.Daniels at Acm.Org Fri Nov 4 02:02:31 2005 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Thu, 03 Nov 2005 17:02:31 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <000001c5e094$58fffc00$1702a8c0@BasementDell> References: <000001c5e094$58fffc00$1702a8c0@BasementDell> Message-ID: Arthur wrote: > As, for example, noted by Rob Malouf's recent post: > > """ > We're not training our > students to be programmers, we're just trying to give them the basic > computational skills necessary to study language, genes, etc. > """ > > There is - as I think John pretty much put - learning to program - to > program, and learning to program - to learn. > > My own experience is more toward the learning to program to learn - in my > case - mathematical ideas. But ultimately, to get to where I want to get, I > realize that "basic computational skills" are not sufficient - that I need > to get somewhat beyond the basics. I think that the linguist, or geneticist > might also find the same to be true - eventually. Where are those needs to > be services under current academic structures? This is why I'd call programming a writing skill. Not only should our geneticist be able to read and write programs, he should be able to know when he needs the services of a professional programmer. If you want to really understand the core, I'd suggest starting with MMIX, Knuth's new assembly/machine language. The book is slow going; a page a day is a good pace. It _does_ have answers to exercises, and some material is only presented in the exercises. If you get through the Fascicle (93 pages of presentation, 126 through the answers), you will actually have a good handle on the architecture of modern machines (one that should last you for a good 20 years) from the point of view of a programmer. It is not enough to help you design chips or wire up a machine. I wouldn't bother learning the MIX machine -- a great machine to know in the 70s and 80s because its architecture was typical of machines in those days. Once you've digested that, the rest of his works use that machine as the measure of what makes code fast or slow. You then have a great base to learn how sorting or .... 'll have an appreciation If you'd rather an easier start, I like "Concrete Mathematics" -- by Graham, Knuth, and Patashnik. Reads much faster and covers the mathematics needed to analyze algorithms. This path is a much more abstract approach to the problem. I remember in the introduction to the class (upon which this book was based), he claimed "we call it Concrete Mathematics because it is hard." --Scott David Daniels Scott.Daniels at Acm.Org From urnerk at qwest.net Fri Nov 4 03:17:16 2005 From: urnerk at qwest.net (Kirby Urner) Date: Thu, 3 Nov 2005 18:17:16 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: Message-ID: <20051104021719.7ED8B1E4002@bag.python.org> > If you'd rather an easier start, I like "Concrete Mathematics" -- > by Graham, Knuth, and Patashnik. Reads much faster and covers the > mathematics needed to analyze algorithms. This path is a much more > abstract approach to the problem. I remember in the introduction to > the class (upon which this book was based), he claimed "we call it > Concrete Mathematics because it is hard." > And I recommend tackling CM via J, as the late K. Iverson wrote a tutorial to go along with CM in his J language (derivative from APL in a lot of ways, but pure ASCII). Roger Hui & Co. are continuing the work. But you don't have to be a CS major to play with J, which is a joy, nor even to earn a living that involves some programming (if "earning" is your gig -- some coders just give it away, but make it back, and then some, doing trades). I don't want people to feel weighed down by my philo-informed approach to CS (my focus at Princeton). Too many mathematicians run that trip: "here, read this heavy book [thunk!]." CS needs better movies, visualizations/animations, is the long and short of it -- of Knuth's 256-cylinder engine's internals along with the rest of it (roar!). Kirby > > > --Scott David Daniels > Scott.Daniels at Acm.Org > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig From ajsiegel at optonline.net Fri Nov 4 13:44:23 2005 From: ajsiegel at optonline.net (Arthur) Date: Fri, 04 Nov 2005 07:44:23 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <20051104021719.7ED8B1E4002@bag.python.org> Message-ID: <000a01c5e13d$7be09e60$1702a8c0@BasementDell> > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Kirby Urner > Sent: Thursday, November 03, 2005 9:17 PM > To: 'Scott David Daniels'; edu-sig at python.org > Subject: Re: [Edu-sig] Low Enrollments - programming as anti- > > CS needs better movies, visualizations/animations, is the long and short > of > it -- of Knuth's 256-cylinder engine's internals along with the rest of it > (roar!). You'd probably appreciate the recent cite on PlanetPyhton: "Structure and Interpretation of Computer Programs" iPod edition ;) http://pythonzweb.blogspot.com/2005/11/structure-and-interpretation-of.html But my problem with media like movies is that they are designed as linear. A good technical books is designed more for random access. Easy to read those three pages again, jump forward a chapter, then back 3. True, its easy enough to mimic that in current forms of media, and the tech-savvy might get all excited about the achievement of doing just that, never feeling fully obligated to explain the advantage of their advancement over what it is mimicking - a book. Art > > Kirby > > > > > > > > --Scott David Daniels > > Scott.Daniels at Acm.Org > > > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig at python.org > > http://mail.python.org/mailman/listinfo/edu-sig > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig From ajsiegel at optonline.net Fri Nov 4 14:19:15 2005 From: ajsiegel at optonline.net (Arthur) Date: Fri, 04 Nov 2005 08:19:15 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism Message-ID: <000001c5e142$5afe17e0$1702a8c0@BasementDell> > -----Original Message----- > From: Arthur [mailto:ajsiegel at optonline.com] > Sent: Friday, November 04, 2005 7:44 AM > To: 'Kirby Urner'; 'Scott David Daniels'; 'edu-sig at python.org' > > > > CS needs better movies, visualizations/animations, is the long and short > > of > > it -- of Knuth's 256-cylinder engine's internals along with the rest of > it > > (roar!). Obviously, OTOH (to my previous post), there would not be a PyGeo if I found a book approach fully satisfactory to what I was trying to achieve in getting to geometric concepts. Pascal's Mystic Hexagon (inscribed in a conic) is unconvincing and uninspiring when viewed as a static illustration. An animation of it is a step forward. Better yet is getting random access to it, in the form of a dynamic construction. Not convinced that the three pairs of the continuations of opposite sides of the inscribed hexagon meet on a straight line? Try me. The difficulty in this stuff is recognizing, appreciating and exploiting new possibilities in a focused manner, without getting *too* excited and generalizing *too* broadly about what those possibilities are and where they get us. Art From ajsiegel at optonline.net Fri Nov 4 14:36:37 2005 From: ajsiegel at optonline.net (Arthur) Date: Fri, 04 Nov 2005 08:36:37 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <000001c5e142$5afe17e0$1702a8c0@BasementDell> Message-ID: <000001c5e144$c9dc7060$1702a8c0@BasementDell> > -----Original Message----- > From: Arthur [mailto:ajsiegel at optonline.net] > > The difficulty in this stuff is recognizing, appreciating and exploiting > new > possibilities in a focused manner, without getting *too* excited and > generalizing *too* broadly about what those possibilities are and where > they > get us. Last consecutive post. Which will sound more like self-promotion than it is intended. Saying that PyGeo goes somewhat further in some fundamental respects then other dynamic geometry applications is, I think, fair. Whether it is effective or not in doing so, and how it goes about it, is another question. But what I think is interesting, in terms of the general state of things, is the extent to which someone with modest programming skills can achieve something substantially interesting, by leveraging intelligently off the efforts that other folks have made available as tools, libraries, programming languages, etc. *That* is kind of exciting. Art From tjd at sfu.ca Fri Nov 4 19:22:58 2005 From: tjd at sfu.ca (Toby Donaldson) Date: Fri, 4 Nov 2005 10:22:58 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism Message-ID: > My own experience is more toward the learning to program to learn - in my > case - mathematical ideas. But ultimately, to get to where I want to get, I > realize that "basic computational skills" are not sufficient - that I need > to get somewhat beyond the basics. I think that the linguist, or geneticist > might also find the same to be true - eventually. Where are those needs to > be services under current academic structures? Those departments should fill those needs under current academic structures by offering the necessary computing courses. There's no shortage of people with practical computing skills --- just a shortage of people with impractical ones. :-) One thing CS departments could do is offer service-oriented software engineering courses. It's clear that many people nowadays learn to program on their own, and run into well-known difficulties once their programs get too big. Those people would probably appreciate and benefit from a software engineering course, especially if was platform/lanuage neutral. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From urnerk at qwest.net Fri Nov 4 20:16:45 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 4 Nov 2005 11:16:45 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: Message-ID: <20051104191649.18A251E400F@bag.python.org> > Those departments should fill those needs under current academic > structures by offering the necessary computing courses. There's no > shortage of people with practical computing skills --- just a shortage > of people with impractical ones. :-) > I think there's a shortage of computer pros with strong presentation skills. Like, at Europython we got a 5 minute upbraiding by one of the few female geeks, complaining that we collectively mumbled too much, failed to project our enthusiasm for our topics. We must do more to delight, less to impress. I remember this OSCON talk I was at: the presenter kept pointing to the screen of his laptop (which no one but him could see), bringing our attention to this or that line of code (ever hear of a laser pointer guy?). > One thing CS departments could do is offer service-oriented software > engineering courses. It's clear that many people nowadays learn to > program on their own, and run into well-known difficulties once their > programs get too big. Those people would probably appreciate and > benefit from a software engineering course, especially if was > platform/lanuage neutral. > > Toby Probably the only way to push CS departments into offering such courseware is to compete with them. Small technical academies, like those mom and pop martial arts schools that dot Greater Portland, could specialize in various skillsets. "Mom, I've off to a Plone class at Free Geek, then a C# class at the mall, then a movie!" "OK dear, don't forget to take your cell." Academia has this clever way of setting up a lot of prerequisites, getting you involved in this twisted maze, with degrees the cheese. With the new certifications though, you can get a "black belt" in something, without getting bogged down in somebody else's bright idea of what "competent" means. That's what a of geeks want: freedom to customize and configure. Of course the Internet itself is the best place to start. Kirby From urnerk at qwest.net Fri Nov 4 20:15:13 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 4 Nov 2005 11:15:13 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: Message-ID: <20051104191859.C8E501E4002@bag.python.org> > Those departments should fill those needs under current academic > structures by offering the necessary computing courses. There's no > shortage of people with practical computing skills --- just a shortage > of people with impractical ones. :-) > I think there's a shortage of computer pros with strong presentation skills. Like, at Europython we got a 5 minute upbraiding by one of the few female geeks, complaining that we collectively mumbled too much, failed to project our enthusiasm for our topics. We must do more to delight, less to impress. I remember this OSCON talk I was at: the presenter kept pointing to the screen of his laptop (which no one but him could see), bringing our attention to this or that line of code (ever hear of a laser pointer guy?). > One thing CS departments could do is offer service-oriented software > engineering courses. It's clear that many people nowadays learn to > program on their own, and run into well-known difficulties once their > programs get too big. Those people would probably appreciate and > benefit from a software engineering course, especially if was > platform/lanuage neutral. > > Toby Probably the only way to push CS departments into offering such courseware is to compete with them. Small technical academies, like those mom and pop martial arts schools that dot Greater Portland, could specialize in various skillsets. "Mom, I've off to a Plone class at Free Geek, then a C# class at the mall, then a movie!" "OK dear, don't forget to take your cell." Academia has this clever way of setting up a lot of prerequisites, getting you involved in this twisted maze, with degrees the cheese. With the new certifications though, you can get a "black belt" in something, without getting bogged down in somebody else's bright idea of what "competent" means. That's what a of geeks want: freedom to customize and configure. Of course the Internet itself is the best place to start. Kirby From urnerk at qwest.net Fri Nov 4 19:58:31 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 4 Nov 2005 10:58:31 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <000a01c5e13d$7be09e60$1702a8c0@BasementDell> Message-ID: <20051104192518.22F841E4041@bag.python.org> > You'd probably appreciate the recent cite on PlanetPyhton: > "Structure and Interpretation of Computer Programs" iPod edition ;) > http://pythonzweb.blogspot.com/2005/11/structure-and-interpretation- > of.html > Yes thank you. I've not ready for vPod but can handle Divx. I'm downloading the first lecture now, to see what it's like. Speaking of video lectures, here's a great stash of some of Feynman's: http://www.vega.org.uk/series/lectures/feynman/index.php > But my problem with media like movies is that they are designed as linear. > A good technical books is designed more for random access. Easy to read > those three pages again, jump forward a chapter, then back 3. True, its > easy enough to mimic that in current forms of media, and the tech-savvy > might get all excited about the achievement of doing just that, never > feeling fully obligated to explain the advantage of their advancement over > what it is mimicking - a book. > > Art I appreciate your desire for non-linearity and have plans to support it. My model is [heavily influenced by] 'Sesame Street': a growing database of videoclip shorts, retrievable by key topic (letters A-Z, numbers 1-13 or thereabouts, other key concepts). Every show adds some new content, but a lot of it is recycled, but in new orderings (edit/recombine ops).[1] In my Classroom of Tomorrow, the teacher has random access to a gazillion video shorts in the archive, and during Q&A might pull up just the right ones to sustain the dialog. It's not a matter of the teacher losing control to "A/V" (e.g. half- to full-hour documentaries). I just screen a quick animation of a fetch instruction: bits on the address bus trigger RAM to dump some content onto the bus, which get loaded into a register on the CPU (25 seconds play time). Kirby [1] http://www.grunch.net/synergetics/vidconcept.html From trent at oliphant.org Fri Nov 4 20:31:03 2005 From: trent at oliphant.org (Trent Oliphant) Date: Fri, 04 Nov 2005 12:31:03 -0700 Subject: [Edu-sig] Migrating to Projects - Was: Low Enrollments - programming as anti-intellectualism In-Reply-To: References: Message-ID: <436BB6F7.5090709@oliphant.org> Toby Donaldson wrote: > > One thing CS departments could do is offer service-oriented software > engineering courses. It's clear that many people nowadays learn to > program on their own, and run into well-known difficulties once their > programs get too big. Those people would probably appreciate and > benefit from a software engineering course, especially if was > platform/lanuage neutral. This brings up an interesting discussion point, one in which I would be extremely interested personally: How do you help students (or yourself) move from writing scripts, functions, classes, modules etc. to writing a larger project. I am actually at that stage right now in my personal learning curve. That curve seems extremely steep. I have looked at pythoncard for example - because I thought it could help with that curve. Maybe it is just me and the way that I think, but it doesn't seem to really help with that. Is that part of the reason for the perception that Python is not approriate for large scale projects - because there are no tools that make the job realistic? The discussion of CS departments and whether they are becoming mere technical schools is fascinating. However, could we (or are there) tools available that would make programming more available to more people (if not everyone). As much as I may have opinions on Microsoft and their products. I think that Access is an excellent model of allowing people to create "Applications" without having to already know how to do it. Its big drawback is it doesn't allow you to get beyond the constrains of the program. Sure you can move the data - but the application - the interface, much of the business logic, etc - is stuck in Access. Plus that is only for database based projects. I know it may seem that I am talking about an IDE - but even those (at least the ones available for Python that I have seen) assume that you already know how to do a project. So I get overwhelmed. I want them to work for me - but they just haven't yet. I have thought about writing my own - because I think there is a real need for it. I am a lone programmer - entirely self taught - and this is a daunting task. I feel confident that I could handle programming most of the individual components that would make up the project, but I don't even know where to start and there appears to be nothing out there to help me learn that. Trent Oliphant From ajsiegel at optonline.net Fri Nov 4 20:42:55 2005 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Fri, 04 Nov 2005 14:42:55 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <0IPG00A6L21NBW00@mta16.srv.hcvlny.cv.net> References: <000a01c5e13d$7be09e60$1702a8c0@BasementDell> <0IPG00A6L21NBW00@mta16.srv.hcvlny.cv.net> Message-ID: ----- Original Message ----- From: Kirby Urner > > In my Classroom of Tomorrow, the teacher has random access to a > gazillionvideo shorts in the archive, and during Q&A might pull up > just the right > ones to sustain the dialog. It's not a matter of the teacher > losing control > to "A/V" (e.g. half- to full-hour documentaries). I just screen a > quickanimation of a fetch instruction: bits on the address bus > trigger RAM to > dump some content onto the bus, which get loaded into a register > on the CPU > (25 seconds play time). Sounds expensive. Seems to me that you need to provide evidence of the effectiveness of your Classroom, before asking for adoption at beyond a guinea pig level. Which I understand is a lot to ask. But... It sounds expensive. And... Most of these kinds of initiatives have not been able to stand up to any kind of rigorous approach to assessing their effectiveness. It seems that the answer has been that if we ignore this fact stubbornly enough, it somehow goes away. Or - where I think we are going - get the instituional support for a redesign of our tests until we get the answers we are looking for. This guinea pig will continue to squeal (or squeak ;)) like a pig in the face of that. Doesn't mean that your approach cannot be effective. But those of us paying attention will continue to press the issue of evidence (and its interpreatation), particularly in light of what evidence there so far has been. Art From rmalouf at mail.sdsu.edu Fri Nov 4 21:07:53 2005 From: rmalouf at mail.sdsu.edu (Rob Malouf) Date: Fri, 04 Nov 2005 12:07:53 -0800 Subject: [Edu-sig] Migrating to Projects - Was: Low Enrollments - programming as anti-intellectualism In-Reply-To: <436BB6F7.5090709@oliphant.org> References: <436BB6F7.5090709@oliphant.org> Message-ID: <1131134873.27955.18.camel@jaynes> On Fri, 2005-11-04 at 12:31 -0700, Trent Oliphant wrote: > > This brings up an interesting discussion point, one in which I would > be > extremely interested personally: How do you help students (or > yourself) move > from writing scripts, functions, classes, modules etc. to writing a > larger > project. This probably isn't the answering you're looking for, but the way I do it in our computational linguistics program is to give students large group projects. Most of the students coming in don't have a lot of computer background, and I just don't have time to teach them much more than the basics (it's a two year master's program, and there's lots of linguistics to be covered as well). In a group project, the more skilled students generally wind up taking on a "project manager" role and teaching the less skilled students how to organize things. So far it's worked fairly well. It's not 100% successful, but that's okay: our graduates generally either go on for a PhD somewhere else, or they get a job with a computer company managing internationalization or something like that. -- Rob Malouf Department of Linguistics and Oriental Languages San Diego State University From david at handysoftware.com Fri Nov 4 21:12:06 2005 From: david at handysoftware.com (David Handy) Date: Fri, 4 Nov 2005 15:12:06 -0500 Subject: [Edu-sig] Migrating to Projects - Was: Low Enrollments - programming as anti-intellectualism In-Reply-To: <436BB6F7.5090709@oliphant.org> References: <436BB6F7.5090709@oliphant.org> Message-ID: <20051104201206.GB21140@arno2> On Fri, Nov 04, 2005 at 12:31:03PM -0700, Trent Oliphant wrote: > Toby Donaldson wrote: > > > > One thing CS departments could do is offer service-oriented software > > engineering courses. It's clear that many people nowadays learn to > > program on their own, and run into well-known difficulties once their > > programs get too big. Those people would probably appreciate and > > benefit from a software engineering course, especially if was > > platform/lanuage neutral. > > This brings up an interesting discussion point, one in which I would be > extremely interested personally: How do you help students (or yourself) move > from writing scripts, functions, classes, modules etc. to writing a larger > project. I am actually at that stage right now in my personal learning curve. > That curve seems extremely steep. [snip] > Is that part of the reason for the perception that Python is not > approriate for large scale projects - because there are no tools that make > the job realistic? No, that's not the usual reason people give. The main reason that people who've never tried Python give for assuming that it's not appropriate for "large scale projects" is its dynamic typing. Sometimes they also assume that Python execution speed is "too slow". [snip] > I know it may seem that I am talking about an IDE - but even those (at > least the ones available for Python that I have seen) assume that you > already know how to do a project. So I get overwhelmed. I want them to > work for me - but they just haven't yet. [snip] > ... but I don't even know where to start and there appears to be nothing > out there to help me learn that. > > Trent Oliphant You do not need another tool nor another IDE in order to "move up" from writing scripts to creating a larger project. What you need are knowledge, experience, and good methodology. The reason there is no book or manual on how to make this transition is that it strongly depends on what type of project you want to do. Plus it is like riding a bicycle. There is only so much a manual can do for you. But here's the good news: there are plenty of resources, plenty of help out there for you. I offer these sincere suggestions: 1. Figure out what you are trying to do. What lights your fire? Come up with concrete goals and write them down in your project notebook. 2. Find an existing Python open-source project that in some way resembles what you want to do. 3. Figure out how that project works. Read its source code and trace through it. Hack it, change it, put print statements all over just to show you were there. Diagram its packages and modules. Figure out how it is installed and configured, and how it accesses data. 4. Now work on your own project, following the model of the one you reverse-engineered. 5. As you find out that things aren't working for you, change your approach, or find a different model to follow. Write down your lessons learned, then move on. Don't be afraid to throw away code and start over. If you can't stand to delete something you have worked so hard on, move it to some other directory where you can keep it and cherish it forever (but move on!) 6. As you find that you have bitten off more than you can chew, narrow the scope of your project. Do something less ambitious, but do something. 7. Gather your fan club -- any victim or captive audience to whom you can show off your work. In the case of the StarSim game I am writing, my sons are willing enough to "test" it for me. And the local Zope/Python users group has been kind enough to let me show my work in progress a couple of times. 8. Have fun or get paid for it, or both. If it doesn't do at least one of those two things (generate enjoyment or cash) do something different. Good luck! If you've got time to work on a project but don't know how to begin, then you're a lot better off than I am, regardless of how much I think I know... :) -- David Handy Computer Programming is Fun! Beginning Computer Programming with Python http://www.handysoftware.com/cpif/ From rmalouf at mail.sdsu.edu Fri Nov 4 21:13:39 2005 From: rmalouf at mail.sdsu.edu (Rob Malouf) Date: Fri, 04 Nov 2005 12:13:39 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <20051104192518.22F841E4041@bag.python.org> References: <20051104192518.22F841E4041@bag.python.org> Message-ID: <1131135219.27955.25.camel@jaynes> On Fri, 2005-11-04 at 10:58 -0800, Kirby Urner wrote: > In my Classroom of Tomorrow, the teacher has random access to a > gazillion > video shorts in the archive, and during Q&A might pull up just the > right > ones to sustain the dialog. It's not a matter of the teacher losing > control > to "A/V" (e.g. half- to full-hour documentaries). I just screen a > quick > animation of a fetch instruction: bits on the address bus trigger RAM > to > dump some content onto the bus, which get loaded into a register on > the CPU > (25 seconds play time). We're working on something like that here for language teaching. We've got a big archive of "authentic language materials" (digital audio and video media), annotated (semi-)automatically with information that lets language teacher call up segments that are relevant for their lessons -- say, suppose someone wants a real example of a second conjugation verb used in the pluperfect in a conversation between two characters of equal social status in an Albanian sitcom. We're not imagining it as a real-time system yet (teachers would collect the digital media segments and assemble them into a powerpoint presentation before class), but there's no reason the archives couldn't be searchable on-line like that someday. -- Rob Malouf Department of Linguistics and Oriental Languages San Diego State University From john.zelle at wartburg.edu Fri Nov 4 21:17:41 2005 From: john.zelle at wartburg.edu (John Zelle) Date: Fri, 04 Nov 2005 14:17:41 -0600 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism Message-ID: <436BC1E5.1080005@wartburg.edu> Kirby Urner wrote: > I think there's a shortage of computer pros with strong presentation skills. > Like, at Europython we got a 5 minute upbraiding by one of the few female > geeks, complaining that we collectively mumbled too much, failed to project > our enthusiasm for our topics. We must do more to delight, less to impress. > Actually, there is a shortage of _people_ with strong presentation skills, period. Computer types are no worse than the rest of the population in my experience. > Probably the only way to push CS departments into offering such courseware > is to compete with them. Small technical academies, like those mom and pop > martial arts schools that dot Greater Portland, could specialize in various > skillsets. "Mom, I've off to a Plone class at Free Geek, then a C# class at > the mall, then a movie!" "OK dear, don't forget to take your cell." > > Academia has this clever way of setting up a lot of prerequisites, getting > you involved in this twisted maze, with degrees the cheese. With the new > certifications though, you can get a "black belt" in something, without > getting bogged down in somebody else's bright idea of what "competent" > means. That's what a of geeks want: freedom to customize and configure. > Of course the Internet itself is the best place to start. Hopefully academia is not now and never will be about "certification." They fill very different needs. Academia is about exploring the potential of mind in all directions. It's the place to go for truly broadening (in the sense of character and worldview) and deepening (in the sense of critical thought) experiences. That's why academics value scholarship so highly, even though outsiders may see it all as silly games. It's the one place in the world where students can be immersed in the exercise of reason and free inquiry with a minimum of distractions. Academic education is about fostering a mastery orientation where new challenges are met with determination and excitement. Certification, while valuable, is about demonstrating proficiency in some particular, narrow skill set. If you want to develop potential in-depth, you need experience building a body of knowledge with some depth and sophistication. The seemingly arcane pre-req structure allows that to happen. If there's anything I've learned from studies in both human and machine learning, it is that you can only learn new things that are relatively close to the scaffolding of knowledge that you already have. Part of a good education is figuring out how that scaffolding can be built step-by-step to lay a foundation for deeper knowledge. Of course, one could just let the "market" sort out who has the necessary background or aptitude to gain from a particular course. But that assumes that individuals who are not yet trained have as good an eye for how to build the scaffolding as those who have already ascended it. I don't see how that can ever be as efficient. Kirby, do you not see any irony between your two comments in this thread? One of the goals of liberal education is to produce well-rounded, deeply human individuals. One of the "bright ideas of competence" academics have is that students should be able to express themselves elequently, persuasively, and publicly. In my view, we (as a society) need more of this sort of whole education, with it's attendant mazes of pre-reqs and "extraneous" requirements. All the technical certification programs in the world will never produce a good presenter, let alone a truly educated citizen. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Fri Nov 4 21:22:48 2005 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Fri, 04 Nov 2005 15:22:48 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <1131135219.27955.25.camel@jaynes> References: <20051104192518.22F841E4041@bag.python.org> <1131135219.27955.25.camel@jaynes> Message-ID: ----- Original Message ----- From: Rob Malouf Date: Friday, November 4, 2005 3:13 pm Subject: Re: [Edu-sig] Low Enrollments - programming as anti-intellectualism ). > > We're working on something like that here for language teaching. Please note that the evidence there is suggests that a media intensive approach to language teaching *is* effective. And in fact audio-visual techniques were being used 35 years ago when I was (not very unsuccessfully) studiying language. But the evidence is also slear that its effectiveness in language study is not something that can be easilty generalized. Art From urnerk at qwest.net Sat Nov 5 00:23:08 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 4 Nov 2005 15:23:08 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: Message-ID: <20051104232309.AF4281E4002@bag.python.org> > Sounds expensive. > Video production is amenable to open source techniques i.e. centralized databases with individual designers doing edit/recombine, re-uploading, building off one another's efforts. Anyway "expensive" just means "lots of paying work for people" so what's so bad about that? Health care is expensive too. So 're bombers (even minus the cost of rebuilding what they demolish). > Seems to me that you need to provide evidence of the effectiveness of your > Classroom, before asking for adoption at beyond a guinea pig level. > > Which I understand is a lot to ask. > I regard my "movie clip culture" as a semi-inevitable consequence of generations growing up taking TV for granted, plus falling costs of the production equipment. This kind of experimentation with more animations is going on all over the place 24/7. Obviously this is not a new idea or original with me. I'm just applying some very high level management techniques (VHLMT), bringing already existing projects to the surface in an open source context (= playground). Or is "open source" just a buzzword here? Like, if I share a cartoon on ClipForge.com with the understanding that anyone is welcome to splice it in, doctor it in some way, that's one thing -- but what if I don't share the techniques behind it? How open is that? > But... > > It sounds expensive. > > And... > > Most of these kinds of initiatives have not been able to stand up to any > kind of rigorous approach to assessing their effectiveness. A statement made with no citations or bibliographic references. I'm to take this assertion on faith? > It seems that the answer has been that if we ignore this fact > stubbornly enough, it somehow goes away. > The assertion now becomes a fact. > Or - where I think we are going - get the instituional support for a > redesign of our tests until we get the answers we are looking for. > > This guinea pig will continue to squeal (or squeak ;)) like a pig in > the face of that. More effective would be to give us some cool DVD clips using Pygeo. How can we turn your demo of Pascal's whatever into an MPEG or DivX file? In the case of Struck (elastic interval geometry Java app), the answer was POV-Ray -> many frames -> AVI -> MPEG. > Doesn't mean that your approach cannot be effective. But those of us > paying attention will continue to press the issue of evidence (and its > interpreatation), particularly in light of what evidence there so far has > been. > > > Art What evidence again? Note: for a sample of my curriculum writing, with embedded "links for animators" see: http://mathforum.org/kb/thread.jspa?messageID=4069432� Kirby From urnerk at qwest.net Sat Nov 5 01:22:22 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 4 Nov 2005 16:22:22 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <436BC0AD.3030704@wartburg.edu> Message-ID: <20051105002242.2ED8E1E4002@bag.python.org> > Kirby, do you not see any irony between your two comments in this > thread? One of the goals of liberal education is to produce > well-rounded, deeply human individuals. One of the "bright ideas of > competence" academics have is that students should be able to express > themselves elequently, persuasively, and publicly. In my view, we (as a > society) need more of this sort of whole education, with it's attendant > mazes of pre-reqs and "extraneous" requirements. All the technical > certification programs in the world will never produce a good presenter, > let alone a truly educated citizen. > > --John I share your goals about providing people with mind-broadening as well as skill-building opportunities. I just don't think the existing Ivory Tower infrastructure is working fast enough or effectively enough to spread the wealth and could use some fierce competition (from different brand names in academia if you want to look at it that way). No college or university, however gothic-looking or ivy-covered, has an inherent right to advertise themselves as *the only* source of beautiful minds. Nor does any collection of schools have that logical right, short of all of them (Universe = University). The idea of "schooling" (propagating culture) is too important to be left to any exclusive subset, perhaps overspecialized within its specific economic niche. And what this subset *hasn't* become too complacent and will prove adaptable in the face of change? Well then, it has nothing to worry about. Let the chips fall where they may etc. In any age, I think a percentage of academics participate in it's recreation from within. Like MIT's decision to put so much prime material on line (like this 500MB lecture I'm still downloading -- just now finished) -- a lot of schools wouldn't have been that generous, would be more into hoarding, less into just getting it out there. I'm into just getting it out there. I count on the best efforts of many in academia to help me do that. I'm also into working with local mom and pop shops like Free Geek (Oso et al). They're not offering degrees, but they do know some kung fu (as geeks sometimes call it). Kids like to hang out there (some are future CS professors). Kirby From urnerk at qwest.net Sat Nov 5 02:00:47 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 4 Nov 2005 17:00:47 -0800 Subject: [Edu-sig] Migrating to Projects - Was: Low Enrollments -programming as anti-intellectualism In-Reply-To: <436BB6F7.5090709@oliphant.org> Message-ID: <20051105010050.7E13E1E4002@bag.python.org> > I know it may seem that I am talking about an IDE - but even those (at > least the ones available for Python that I have seen) assume that you > already know how to do a project. So I get overwhelmed. I want them to > work for me - but they just haven't yet. To some extent I think you *are* talking about an IDE. What Microsoft has done for an army of VB programmers is provide tools that let the lone coder throw together a working GUI app. Drag and drop widgets from a palette, pop open property windows and link code snippets to events, write code, build the project (which the IDE defines), distribute the .exe (with runtime .dll files). Mail invoice. Get paid. Kevin was very aware of this when he committed to PythonCard -- he often brings up the lone VBer as who he's targeting with this wx-based framework (in some ways a fa?ade, or wrapper, around the more complex wxWidgets API). But PythonCard still isn't drag and drop, when it comes to GUI building. I'm not a VBer (never learned VB), but I'm used to the same GUI-building tools from FoxPro. A lot of commercial apps mimic paper forms in providing page after page for data entry (maybe in a tabbed format). Hand-coding thick client data entry forms is just too tedious and painful. I won't do it in Python. Life is too short. My two cents: if you're interested in writing GUI apps, focus on thin client solutions with a browser front end. Get used to the idea of some markup language driving the presentation. Read up on model-view-controller (MVC) as a design pattern (lots of web stuff if you don't want to spend for books). Get a web server running on your local machine and start serving your app to yourself. Add some kind of database to the back end. Use Python as your controller. Then move to a framework (which one?). [Optional: Maybe get a book on Ruby on Rails, just to appreciate one elaborate framework for building frameworks (*not* very XML-invested in this case). From my perspective, studying Ruby is a good way to reflect on Python, less painful than starting at the bottom with Perl (although maybe when Perl 6 comes out...).] Keep in mind that most truly large scale apps are (a) written by more than one person and (b) make use of off-the-shelf components. Lots of people pride themselves on having written a robust server-side web app that handles thousands of requests per day. But that's not so hard, when Apache and MySQL already work as advertised. Add a little PHP and presto, the LAMP turns on. Kirby From ajsiegel at optonline.net Sat Nov 5 02:45:10 2005 From: ajsiegel at optonline.net (Arthur) Date: Fri, 04 Nov 2005 20:45:10 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <0IPG00IJ6EAKLMS1@mta17.srv.hcvlny.cv.net> Message-ID: <003001c5e1aa$90e788b0$1702a8c0@BasementDell> > -----Original Message----- > From: Kirby Urner [mailto:urnerk at qwest.net] > > > > Most of these kinds of initiatives have not been able to stand up to any > > kind of rigorous approach to assessing their effectiveness. > > A statement made with no citations or bibliographic references. I'm to > take > this assertion on faith? No Kirby. I asked my little brother. Silly to suggest that I would just be making this up. Its all around you, you just choose not to see it. A quick google on some key words gets me to www.allianceforchildhood.net/computers Please spend a few minutes there. Can I turn the tables - please help me with your cites as to the evidence of the effectiveness of the Kirby-like educational environment. You're the guy spending the bucks for us, so you have the burden. But please go beyond the "why would God lead us to the vPod its if its just going to be another way to watch re-runs" argument - which I always sense is somehow at the bottom of your point of view. > More effective would be to give us some cool DVD clips using Pygeo. How > can > we turn your demo of Pascal's whatever into an MPEG or DivX file? In the > case of Struck (elastic interval geometry Java app), the answer was POV- > Ray > -> many frames -> AVI -> MPEG. I'd love to, except that I don't think PyGeo is very interesting if that is how it is to be used. It is meant to be used to create constructions, deliberately (no mice allowed), and then to interact with what it is one has oneself constructed. It's a lot more interesting that a MPEG, but works from the premise there is no quicker road to heaven than the one being provided. I like to think of it as already optimized, it that sense. I have no evidence for that, BTW. Art From ajsiegel at optonline.net Sat Nov 5 02:58:49 2005 From: ajsiegel at optonline.net (Arthur) Date: Fri, 04 Nov 2005 20:58:49 -0500 Subject: [Edu-sig] Migrating to Projects - Was: Low Enrollments - programming as anti-intellectualism In-Reply-To: <436BB6F7.5090709@oliphant.org> Message-ID: <000001c5e1ac$77e70320$1702a8c0@BasementDell> > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Trent Oliphant > > I have thought about writing my own - because I think there is a real need > for > it. I am a lone programmer - entirely self taught - and this is a > daunting > task. I feel confident that I could handle programming most of the > individual > components that would make up the project, but I don't even know where to > start > and there appears to be nothing out there to help me learn that. What is the project you have in mind? Are you getting graded for it? Are you getting paid for it? Are you obsessed by it? If the answer to all 3 is no, I think you have a difficult problem. Art From urnerk at qwest.net Sat Nov 5 07:12:09 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 4 Nov 2005 22:12:09 -0800 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <003001c5e1aa$90e788b0$1702a8c0@BasementDell> Message-ID: <20051105061217.58EAA1E4002@bag.python.org> > www.allianceforchildhood.net/computers > > Please spend a few minutes there. > I'll be spending more than a few. > You're the guy spending the bucks for us, so you have the burden. > I'm not pushing any one size fits all approach. If groups want to develop computer-free video-free modes of education, like we had in the good old days, and field test them voluntarily, that's fine. This call for a "moratorium on further introduction of computers in early childhood" (quoting from above web site) is something a given school or community might well call for and achieve. Some people don't want to eat meat. The permutations are endless. Fine by me. Waldorf has a lot of nice features. So does Montessori. I'm all for the power to opt out. But I want the power to opt out of whatever they're going to do when they opt out. I might want to opt in. I develop curriculum for a more screen intensive lifestyle. Computers and digicams are a given. Yes, lack of physical exercise is sometimes a problem and needs to be addressed. Using screens a lot doesn't preclude that. > But please go beyond the "why would God lead us to the vPod its if its > just going to be another way to watch re-runs" argument - which I > always sense is somehow at the bottom of your point of view. You do what you think is healthy and wise, and see how much you're willing to trust your kids and grandkids when they form their own judgments on these matters. That's your business and it's not my plan to interfere. I have better things to do than try to be everyone's parent. I'm just some guy. Don't paint me as trying to force my curriculum down your throat. I don't have any investment in making you do as I do. I'm a recruiter, yes, but that doesn't mean I think others have no rights to the same field. I'm here to compete. I relish competition. I don't *want* to be the only game in town (I'd *hate* that). > I'd love to, except that I don't think PyGeo is very interesting if that > is how it is to be used. It is meant to be used to create constructions, > deliberately (no mice allowed), and then to interact with what it is one > has oneself constructed. Again, if you're offering PyGeo as an open source tool, I hope you're not going to be too control freaky about how other people use it. Maybe some studio wants to generate a bunch of MPEGs around famous theorems in projective geometry -- nothing directly to do with programming or Python. If I were you, I'd be proud to see my tool used in this way. The future is nothing if not surprising, always. Kirby From lac at strakt.com Sat Nov 5 14:35:19 2005 From: lac at strakt.com (Laura Creighton) Date: Sat, 05 Nov 2005 14:35:19 +0100 Subject: [Edu-sig] Migrating to Projects - Was: Low Enrollments - programming as anti-intellectualism In-Reply-To: Message from Trent Oliphant of "Fri, 04 Nov 2005 12:31:03 MST." <436BB6F7.5090709@oliphant.org> References: <436BB6F7.5090709@oliphant.org> Message-ID: <200511051335.jA5DZJ4X019113@theraft.strakt.com> (cc'd to Peter Hansen, because it is of interest and also mentions him - lac) In a message of Fri, 04 Nov 2005 12:31:03 MST, Trent Oliphant writes: >This brings up an interesting discussion point, one in which I would be >extremely interested personally: How do you help students (or yourself) >move >from writing scripts, functions, classes, modules etc. to writing a large >r >project. I am actually at that stage right now in my personal learning c >urve. >That curve seems extremely steep. > >I have looked at pythoncard for example - because I thought it could help > with >that curve. Maybe it is just me and the way that I think, but it doesn't > seem >to really help with that. > >Is that part of the reason for the perception that Python is not approria >te for >large scale projects - because there are no tools that make the job reali >stic? >The discussion of CS departments and whether they are becoming mere techn >ical >schools is fascinating. However, could we (or are there) tools available > that >would make programming more available to more people (if not everyone). > >As much as I may have opinions on Microsoft and their products. I think >that >Access is an excellent model of allowing people to create "Applications" >without >having to already know how to do it. Its big drawback is it doesn't allo >w you >to get beyond the constrains of the program. Sure you can move the data >- but >the application - the interface, much of the business logic, etc - is stu >ck in >Access. Plus that is only for database based projects. > >I know it may seem that I am talking about an IDE - but even those (at le >ast the >ones available for Python that I have seen) assume that you already know >how to >do a project. So I get overwhelmed. I want them to work for me - but th >ey just >haven't yet. > >I have thought about writing my own - because I think there is a real nee >d for >it. I am a lone programmer - entirely self taught - and this is a daunti >ng >task. I feel confident that I could handle programming most of the indiv >idual >components that would make up the project, but I don't even know where to > start >and there appears to be nothing out there to help me learn that. > >Trent Oliphant I think you are looking for the wrong sort of magic bullet. What you need to learn is how to think about large projects. You need new thoughts, and new work habits, not an IDE or some sort of tool. Any tool will only help you once you have the correct sort of work habits, which you need to develop first. So read: Kent Beck: Test Driven Development: By Example Get it from your library if you can, because this is not the reference book you want to keep on your shelf. This is the introduction to thinking about large projects which needs to be read once before you read something else that is more difficult. If you aren't one of the people who grasps things faster when presented with examples, you will need a different introduction, but I don't know one to recommend. Whatever you get, make sure it is about Test Driven Design. There are other competing methodologies for designing large programs, which have a long history, of which the most famous is called Waterfall. All you need to know is to avoid them like the plague. There is lots more to learn, and lots of places where you can learn it, but the magic search terms are 'agile programming' and 'test driven design'. Lots of people, including me, are willing to discuss this exhaustively at the drop of the hat, but I am limited right now having broken a bone in my elbow and doing this one handed. Peter Hansen http://www.engcorp.com/main/contact had at one time (and probably still does) the largest set of web references, mailing lists, resources and the like. He can make better recommendations than I can. And if all else fails, you can hire his company to teach you how to manage large projects. :-) good luck, Laura From peter at engcorp.com Sat Nov 5 17:31:09 2005 From: peter at engcorp.com (Peter Hansen) Date: Sat, 05 Nov 2005 11:31:09 -0500 Subject: [Edu-sig] Migrating to Projects - Was: Low Enrollments - programming as anti-intellectualism In-Reply-To: <200511051335.jA5DZJ4X019113@theraft.strakt.com> References: <436BB6F7.5090709@oliphant.org> <200511051335.jA5DZJ4X019113@theraft.strakt.com> Message-ID: <436CDE4D.6060003@engcorp.com> Laura Creighton wrote: > (cc'd to Peter Hansen, because it is of interest and also mentions him - lac) (Thanks Laura... I've temporarily subscribed to edu-sig in case my comments/opinions can be of value to someone. If that concerns you, don't worry, I won't stay long! ) > In a message of Fri, 04 Nov 2005 12:31:03 MST, Trent Oliphant writes: >>This brings up an interesting discussion point, one in which I would be >>extremely interested personally: How do you help students (or yourself) >>move from writing scripts, functions, classes, modules etc. to writing >>a larger project. [snip] >>I know it may seem that I am talking about an IDE - but even those >>assume that you already know how to do a project. So I get overwhelmed. >>I want them to work for me - but they just haven't yet. [snip] >>I am a lone programmer - entirely self taught - and this is a daunting >>task. I feel confident that I could handle programming most of the >>individual components that would make up the project, but I don't even >>know where to start and there appears to be nothing out there to help >>me learn that. >> >>Trent Oliphant > > I think you are looking for the wrong sort of magic bullet. What you > need to learn is how to think about large projects. I could keep all of Laura's comments as they are, of course, right on the mark. I'll comment directly on a couple of her points below and then say one or two things that come to mind in response to Trent's issues above. I suspect this could be a long response so I'll write fast to make it easier on you. ;-) > Whatever you get, make sure it is about Test Driven Design. There are > other competing methodologies for designing large programs, which have > a long history, of which the most famous is called Waterfall. All > you need to know is to avoid them like the plague. Other than to have a basic understanding of what those other methodologies are, and more importantly why they fail (often, and gravely), I'd agree that you can get pretty far with TDD alone in building large projects. I think the first thing to understand is that successful large projects are just small projects that have grown. It is possible, more so in theory than in practice, to "start big" by designing everything in advance, documenting the heck out of it in requirements specs and design docs and test plans, building the beast, testing it thoroughly, and shipping it. Possible, but rarer than a white crow. There are dozens of reasons why this is so, but I'll focus on the positive side here instead: how do you grow a small project? You can write one module, then another, and so on, but you'll just rightly say "but I don't even know where to start." And assorted random modules don't form a cohesive whole, and really this approach works only if you already did "big design up front" and know where you're headed. Most of the time, nobody really knows that, even though many people delude themselves into believing that they do. You could try writing one piece of functionality instead, even if it involves code in a few different modules. Think of it as a "slice" of the future application, maybe a bit of GUI, maybe a bit of the algorithms, some persistence. You'll quickly get into trouble here too, however, since when you start to evolve you'll have massive breakage, awkward interfaces, and no idea where you stand after only a few changes. Test-Driven Development will help with this, though I don't personally find it sufficient. What it will do (as you try this "slice" approach) is _lead_ you in the right direction as you code. You are writing the tests _first_, before each chunk of code that will pass those tests. You are building a body of tests which get re-run often, ensuring you cannot write more than a few bad lines of code before an alarm goes off telling you you're going off track. It forces you to implement less awkward interfaces, and gives you a measuring stick to tell you where you stand. What I find it doesn't do is lead you from at a "big picture" level. What "slice" do you work on first? How do you prioritize the other slices? How complete do you make each feature in the first pass? When are you "done"? These are areas where complete "methodologies" come in, and where Extreme Programming has value for me. Without a "methodology" (one could just call them project management strategies), you may have excellent, working code, maybe even lots of it, but you'll look back on it after six months and realize you've wasted the last four months on features non-essential to your users, maybe things even you don't value. Trent says, "I'm a lone programmer - entirely self taught - and this is a daunting task. I feel confident that I could handle programming most of the individual components that would make up the project, but I don't even know where to start ...." I feel exactly like that at the start of every project! (And, by the way, I'm self-taught in programming too, so I remember something of what you're feeling here.) Really, even right now I'm responding to this email because I'm daunted by the two projects which I should be working on instead, one of which is really too large for one person, and the other of which, while I can handle, has discouraged me after we made a false start (customer specified wrong requirements, we wasted our time) and I haven't rebuilt my "gumption" enough to try it a second time. Interesting side point to note, perhaps: these are issues which traditional "heavy-weight" processes like Waterfall pretty much ignore. Human concerns, emotions? Irrelevant. This is _programming_. Technology! Get your ego out of the way and use this tool correctly and you'll get the job done in no time. Agile processes do deal with soft issues, however. (See http://www.agilealliance.org for a start, and make sure to read the brief Manifesto before spending any more time on that site... this stuff doesn't "fit" some people's brains.) In this case, XP helps me figure out small, achievable, prioritized steps. It basically points me (with relatively little effort on my part) at where I should start, specifically, what precise "slice" is of most value _right now_. It lets me define better how much of that slice I need, and thus defines the tests which I should write when I get into the actual coding (i.e. Test-Driven Development mode). It let's me get going in spite of the daunting feeling (which I suspect never goes away). I expect some folks here and certainly many elsewhere would disagree with much of this. They feel that non-agile approaches work just fine, and in their own cases they might be right. I can't argue about that, and I don't. I do consistently come in to my new customers' sites and hear the same kind of talk. "Look how we've got this nice design document we wrote late last year. This is our master plan, our guide." Universally these customers are _way_ off that plan, in most cases not even remotely doing what it says they should do, except in a very hand-waving kind of way. They've talked themselves into believing that because they wrote a document which has a table of contents that appears to cover the entire scope of the system, they must be doing things right. I'm skeptical, but have an open mind. Maybe this is going to be the first customer I've had who really and truly can do things this way (though, if so, why did they call me in? Hmmm...) Then we get into the code, and start looking at the upcoming features, and I'm flipping through the design document looking for the matching text and finding empty sections with "TBD" (To Be Determined) written just under the titles. A block diagram that has about six different major components that don't actually exist in the hardware. A proposed schedule that ended five months earlier even though the code I'm looking at is barely prototype quality. Signs that only two people in the company have a current copy, and one of those is missing the second half. I could go on. Thankfully I won't, and don't need to, because so far each of these customers is slowly and quietly letting go of their old ways as we come in and, often within a couple of weeks, start giving them a warm fuzzy feeling that their project, while late relative to their original expectations, and struggling with quality issues, is in the right hands. Why? Because we've identified some priorities, we've started writing some tests, and we aren't making unrealistic promises and more. (And their pain is fresh, so they're meek enough for a while that we can push them around a little. ;-) To build large systems, start small. Break the work into small tasks, prioritize, work on them one at a time. Write automated tests for everything. Aggressively limit complexity, including in the code, the tool set, the technologies you are using, and the administrative processes with which your bosses smother you. Use a revision control system. Consider a wiki (for team work) and an issue tracker, but never add a tool until you've struggled without it for a while and are certain it will make your life easier. Measure your progress and always adapt; go back and improve your approach the next time. The following sites might be of interest, though unfortunately I do _not_ maintain a current set of useful links in the area. I tend to do that for my own purposes as I'm learning, but once I've adopted a technique/tool/mindset I tend to stop reading about it and just use it. (In this case, I've had this mindset for five years, which is the longest time any one approach has held my attention and give me benefits, and so far this one shows no signs of stopping. But I don't believe it will always be my primary approach.) * http://www.agilealliance.org/ (mentioned above) * http://c2.com/cgi/wiki?AgileProcesses * http://www.extremeprogramming.org/ (somewhat dated) * http://www.xprogramming.com/ * http://c2.com/cgi/wiki?TestDrivenDevelopment I hope some of these thoughts prove helpful... -Peter From ajsiegel at optonline.net Sat Nov 5 22:51:07 2005 From: ajsiegel at optonline.net (Arthur) Date: Sat, 05 Nov 2005 16:51:07 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <0IPG000DQX8GK7E1@mta16.srv.hcvlny.cv.net> Message-ID: <000001c5e253$0830b560$1702a8c0@BasementDell> > -----Original Message----- > From: Kirby Urner [mailto:urnerk at qwest.net] > Sent: Saturday, November 05, 2005 1:12 AM > To: 'Arthur' > Cc: edu-sig at python.org > Subject: RE: [Edu-sig] Low Enrollments - programming as anti- > intellectualism > > I develop curriculum for a more screen intensive lifestyle. Computers and > digicams are a given. Yes, lack of physical exercise is sometimes a > problem > and needs to be addressed. Using screens a lot doesn't preclude that. Good for developing hand eye coordination, I've been told. Of course my instincts, when I have been told that, has been to look to find a way to defy physical reality, and reach through cyberspace, to go one on one with the source of that assertion - feeling confident that I can hold my own against anybody getting their exercise with their favorite HCI device. > > Don't paint me as trying to force my curriculum down your throat. I don't > have any investment in making you do as I do. I'm a recruiter, yes, but > that doesn't mean I think others have no rights to the same field. I'm > here > to compete. I relish competition. I don't *want* to be the only game in > town (I'd *hate* that). I have no doubt as to your sincerity and integrity. Moat importantly because I have seen it in action - among other things, defending my right to express myself here despite the extent you might disagree with both my message and the manner in which it is sometimes delivered. I relish fair competition as well. But you cannot ask me to ignore the fact that there are financial forces at work on your side of the aisle that value winning more than fair competition. And it is even more complicated than that - the *job* of these financial forces is to win. I am not one to condemn anyone for doing their job. But it is the job of publicly funded educational institutions to bring the argument back to one fought purely on its merits. So I have no problem going into attack dog mode when I don't see *that* job being adequately performed - it being important that *everybody* concerned do their job. In truth, there is more naivety, awe and ignorance than corruption at work, in my view, that is distorting outcomes. Indeed, some of the technology we are discussing is in fact awe-inspiring. But while being the world's leading proponent of Na?ve Programming, I am nonetheless not a proponent of na?ve public administration. > > The future is nothing if not surprising, always. I would be surprised if you are wrong, here. Art From ajsiegel at optonline.net Sat Nov 5 23:41:12 2005 From: ajsiegel at optonline.net (Arthur) Date: Sat, 05 Nov 2005 17:41:12 -0500 Subject: [Edu-sig] Low Enrollments - programming as anti-intellectualism In-Reply-To: <000001c5e253$0830b560$1702a8c0@BasementDell> Message-ID: <000001c5e25a$0641d980$1702a8c0@BasementDell> > But while being the world's > leading proponent of Na?ve Programming Trying to formulate the tenants: 1. Only solve the problems you know you have. 2. It's only a problem if it is worth solving. 3. The future is nothing if not surprising, always. Art From urnerk at qwest.net Sun Nov 6 02:02:42 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sat, 5 Nov 2005 17:02:42 -0800 Subject: [Edu-sig] Python + Tkinter open source videos Message-ID: <20051106010251.B0B2E1E4002@bag.python.org> If you're unaware of video.google.com, a beta video service, this might be a good time to click on: http://video.google.com/videosearch?q=python+chieh&page=1&lv=1 What you'll find is a list of open source (cc) Tkinter + Python vtutorials, done on a GNOME desktop, by a gent named Chieh in Boston (although he used to live in Madrid). He's got an entry at the PythonInfo Wiki: http://wiki.python.org/moin/Intro_to_programming_with_Python_and_Tkinter If you check the OurMedia archive, you'll see he's allowing Remix in non-commercial work, i.e. a student could splice Chieh clips into some later work (with attribution): http://ourmedia.org/node/2128 "I must apologize that many people would find my lectures over simplified or goes too slow. I wrote these lectures aimed for kids and people that never had any programming experience. Lecture 16 is going to start picking up the pace. -- chieh" === In other news IronPython 0.9.4 is out -- the first on to use the non-beta .NET 2.0. This version includes a helpful tutorial. Vtutorials around IronPython would be useful too. Kirby From urnerk at qwest.net Sun Nov 6 02:25:08 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sat, 5 Nov 2005 17:25:08 -0800 Subject: [Edu-sig] web service demo (geocoder.us) Message-ID: <20051106012511.8FC6A1E4022@bag.python.org> Using Python shell to lookup lat/long of my home address: >>> import xmlrpclib >>> server_url = 'http://rpc.geocoder.us/service/xmlrpc' >>> server = xmlrpclib.Server(server_url) >>> result = server.geocode("3745 SE Harrison St., Portland, OR 97214") >>> result [{'city': 'Portland', 'prefix': 'SE', 'suffix': '', 'zip': 97214, 'number': 3745, 'long': -122.624652, 'state': 'OR', 'street': 'Harrison', 'lat': 45.508740000000003, 'type': 'St'}] Try it, if you've got a US address you want to check (then maybe enter the coords in Google Earth to see where that is). The server is actually written in Perl. Kirby From urnerk at qwest.net Sun Nov 6 03:17:32 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sat, 5 Nov 2005 18:17:32 -0800 Subject: [Edu-sig] web service demo (geocoder.us) In-Reply-To: <20051106012511.8FC6A1E4022@bag.python.org> Message-ID: <20051106021732.0F5461E4009@bag.python.org> Adding to demo: >>> address = ("3745 SE Harrison St., Portland, OR 97214",) # params tuple >>> print xmlrpclib.dumps(address ,'server.geocode') server.geocode 3745 SE Harrison St., Portland, OR 97214 Idea: when we introduce "You Are Here" segment (a take-off on "Hello World"), we're beginning a series of experiences aimed at helping students internalize the Earth (in the context of Universe (Celestia, Stellarium etc.)). Integral with that is emphasizing the need for global standards, i.e. ways for humans to collaborate cross-culturally. This is a segue to "open source" not only in the sense of sharing source code, but in the sense of sharing standards like XML, Unicode, ASCII and so on. The above demo shows XML in action, used to pass a method call, with parameters, to some remote host. We want kids to appreciate their heritage, the tools at their disposal, the importance of building on what humans have been able to co-create to date. Even as they look out on all the divergence going on, from their schooling they'll be getting a sense of convergence. Conversation w/ Trevor today, re Karl Popper: Some folks develop the point of view that humans are extremely intelligent, so all the stuff that doesn't work, seems threatening (wars, pollution, rioting) must be an expression of willful evil, as we have the smarts to not have any of that. But Popper's view, which I share, is that we're *not* extremely intelligent (our shared smarts is emergent, not the property of any one individual, and not under any one small group's control), and all that evil stuff is more reflective of our being collectively retarded, not willfully evil.[1] Kirby [1] related blog entry ("Retarded Design"): http://mybizmo.blogspot.com/2005/09/retarded-design.html From Scott.Daniels at Acm.Org Sun Nov 6 05:55:04 2005 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Sat, 05 Nov 2005 20:55:04 -0800 Subject: [Edu-sig] Knuth's books. Message-ID: First, I think they are some of the best out there. Hard to get through, but worth keeping as references for the next 30 years. I suggested them to you (rather than generally to students) because you said you felt: My own experience is more toward the learning to program to learn - in my case - mathematical ideas. But ultimately, to get to where I want to get, I realize that "basic computational skills" are not sufficient - that I need to get somewhat beyond the basics. Knuth was a mathematician by training, and quite a good one at that. Concrete Mathematics is a math book built with an eye to the kind of math that you need the deeper you get into CS. The others, the slowly evolving The Art of Computer Programming (TAoCP) address CS directly. The reason I was suggesting Fascicle 1 (the MMIX machine) was that I think it is an excellent introduction to current machine architectures from the point of view of a programmer, rather than that of an electronics designer. They are all tough books, but none gratuitously so. Concrete Mathematics targets (smart) undergraduates, and so might be a more accessible start. It certainly reads faster than the Fascicles, which go at the same rate as the rest of TAoCP. --Scott David Daniels Scott.Daniels at Acm.Org From ajsiegel at optonline.net Sun Nov 6 15:38:37 2005 From: ajsiegel at optonline.net (Arthur) Date: Sun, 06 Nov 2005 09:38:37 -0500 Subject: [Edu-sig] Knuth's books. In-Reply-To: Message-ID: <000001c5e2df$c8a8feb0$1702a8c0@BasementDell> > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Scott David Daniels > > I suggested them to you (rather than generally to students) because > you said you felt: > > My own experience is more toward the learning to program to learn - > in my case - mathematical ideas. But ultimately, to get to where I > want to get, I realize that "basic computational skills" are not > sufficient - that I need to get somewhat beyond the basics. > > Knuth was a mathematician by training, and quite a good one at that. > Concrete Mathematics is a math book built with an eye to the kind of > math that you need the deeper you get into CS. I certainly think the reference to Knuth, directed to me, is right on point in a number of respects. Besides being a mathematician, I would say his body of work meets my own perceived needs as a student - looking for the best resources to help me learn how to *program*, not those more relevant to learning "how to program" (sorry I can't think of a better way of saying that). And certainly I would have loved to have had his books in hand to browse at my book store visit, and certainly if I found them (as I would have expected) they *would* have been browsed. I have been waiting for an effort at Knuth to meet one further criteria of the Na?ve Programmer - solving a problem I actually have. And it happens I have recently concluded that is exactly where I am. Having a short term goal of exploring Kleinian Groups, in code - ala the ideas (and wonderful graphics) presented in the book Indra's Pearl http://www.ms.unimelb.edu.au/~pnorbury/colloquium/series.html My early efforts have led me to the conclusion that the understanding of algorithmic ideas that are necessary to get there (and that would be part of a CS curriculum) will remain beyond my reach without some more formal study of the area. What will probably not be realistic is the whole nine yards of Knuth - as much as I suspect I would appreciate that effort if there were not constraints on the time I can give to this. But some Knuth seems definitely to be destined for me in the near future. Because I not only want to get at Kleinian Groups in code, I am sufficiently obsessed with the idea of doing so. Art From urnerk at qwest.net Wed Nov 9 01:10:36 2005 From: urnerk at qwest.net (Kirby Urner) Date: Tue, 8 Nov 2005 16:10:36 -0800 Subject: [Edu-sig] Class prep (Python A-Level, Winterhaven PPS) Message-ID: <20051109001036.C72531E400C@bag.python.org> Stopped by to hand off some open source to my certified faculty supervisor at the PPS/PDX facility I'll be haunting, starting soon. He'd requested a GIS spin to the Python, which was fortuitous, given I'd done a gig for good geofolk at the DoubleTree earlier this year (just back from Pycon in DC).[1] What I handed him was: (a) an HTMLParser subclass that screen scrapes some public info about latitudes and longitudes of major US and Canadian cities [2] (b) the large data structure developed therefrom [3] (c) functions to compute rough distance in miles between any two cities in the cities dictionary (many alternatives viable) (d) a function to recast the cities dictionary as some vaguely specified XML (no schema), suitable for writing to a 'stream buffer' of some kind (that's more coffee talk than snake charming, but we aim to be inclusive). The kickoff presentation includes Google Earth, zooming in on our school, figuring out how many bus lengths = one second of longitude at our latitude (roughly). Then we mentally overlay this fabric of hosts and node-clients, all spidery, and shooting packets around (the Internet). Python fits into this ecosystem as a controller, in between models and views in MCV (e.g. between backend SQL engines and front end XHTML). I might screen 'Warriors of the Net' (popular with Hillsboro police and our Saturday Academy students) -- though not necessarily on this first day. Now with 8th graders, it's not my intention that they take all this in all in one go. We'll start with the cities data structure, because that's a rich pool of Python semantics: tuples in a list in a dictionary, with strings and integers both (no floats in this one). Then we'll move to functions, skirting the spherical trig. Then, finally, we'll move to classes and objects, but having already encountered dot notation right from the top: when working with collections, primitive objects. Per my Pythonic Mathematics presentation in Sweden: do a first pass over classes/objects in connection with dot notation, do a second pass later, when students are ready to define their own classes. Metaclasses come later (not in 8th grade). It wouldn't be my goal to have kids writing screen scrapers of the kind we'll be eye-balling, to receive credit (extra credit sure). It's more just the idea of overriding methods, to customize a behavior in response to various tags going by. The concept is easy enough to explain. The nuts and bolts of the process can wait until another day (Feynman's approach in New Zealand: here's everything you need to know, minus what you need to know to actually do it). So we look at code, listen to an explanation of its purpose, but don't have to start with a blank slate and pull an HTMLParser out of a hat. That's not the 8th grade objective. We just want basic fluency around verbs like "to parse" and "to subclass" -- nothing more. The functions they actually *do* write will be simpler: numeric sequences for the most part, and simple substitution ciphers on strings (a grasp of the principles behind RSA by grade 12 is an objective of longstanding in my program; I made significant headway with relevant pedagogical techniques in field testing for Saturday Academy @ OGI).[4] A thread (started long before me) running through all of this is that, in the old days, you could get away with just talking about a language in terms of computer internals, e.g. memory (stack, heap), registers, puts and gets to/from peripherals (including memory mapped video, polling the keyboard). So what's changed? Now a computer has all these ports addressed by an IP number, a name in DNS. We have to explain about TCP/IP, not just about machine languages on chips. In fact, in my training (courtesy 4D Solutions), that's where we start: computer as Internet host. The stuff about Intel inside (or AMD, or Motorola or...) gets more attention later. Kirby [1] http://mybizmo.blogspot.com/2005/03/python-for-gis-experts.html [2] blog entry re using HTMLParser for a different/related purpose: http://worldgame.blogspot.com/2005/11/acting-locally.html [3] http://mail.python.org/pipermail/edu-sig/2005-October/005500.html [4] http://worldgame.blogspot.com/2005/10/saturday-academy.html From lac at strakt.com Wed Nov 9 07:58:42 2005 From: lac at strakt.com (Laura Creighton) Date: Wed, 9 Nov 2005 07:58:42 +0100 Subject: [Edu-sig] Introduction to Python tutorial wanted for PyCON Message-ID: <200511090658.jA96wgSG009043@ratthing-b246.strakt.com> http://mail.python.org/mailman/private/pycon-organizers/2005-November/004356.html If they don't have one already, perhaps they have been asking in the wrong places. Just in case, Laura From wescpy at gmail.com Wed Nov 9 22:40:04 2005 From: wescpy at gmail.com (w chun) Date: Wed, 9 Nov 2005 13:40:04 -0800 Subject: [Edu-sig] Introduction to Python tutorial wanted for PyCON In-Reply-To: <200511090658.jA96wgSG009043@ratthing-b246.strakt.com> References: <200511090658.jA96wgSG009043@ratthing-b246.strakt.com> Message-ID: <78b3a9580511091340i5eca282ib494286c20c5b9d6@mail.gmail.com> On 11/8/05, Laura Creighton wrote: > http://mail.python.org/mailman/private/pycon-organizers/2005-November/004356.html > > If they don't have one already, perhaps they have been asking in the > wrong places. hi laura, i have one and have delivered it at OSCON before, however, isn't it odd to have an intro to Python tutorial at a PyCon conference? aren't all attendees going to be those already familiar with Python? if i were a complete newbie, i'm not sure a conference completely devoted to a technical topic would be my 1st choice. if you still one is still valuable for PyCon, i'll consider it... i just wouldn't want to see it cancelled due to lack of interest/participation. just my $0.02, -wesley From lac at strakt.com Thu Nov 10 07:24:44 2005 From: lac at strakt.com (Laura Creighton) Date: Thu, 10 Nov 2005 07:24:44 +0100 Subject: [Edu-sig] Introduction to Python tutorial wanted for PyCON In-Reply-To: Message from w chun of "Wed, 09 Nov 2005 13:40:04 PST." <78b3a9580511091340i5eca282ib494286c20c5b9d6@mail.gmail.com> References: <200511090658.jA96wgSG009043@ratthing-b246.strakt.com> <78b3a9580511091340i5eca282ib494286c20c5b9d6@mail.gmail.com> Message-ID: <200511100624.jAA6Oior029385@ratthing-b246.strakt.com> In a message of Wed, 09 Nov 2005 13:40:04 PST, w chun writes: >On 11/8/05, Laura Creighton wrote: >> http://mail.python.org/mailman/private/pycon-organizers/2005-November/0 >04356.html >> >> If they don't have one already, perhaps they have been asking in the >> wrong places. > > >hi laura, > >i have one and have delivered it at OSCON before, however, isn't it >odd to have an intro to Python tutorial at a PyCon conference? aren't >all attendees going to be those already familiar with Python? if i >were a complete newbie, i'm not sure a conference completely devoted >to a technical topic would be my 1st choice. But it mught be your bosses first choice to send you. Look at it the other way around. Assume you are desparate to learn the Python programming language, and you are not the sort of person who picks things up on your own. Where would you go? At last year's Europython, the section devoted to people who were either new to python, or Zope people who had never programmed before was really well attended. >if you still one is still valuable for PyCon, i'll consider it... i >just wouldn't want to see it cancelled due to lack of >interest/participation. > >just my $0.02, >-wesley Better talk to Jeff about this. I am just trying to get the word out. Laura From cben at users.sf.net Thu Nov 10 20:49:08 2005 From: cben at users.sf.net (Beni Cherniavsky) Date: Thu, 10 Nov 2005 21:49:08 +0200 Subject: [Edu-sig] Knuth's books. In-Reply-To: References: Message-ID: <1131652148.6176.24.camel@localhost.cherniavsky.homelinux.net> El s?b, 05-11-2005 a las 20:55 -0800, Scott David Daniels escribi?: > They are all tough books, but none gratuitously so. Concrete > Mathematics targets (smart) undergraduates, and so might be a more > accessible start. It certainly reads faster than the Fascicles, > which go at the same rate as the rest of TAoCP. > Concrete Mathematics is wonderful! I dropped it around the middle for lack of time (the later chapter do require concentration and memory) - but it's the single best math book I ever read. And it strongly connects to Kirby's ideas about a parallel non-calculus math track. This book develops that kind of math thinking. I tried TAoCP but was dissatisfied because it seems to touch the algorithmic side of programming but ignore the beauty-of-code side. Things like "Thou shall not work in assembler" ;-). I like the spirit of Structure and Interpretation of Computer Programs much better. -- Not "Did" anything, just "Did". Some things were Done and some things were not Done. And the things that were Done, Igors Did. -- Thief of Time, Terry Pratchett From ajsiegel at optonline.net Fri Nov 11 04:02:40 2005 From: ajsiegel at optonline.net (Arthur) Date: Thu, 10 Nov 2005 22:02:40 -0500 Subject: [Edu-sig] Knuth's books. In-Reply-To: <1131652148.6176.24.camel@localhost.cherniavsky.homelinux.net> Message-ID: <000301c5e66c$629908a0$1702a8c0@BasementDell> > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Beni Cherniavsky > Sent: Thursday, November 10, 2005 2:49 PM > To: edu-sig at python.org > Subject: Re: [Edu-sig] Knuth's books. > > I tried TAoCP but was dissatisfied because it seems to touch the > algorithmic side of programming but ignore the beauty-of-code side. > Things like "Thou shall not work in assembler" ;-). Why assembly? Quoteth Knuth: """ I cannot afford the time to rewrite my books as languages go in and out of fashion; languages aren't the point of my books, the point is rather what you can do in your favorite language. My books focus on timeless truths. Therefore I will continue to use English as the high-level language in TAOCP, and I will continue to use a low-level language to indicate how machines actually compute. Readers who only want to see algorithms that are already packaged in a plug-in way, using a trendy language, should buy other people's books. """ I have not approached TAOCP as of yet, so cannot say to what extent I will be able to adjust to the assembler presentation. Though if I can, I am sure it will be very good medicine. Art From urnerk at qwest.net Fri Nov 11 05:22:59 2005 From: urnerk at qwest.net (Kirby Urner) Date: Thu, 10 Nov 2005 20:22:59 -0800 Subject: [Edu-sig] Knuth's books. In-Reply-To: <000301c5e66c$629908a0$1702a8c0@BasementDell> Message-ID: <20051111042440.47F491E400A@bag.python.org> > I have not approached TAOCP as of yet, so cannot say to what extent I will > be able to adjust to the assembler presentation. Though if I can, I am > sure > it will be very good medicine. > > Art > Yes, I take Knuth as very sincere when he suggests buying other people's books (*and* his), i.e. just because *he* doesn't have the time (TAoCP is a huge commitment) doesn't mean others shouldn't convert the algorithms he covers, in his chosen VHLL (English), into some fashionable/favorite other (e.g. Lisp, Python or J). Assembly remains close to the metal and, through MMIX, TAoCP speaks to a target audience of chip designers and electronics engineers, not just to those who groove on completely abstracted process.[1] Kirby [1] http://en.wikipedia.org/wiki/MMIX From Scott.Daniels at Acm.Org Fri Nov 11 12:55:05 2005 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Fri, 11 Nov 2005 03:55:05 -0800 Subject: [Edu-sig] Knuth's books. In-Reply-To: <20051111042440.47F491E400A@bag.python.org> References: <000301c5e66c$629908a0$1702a8c0@BasementDell> <20051111042440.47F491E400A@bag.python.org> Message-ID: Kirby Urner wrote: >.... Assembly remains close to the metal and, through MMIX, TAoCP speaks > to a target audience of chip designers and electronics engineers, > not just to those who groove on completely abstracted process.[1] Actually, I would claim it speaks not to those people (Patterson & Hennessy speaks to them in a clear voice), but to those who program "next to the metal" -- os people, compiler people, and those (myself included) who have a bull-headed obsession with building the fastest imaginable code. What MMIX gives you is enough information about the current phase (next 15 years at least) of machine architecture to "_know_in_your_bones_" what is expensive and what is cheap. This instinct is vital for certain kinds of programming, and useful for a lot more kinds. After working hard on MMIX code, and leaving it for 10 years, you will still know what kinds of things take trivially different amounts of time, and what kinds of things will "always" be separated by substantial time penalties. This knowledge, "what is costly," is hard-won and precious. Nobody who "really knows" will divide if multiplication is "as easy", and the only way to understand why that is true is to understand what the machines do at their core (By the way, this is old- school knowledge -- circa 1975). The current model is memory fetches and conditional code vs. pure ALU work. It is now faster to multiply by 1 or 0 than to test for those cases and "blow the pipeline." --Scott David Daniels Scott.Daniels at Acm.Org From urnerk at qwest.net Fri Nov 11 15:04:57 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 11 Nov 2005 06:04:57 -0800 Subject: [Edu-sig] Knuth's books. In-Reply-To: Message-ID: <20051111140504.2EF481E4045@bag.python.org> <> > This knowledge, "what is costly," is hard-won and > precious. Nobody who "really knows" will divide if multiplication is > "as easy", and the only way to understand why that is true is to > understand what the machines do at their core (By the way, this is old- > school knowledge -- circa 1975). The current model is memory fetches > and conditional code vs. pure ALU work. It is now faster to multiply > by 1 or 0 than to test for those cases and "blow the pipeline." > > > --Scott David Daniels > Scott.Daniels at Acm.Org Thanks Scott. I'm glad we have talented folk, such as yourself, optimizing at this next-to-the-metal level (as well is in the metal itself). We all benefit from faster, cooler CPUs. Brute force where there could have been an elegant solution is ugly to contemplate when precious resources are at stake. Kirby 4D Solutions From ajsiegel at optonline.net Sat Nov 12 16:15:37 2005 From: ajsiegel at optonline.net (Arthur) Date: Sat, 12 Nov 2005 10:15:37 -0500 Subject: [Edu-sig] ArsDigita U Message-ID: <000001c5e79b$f2c2d890$1702a8c0@BasementDell> Probably an old story to some: Decided to take a look at the site of Neumont U, the big industry funded 2.5 year CS curriculum that Chick had visited and referenced. http://www.neumont.edu/ Which brought me to a reference to Eve Andersson, the chair of the BSCS Program http://www.neumont.edu/public/faculty/eve_andersson.htm Which mentions her as a co-founder of ArsDigita Corporation. Which brings me to this autobiographical article about the start-up and bust-up of ArsDigita by another of the co-founders, Philip Greenspun http://www.waxy.org/random/arsdigita/ which mentions ArsDigita's sponsorship of ArsDigita University "a tuition-free post-baccalaureate one-year computer science program" which brings me to the alumni site of the now defunct program, which makes the teaching materials developed by the faculty for the program available in various forms of media. http://www.aduni.org/ An interesting story, with a sad ending, IMO : Andersson at Neumont Art From jmillr at umich.edu Sat Nov 12 16:51:47 2005 From: jmillr at umich.edu (John Miller) Date: Sat, 12 Nov 2005 10:51:47 -0500 Subject: [Edu-sig] Class prep (Python A-Level, Winterhaven PPS) In-Reply-To: References: Message-ID: This is mainly for Kirby, in case it proves worthwhile: http://groups.google.com/group/turbogears/msg/280bd0a38dda5019 I follow the TurboGears group, and this message was recently posted: ''' Hey all, I've just committed a new version of The Zip Code Database Project on SourceForge. http://zips.sourceforge.net/ What is it? From the home page: "The Zip Code Database project exists to provide US Zip Codes in their entirety; latitude and longitude coordinates included! The download includes an SQL file to dump directly into your database. It currently works with MySQL, but it should be rather easy to port to another database." There is also a Python snippet on how to calculate distances. Just thought I'd give you all a heads up. A little over a year ago I almost purchased this data when I luckily stumbled upon census data that carries all this information. It's public domain so have all the fun you want with it. Jared ''' John Miller On Nov 9, 2005, at 6:00 AM, "Kirby Urner" wrote: > Stopped by to hand off some open source to my certified faculty > supervisor > at the PPS/PDX facility I'll be haunting, starting soon. He'd > requested a > GIS spin to the Python, which was fortuitous, given I'd done a gig > for good > geofolk at the DoubleTree earlier this year (just back from Pycon > in DC).[1] > > What I handed him was: > > (a) an HTMLParser subclass that screen scrapes some public info about > latitudes and longitudes of major US and Canadian cities [2] > > (b) the large data structure developed therefrom [3] > > (c) functions to compute rough distance in miles between any two > cities in > the cities dictionary (many alternatives viable) > > (d) a function to recast the cities dictionary as some vaguely > specified XML > (no schema), suitable for writing to a 'stream buffer' of some kind > (that's > more coffee talk than snake charming, but we aim to be inclusive). > > Kirby > > [1] http://mybizmo.blogspot.com/2005/03/python-for-gis-experts.html > > [2] blog entry re using HTMLParser for a different/related purpose: > http://worldgame.blogspot.com/2005/11/acting-locally.html > > [3] http://mail.python.org/pipermail/edu-sig/2005-October/005500.html > > [4] http://worldgame.blogspot.com/2005/10/saturday-academy.html From urnerk at qwest.net Sun Nov 13 07:04:22 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sat, 12 Nov 2005 22:04:22 -0800 Subject: [Edu-sig] Class prep (Python A-Level, Winterhaven PPS) In-Reply-To: Message-ID: <20051113060426.D500C1E4009@bag.python.org> > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of John Miller > Sent: Saturday, November 12, 2005 7:52 AM > To: edu-sig at python.org > Subject: Re: [Edu-sig] Class prep (Python A-Level, Winterhaven PPS) > > This is mainly for Kirby, in case it proves worthwhile: > > http://groups.google.com/group/turbogears/msg/280bd0a38dda5019 > Thanks. Database toyz always welcome. Kids need grist for the mill when learning LAMP basics. I'll check it out, even if just for future reference (the Winterhaven gig is pretty well planned out but there'll be other times). Kirby From urnerk at qwest.net Sun Nov 13 22:25:55 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sun, 13 Nov 2005 13:25:55 -0800 Subject: [Edu-sig] Introduction to Python tutorial wanted for PyCON In-Reply-To: <200511100624.jAA6Oior029385@ratthing-b246.strakt.com> Message-ID: <20051113212557.50F4D1E4009@bag.python.org> > At last year's Europython, the section devoted to people who were > either new to python, or Zope people who had never programmed before > was really well attended. > Yes, I found this an extremely refreshing aspect of Europython. I attended Guido's lecture @ Chalmers/Gothenburg on the history of Python, up some flights of steps, and it was packed with eager beavers, many of whom I didn't see at the more technical "already know Python" sessions. I learned a lot of history I hadn't heard before myself. I haven't yet signed up for Pycon 2006, pending whether my proposal for a workshop at SIGSCE gets accepted. One trip to Texas per year is probably sufficient. Kirby From urnerk at qwest.net Tue Nov 15 15:56:16 2005 From: urnerk at qwest.net (Kirby Urner) Date: Tue, 15 Nov 2005 06:56:16 -0800 Subject: [Edu-sig] Looking towards Pycon 2006 Message-ID: <20051115145619.754341E400B@bag.python.org> OK, so yes, my SIGCSE thing was rejected. In retrospect I shouldn't have fussed with that word counter (Word has one built in; in Vi/Vim you could just use wc in bash mode). I should have fleshed it all out verbosely in the submitted PDF, since the primary reason I was denied access (to would-be workshop attendees, laptops locked and loaded), was that reviewers didn't already know what this would be like (exactly what computer graphics? exactly what mathematics?). Now from my point of view, that's precisely *why* they might have invited me: to find out what. I feel that was a primary motivation for the 2005 EuroPython trip for example: frank curiosity, a willingness to give me a platform. These Texas people weren't even offering to be that generous. So maybe there's a *reason* the Scandinavians seem to know what's going on? Anyway... Sorry, I was starting to spiral out there for a sec. Back to the matter at hand, I'm heading into a 9 week commitment today, that'll give me lots of classroom time teaching Python. Since Thanksgiving comes next week, and kids have off, I'll just be in preview mode today, hitting the highlights, talking up the likely job-relevance of Python, among other things, even though these kids are still in 8th grade. Call it reassurance. A layer of mission critical Python apps have been and/or are being laid down even as we speak (in Zope & Plone world for one, but also in so many other walks of life). That's not the major reason to learn Python (i.e. is a reason to learn *any* language still in charge of vital machinery, including Mumps and FORTRAN -- the former being a factor in much of my hospital work), but it's still a reason. I'll also be sharing that O'Reilly wall poster chart showing the many interesting languages that company tracks, a time line designed to show influences and fork-offs, not just birth and/or death dates. Addendum: Conference organizers now have the option to solicit video clip samples, as a part of the standard speaker's application form, such that reviewers might not only look at PDFs, but could preview talent much as they do on American Idol, i.e. with a critical eye. Of course many speakers on these circuits are already superstars with cult followings, and have many slick samples ready to share. Others, like me, have relatively few tracks in the archive. Like, I have this one of me talking about the Bucky stuff, but Python is nowhere explicitly mentioned, except you'll think maybe some of the computer graphics might have Python behind them (and you'd be right about that): http://video.google.com/videoplay?docid=-2137134480771470882 Kirby "Blog Man" Urner Current blogs: "Grain of Sand" "Bizmo Diaries" "Control Room" all @ Google's Blogspot.com From urnerk at qwest.net Fri Nov 18 16:33:09 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 18 Nov 2005 07:33:09 -0800 Subject: [Edu-sig] First day of class Message-ID: <20051118153315.DBE4E1E400A@bag.python.org> So we found our school on Google Earth, then I quickly sampled Celestia and Stellarium, while chatting up the open source model of application development (these latter two being good examples, plus they help with orientation (some kids still working on which way is 'North')). Every student has a computer and we went to hands-on with IDLE. The first we're doing is querying various objects as to their types, e.g. type(1), type('c'), type('cat'), type(10.1). I asked if they knew what type(-1) would be and this drew some derision, like we learned that in 6th grade. "So might I be permitted to say 'duh!'" Yeah, that was fine with them. Integer. Next time we meet, it'll be just about all hands-on, practically no lecturing. We'll be entering lists and dictionaries (good practice typing e.g. enter a list of the 9.5 planets [1]), and then invoking methods on 'em. The focus is "dot notation" as well as "data structures". We'll come back to defining our own objects later. Kirby PS: hey Art, I think our sparring on this list helped me focus my thinking around the charter school issue. You got me thinking about charters in more general terms. Here's a recent thread on the issue: http://mathforum.org/kb/message.jspa?messageID=4091763&tstart=0 [1] 9.5 planets a joke of course, but I did tell them this whole 'nine planets' thing is slated for the ash heap of history. Either we remove Pluto (which most people would rather keep), or we add some objects beyond Pluto. Either way, the outcome is no longer nine. I learned all this current info from the Vatican Observatory the other night, thought I'd pass it along to these public school kids (it's science, not catechism). From ajudkis at verizon.net Sun Nov 20 03:28:39 2005 From: ajudkis at verizon.net (Andy Judkis) Date: Sat, 19 Nov 2005 21:28:39 -0500 Subject: [Edu-sig] question about livewires package. . . References: Message-ID: <002301c5ed7a$1e494b00$6401a8c0@Gandalf> Hello, I have a very nuts-and-bolts question for you folks. I have found that the Livewires graphics routines behave differently under Python 2.4.1 than they do under 2.2.3. Specifically, under the former, in IDLE, if I interactively run >>> from livewires import * >>> begin_graphics() >>> circle(100,100,50, filled=True) >>>circle(300,300,70) >>> end_graphics() then nothing shows up until I run end_graphics(). The circles then shows up for moment, just before the graphics window is destroyed. If I run the same sequence under 2.2.3, the each circle shows up immediately when the command is executed. This latter behavior is what I want -- is there a way to make it work that way under 2.4? (Why not just use 2.2? Because I'm also trying to work with RUR-PLE, which requires wxPython, and the versions of wxPython available on the web site are for 2.3 and 2.4. Perhaps it could all work with 2.2, but it would be nice not to have to experiment with all the permutations. And I really don't want to tell the kids "we have to use 2.2 for this but 2.4 for that", it really doesn't send the right message at this tender stage in their programming careers. . . better that they learn the bitter truth -after- they're hooked, eh?) Thanks, Andy Judkis Academy of Allied Health and Science Neptune, NJ From Scott.Daniels at Acm.Org Sun Nov 20 18:18:11 2005 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Sun, 20 Nov 2005 09:18:11 -0800 Subject: [Edu-sig] question about livewires package. . . In-Reply-To: <002301c5ed7a$1e494b00$6401a8c0@Gandalf> References: <002301c5ed7a$1e494b00$6401a8c0@Gandalf> Message-ID: Andy Judkis wrote: ... > Livewires graphics routines behave differently under Python 2.4.1 than they > do under 2.2.3. Under 2.4.1, in IDLE, if I interactively run >>>>from livewires import * >>>>begin_graphics() >>>>circle(100,100,50, filled=True) >>>>circle(300,300,70) >>>>end_graphics() > then nothing shows up until I run end_graphics(). The circles then shows up > for moment, just before the graphics window is destroyed. > If I run the same sequence under 2.2.3, the each circle shows up immediately > when the command is executed. This latter behavior is what I want -- is > there a way to make it work that way under 2.4? OK, here's what is going on. In 2.3, an Idle rewrite happened to run programs in a separate process, rather than keeping them in the same process. That meant, no matter how insane your program got, you could simply "restart the shell" and discard the insane process. This unfortunately also meant the event loops weren't so connected, and things like turtle graphics were nowhere near as fun (the event processing for the graphics in interpreted environment needs to be fed chances to draw). Because of this loss of functionality, you can start Idle with the "separate process" feature disabled by changing the idle startup from something like: "python ...idle.pyw" to something like "python ...idle.pyw -n" -- start idle with no subprocesses. on Windows: copy the idle shortcut (right-click, menu item copy; right-click on desktop, menu item paste). Right-click on your new shortcut (now often called something like "Copy of Idle") and choose properties. In the "General" tab, you can fix the name to be something more to your liking. On the shortcut tab, change the "Target" entry by append a space and a -n to the target. Click OK, and you have a new Idle button which does the one-process Idle thing. I'm afraid I don't know the details for other systems, but the trick is the same -- instead of simply running idle.pyw (or idle.py), add a single "-n" argument to the process. As is described elsewhere, this way of running Idle makes some things nicer, but makes your idle program more fragile (no more so than the 2.2 idle, however). If you launch the new IDLE, you'll get: IDLE 1.1.2 ==== No Subprocess ==== >>> You can find more on this issue addressed in (for example): http://mail.python.org/pipermail/edu-sig/2004-April/003669.html Hope this helps and is clear enough. Happy instructing. --Scott David Daniels Scott.Daniels at Acm.Org From urnerk at qwest.net Mon Nov 21 01:06:24 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sun, 20 Nov 2005 16:06:24 -0800 Subject: [Edu-sig] question about livewires package. . . In-Reply-To: Message-ID: <20051121000626.3EF0E1E401C@bag.python.org> > Hope this helps and is clear enough. Happy instructing. > > --Scott David Daniels > Scott.Daniels at Acm.Org We also ended up using this -n switch when I taught Python to home schoolers at FreeGeek that time (Rita's class).[1] I think because the one Python executable was in some shared bin on the server, whereas the student workstations were diskless, booted right off their Ethernet cards. Given we were all running off the same server, in some primitive window manager (not KDE or GNOME -- a much smaller footprint), probably the tcp/ip loop-back IDLE uses to maintain contact with a subprocess didn't apply in our case. Speculation on my part. On target? Kirby Oregon Curriculum Network http://www.4dsolutions.net/ocn/ [1] http://www.4dsolutions.net/ocn/pygeom.html From Scott.Daniels at Acm.Org Mon Nov 21 03:16:08 2005 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Sun, 20 Nov 2005 18:16:08 -0800 Subject: [Edu-sig] question about livewires package. . . In-Reply-To: <20051121000626.3EF0E1E401C@bag.python.org> References: <20051121000626.3EF0E1E401C@bag.python.org> Message-ID: Kirby Urner wrote: > Speculation on my part. On target? Sounds right, but I really haven't investigated beyond learning how to get back to the point where I can experiment with TkInter interactively. There is so much more learning possible with the immediate feedback, that it is worth (to me) the increased fragility and irreproducibility. When using idle in "normal" (separate process) mode, I leave one idle session open for a week at a time (shutting down w/ standby). With "-n" I wind up restarting Idle every couple of hours for one reason or another. The big place this hurts is when my software goes insane, and I can no longer cut and paste before restarting (in fact I lose all display capability for the windows). So I have to try to remember what broke things. As a result, I have two shortcuts on my desktop: one for "normal" Idle, and one for "in-process" ("-n") Idle. VPython seems to have done OK with keeping interactivity, I really should look into how they do it. --Scott David Daniels Scott.Daniels at Acm.Org From glingl at aon.at Mon Nov 21 12:03:23 2005 From: glingl at aon.at (Gregor Lingl) Date: Mon, 21 Nov 2005 12:03:23 +0100 Subject: [Edu-sig] question about livewires package. . . In-Reply-To: References: <002301c5ed7a$1e494b00$6401a8c0@Gandalf> Message-ID: <4381A97B.70101@aon.at> Scott David Daniels schrieb: > Andy Judkis wrote: > ... > >>Livewires graphics routines behave differently under Python 2.4.1 than they >>... > you can start Idle with the "separate process" feature disabled by > changing the idle startup from something like: "python ...idle.pyw" > to something like "python ...idle.pyw -n" -- start idle with no > subprocesses. > > on Windows: > copy the idle shortcut (right-click, menu item copy; right-click on > desktop, menu item paste). > Right-click on your new shortcut (now often called something like > "Copy of Idle") and choose properties. In the "General" tab, you > can fix the name to be something more to your liking. On the > shortcut tab, change the "Target" entry by append a space and a -n > to the target. > Click OK, and you have a new Idle button which does the one-process > Idle thing. > Sometimes you may want to or have to do interactive graphics on one or more (Windows) machines where you can't or don't want to change the desktop etc. (e.g. you have to do a workshop somewhere etc...) In this case the following trick will work: Rightclick an arbitrary *.py progam in Windows Explorer and choose "edit with IDLE...". This also will open IDLE in the -n (or no subprocess) mode. You may create a tiny program with the single statement from Tkinter import * (or: from turtle import *) and use this for the above trick. Regards, Gregor -- Gregor Lingl Reisnerstrasse 3/19 A-1030 Wien Telefon: +43 1 713 33 98 Mobil: +43 664 140 35 27 From john.zelle at wartburg.edu Mon Nov 21 15:48:49 2005 From: john.zelle at wartburg.edu (John Zelle) Date: Mon, 21 Nov 2005 08:48:49 -0600 Subject: [Edu-sig] question about livewires package. . . In-Reply-To: References: <20051121000626.3EF0E1E401C@bag.python.org> Message-ID: <4381DE51.3030103@wartburg.edu> Scott David Daniels wrote: > Kirby Urner wrote: > > >>Speculation on my part. On target? > > > Sounds right, but I really haven't investigated beyond learning how to > get back to the point where I can experiment with TkInter interactively. > There is so much more learning possible with the immediate feedback, > that it is worth (to me) the increased fragility and irreproducibility. > > When using idle in "normal" (separate process) mode, I leave one idle > session open for a week at a time (shutting down w/ standby). With "-n" > I wind up restarting Idle every couple of hours for one reason or > another. The big place this hurts is when my software goes insane, and > I can no longer cut and paste before restarting (in fact I lose all > display capability for the windows). So I have to try to remember what > broke things. As a result, I have two shortcuts on my desktop: one for > "normal" Idle, and one for "in-process" ("-n") Idle. > > VPython seems to have done OK with keeping interactivity, I really > should look into how they do it. > VPython runs a GTK (I think) event loop in a separate thread, to stay interactive in IDLE. I have done something similar using TK in my graphics.py package, so it plays well interactively with IDLE (for the most part). Basically, the graphics package runs its own TK thread that executes the Tk event loop. All calls into the library are handed over to that thread for execution. The independent event loop keeps the graphics window responsive. The problem is that once you do this, your package is subject to the vargaries of the thread and subprocess models of the various platforms on which it runs. As a result, the threaded version of my package does not seem as rock-stable as the previous version had been. Tk seems a bit brittle in this respect, but it's really the only way to work with the new IDLE. One side-effect of this approach is that when IDLE is run with -n, closing a graphics window shuts down IDLE. That's probably just a bug/misunderstanding on my part, but I haven't tracked it down yet. -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Mon Nov 21 18:39:04 2005 From: ajsiegel at optonline.net (Arthur) Date: Mon, 21 Nov 2005 12:39:04 -0500 Subject: [Edu-sig] question about livewires package. . . In-Reply-To: <4381DE51.3030103@wartburg.edu> References: <20051121000626.3EF0E1E401C@bag.python.org> <4381DE51.3030103@wartburg.edu> Message-ID: <43820638.9040007@optonline.com> John Zelle wrote: > >VPython runs a GTK (I think) event loop in a separate thread, to stay >interactive in IDLE. > I believe this is true on Unix, but that VPython uses a native OpenGL capable window on Windows. It has seemed to me that VPython event loop handling is problematic. The IDLE event loop, I believe, evolved in part in an effort to accommodate VPython - as David Scherer, the author of VPython, was also the author of the idle-fork branch that was eventually merged into IDLE proper. Other IDEs and prompts - Pythonwin, and ipython, for example, cannot handle VPython - closing altogether when a VPython window closes. Both Pythonwin and ipython are mature and widely used - so I do tend to think of it as a VPython issue. Not sure what the cake and eat-it possibilities are, i.e. whether it is possible to maintain the VPython interactivity while having it play better with others. And I do sometimes wonder whether the IDLE event loop handling has been overcomplicated by the effort to accommodate VPython - though I am glad the effort has been made. Lots of this is C, and not something I am configured to understand too deeply - though as PyGeo wraps itself around VPython, it is an issue in which I am quite interested, and do try to follow. The other big issue being VPython on the Mac - where I know there are installation issues, but I also know progress is being made (I think Dethe is looking at it, for one). I am close to buying a used Mac, feeling it necessary to get some handle on what folks are confronting here. Art From urnerk at qwest.net Sat Nov 26 08:17:34 2005 From: urnerk at qwest.net (Kirby Urner) Date: Fri, 25 Nov 2005 23:17:34 -0800 Subject: [Edu-sig] URNER (/sigs/edu-sig) signing off (temporary?) Message-ID: <20051126071744.6103A1E400A@bag.python.org> MEMO Nov 25, 2005 FR: Kirby Urner, manager edu-sig web page TO: pydotorg (python.org web site management) RE: Turnover in edu-sig webmaster position Some weeks ago I managed to rescue my page management powers, which had lapsed in the conversion from CVS to SVN. However, after much mucking about, it turned out I didn't have final check-in privileges (I could only post changes to an interim server), although some assurance was given that one day I would, once the new infrastructure was in place. In the meantime, I got over 5000 spam on pydotorg over Thanksgiving, maxing out my Qwest inbox in the time I was away. Given the tradeoff between not having real management powers in python.org, and getting 20-30 spam every hour or so, I've decided to hang up my tiny credential (manager of sigs/edu-sig -- just the page, not the mail list). I'd be happy to pick it up again someday if python.org managers decide they'd like me to. Anyway, I think it makes sense to keep rotating that position, i.e. keep passing the baton. That's how I set it up as first webmaster for BFI (bfi.org): keep some turnover in the webmaster position. Makes sense. From urnerk at qwest.net Sat Nov 26 20:49:22 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sat, 26 Nov 2005 11:49:22 -0800 Subject: [Edu-sig] URNER (/sigs/edu-sig) signing off (temporary?) In-Reply-To: <20051126071744.6103A1E400A@bag.python.org> Message-ID: <20051126194927.9E93B1E4009@bag.python.org> Well, easier said than done. Upon posting last night's memo, I went to the pydotorg web site and signed off. That forwarded something (I don't think to me) for approval. In the meantime, the spams keep raining in. Kirby > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Kirby Urner > Sent: Friday, November 25, 2005 11:18 PM > To: edu-sig at python.org > Cc: pydotorg at python.org > Subject: [Edu-sig] URNER (/sigs/edu-sig) signing off (temporary?) > > MEMO > Nov 25, 2005 > > FR: Kirby Urner, manager edu-sig web page > TO: pydotorg (python.org web site management) > RE: Turnover in edu-sig webmaster position > From urnerk at qwest.net Sun Nov 27 06:31:40 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sat, 26 Nov 2005 21:31:40 -0800 Subject: [Edu-sig] URNER (/sigs/edu-sig) signing off (temporary?) Message-ID: <20051127053146.138961E400F@bag.python.org> I got a very polite note from someone who took me off the list, stopping the spam, which all the python.org webmasters are weathering bravely. It's not a big tragedy or dark moment that I'm working to turn over that page to another talented person. I thought I did an OK job, but by definition there're limits to my vision. I'm not apologizing for my style, but I'm certainly open to fresh views and approaches. So I encourage the edu-sig page to *continue* through a series of webmasters, on into the future, with no one person permanently entrenched. Not me, not anyone. That'd be my preference (not a command or anything). This is the same preference/advice I gave to BFI long ago, and bfi.org is looking very good these days. I think there's been quite a bit of turnover, which is as it should be. So again, no big deal that I'm choosing to move on. A sign of a mature python.org management, in my book. And yes, I'd gladly do the job again down the road, but not right away. Kirby 4D Studios > -----Original Message----- > From: Kirby Urner [mailto:urnerk at qwest.net] > Sent: Saturday, November 26, 2005 11:49 AM > To: 'Kirby Urner'; 'edu-sig at python.org' > Cc: 'pydotorg at python.org' > Subject: RE: [Edu-sig] URNER (/sigs/edu-sig) signing off (temporary?) > > > Well, easier said than done. Upon posting last night's memo, I went to > the pydotorg web site and signed off. That forwarded something (I don't > think to me) for approval. In the meantime, the spams keep raining in. > > Kirby > > > -----Original Message----- > > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > > Behalf Of Kirby Urner > > Sent: Friday, November 25, 2005 11:18 PM > > To: edu-sig at python.org > > Cc: pydotorg at python.org > > Subject: [Edu-sig] URNER (/sigs/edu-sig) signing off (temporary?) > > > > MEMO > > Nov 25, 2005 > > > > FR: Kirby Urner, manager edu-sig web page > > TO: pydotorg (python.org web site management) > > RE: Turnover in edu-sig webmaster position > > From urnerk at qwest.net Sun Nov 27 07:33:40 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sat, 26 Nov 2005 22:33:40 -0800 Subject: [Edu-sig] URNER (/sigs/edu-sig) signing off (temporary?) In-Reply-To: <20051127053146.138961E400F@bag.python.org> Message-ID: <20051127063346.032D21E4007@bag.python.org> > I got a very polite note from someone who took me off the list, stopping > the spam, which all the python.org webmasters are weathering bravely. PS: except urnerk at qwest.net is *still* getting copies of everything sent to webmaster at python.org e.g. Message from yahoo.com. Unable to deliver message to the following address(es). : This address no longer accepts mail. --- Original message follows. Return-Path: The original message is over 5k. Message truncated to 1K. X-Rocket-Spam: 68.215.186.232 X-YahooFilteredBulk: 68.215.186.232 X-Rocket-Track: cat=BK; info=ip:BK;sv:UK X-Originating-IP: [68.215.186.232] Return-Path: Authentication-Results: mta185.mail.re2.yahoo.com from=python.org; domainkeys=neutral (no sig) Received: from 68.215.186.232 (HELO kvhech.org) (68.215.186.232) by mta185.mail.re2.yahoo.com with SMTP; Sat, 26 Nov 2005 18:51:39 -0800 From: Webmaster at python.org Date: Sun, 27 Nov 2005 02:47:01 GMT Subject: Ihr Passwort It's just *not* that easy to get rid of me I guess. ;=D Kirby From urnerk at qwest.net Sun Nov 27 22:19:19 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sun, 27 Nov 2005 13:19:19 -0800 Subject: [Edu-sig] completing my tenure as edu-sig webmaster (until next time) Message-ID: <20051127211923.3163E1E4014@bag.python.org> FYI this should be my final post to this thread. Sorry to be so verbose but I think edu-sig is a good place to archive the internal workings, given pydotorg is so difficult to use these days (owing to vast amounts of spam pouring over the floodgates). Kirby -----Original Message----- From: Kirby Urner [mailto:urnerk at qwest.net] Sent: Sunday, November 27, 2005 10:42 AM To: 'skip at pobox.com' Cc: 'postmaster at python.org' Subject: RE: [Pydotorg] Request to be unsubscribed (urnerk at qwest.net) Hi Skip. Spams appear to have abated, thanks to interventions on my behalf. Note that edu-sig the mail list still has a moderator. My only role was to administer the web page, i.e. the content of http://www.python.org/sigs/edu-sig/ -- you'll see my email address under 'Email Us' in the left margin. All that needs to happen is for another email address to appear, and for the new maintainer to have check-in privileges i.e. the power to directly modify that page (a power I somewhat lost in the move from CVS to SVN). That new email address could be yours, if Python in Education is something you're really interested in (I am, and continue to be). Another scenario would be for you to hold the position temporarily, while encouraging PSF or some other python.org management entity (pydotorg etc.) to recruit a new webmaster. Edu-sig would be a logical venue in which to recruit, IMO, but nets could be cast far and wide. Maybe attract some Very Big Name (VBN) to the job -- as long as it makes sense (e.g. the VBN actually knows some Python). Kirby > -----Original Message----- > From: skip at pobox.com [mailto:skip at pobox.com] > Sent: Sunday, November 27, 2005 7:28 AM > To: Kirby Urner > Cc: postmaster at python.org > Subject: Re: [Pydotorg] Request to be unsubscribed (urnerk at qwest.net) > > > Kirby> I believe administration of the pydotorg mail server by email > Kirby> command is impractical in this spam storm. > > I have a script I use that helps me rip through the moderation job very > quickly. Feel free to add me as a moderator for edu-sig (and send me the > moderator's password). Also, perhaps our spambayes database needs a few > more messages added to it. > > Skip From urnerk at qwest.net Mon Nov 28 04:58:05 2005 From: urnerk at qwest.net (Kirby Urner) Date: Sun, 27 Nov 2005 19:58:05 -0800 Subject: [Edu-sig] [Pydotorg] Request to be unsubscribed (urnerk@qwest.net) In-Reply-To: <20051128010758.GB21557@mems-exchange.org> Message-ID: <20051128035809.2BB401E400F@bag.python.org> Thanks Neil. I'm pretty sure urnerk at qwest.net was the target. Definitely the webmaster list was a source. All quiet now (whew! -- what a relief). I'm unclear on the policies (whether a page maintainer needs to get webmaster email), but in any case, per recent threads on edu-sig at python.org, I'm interested in turning the job over to new talent. I advocate such turnover on principle -- preserves freshness, adds to community morale etc. Fewer opportunities to become entrenched = more opportunities for people to participate, try on different hats. I've also expressed my willingness to do the job again down the road -- but only after deserving others have had a chance to express their vision around this important topic: Python in Education. Kirby > -----Original Message----- > From: Neil Schemenauer [mailto:nas at arctrix.com] > Sent: Sunday, November 27, 2005 5:08 PM > To: Kirby Urner > Cc: postmaster at python.org > Subject: Re: [Pydotorg] Request to be unsubscribed (urnerk at qwest.net) > > On Sun, Nov 27, 2005 at 10:41:50AM -0800, Kirby Urner wrote: > > Note that edu-sig the mail list still has a moderator. My only role was > to > > administer the web page, i.e. the content of > > http://www.python.org/sigs/edu-sig/ -- you'll see my email address under > > 'Email Us' in the left margin. > > Were you getting spam via urnerk at python.org? Based on the logs, it > looks like not (or at least not a lot). You were, however, on the > webmaster at python.org alias list and that address was receiving a lot > of junk over the past few days. Today I had enough spare time to > improve the filtering so I think the torrent has stopped. > > In any case, you have been removed from the webmaster alias list. > Perhaps you wish to remain as the maintainer of the edu-sig page? I > don't think that job requires you to get webmaster mail. > > Neil