From kirby.urner at gmail.com Sat Apr 1 17:35:26 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 1 Apr 2006 07:35:26 -0800 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <000301c654d2$5411b5f0$1702a8c0@BasementDell> References: <442CCFE0.3040908@ccnmtl.columbia.edu> <000301c654d2$5411b5f0$1702a8c0@BasementDell> Message-ID: > Personally, I don't think Python *is* in the Alice, Scratch, Rapunsel space > or *belongs* in that space or is competitive in that space. > > Which happens to be more than fine with me. > > Art I think you don't have strong rapport with puppetry and the many conceptual similarities of programming to puppeting. When you go to a theater they hand you a "programme" and the actors are scripted in more ways than one. MVC design patterns apply (the director is a controller, working off a screenplay or storyboard, the view is what the audience takes in, and the model is the assets on stage, be they animated characters, live actors or whatever -- and lets not forget scenery). Autobio: growing up in Rome, we'd go to Piazza Navona around Christmas time (I'd love to go again) and I'd get clay puppets, maybe with just a wire from the head, but well crafted and the whole cast for some story e.g. you could buy 'Little Red Riding Hood' as a clump, complete with wolf, grandma and the rest of it. Then I'd stage shows for my younger sister, complete with taped sound track (early cassette recorder) and lighting. There's nothing more natural than using object oriented syntax, including Python's, to drive animations, e.g. actor1 = RidingHood(), actor1.wave(3). Python *is* competitive in this space, if only because the bindings might be to C# or C++ routines that are fast and efficient in their use of computer memory and resources. Python-the-language doesn't get all the credit for making the action smooth, but it *does* get a lot of credit when it comes to smoothing the surrounding pedagogy, making cybertheater a reality for many more children and adults than ever before. And per my Shuttleworth Summit paper (URL given previously), I'm all for keeping a fantasy life alive and kicking (a dying imagination is no use in math, either, so best we keep it well fed and happy). This isn't a genre you need to specialize in or make your niche, but I don't see the point in fighting it as somehow an anathema to everything Python stands for. That's very parochial, not to mention a losing battle. I'm all for strict, stark and austere mathematical stuff in its proper context, and we shouldn't drop that, not ever. But this isn't an either/or proposition. I intend to invest in both approaches myself. As I mentioned a little while back, I'm inspired by IronPython's access to the little characters that ship with Microsoft Office and so on. That's a primitive beginning, but more inspiring than Alice, which was never much about teaching Python per se, even when it was implemented in Python. I'd rather do puppets where the scripting language is indeed purely Pythonic, not some one-off language customized to just this one application (some goes for when the subject is pure geometry). It's the simplicity of Python itself which I like. We don't lose that just because of all the dancing bears. Given your experience with VPython (a theater for shapes), I'd think you'd be among the first to appreciate that fact. So what if the object is a Nemo type clown fish instead of a polyhedron (come to think of it, a clown fish *is* a polyhedron). Kirby From ajsiegel at optonline.net Sat Apr 1 20:37:17 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Sat, 01 Apr 2006 13:37:17 -0500 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: References: <442CCFE0.3040908@ccnmtl.columbia.edu> <000301c654d2$5411b5f0$1702a8c0@BasementDell> Message-ID: ----- Original Message ----- From: kirby urner Date: Saturday, April 1, 2006 10:35 am Subject: Re: [Edu-sig] Rapunsel, Rapunsel > > We don't lose that just because of all the dancing bears. Given your > experience with VPython (a theater for shapes), I'd think you'd be > among the first to appreciate that fact. So what if the object is a > Nemo type clown fish instead of a polyhedron (come to think of it, a > clown fish *is* a polyhedron). The biggest difference between what I've done, and what you are talking abouty is that I've done it, and you are talking about it. If you have a vision, by all means... But *no* credit for talking about it. None. Art From kirby.urner at gmail.com Sat Apr 1 20:53:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 1 Apr 2006 10:53:41 -0800 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: References: <442CCFE0.3040908@ccnmtl.columbia.edu> <000301c654d2$5411b5f0$1702a8c0@BasementDell> Message-ID: > If you have a vision, by all means... > > But *no* credit for talking about it. None. > > Art That's fair. What I've mostly done to date is in the austere/stark category -- lots of command line, not a lot of animation of cute characters. Under the heading of accomplishments, I list Pythonic Mathematics, a mature curriculum by this time.[1] As we get more graphics intensive, it's less a one man show, and certainly Kirby Urner isn't that one man, even to the extent it *is* a one man show. I'm not a skilled-enough low level programmer. So on that side of the fence (using Python to script puppets, make cartoons), I expect to be crediting others a lot (as I do even today), while piggy-backing on their work (yes, I *do* cite sources -- you may have heard rumors that Fuller was ungenerous in this way, but even that's not such an easy judgment to reach if you're a Fuller Schooler insider). Kirby [1] http://mathforum.org/kb/thread.jspa?threadID=1354856 From kirby.urner at gmail.com Mon Apr 3 03:56:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 2 Apr 2006 18:56:39 -0700 Subject: [Edu-sig] Edubuntu Message-ID: So I'm downloading an edubuntu image in preparation for burning to CD. I'm feeling motivated to bone up on a Linux distro advertised to school children, as free and open source, and as customizable to whatever unicode language. What sort of snake's nest do we get, and how might we enhance it? I need to do more homework on this question. On this list, we've many times come back to the "edu distro" idea, but Python-centric. And yet how free of an underlying operating system might such a distro really be? I think it's easier, with Linux at least, to get what you need right into the Linux distro CDs, suggesting at least one popular Pythonic education package could be, well, edubuntu itself. That doesn't mean repurposing edubuntu of course, just expanding the balloon with more custom Python stuff, e.g. PyGeo with whatever tutorials are ready. So already we're talking about IDLE, which requires Tk, and VPython. I'm guessing the current edubuntu is VPythonless. Art, you wrote: """ Worth noting that ubuntu has just come out with a companion edubuntu distribution. Haven't explored it yet. I do know I have the goal of getting PyGeo into it at some point - but that would mean getting myself comfortable with PyGeo. """ [ http://mail.python.org/pipermail/edu-sig/2005-October.txt ] What I've not yet found in any Linux distro is a working VRML or 3XD plug-in for FireFox, like Cortona on Windows. I'm probably out of date on this topic. I'll go read Wikipedia: http://en.wikipedia.org/wiki/X3D Kirby From ajsiegel at optonline.net Mon Apr 3 06:11:31 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 03 Apr 2006 00:11:31 -0400 Subject: [Edu-sig] O2S Message-ID: <000001c656d4$b193b260$1702a8c0@BasementDell> Trying to respond to kirby's recent post about edubuntu - looking for the debian distribution of VPython which can be apt-got, I cone accidentally across this. """ O2S is a proposed software architecture for automatic, dynamic assembly of software components for realization of user-specified goals. """ http://o2s.csail.mit.edu/system.html What makes it particularly, amazingly interesting is the fact that Python *and* VPython *and* pygame and just a few other packages seem to be at the core of the system: http://o2s.csail.mit.edu/o2s-wiki/InstallSoftware Boy this looks interesting, edu-sig-wise. Will be investigating more thoroughly ASAP. Art From ajsiegel at optonline.net Mon Apr 3 13:59:23 2006 From: ajsiegel at optonline.net (Art) Date: Mon, 03 Apr 2006 07:59:23 -0400 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: References: <442CCFE0.3040908@ccnmtl.columbia.edu> <000301c654d2$5411b5f0$1702a8c0@BasementDell> Message-ID: <44310E1B.1050303@optonline.net> kirby urner wrote: >> Personally, I don't think Python *is* in the Alice, Scratch, Rapunsel space >> or *belongs* in that space or is competitive in that space. >> >> Which happens to be more than fine with me. >> >> Art > > I think you don't have strong rapport with puppetry and the many > conceptual similarities of programming to puppeting. I think I do, more than you think. > > We don't lose that just because of all the dancing bears. Given your > experience with VPython (a theater for shapes), I'd think you'd be > among the first to appreciate that fact. So what if the object is a > Nemo type clown fish instead of a polyhedron (come to think of it, a > clown fish *is* a polyhedron). We are a lot closer here than you might think. In my development version of PyGeo I have already begun to implement the idea that it is a bit boring to restrict the representation of points to that of spheres. I have points as diamond shapes as a new possibility, implemented. But why not any object that can be represented as a triangle mesh. An airplane, a bear. """PLAYING TO LEARN!""" is Rapunsel's motto. I hope that PyGeo embodies that as well. It should, because playing to learn is how PyGeo came to be. A difference is that I prefer to be clear about what it is we are playing to learn - in this case geometry, which in my view is a core, core learning experience and very amenable to the concept of play. But I *do* want to communicate that you are free to leave any high degree of solemnity in connection with the subject matter at the door. And maybe airplanes as points will further that cause. I also want to communicate that PLAYING TO LEARN is not something that needs to begin or end with children. Even more serious geometry can appropriately be approached playfully. As in the projection of mutable dancing bears of the complex plane to the Riemann sphere. Sorry that more Python folks don't seem to get what I am trying to do and find some way to get behind it. Art From kirby.urner at gmail.com Mon Apr 3 15:35:47 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 3 Apr 2006 06:35:47 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <44310E1B.1050303@optonline.net> References: <442CCFE0.3040908@ccnmtl.columbia.edu> <000301c654d2$5411b5f0$1702a8c0@BasementDell> <44310E1B.1050303@optonline.net> Message-ID: > Sorry that more Python folks don't seem to get what I am trying to do > and find some way to get behind it. > > Art I understand your commitment to keeping it potentially playful is high, and that's a big positive. Having two cars approach a third in opposing lanes on the freeway, and seeing how that defines a triangle of changing shape, or doing the same with four airplanes to see a tetrahedron: that's all worthwhile animation. Kirby From ajsiegel at optonline.net Mon Apr 3 16:03:29 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 03 Apr 2006 10:03:29 -0400 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: Message-ID: <000001c65727$63a64560$1702a8c0@BasementDell> > >-----Original Message----- > >From: kirby urner [mailto:kirby.urner at gmail.com] > >Sent: Monday, April 03, 2006 9:36 AM > >To: Art; edu-sig at python.org > >Subject: Re: [Edu-sig] Rapunsel, Rapunsel > > > >> Sorry that more Python folks don't seem to get what I am > >trying to do > >> and find some way to get behind it. > >> > >> Art > > > >I understand your commitment to keeping it potentially > >playful is high, and that's a big positive. > > > >Having two cars approach a third in opposing lanes on the > >freeway, and seeing how that defines a triangle of changing > >shape, or doing the same with four airplanes to see a > >tetrahedron: that's all worthwhile animation. The problem between you and I, I think, - and this has been true for 5 years and everyone has a perfect right to be bored with it - is semantic, most fundamentally because when you say geometry and I say geometry I think we are talking about largely different things. Fuller has not influenced me, and Klein has not influenced you. With the further difference that I happen to think there is a right and wrong answer to the question of whose influence we should be following most closely in an acceptable pedagogical approach to the subject matter. And perhaps the other difference is the fact that I tend to recognized more than you, that there is such a thing as right and wrong answers. Art > > > >Kirby > > From kirby.urner at gmail.com Mon Apr 3 16:20:56 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 3 Apr 2006 07:20:56 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <000001c65727$63a64560$1702a8c0@BasementDell> References: <000001c65727$63a64560$1702a8c0@BasementDell> Message-ID: That's one way to characterize a difference, sure. Keep in mind I'm bucking to be this writer guy in American literature, but not so specialized that I couldn't hold my own in various math and computer science contexts. I studied philo at Princeton and for the longest time fought with Ivory Tower philosophy types to get recognition for Fuller as a great 20th century philosopher (not mathematician, not geometer).[1] Only later did I change my tune, to some extent following Applewhite's lead, and move towards literature, which I've found more congenial in the long run. Rorty's arc has been somewhat similar I understand (Richard Rorty was my thesis adviser back when I was writing about Wittgenstein's later philo for academic credit (now I just do it for the money :-D)). Nor have I entirely abandoned my quest for a revival within the Philosophy tent -- just modified my approach and strategy, based on what I've learned from literature (which includes television, e.g. Joss Whedon's corpus).[2] Kirby [1] http://www.grunch.net/synergetics/stanford.html [2] http://worldgame.blogspot.com/2005/12/more-tv-talk.html From ajsiegel at optonline.net Mon Apr 3 16:36:24 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 03 Apr 2006 10:36:24 -0400 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: Message-ID: <000001c6572b$fc2c9bf0$1702a8c0@BasementDell> > >-----Original Message----- > >From: kirby urner [mailto:kirby.urner at gmail.com] > > > >That's one way to characterize a difference, sure. Keep in > >mind I'm bucking to be this writer guy in American > >literature, but not so specialized that I couldn't hold my > >own in various math and computer science contexts. > >I studied philo at Princeton and for the longest time fought > >with Ivory Tower philosophy types to get recognition for > >Fuller as a great 20th century philosopher (not > >mathematician, not geometer).[1] Nor do I mean to be dissing Fuller in any general way. Don't know enough about him to do so. As a Cultural Figure, I happen to have positive associations with him. He managed to be a counter culture icon who (for me, at least) always seemed to let some inherent gentleness get the better of his of anger. Important example at the time. His fascination with regular polyhedron is not something I fully understand. But I do at least understand that he came to it after some serious study of the mainstream of geometry. Perhaps he got someplace unique. But anyone wanting to truly understand where he got should know a good deal of what he knew in getting there. Which is a good deal. So if you want, just consider what I am talking about as Fuller prerequisites. ;) Art From kirby.urner at gmail.com Mon Apr 3 17:18:26 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 3 Apr 2006 08:18:26 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <000001c6572b$fc2c9bf0$1702a8c0@BasementDell> References: <000001c6572b$fc2c9bf0$1702a8c0@BasementDell> Message-ID: > So if you want, just consider what I am talking about as Fuller > prerequisites. ;) > > Art > Yes and no. One of Fuller's big breakthroughs is at the really basic level, where you don't really need any background. People just assume that, this late in the game, there couldn't be anything new that doesn't require prerequisites to understand. They just assume all the action as at some distant frontier and it'll take years of study to reach the front line. The breakthrough consists of nesting polyhedra (an ancient game) such that whole number volumes emerge, thanks to new emphasis on the tetrahedron as the most topologically primitive volume (spheres, in the other hand, aren't defined as such, as it's a discrete geometry with no continuaa, no solids that we're talking here). In my various math versions of rbf.py (RBF = Fuller's initials), my Pythonic stash of simple polyhedra, I exploit this breakthrough in the constructor by setting self.volume = 1 for the regular tetrahedron. The stella octangula defines a cube of volume 3, octahedron of volume 4, rhombic dodecahedron of volume 6, cuboctahedron of volume 20. There's also a space-filling Coupler of volume 1 and space-filling irregular tetrahedron of volume 1/8.[1] In a 2nd or 3rd grade classroom I'll simply have kids pour beans from one shape to another (or I'll do it, asking them to guess the outcomes). Also, when we scale a poly, i.e. multiply all edges by a common scale factor, I simply multiply volume by a 3rd power e.g. newvolume = self.volume * scalefactor**3.[2] You don't need to read any Klein to accept this basic innovation in early pedagogy. Maybe Piaget would be more relevant? None of which is to say higher level geometry is irrelevant. When Fuller goes on to dissect his shapes into A and B modules, we get more into Coxeter country. HSM Coxeter was one of the great 20th century geometers and Fuller dedicates his Synergetics to him [3]. But it doesn't follow that Synergetics is geometry. Just cracking the cover and reading for a few minutes should persuade anyone of *that* simple fact -- unless you buy that "explorations in the geometry of thinking" (the work's subtitle [4]) is an academic geometry of some kind (an uphill battle I wouldn't care to fight). But a coherent-enough philosophy? Sure, definitely. Kirby [1] http://www.rwgrayprojects.com/synergetics/plates/figs/plate03z.html [2] http://www.4dsolutions.net/ocn/python/hypertoons/rbf.py [3] http://www.math.toronto.edu/coxeter/ [4] http://www.rwgrayprojects.com/synergetics/synergetics.html From ajsiegel at optonline.net Mon Apr 3 17:28:00 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 03 Apr 2006 11:28:00 -0400 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: Message-ID: <000001c65733$314b60d0$1702a8c0@BasementDell> > >-----Original Message----- > >From: kirby urner [mailto:kirby.urner at gmail.com] > > > >The breakthrough consists of nesting polyhedra (an ancient > >game) such that whole number volumes emerge, thanks to new > >emphasis on the tetrahedron as the most topologically > >primitive volume (spheres, in the other hand, aren't defined > >as such, as it's a discrete geometry with no continuaa, no > >solids that we're talking here). Klein considered the tetrahedron the most topologically primitive volume - as I think I demonstrated to you by direct quote. Its like literally Page 1 of the book of his I reference on my site. He quickly also makes the connection to interesting analytics and abstraction from this ground. Unless we have a semantic disconnect. Or unless you haven't conducted the study to truly understand some of the historical development of the ideas floating about here. "New" is a suspicious word, not a sacred word, in my lexicon - in any case. Art From kirby.urner at gmail.com Mon Apr 3 18:03:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 3 Apr 2006 09:03:25 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <000001c65733$314b60d0$1702a8c0@BasementDell> References: <000001c65733$314b60d0$1702a8c0@BasementDell> Message-ID: > Klein considered the tetrahedron the most topologically primitive volume - > as I think I demonstrated to you by direct quote. Its like literally Page 1 > of the book of his I reference on my site. He quickly also makes the > connection to interesting analytics and abstraction from this ground. > OK that's all to the better. Some people say "spheres" are the most primitive shape with an inside and outside, i.e. the simplest "cave" (convex and concave aspects), so don't like the "tetrahedron" answer. Or maybe they prefer "Mobius strip" or some such. > Unless we have a semantic disconnect. > No, we don't. And mainstream geometers are quite familiar with the term "simplex" which is the same as tetrahedron in three dimensions (extended Euclideanism talk). > Or unless you haven't conducted the study to truly understand some of the > historical development of the ideas floating about here. > I'm not coming at this as an issue of determining priority, in the sense of who discovered what first. Fuller was a Robinson Crusoe type, in his relationship to academia. He did a lot of input/output between the ears, but he wasn't a library kind of guy. More into the glam life of jet setting, rubbing shoulders with invisible captains of industry and such, a big J.P. Morgan fan. Applewhite was more the bookish filer type, avidly seeking to win priority battles, worrying over mundane issues of "collateral advantage" and such. He was good at his job, as the back cover of Synergetics 2 attempts to make clear. > "New" is a suspicious word, not a sacred word, in my lexicon - in any case. > > Art You're welcome to be suspicious. If Fuller was as original as I claim he is, we're in for some reshaping of intellectual history. I'm one of the principle reshapers, I like to think, but I'm not operating from within the maths department. I'm a philo guy. Kirby From kirby.urner at gmail.com Mon Apr 3 18:18:21 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 3 Apr 2006 09:18:21 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: References: <000001c65733$314b60d0$1702a8c0@BasementDell> Message-ID: On 4/3/06, kirby urner wrote: > You're welcome to be suspicious. If Fuller was as original as I claim > he is, we're in for some reshaping of intellectual history. I'm one > of the principle reshapers, I like to think, but I'm not operating > from within the maths department. I'm a philo guy. > > Kirby > I shoulda said "principal reshapers" I think; nobody reshapes the principles, is one of the core tenets of Synergetics. We simply abberationally distort them (those principles) into virtual realities of our own devising (sometimes pretty good soap bubbles, if you ask me). Kirby again. From ajsiegel at optonline.net Mon Apr 3 18:27:44 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 03 Apr 2006 12:27:44 -0400 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: Message-ID: <000001c6573b$89a70830$1702a8c0@BasementDell> > >From: kirby urner [mailto:kirby.urner at gmail.com] > > > >You're welcome to be suspicious. If Fuller was as original > >as I claim he is, we're in for some reshaping of > >intellectual history. I'm one of the principle reshapers, I > >like to think, but I'm not operating from within the maths > >department. I'm a philo guy. Difficult for a guy like me to try to hold my own with own the principle reshapers of human thought. Damn - and I had omelet's with you. Got to find someone to tell. Art From kirby.urner at gmail.com Mon Apr 3 18:50:36 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 3 Apr 2006 09:50:36 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <000001c6573b$89a70830$1702a8c0@BasementDell> References: <000001c6573b$89a70830$1702a8c0@BasementDell> Message-ID: > Difficult for a guy like me to try to hold my own with own the principle > reshapers of human thought. > Yeah, I know, but I caught that bug and fixed it. So is Britney Spears. > Damn - and I had omelet's with you. > > Got to find someone to tell. > Tell her! Kirby From ajsiegel at optonline.net Mon Apr 3 19:39:54 2006 From: ajsiegel at optonline.net (Art) Date: Mon, 03 Apr 2006 13:39:54 -0400 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: References: <000001c6573b$89a70830$1702a8c0@BasementDell> Message-ID: <44315DEA.8030409@optonline.net> kirby urner wrote: >> Difficult for a guy like me to try to hold my own with own the principle >> reshapers of human thought. >> > > Yeah, I know, but I caught that bug and fixed it. So is Britney Spears. On the presumption that she could be no more staunch and uncompromising in her pursuit of her version of the governing principles (principals?) I should indeed expect to find an effort at a dialogue with her more satisfying than this has been Art > >> Damn - and I had omelet's with you. >> >> Got to find someone to tell. >> > > Tell her! > > Kirby > From kirby.urner at gmail.com Mon Apr 3 19:47:00 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 3 Apr 2006 10:47:00 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <44315DEA.8030409@optonline.net> References: <000001c6573b$89a70830$1702a8c0@BasementDell> <44315DEA.8030409@optonline.net> Message-ID: http://worldgame.blogspot.com/2006/01/more-music-millenium-notes.html Sorry it wasn't good for you. Kirby On 4/3/06, Art wrote: > kirby urner wrote: > >> Difficult for a guy like me to try to hold my own with own the principle > >> reshapers of human thought. > >> > > > > Yeah, I know, but I caught that bug and fixed it. So is Britney Spears. > > On the presumption that she could be no more staunch and uncompromising > in her pursuit of her version of the governing principles (principals?) > I should indeed expect to find an effort at a dialogue with her more > satisfying than this has been > > Art > > > > > > > >> Damn - and I had omelet's with you. > >> > >> Got to find someone to tell. > >> > > > > Tell her! > > > > Kirby > > > > From bblais at bryant.edu Mon Apr 3 20:27:49 2006 From: bblais at bryant.edu (Brian Blais) Date: Mon, 03 Apr 2006 14:27:49 -0400 Subject: [Edu-sig] Vacuum World version 1e-6alpha ;) released Message-ID: <44316925.2010601@bryant.edu> Hello, I am just learning Python, and my first somewhat significant project is now available at http://web.bryant.edu/~bblais/python/vac.tgz What is it? Vacuum World is a simple simulation environment used to introduce some concepts in Artificial Intelligence (Norvig, 2002), but can also be used as a simple introduction to a programming language. In this case, of course, it is in Python. You write python scripts to control a vacuum cleaner in a simulated room of dirt and furniture, trying to vacuum up as much dirt and get back home to turn off. I've used wax to make a nice gui for running the simulator. A sample agent might look like: Forward() if IsDirt(): Vacuum() Off() Some Questions: As I was making this, I had a number of issues. I invite anyone who cares to look at the code to give me feedback about anything from GUI development, to code organization, or anything else. I have a few questions right off the bat: 1) how is code like this usually distributed? Does one make a setup.py to install it somewhere, and are there certain files that should be in the distribution that I don't have? Should it include a windows binary from py2exe too? 2) I had some problems getting the center panel to fit right. I'd like to have it so that when I resize the board, that the window grows and shrinks to the right size, down to a minimum size (so I can still see the menus). I could do this, using the Fit() method, but I found at the smaller sizes the individual images in the panel started to have large (and growing) spaces between them. I'd rather the whole board be centered in the panel. I tried every combination of Pack() and Fit() and expand=... and align=... , but couldn't get it to work. 3) what sorts of documentation are standard for this? is there a standard way of formatting docstrings (and am I thinking correctly that docstrings are just the quoted strings right after a function declaration?)? I'm sure that I will have more, but answers to these questions will get me a long way. Let me know what you think! Please be gentle, because this is really my first somewhat significant python project, so there is probably some cruft from my Matlab and C experience (stray semi-colons here and there, etc.) thanks, Brian Blais -- ----------------- bblais at bryant.edu http://web.bryant.edu/~bblais From pchase at sulross.edu Wed Apr 5 17:15:08 2006 From: pchase at sulross.edu (Peter Chase) Date: Wed, 05 Apr 2006 10:15:08 -0500 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <000001c65727$63a64560$1702a8c0@BasementDell> References: <000001c65727$63a64560$1702a8c0@BasementDell> Message-ID: <4433DEFC.5000500@sulross.edu> Arthur wrote: > > >... when you say geometry and I say geometry I think we >are talking about largely different things. Fuller has not influenced me, >and Klein has not influenced you. > > > > > How about Euclid? Has he influenced either one of you? From ajsiegel at optonline.net Wed Apr 5 18:25:42 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Wed, 05 Apr 2006 12:25:42 -0400 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <4433DEFC.5000500@sulross.edu> References: <000001c65727$63a64560$1702a8c0@BasementDell> <4433DEFC.5000500@sulross.edu> Message-ID: ----- Original Message ----- From: Peter Chase Date: Wednesday, April 5, 2006 11:15 am Subject: Re: [Edu-sig] Rapunsel, Rapunsel > Arthur wrote: > > > > > > >... when you say geometry and I say geometry I think we > >are talking about largely different things. Fuller has not > influenced me, > >and Klein has not influenced you. > > > > > > > > > > > How about Euclid? Has he influenced either one of you? > How about Euclid? Has he influenced either one of you? My study of geometry as an adult began with The Elements, and by *doing* its constructions with ruler and compass, on paper. I don't in fact see any computer aided approach an adequate substitute for that. Reading Euclid in English translation is about as far as I wanted to compromise. I'm a practical man ;) Art From kirby.urner at gmail.com Wed Apr 5 18:26:52 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 5 Apr 2006 09:26:52 -0700 Subject: [Edu-sig] Rapunsel, Rapunsel In-Reply-To: <4433DEFC.5000500@sulross.edu> References: <000001c65727$63a64560$1702a8c0@BasementDell> <4433DEFC.5000500@sulross.edu> Message-ID: On 4/5/06, Peter Chase wrote: > > How about Euclid? Has he influenced either one of you? > Euclid has influenced Arthur a lot (that's all I'll say on that score, leaving the details to him). I've approached Euclid in various ways, including via mathematician Ralph Abraham, an ISEPP lecturer and 1997 Oregon Math Summit keynoter and workshop leader.[1] If you want some more background, I trace three prongs of a fork for the "4D" meme, which got started around turn of the 19th century. Extended Euclideanism is one of the three: http://worldgame.blogspot.com/2004/11/matrix.html Also, Euclid was into more than just geometry. The so-called Euclidean Algorithm (EA), later enhanced to become the Extended Euclidean Algorithm (EEA), is all over the place in computer science literature (including in Knuth, Vol 3, including in Python). Whether Euclid deserves all the credit for this algorithm is maybe up for dispute, but that wouldn't be my interest. The fact is, he knew about it and used it. Kirby [1] http://www.grunch.net/synergetics/mathsummit.html From delza at livingcode.org Thu Apr 6 20:03:36 2006 From: delza at livingcode.org (Dethe Elza) Date: Thu, 6 Apr 2006 11:03:36 -0700 Subject: [Edu-sig] Properties use case In-Reply-To: References: <44175733.8030408@optonline.com> <24d517dd0603171508g161d33f1xa6d6e7dff48196ec@mail.gmail.com> <24d517dd0603171526g224cc957o831d10c02640bf73@mail.gmail.com> <24d517dd0603171559i1f2f692cxf2a5ac1c1936bff6@mail.gmail.com> Message-ID: <24d517dd0604061103o72d1ffabm4bc843e4683c10f9@mail.gmail.com> The last thing I want is to start up this thread again, but I have not been paying attention to edu-sig for awhile and when I came back I found some things I need to address. > > Yes, I know, I read that. I'm not questioning that you know this. > > You asked what problems from a CS viewpoint there would be. I told > > you. You don't like it, don't ask. > > Its not that I'm a bad guy. I know that, and have never called you one. I tried to address a specific issue, i.e.: Arthur to Kirby: Are you a CS type? If so, speak directly. If not, why do you feel compelled to speak on their behalf. Sorry if I'm mis-reading that, but it looks to me like "shut up," which I find offensive, even if Kirby doesn't. Perhaps it bothered me more because of this other recent posting: Arthur to Vern: Are you an appointed or self-appointed redactor of all that is Turtle in the world of Python? Which again, appears to be more of an attack than any attempt to move the conversation forward. Maybe that is just me? > Must be that I'm just stupid. You and I and the rest of the list know you are not stupid, so why self-deprecate? > I still don't understand what I have been told from a CS standpoint. Well, I was trying to give a short answer, but others have since chimed in with more detailed explanations far better than mine, so I will leave this alone. > Beyond that one Computer Scientist doesn't particularly like me. I assume you mean me, but rest assured that I do like you. If I didn't, I would not have bothered. > But I knew that already, as well. That's too bad, and I feel like my communications have failed rather completely if you believe that. > Art So, Art, I apologize for my poor communications with you. Obviously what I've had to say did not come across the way I intended it, and I'm sorry for that. I don't bear you any ill will, and I certainly don't care one way or the other how you implement complex numbers in your apps. It was also a mistake on my part to try to address both a communication issue on your part that I had trouble with at the same time as addressing the question you had about your code--I should have separated those issues (or just not gone there at all). I certainly did not intend to come across as condescending or rude to you. I hope we can move on now (and not awaken the mutable-complex permathread). --Dethe From ajsiegel at optonline.net Thu Apr 6 21:20:00 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Thu, 06 Apr 2006 15:20:00 -0400 Subject: [Edu-sig] Properties use case In-Reply-To: <24d517dd0604061103o72d1ffabm4bc843e4683c10f9@mail.gmail.com> References: <44175733.8030408@optonline.com> <24d517dd0603171508g161d33f1xa6d6e7dff48196ec@mail.gmail.com> <24d517dd0603171526g224cc957o831d10c02640bf73@mail.gmail.com> <24d517dd0603171559i1f2f692cxf2a5ac1c1936bff6@mail.gmail.com> <24d517dd0604061103o72d1ffabm4bc843e4683c10f9@mail.gmail.com> Message-ID: ----- Original Message ----- From: Dethe Elza > > Arthur to Kirby: > Are you a CS type? If so, speak directly. > > If not, why do you feel compelled to speak on their behalf. > > Sorry if I'm mis-reading that, but it looks to me like "shut up," > which I find offensive, even if Kirby doesn't. > I wasn't asking Kirby to shut up, nor do I think he took it that way. What I was asking him to do was to talk in a voice that was unambigiously his own. Its complicated enough to talk with Kirby, without a sub-text of having a conversation with other people who aren't Kirby, through Kirby - or that at least is what I was trying to say. >Perhaps it > bothered me > more because of this other recent posting: > > Arthur to Vern: > Are you an appointed or self-appointed redactor of all that is > Turtle in the > world of Python? > > Which again, appears to be more of an attack than any attempt to move > the conversation forward. Maybe that is just me? Its not just you. Its me. I was inappropriate, owned up to having been inappropriate, and apologized. That's all I could think to do. Happens to me every decade or so ;). > So, Art, I apologize for my poor communications with you. Obviously > what I've had to say did not come across the way I intended it, and > I'm sorry for that. I don't bear you any ill will, and I certainly > don't care one way or the other how you implement complex numbers in > your apps. It was also a mistake on my part to try to address both a > communication issue on your part that I had trouble with at the same > time as addressing the question you had about your code--I should have > separated those issues (or just not gone there at all). I certainly > did not intend to come across as condescending or rude to you. I appreciate your communication here very much. Thnks, Art From kirby.urner at gmail.com Thu Apr 6 21:45:00 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 6 Apr 2006 12:45:00 -0700 Subject: [Edu-sig] Properties use case In-Reply-To: References: <44175733.8030408@optonline.com> <24d517dd0603171508g161d33f1xa6d6e7dff48196ec@mail.gmail.com> <24d517dd0603171526g224cc957o831d10c02640bf73@mail.gmail.com> <24d517dd0603171559i1f2f692cxf2a5ac1c1936bff6@mail.gmail.com> <24d517dd0604061103o72d1ffabm4bc843e4683c10f9@mail.gmail.com> Message-ID: > I appreciate your communication here very much. > > Thnks, > > Art Good work, both of you. I look forward to archived v-lists (video lists). I don't know how they'd work exactly, but the bandwidth would be a lot higher. People who're already on the same page could get by with edu-sig type communications probably. But if the going got rough, we'd switch to a v-list and try to sort it out in a more personal and personable way -- but still archived in such a way others could lurk in on, like here. Actually, I'm just describing television, aren't I (except the archiving feature is still immature, unless you're lucky enough to have easy access). We should all get on TV somehow, not necessarily in real time -- like I've got a Google Video up, doing some of my schtick as a Fuller Schooler: http://video.google.com/videosearch?q=polyhedra Career diplomats distrust cyberspace with good reason. They know there's no substitute for in-person direct contact sometimes. But that's my point: it's not either/or. And increasingly, cyberspace is addressing its bandwidth deficiencies. Computers and TV are increasingly becoming two aspects of the same animal. For the record: I've met Arthur in person a couple of times, both times enjoyable. He referred to omelets -- this was in up town Manhatten, and I have a relevant blog entry from that same time: http://mybizmo.blogspot.com/2005/05/tree-house.html I've not met Dethe nor most of the others active on this list. I'd love to of course. Jeff Elkner I've met at Pycon, though we've not had any in-depth discussions (plus Jeff hasn't posted in I don't know how long). Jason Cunliffe has gone off to France I understand (he and I met in New York City as well, some years ago). I've seen Laura in action at OSCON and EuroPython, but any direct discussion has been mostly by elist and email. I'm not saying we should all keep careful track of all this who's met who stuff. I just wanted to acknowledge that it changes/influences the chemistry of on-line edu-sig communications to some degree. Limited bandwidth is a reality. Passionate thinkers are sometimes the most vulnerable to this "feature" (of limited bandwidth). They really deserve more air time (TV time), just so we (the audience) might get a clearer picture of who we're dealing with and what actually is going on. How many threads on edu-sig might simply end overnight, were we to have an edu-sig conference? How many new ones, perhaps more fruitful ones, might get started? Hard to say. We may get to find out. Kirby From kirby.urner at gmail.com Sat Apr 8 17:44:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 8 Apr 2006 08:44:41 -0700 Subject: [Edu-sig] Notice of a talk I'm slated to give in a few days Message-ID: Fwd from: http://mathforum.org/kb/thread.jspa?threadID=1361213 Posts: 2,380 Registered: 12/6/04 Read Urner talk @ London Knowledge Lab (repost -- fixed subject line) Posted: Apr 8, 2006 11:42 AM Click to edit this message... Click to see the message monospaced in plain text Plain Text Click to reply to this topic Reply ** PLEASE CIRCULATE * ALL WELCOME ** Pythonic Mathematics by Kirby Urner, 4D Studios, Oregon, USA [www.4dsolutions.net] Wednesday 12 April, 3 - 4.30 pm, London Knowledge Lab (large seminar room), 23-29 Emerald St, WC1N 3QS This will be an informal seminar-discussion around the idea of mathematics expressed in the form of computer programming languages. Kirby will discuss his work on using the object-oriented language, Python, as part of an alternative, computer science-informed mathematics curriculum for K-12 schools. Some background reading: Kirby Urner, Trends in Early Mathematics Learning: Looking Beyond Y2K (first published 1999, latest version): http://www.4dsolutions.net/ocn/trends2000.html Kirby Urner, Pythonic Mathematics (June 2005): http://www.4dsolutions.net/presentations/urner_europython4.pdf PDF slides used during the presentation in Gothenburg, Sweden, 2005: http://www.4dsolutions.net/presentations/pythonicmath.pdf Kirby Urner, Another Alien Curriculum (2003) http://www.4dsolutions.net/ocn/alien.html RSVP and info: p.kent at ioe.ac.uk ++++++++ Dr Phillip Kent London Knowledge Lab - Institute of Education 23 - 29 Emerald St London WC1N 3QS p.kent at ioe.ac.uk tel 020 7763 2156 mobile 07950 952034 www.ioe.ac.uk/tlrp/technomaths ++++++++ From kirby.urner at gmail.com Sun Apr 9 00:20:06 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 8 Apr 2006 15:20:06 -0700 Subject: [Edu-sig] From my Mathematics Classroom: Re: Python's advantages Message-ID: FYI, here's me replying to myself on the Math Forum. Feedback welcome. A lot of this will go over the heads of my target audience, especially advantage (c), which is all about avoiding unwanted intellectual purity when it comes to enforcing a "one data structure" regime. That's just not Python's paradigm, and that's OK. http://mathforum.org/kb/message.jspa?messageID=4623827&tstart=0#reply-tree Kirby ==== For those few who don't know, maybe just joined this list, Pythonic Mathematics involves a hands-on, shop-like approach, per Popular Mechanics or more recently Make: (O'Reilly) i.e. using some computer language as an apparatus to build actual "math objects" such as polynomials and rational numbers, polyhedra, vectors, integers with a modulus, quaternions, whatever. The advantages of Python are several, but among the top few would be: a. an interactive evaluation loop b. a strong OO paradigm, and c. simple but not too simple syntax. Let me say a few words about each of these features... a. An interactive evaluation loop Many languages come with an implied development cycle that includes the step of compilation, perhaps to be followed by a separate linking step, whereby "source code" is translated to a faster, stripped-down machine or assembly language (not to be confused with .NET assemblies). The compiled and linked executables are then usually platform specific, fast, and efficient. The Python engine itself is just such an executable (different binaries work on different operating systems). However, Python source, like Java source, compiles to a byte code language implemented atop a VM (a virtual machine). Transporting Python across platforms means reimplementing the VM in various brands of C (or whatever), while keeping the language itself essentially unchanged at the top level. Yes, some subtle differences in core Python may be felt (perhaps in the frequency of garbage collection), plus the shared libraries will only partially overlap (the GUI widgets on your Nokia cell phone won't match the GUI widgets in Gnome), but still, the high level of cross-platform compatibility means we can't be accused of fostering servile obedience to any one particular operating system and/or business model and/or corporate regime. As users jump from one computer to another, perhaps between operating systems, the Pythonic VM presents a fairly constant command line environment to the student, maintaining continuity and allowing the swift learning cycle associated with "immediate feedback" i.e., in being interpreted to byte codes, Python is able to accomplish line-at-a-time translation to executable code, meaning the student has full access to an interactive command line experience, as well as a scripting mode. Note: Python is one of many languages to host its own interactive shell sessions, some others being Logo, Scheme, APL, J, ISETL, and xBase (the various dBases and FoxPros). b. A strong OO paradigm Many teachers don't seem to realize that OO is valuable for its connections to everyday experience, in terms of shared metaphors, not because it's the superior paradigm for all programming or anything like that. OOP is simply very accessible to neophytes, provides a bridge, in the form of a simple yet sophisticated set of concepts, easy enough to grasp: blueprints (templates), a class hierarchy, objects as instances, ready for business, presenting methods and properties to their users. Just like in real life: the bus door opens, passengers get on, paying or flashing passes -- now draw that in OO. Python is very consistent in its OOness. Primitive objects like 1, 2e-5, 'b', 3j are immutable objects, with callable methods. 1 + 1 is equivalent to 1 .__add__(1), i.e. we're passing the right-of-operator argument to the polymorphously definable __add__ method, in this case the version associated with the integer class or type. The __add__ method characteristic of vector objects, as in vA.__add__(vb), as in vA + vB, would be somewhat different, but with commonalities (e.g. per the group theoretic properties of 'addition' (the existence of an additive identity, inverse and so on)). Through the lense of an OO language, the apparatus of ordinary K-12 level mathematics becomes surveyable as an extensible type system, not just in practical terms, but somewhat formally and theoretically as well (yet just the practical advantages alone would be enough to motivate the change-over, at least out here, in our Silicon Forest economy). c. Simple but not too simple syntax The "batteries included" aspect of Python is in part its Standard Library, but more primitively its rich set of built-in data structures. It shares this feature with other so-called P languages (Perl and PHP -- remember LAMP?), with Ruby, with myriad others. There's less of a compulsion to regard data structures as atomic, such that one lucky devil must be ultimately cast as the root form of all other data structures. Yes, there's satisfying intellectual purity in pursuing the "holy grail" of data structures, but other pursuits deserve their own shining knights. Python's quest is not to turn everything into lists, but everything into objects. That's the atom (the object). Our goal has already been attained. We're entitled to preach our little OO gospel without too much guff from the functionalists or whomever. A richness of built-in data types is not an embarrassment, but simply an intelligent-enough design, a workable set of primitive tools. We have the punctuation on every ASCII-compatible keyboard ({}, (), []) so why not use what we've got? Dictionaries, tuples and lists, oh my. However, much of what I intend to talk about in London won't be all that language-specific. You won't have to know Python to understand my proposal: that we phase out such heavy reliance on calculators and give students more opportunities to tune in what the computer scientists have been up to in these last few decades. It could no kidding even help with their math skills and boost their level of understanding. In any case, it's worth trying, and trials are currently underway, with more planned. Kirby From ajsiegel at optonline.net Sun Apr 9 19:21:05 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 09 Apr 2006 13:21:05 -0400 Subject: [Edu-sig] The end is near :) Message-ID: <44394281.5060906@optonline.com> *"""" Carnegie Mellon Collaborates with EA to Revolutionize And Reinvigorate Computer Science Education in the US** """" *http://www.alice.org/index2.html From ajsiegel at optonline.net Sun Apr 9 20:38:09 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 09 Apr 2006 14:38:09 -0400 Subject: [Edu-sig] The end is near :) Message-ID: <44395491.6060005@optonline.com> I picked up the Alice/EA development from a offhand mention of Alice in Titus Browns' weblog entry of today. *Michigan State University, Software Engineering, and Python* http://www.advogato.org/person/titus/diary.html?start=171 Alice's mention in passing is in effect that it represents a competing approach to that which he is advocating, via Greg Wilson's Software Carpentry and the like http://www.third-bit.com/swc/ Its a close call, IMO: silly corrupted condescending bullshit (Alice) vs. substance (Software Carpentry) For the record - rather its on the record, *here* - is the fact that I have been following Alice with a good degree of horror for some 5 years. And for the record, I am proud of the fact that I was vocally in opposition to it, the approach and ideas (if one call call them that) it represents and has represented, even when doing so put me in direct opposition to a strong prevailing sentiment within the Python community and among its leadership. I in fact got off on the wrong foot with the community precisely on this issue. And, as the recent correspondence with Dethe indicates, never fully regained my footing. But I think it important to oppose "the Alice", whether it does or does not include lines of Python. And can have no deep regrets that I didn't behave better even at the time that it was a bit of a darling here. It would have been easier to have done so. Art From kirby.urner at gmail.com Mon Apr 10 00:36:11 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 9 Apr 2006 15:36:11 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: <44395491.6060005@optonline.com> References: <44395491.6060005@optonline.com> Message-ID: > For the record - rather its on the record, *here* - is the fact that I > have been following Alice with a good degree of horror for some 5 years. For the record, I'm somewhat interested in what you're *for* but what you're against I don't pay much attention to. You've goofed up too much. What more need I say? Kirby From ajsiegel at optonline.net Mon Apr 10 02:18:32 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 09 Apr 2006 20:18:32 -0400 Subject: [Edu-sig] The end is near :) In-Reply-To: Message-ID: <000001c65c34$4f21d570$1702a8c0@BasementDell> > >-----Original Message----- > >From: kirby urner [mailto:kirby.urner at gmail.com] > >To: Arthur > >You've goofed up too much. What more need I say? You needn't say even that. But you have. ;) Art From kirby.urner at gmail.com Mon Apr 10 16:51:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 10 Apr 2006 07:51:25 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: <000001c65c34$4f21d570$1702a8c0@BasementDell> References: <000001c65c34$4f21d570$1702a8c0@BasementDell> Message-ID: For example, I don't buy that it's an either/or situation. You seem to think a Klein-reading Euclid-drawing subgenius, properly suspicious of Bucky (maybe armed with a few Bucky jokes) can't suddenly jump up and run over to an Alice workstation, there to play with cute skiing bunnies and other programmable (scriptable) cartoon figures. Just because you seem to buy into the impossibility of such kids, why should I? I say there's plenty of room for both PyGeo and Alice, that it has *never* been an either/or equation (hence a tremendous waste of time in the archives -- feel free to never read it folks). I do understand that you don't want a vapid flouncy curriculum that trades away all command line hardness for fuzzy wuzzy bunny wunny cartoons. Sure, fine. I'm with ya. But I'm not ready to pull out my big guns at the drop of a hat and celebrate my ascendency over all GUI-based animation APIs, including the ones with Python bindings I'm hoping for (Blender is already one of them). I'll sooner go after neocons or nazis than cute bunny wunny APIs. You seem to have a misplaced sense of priorities. So then I have to wonder if it's just jealously. You've accomplished something with PyGeo and now, in order to attract attention, indulge in Voodoo with little bunny dolls, making a spectacle of yourself in the process. I think that's a misappropriation of the fame PyGeo could win you. You should write that book about Klein, as applied in this modern world, show how PyGeo could work its way into various curricula, brainstorm various ways forward. Throwing stones at your glass-housed neighbors is just not a way to attract new friends and influence people. And so your influence wanes. I say turn that around. Be the big friendly Arthur who will show us the hard stuff and make it seem easy. But don't be afraid to dress up in a bunny suit over the weekends, if it helps pay the bills. You don't need to see this as a war. We're both manifestations of What Python Is Doing (lots more than you or I will ever live to appreciate, no? -- that's how I feel about it). Kirby From ajsiegel at optonline.net Mon Apr 10 17:07:15 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 10 Apr 2006 11:07:15 -0400 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> Message-ID: <443A74A3.7020306@optonline.com> kirby urner wrote: >For example, I don't buy that it's an either/or situation. You seem >to think a Klein-reading Euclid-drawing subgenius, properly suspicious >of Bucky (maybe armed with a few Bucky jokes) can't suddenly jump up >and run over to an Alice workstation, there to play with cute skiing >bunnies and other programmable (scriptable) cartoon figures. Just >because you seem to buy into the impossibility of such kids, why >should I? I say there's plenty of room for both PyGeo and Alice, that >it has *never* been an either/or equation (hence a tremendous waste of >time in the archives -- feel free to never read it folks). > > Did you read the press release? """ Carnegie Mellon Collaborates with EA to Revolutionize And Reinvigorate Computer Science Education in the US** """ Did you see the context of Tutis's post? CS and hard science and Alice being mentioned as an alternative. It is the pretense and the attendant lack of integrity connected to Alice that is the basis of my horror/objections. If the project had the level of pretense one normally associates with dressing up in a Bunny Suite, it would be quite silly to raise the kind of fuss I do. But that just isn't so. Art >I do understand that you don't want a vapid flouncy curriculum that >trades away all command line hardness for fuzzy wuzzy bunny wunny >cartoons. Sure, fine. I'm with ya. But I'm not ready to pull out my >big guns at the drop of a hat and celebrate my ascendency over all >GUI-based animation APIs, including the ones with Python bindings I'm >hoping for (Blender is already one of them). I'll sooner go after >neocons or nazis than cute bunny wunny APIs. You seem to have a >misplaced sense of priorities. > >So then I have to wonder if it's just jealously. You've accomplished >something with PyGeo and now, in order to attract attention, indulge >in Voodoo with little bunny dolls, making a spectacle of yourself in >the process. I think that's a misappropriation of the fame PyGeo >could win you. You should write that book about Klein, as applied in >this modern world, show how PyGeo could work its way into various >curricula, brainstorm various ways forward. Throwing stones at your >glass-housed neighbors is just not a way to attract new friends and >influence people. > >And so your influence wanes. > >I say turn that around. Be the big friendly Arthur who will show us >the hard stuff and make it seem easy. But don't be afraid to dress up >in a bunny suit over the weekends, if it helps pay the bills. You >don't need to see this as a war. We're both manifestations of What >Python Is Doing (lots more than you or I will ever live to appreciate, >no? -- that's how I feel about it). > >Kirby > > > > From kirby.urner at gmail.com Mon Apr 10 17:56:43 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 10 Apr 2006 08:56:43 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: <443A74A3.7020306@optonline.com> References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: > > CS and hard science and Alice being mentioned as an alternative. > Willamette University is offering an art major centered around computers. For a lot of kids, the big question is: how do I get a job making Shrek type movies or with Industrial Light and Magic. They hear (correctly) that it has something to do with computers. Don't get in their way with your Python, if it ain't relevant. Kirby From ajsiegel at optonline.net Mon Apr 10 19:38:22 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Mon, 10 Apr 2006 13:38:22 -0400 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: ----- Original Message ----- From: kirby urner Date: Monday, April 10, 2006 11:56 am Subject: Re: [Edu-sig] The end is near :) > > > > CS and hard science and Alice being mentioned as an alternative. > > > > Willamette University is offering an art major centered around > computers. For a lot of kids, the big question is: how do I get a > job making Shrek type movies or with Industrial Light and Magic. They > hear (correctly) that it has something to do with computers. Don't > get in their way with your Python, if it ain't relevant. > > Kirby So you argree that Alice is overreaching and out-of-line with a statement like """ Carnegie Mellon Collaborates with EA to Revolutionize And Reinvigorate Computer Science Education in the US """ - that its usefullness, if any, should be more narrowly defined. Nice we agree. Perhaps the problem that Alice faces is the fact that it has been made obsolete at its home at CMU which is specifially geared toward the education of the kinds of kids you describe. By Panda3d. For which - it happens - Python is quite relevant. And whose developers rejected some pressure at Disney, where it was developed, to use Squeak instead of Python. The tact (or tactic) of Alice is simple to define: Since Alice has no defensbile basis to claim anything, it may as well claim everything. And goes about doing so. Always has. Would cardcarrying members of the Mysterium lie to us? ;) Art > From kirby.urner at gmail.com Mon Apr 10 21:07:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 10 Apr 2006 12:07:59 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: > So you argree that Alice is overreaching and out-of-line with a statement like > Alice is not big on my radar. It's not even a Python project. When it comes to protecting the integrity of CS from watering down, I look to people stronger than you to fight the dumbing down influences. I think you'd have more fun making inroads with Pygeo, and stop being so distracted by APIs you dislike. No one is asking you to use them. Build a boat that floats, don't waste time poking holes in other peoples' boats. Then you do a lot of speculation about who did what to whom (Disney yadda yadda), which might be fun if you were really inside all these companies and privy to their inner workings. Not really that fun. I find I'm tuning out these speculations more and more. But regarding Klein and how you could teach his material using Python, I'm all ears. I have no beef with Klein (unless we own a cow or two in common). Kirby From ajsiegel at optonline.net Mon Apr 10 22:09:13 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Mon, 10 Apr 2006 16:09:13 -0400 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: ----- Original Message ----- From: kirby urner Date: Monday, April 10, 2006 3:07 pm Subject: Re: [Edu-sig] The end is near :) > > So you argree that Alice is overreaching and out-of-line with a > statement like > > > > Alice is not big on my radar. Glad to hear it. > It's not even a Python project. It is brought up here and now specifically in the context of it having been noted at U of Mich as competition to and with a Python project, in fact one funded by the PSF. Are comments by me, here going to influence outcomes. Probably not. Worth a shot? What's to lose. > When > it comes to protecting the integrity of CS from watering down, I look > to people stronger than you to fight the dumbing down influences. One would hope. But... Let me leave that at that. > > I think you'd have more fun making inroads with Pygeo, and stop being > so distracted by APIs you dislike. No one is asking you to use > them. > Build a boat that floats, don't waste time poking holes in other > peoples' boats. Gardening season begins, and PyGeo is second fiddle to it. But I do hope to announce here a shot at the Pudge generated API docs linked to source up on the Web within a few days. >From there its a matter of finalizing a bundled sciTE-based editing environment. Then it's a short step to conquering the world. What claims should I make for it?? It's fandubalis! Cures gingivitis! """Kirby Urner says... """ How about a quote I can use , Kirby. Art From kirby.urner at gmail.com Mon Apr 10 22:44:35 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 10 Apr 2006 13:44:35 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: > Are comments by me, here going to influence outcomes. > > Probably not. Worth a shot? What's to lose. > Let some people go with Alice if they like. There's no way to compete with an unknown. I'm not against entering Alice in the ring, any time Alice likes. > What claims should I make for it?? > > It's fandubalis! > > Cures gingivitis! > > """Kirby Urner says... """ > > How about a quote I can use , Kirby. > > Art Installs easily on Edubuntu might be a start. That was the last time we were discussing anything meaningful or productive. As it is, I doubt I'll be saying anything about Pygeo at the Shuttleworth Summit, as I don't know if you've even looked at Edubuntu (Derek has it running on a Pentium grabbed off Craig's List; I'm planning to photo this for my captain's log later today, airplane very early tomorrow, go Derek! Rah!). Kirby From ajsiegel at optonline.net Mon Apr 10 23:25:38 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Mon, 10 Apr 2006 17:25:38 -0400 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: ----- Original Message ----- From: kirby urner Date: Monday, April 10, 2006 4:44 pm Subject: Re: [Edu-sig] The end is near :) > > Are comments by me, here going to influence outcomes. > > > > Probably not. Worth a shot? What's to lose. > > > > Let some people go with Alice if they like. There's no way to compete > with an unknown. I'm not against entering Alice in the ring, any time > Alice likes. > > > What claims should I make for it?? > > > > It's fandubalis! > > > > Cures gingivitis! > > > > """Kirby Urner says... """ > > > > How about a quote I can use , Kirby. > > > > Art > > Installs easily on Edubuntu might be a start. ----- Original Message ----- From: kirby urner Date: Monday, April 10, 2006 4:44 pm Subject: Re: [Edu-sig] The end is near :) > > > > """Kirby Urner says... """ > > > > How about a quote I can use , Kirby. > > > > Art > > Installs easily on Edubuntu might be a start. I look to to me less ungenerous than you look to me. Must be just the point of view. Art From kirby.urner at gmail.com Mon Apr 10 23:31:15 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 10 Apr 2006 14:31:15 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: > I look to to me less ungenerous than you look to me. > > Must be just the point of view. > > Art Anyway, PyGeo is online, free, downloadable, and kids grooving on it (might be several) will have the power themselves to figure the redistro angle, via apt-get or whatever. It's what they know. You, like me, are an old codger. So mostly I don't think promoting your gig is my gig, because you're a talented guy, personable even, and should be able to get gigs pretty easily, provided you're not just seeking a bully pulpit from whence to rain on the parades of others. No rain = your gain. That's how I see it. My two cents or whatever. You're a better promoter than thwarter. Live large, forget about Alice (she was never your girl to begin with). Kirby From Scott.Daniels at Acm.Org Tue Apr 11 02:32:37 2006 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Mon, 10 Apr 2006 17:32:37 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: ajsiegel at optonline.net wrote: > > From: kirby urner >> Alice is not big on my radar. > > Glad to hear it. > >> It's not even a Python project. > It is brought up here and now specifically in the context of it having been noted > at U of Mich as competition to and with a Python project, in fact one funded by the PSF. > > Are comments by me, here going to influence outcomes. > > Probably not. Worth a shot? What's to lose. The attention and discussion that used to go on on this list about Python and education. When you post at a ration approaching, and at times exceeding, half of the discussion a number of people slowly (or not so slowly) go away. That is what's to lose: conversation with others. -- Scott David Daniels Scott.Daniels at Acm.Org From andre.roberge at gmail.com Tue Apr 11 02:39:50 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Mon, 10 Apr 2006 21:39:50 -0300 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> Message-ID: <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> On 4/10/06, Scott David Daniels wrote: > ajsiegel at optonline.net wrote: [snip] > > > > Are comments by me, here going to influence outcomes. > > > > Probably not. Worth a shot? What's to lose. > > The attention and discussion that used to go on on this list > about Python and education. When you post at a ration approaching, > and at times exceeding, half of the discussion a number of people > slowly (or not so slowly) go away. That is what's to lose: > conversation with others. I could not possibly have said it better myself. Thanks for speaking up on this topic, Scott. Andr? > -- 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 peter at mapledesign.co.uk Tue Apr 11 11:00:24 2006 From: peter at mapledesign.co.uk (Peter Bowyer) Date: Tue, 11 Apr 2006 10:00:24 +0100 Subject: [Edu-sig] The end is near :) In-Reply-To: <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.co m> References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> Message-ID: <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> At 01:39 11/04/2006, Andre Roberge wrote: >I could not possibly have said it better myself. Thanks for speaking up >on this topic, Scott. Indeed. Could we set up a separate Kirby and Arthur list, so those who enjoy watching their Itchy and Scratchy show antics could do so somewhere else? In the meantime, if anyone wants to read and comment on a 35 page document on the rationale behind teaching introductory programming using Python, I have one :) Kind regards, Peter -- Maple Design - quality web design and programming http://www.mapledesign.co.uk From vceder at canterburyschool.org Tue Apr 11 14:16:29 2006 From: vceder at canterburyschool.org (Vern Ceder) Date: Tue, 11 Apr 2006 08:16:29 -0400 Subject: [Edu-sig] The end is near :) In-Reply-To: <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> Message-ID: <1144757789.13799.4.camel@localhost.localdomain> On Tue, 2006-04-11 at 10:00 +0100, Peter Bowyer wrote: > In the meantime, if anyone wants to read and comment on a 35 page > document on the rationale behind teaching introductory programming > using Python, I have one :) Yes, please... Vern -- This time for sure! -Bullwinkle J. Moose ----------------------------- Vern Ceder, Director of Technology Canterbury School, 3210 Smith Road, Ft Wayne, IN 46804 vceder at canterburyschool.org; 260-436-0746; FAX: 260-436-5137 From kirby.urner at gmail.com Tue Apr 11 14:50:06 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 11 Apr 2006 05:50:06 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> References: <443A74A3.7020306@optonline.com> <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> Message-ID: > Indeed. Could we set up a separate Kirby and Arthur list, so those > who enjoy watching their Itchy and Scratchy show antics could do so > somewhere else? Apologies. I have hardly any more budget for "replies to Arthur" on any but narrow topics related to his curriculum writing around PyGeo (have you seen it?). I will indeed work to recruit him to some other list for more broad-ranging discussions, oft times non-Pythonic, which I also enjoy. Maybe Math Forum, Arthur? math-teach perhaps? Ready for the big leagues? I'll wait to see if you show up. > In the meantime, if anyone wants to read and comment on a 35 page > document on the rationale behind teaching introductory programming > using Python, I have one :) > Is it better than Zelle's? I think the pro Python case has been cogently stated in more than a few places. But everyone still thinks CS is really all about Java. What *shall* we do? Kirby From peter at mapledesign.co.uk Tue Apr 11 15:28:25 2006 From: peter at mapledesign.co.uk (Peter Bowyer) Date: Tue, 11 Apr 2006 14:28:25 +0100 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <443A74A3.7020306@optonline.com> <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> Message-ID: <7.0.1.0.0.20060411142452.01e7b478@mapledesign.co.uk> At 13:50 11/04/2006, kirby urner wrote: >I have hardly any more budget for "replies to Arthur" on >any but narrow topics related to his curriculum writing around PyGeo >(have you seen it?). No, and at present I'm not bothered :) Maths education isn't my thing. >Is it better than Zelle's? Not at all. However it has a different emphasis: it's geared towards science students, considering the options and the aims of such a course. For those of you who have expressed interest in having a look at it, I'll get back to you off-list once I've finished this current bout of restructuring. Peter -- Maple Design - quality web design and programming http://www.mapledesign.co.uk From glingl at aon.at Tue Apr 11 16:48:25 2006 From: glingl at aon.at (Gregor Lingl) Date: Tue, 11 Apr 2006 16:48:25 +0200 Subject: [Edu-sig] The end is near :) In-Reply-To: <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> References: <000001c65c34$4f21d570$1702a8c0@BasementDell> <443A74A3.7020306@optonline.com> <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> Message-ID: <443BC1B9.2030909@aon.at> Peter Bowyer schrieb: > At 01:39 11/04/2006, Andre Roberge wrote: > ...> In the meantime, if anyone wants to read and comment on a 35 page > document on the rationale behind teaching introductory programming > using Python, I have one :) > Me too, please ... Gregor > Kind regards, > Peter > -- Gregor Lingl Reisnerstrasse 3/19 A-1030 Wien Telefon: +43 1 713 33 98 Mobil: +43 664 140 35 27 Website: python4kids.net From bmiller at luther.edu Tue Apr 11 17:08:48 2006 From: bmiller at luther.edu (Brad Miller) Date: Tue, 11 Apr 2006 10:08:48 -0500 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <443A74A3.7020306@optonline.com> <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> Message-ID: <0F62BC29-A57B-45F7-964B-05C2FCD79578@luther.edu> On Apr 11, 2006, at 7:50 AM, kirby urner wrote: > >> In the meantime, if anyone wants to read and comment on a 35 page >> document on the rationale behind teaching introductory programming >> using Python, I have one :) >> > Please count me in. > Is it better than Zelle's? I think the pro Python case has been > cogently stated in more than a few places. But everyone still thinks > CS is really all about Java. What *shall* we do? > I'm not sure *everyone* still thinks CS is really about Java. At SIGCSE we had 100+ people at the special session on teaching with Python. Plus there were sessions and other talks about getting back to basics in CS education. David Ranum and I just did a workshop called "Exploring Python as a Teaching and Learning Language" at the Central Plains CCSC conference last week and had 35+ in attendance. In talking with publishers and educators at the conferences there is a pretty consistent message that Python is picking up steam. Brad > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig From kirby.urner at gmail.com Tue Apr 11 17:38:27 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 11 Apr 2006 08:38:27 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: <7.0.1.0.0.20060411142452.01e7b478@mapledesign.co.uk> References: <7528bcdd0604101739v39cbcaa2g92985825abf0aafe@mail.gmail.com> <7.0.1.0.0.20060411095737.01f23d08@mapledesign.co.uk> <7.0.1.0.0.20060411142452.01e7b478@mapledesign.co.uk> Message-ID: On 4/11/06, Peter Bowyer wrote: > No, and at present I'm not bothered :) Maths education isn't my thing. OK, I see that. Catching up on your blog. Kirby From dooms at info.ucl.ac.be Tue Apr 11 18:19:53 2006 From: dooms at info.ucl.ac.be (=?ISO-8859-1?Q?Gr=E9goire_Dooms?=) Date: Tue, 11 Apr 2006 18:19:53 +0200 Subject: [Edu-sig] The end is near :) In-Reply-To: References: Message-ID: <443BD729.7070502@info.ucl.ac.be> > Message: 1 > Date: Mon, 10 Apr 2006 17:32:37 -0700 > From: Scott David Daniels > Subject: Re: [Edu-sig] The end is near :) > > > The attention and discussion that used to go on on this list > about Python and education. When you post at a ration approaching, > and at times exceeding, half of the discussion a number of people > slowly (or not so slowly) go away. That is what's to lose: > conversation with others. > > +1 and +1 on the subject too :-) -- Gr?goire Dooms From Scott.Daniels at Acm.Org Tue Apr 11 20:19:35 2006 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Tue, 11 Apr 2006 11:19:35 -0700 Subject: [Edu-sig] The end is near :) In-Reply-To: <443BD729.7070502@info.ucl.ac.be> References: <443BD729.7070502@info.ucl.ac.be> Message-ID: I was reluctant to say anything because I find Arthur has an interesting viewpoint, which I will miss. I suspect part of the issue is that he subscribes to this as an e-mail list, while I read it as a newsgroup on gmane. If I am correct, it looks more like a mix of messages in his day-to-day e-mail, and he doesn't really see how dominant his posts are. He has sent private mail explaining that he has un-subscribed. One idea I had some time ago is using Python for visualizations. In particular, I once built an iterator-based visualization of DB query processing (based on old collaborative work with my erstwhile office-mate Bennet Vance) that makes it visually obvious that query processing re-arrangements produce dramatically different query processing speeds. It was a Tkinter-based thing, and if enough CS teachers (let's say, two) are interested, I'll go dredge up the code (which involves dissecting a dead laptop) and prep it for reading. The delay should be a week or so. --Scott David Daniels Scott.Daniels at Acm.Org From bmiller at luther.edu Tue Apr 11 20:33:42 2006 From: bmiller at luther.edu (Brad Miller) Date: Tue, 11 Apr 2006 13:33:42 -0500 Subject: [Edu-sig] The end is near :) In-Reply-To: References: <443BD729.7070502@info.ucl.ac.be> Message-ID: <6134E4AC-B7EE-4E52-9727-643FC273300D@luther.edu> On Apr 11, 2006, at 1:19 PM, Scott David Daniels wrote: > > One idea I had some time ago is using Python for visualizations. > In particular, I once built an iterator-based visualization of DB > query processing (based on old collaborative work with my erstwhile > office-mate Bennet Vance) that makes it visually obvious that query > processing re-arrangements produce dramatically different query > processing speeds. It was a Tkinter-based thing, and if enough CS > teachers (let's say, two) are interested, I'll go dredge up the code > (which involves dissecting a dead laptop) and prep it for reading. > The delay should be a week or so. > love that idea, and I would be happy to help as I'm going to start talking about query processing in a week or so. I really like using algorithm visualizations for data structures class. I think it really helps the students get at the main ideas in the the algorithms. I made some additions to Guido's program sortvisu.py that comes with the Tkinter demos in the python distro for my data structures class this Spring. sortvisu.py is a nice program for the student to use to see visually how the different sorting algorithms compare. The version that comes with the distribution was missing shell sort and merge sort so I added those two. Maybe more interesting that the sort functions themselves was the nice array class that made it easy to add new algorithms, and would probably be useful for more than just sorting algorithms. If people are interested I would be happy to post my new version of sortvisu.py. One of my colleagues here at Luther also made a nice little Tkinter program for creating graphs and then visualizing some graph algorithms. Brad > --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 Brad Miller, PhD Assistant Professor Luther College http://www.cs.luther.edu/~bmiller jabber: bnmnetp at jabber.org -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060411/69156180/attachment-0001.htm From francois.schnell at gmail.com Thu Apr 13 12:47:50 2006 From: francois.schnell at gmail.com (francois schnell) Date: Thu, 13 Apr 2006 12:47:50 +0200 Subject: [Edu-sig] [ANN] Liberlab Message-ID: <13a83ca10604130347q391e222at31be33231b45e699@mail.gmail.com> Hello, It's been a long time I posted on this list (?Art? effect maybe). I Just wanted to let you know about the Liberlab project for which a Python software and a Python module is available (and a Squeak one also ...). To summarize, it's an Open Source very low-cost interface between the digital and the physical world, a sub 15 ?/$ ?pocket size? digital lab (4 analogic channels 10 bits acquisition, 6 digital inputs/outputs). Apart from initiation to scientific experimentation, Liberlab could also be used to learn about robotics, automation, human-machine interface or interactive arts. The heart of the project is based on the ongoing improvements of microcontrollers. These low price integrated circuits are like tiny and autonomous "computers" used in many devices (DVD players, cars, etc.). Instead of using them in an autonomous way Liberlab combines the computing power of a PC with the commands and measuring capabilities of the microcontroller. The modular and open design of Liberlab aims to encourage original uses particularly in the field of education. Liberlab is available under the Free GPL licence (firmware in C, Software and module written in Python). I'll present Liberlab at the Libre Software Meeting 2006 (France, early July) and perhaps at EuroPython 2006 for those interested. URL: http://www.liberlab.net The English documentation is quite scarce but growing (some screencast should be available in few days to give an idea of the speed and ? dynamics ?). Few pictures: http://pcsm1.u-strasbg.fr/liberlab/englishversion/images/ An example of integration with Vpython: http://www.flickr.com/photos/frenchy/100834508/ --- Francois Schnell - ULP Multimedia (University Louis Pasteur) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060413/f9d6a6aa/attachment.html From kirby.urner at gmail.com Thu Apr 13 17:09:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 13 Apr 2006 08:09:05 -0700 Subject: [Edu-sig] Shuttleworth Summit Message-ID: This meeting is in process now. I'm taking notes in real time in my blog: http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-one.html Kirby From dblank at brynmawr.edu Thu Apr 13 18:56:12 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Thu, 13 Apr 2006 12:56:12 -0400 Subject: [Edu-sig] Visual Programming in Python? Message-ID: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> Python edu-sig, I've been thinking about a visual programming/flowchart interface for Python and was wondering if anyone knows of such a project. I am imaging a Tkinter canvas (initially) with which one can add blocks that represent statements, branches, loops... everything. Further, I imaging that this would save (and load) real Python code, so that you could suck in raw code, it would get parsed, and shown as a flowchart. Maybe some additional data would be stored in comments (zoom amount, positions/colors/properties of particular boxes). Also, one could step through the chart, block-by-block. I've seen some commercial (and open source/non-Python) products, but they seem heavy and sluggish, as if a whole lot of processing is going on behind the scenes. Is/would it really be that hard? Any pointers or comments appreciated, -Doug -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From andre.roberge at gmail.com Thu Apr 13 19:30:45 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Thu, 13 Apr 2006 14:30:45 -0300 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> Message-ID: <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> On 4/13/06, Douglas S. Blank wrote: > Python edu-sig, > > I've been thinking about a visual programming/flowchart interface for > Python and was wondering if anyone knows of such a project. I am imaging > a Tkinter canvas (initially) with which one can add blocks that > represent statements, branches, loops... everything. Further, I imaging > that this would save (and load) real Python code, so that you could suck > in raw code, it would get parsed, and shown as a flowchart. Maybe some > additional data would be stored in comments (zoom amount, > positions/colors/properties of particular boxes). Also, one could step > through the chart, block-by-block. > > I've seen some commercial (and open source/non-Python) products, but > they seem heavy and sluggish, as if a whole lot of processing is going > on behind the scenes. Is/would it really be that hard? A while ago I received an email from Nelson Castillo (sorry Nelson, for not having replied sooner) who wrote a [non-Python] program that does something similar to what you are describing. The program can be found at http://geocities.com/arhuaco/dfd.html I have received a request to include something like what you describe within rur-ple (wxPython based, rather than Tkinter). I have postponed looking into it seriously until version 1.0 of rur-ple (realistically, not until the end of the summer). I would be interested in such a project - with the time constraint caveat. Sorry that I can't be more helpful. Andr? > > Any pointers or comments appreciated, > > -Doug > > -- > Douglas S. Blank Computer Science > Assistant Professor Bryn Mawr College > (610)526-6501 http://cs.brynmawr.edu/~dblank > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From andre.roberge at gmail.com Fri Apr 14 04:54:06 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Thu, 13 Apr 2006 23:54:06 -0300 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: Message-ID: <7528bcdd0604131954v1c269541y9c79df84de8892b1@mail.gmail.com> On 4/13/06, kirby urner wrote: > This meeting is in process now. I'm taking notes in real time in my blog: > http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-one.html > > Kirby Hoping to influence Kirby ;-) in time for the Summit, I wrote a quick post on my blog, http://aroberge.blogspot.com, that touches on some of the points mentioned by Kirby. I have to admit it is a bit narrow in its focus, but it does contain a reference to a published paper that may be of interest (if not already known by them) to edu-sig readers. Andr? From andre.roberge at gmail.com Fri Apr 14 17:39:30 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 14 Apr 2006 12:39:30 -0300 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: Message-ID: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> On 4/13/06, kirby urner wrote: > This meeting is in process now. I'm taking notes in real time in my blog: > http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-one.html > And, if I may quote from Kirby's follow-up post http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-two.html --- [...] Loosely coupled tools, with a bottom-up, open source curriculum writing process, will leave the question of tools somewhat open-ended. The lesson plans will specify the software needed, with multiple paths possible. --- +1. I couldn't agree more :-) ============ [...] Momentum seems to be building for a stronger graphics engine, either 2D or 3D, with Python bindings, that'll run interactively from within a browser. The Squeak folks may be willing to contribute to this effort. Guido feels we'll need to recruit new talent for this, as the Python community is currently pretty maxed out on projects. Should such an engine be developed, turtle stuff would be incorporated therein. ======= I would love to see this happening and would definitely be willing to contribute to such an effort. Of course, I would use this to port rur-ple to the web (as a first step). Anybody else is as excited about this possibility as I am? Andr? From francois.schnell at gmail.com Fri Apr 14 20:12:35 2006 From: francois.schnell at gmail.com (francois schnell) Date: Fri, 14 Apr 2006 20:12:35 +0200 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: Message-ID: <13a83ca10604141112pc4e269en9a59a6429968b7e6@mail.gmail.com> Thank you Kirby for this report/summarise, this is very interesting. :) You said: "Will we eventually have some sort of Python-based hypercard-like browser plug-in, facilitating easy publishing by students and incorporating what's already worked well in Squeak? If yes, then so much the better. Peers i.e. teachers (including the more advanced students) will write lessons around it." I think this would be great. I find the Squeak plugin good since and you can interact with and program "squeaklets" (E-Toys or Squeak) in your browser and publish your projects on the web. You said: "Momentum seems to be building for a stronger graphics engine, either 2D or 3D, with Python bindings, that'll run interactively from within a browser. The Squeak folks may be willing to contribute to this effort. Guido feels we'll need to recruit new talent for this, as the Python community is currently pretty maxed out on projects." Did Alan Kay talked about opencroquet ? I find their last demo very convincing: video On their FAQ they said they will/want to provide Python binding with it (it's written in Squeak). On their Blogs they say version 1.0 will come-out "soon" and it will be completely open to gather a community around it. Obviously will have to see if it's stable enough, quick enough, not to" heavy" on hardware etc ... but I find the demo (and the concepts behind) already very impressive. Concerning a Logo "substitute" I haven't tried rur-ple yet but I will (the doc seems excellent). I've tried something called "Scratch" (written in Squeak) which in my opinion is simpler than E-Toys and yet very powerful notably for Logo types activity. The first public released of Scratch will happen this summer and I believe it will be successful: http://llk.media.mit.edu/projects/summaries/scratch.shtml I find both Python and Squeak communities very interesting in particular for education and complementary in some fileds (for now I try to use the "best" of both world .) I really hope more bridges will happen between the two (or at least learn from each other). Interesting times, please keep us updated :) francois On 13/04/06, kirby urner wrote: > > This meeting is in process now. I'm taking notes in real time in my blog: > http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-one.html > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060414/431a6c06/attachment.htm From kirby.urner at gmail.com Sat Apr 15 12:42:32 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 15 Apr 2006 03:42:32 -0700 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> Message-ID: Given Python is so OO, my first concern would be whether this flowchart-driven system would push us back to a more loopy/blocky procedural style. I'd like to see what this would look like on paper before I was persuaded it was a worthwhile undertaking -- not that I'm any kind of gatekeeper or funder in this regard, so pay no attention. Kirby On 4/13/06, Andre Roberge wrote: > On 4/13/06, Douglas S. Blank wrote: > > Python edu-sig, > > > > I've been thinking about a visual programming/flowchart interface for > > Python and was wondering if anyone knows of such a project. I am imaging > > a Tkinter canvas (initially) with which one can add blocks that > > represent statements, branches, loops... everything. Further, I imaging > > that this would save (and load) real Python code, so that you could suck > > in raw code, it would get parsed, and shown as a flowchart. Maybe some > > additional data would be stored in comments (zoom amount, > > positions/colors/properties of particular boxes). Also, one could step > > through the chart, block-by-block. > > > > I've seen some commercial (and open source/non-Python) products, but > > they seem heavy and sluggish, as if a whole lot of processing is going > > on behind the scenes. Is/would it really be that hard? > > A while ago I received an email from Nelson Castillo (sorry Nelson, > for not having replied sooner) who wrote a [non-Python] program that > does something similar to what you are describing. The program can be > found at http://geocities.com/arhuaco/dfd.html > I have received a request to include something like what you describe > within rur-ple (wxPython based, rather than Tkinter). I have > postponed looking into it seriously until version 1.0 of rur-ple > (realistically, not until the end of the summer). I would be > interested in such a project - with the time constraint caveat. > > Sorry that I can't be more helpful. > > Andr? > > > > > Any pointers or comments appreciated, > > > > -Doug > > > > -- > > Douglas S. Blank Computer Science > > Assistant Professor Bryn Mawr College > > (610)526-6501 http://cs.brynmawr.edu/~dblank > > > > > > _______________________________________________ > > 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 kirby.urner at gmail.com Sat Apr 15 20:55:42 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 15 Apr 2006 19:55:42 +0100 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> Message-ID: > Very good point. The way I see it would be that this would be a > tool to teach beginners about control statements and program > flow *for relatively simple programs*. Something like a "guess > the number" or your the word substitution program (mad lib?) > that you talked about previously. The idea is to have something > complementary to other tools (like turtle graphics, etc.). > At least, that's _my_ take on it :-) > > Andr? Yes, that's a reasonable interpretation. But from my point of view it'd be overkill. A few diagrams of the traditional flowchart type should get the point across, then move into nongraphical coding. But this brings up an interesting point: should we try to assemble Pythonic tools that go into graphical hand-holding down to such a level, e.g. for very young children? Alan Kay strongly believes a young child shouldn't have to type to experience programming, i.e. some kind of drag and drop or other non-typing interface should facilitate programming. I have no problem with that if (a) we accept that typing will become important later and (b) don't insist that core Python has any responsibility to pander to non-typers. I do agree with Arthur that Python shouldn't pander. It was originally designed as a kind of teaching language, user friendly for newbies, but not newbie children, rather newbie adults with a professional need to program for some reason (e.g. telescopy experts, biologists, chemists or whathaveyou). That's the heritage and I don't see any reason to pretend otherwise. Python was never premised on being "kid friendly" in the way Squeak was. So if other environments e.g. Squeak or Lego Mindstorms, already have ways to accomplish this "almost no typing goal" is there any reason to commit the resources of the Python community in this direction? In other words, is there any reason to try pushing "snake language" into this ecological niche, and in what sense would it even be ostensibly Python any more, if we did? If it's just the implementation language, then it'd be somewhat hidden -- so then why not use something faster? I keep coming back to the notion that heterogeny is a good thing. One exercise we did at this Shuttleworth Summit was stand on a line according to how much we agreed with the statement: if we *could* implement a 10 year long curriculum around one language only, we should, at least for testing purposes, i.e. to see how well it worked. I stood fairly far at the other end as I recall (disagreeing with the statement): it's a curriculum *goal* to not get mired in one and only one language. We *want* diversity and making Python do the whole thing would be a bad idea in principle. But that's NOT to say we shouldn't have turtles, robots or other kid-friendly stuff in Python. It's more to say that it's being implemented in Python is not the chief advantageous feature (as if we expect kids that age to dig into the source code). The pedagogical advantages should be around the quality of the lessons and experiences, regardless of the implementation language, no? That being said, if one turtle or robot environment is free and open source, while another is closed source, proprietary, and possibly expensive, that *is* a feature to advertise as advantageous. However, Pythonic products needn't be free or open source, we already know. Pythonic is not synonymous with FOSS, even if the language itself is FOSS. Just thinking out loud here. One of our Shuttleworth Summit attenders was going back to Cape Town with Imagine Logo, a somewhat expensive commercial Logo aimed at the kid market (I guess that's redundant: Logo is by definition aimed at kids, no?). If we're to support the tentative Shuttleworth approach of using Logo with the youngest kids (then Squeak, then Python), we'd need something free and open source, and probably cross platform. There's no budget for expensive software in this picture. We need to start assembling candidate packages that'd run in a Tux Lab on Edubuntu I guess. What Logos? Squeak already works. Do we need to include wx in that distro? Is it included already? How about VPython (required for Pygeo, among other packages). I'll have to poke around more when I get back to Portland, where Derek has it installed in his test bed. Kirby in London PS: hope OK I'm replying to the list; your previous came to me only but doesn't appear confidential in any way. From delza at livingcode.org Sat Apr 15 21:38:52 2006 From: delza at livingcode.org (Dethe Elza) Date: Sat, 15 Apr 2006 12:38:52 -0700 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> Message-ID: <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> On 4/15/06, kirby urner wrote: > Did you mean this to go to the list? I just responded to one of > Andre's that was to me privately. I don't want to abuse my right to > declassify too much. Yeah, I meant to go to the list, still getting used to using GMail for responding... > > While we're dreaming, how about a library that let's me make > > "Incredible Machine"-like Rube Goldberg-esque contraptions and > > puzzles? > > > > On 4/15/06, kirby urner wrote: > > > Given Python is so OO, my first concern would be whether this > > > flowchart-driven system would push us back to a more loopy/blocky > > > procedural style. I'd like to see what this would look like on paper > > > before I was persuaded it was a worthwhile undertaking -- not that I'm > > > any kind of gatekeeper or funder in this regard, so pay no attention. > > > > I don't see why this would be any less OO than writing code. You > > would still be manipulating objects, just laying out their > > interactions graphically rather than procedurally. Lego Mindstorms > > does this fairly well, though the graphical environment is limiting > > enough that folks reverse-engineered it so they could write code > > procedurally again. > > > > --Dethe > > > > I think we *could* imagine a graphical language that was OO, but the > original description a few posts back didn't seem to accommodate that. > It's not trivial. What happens when you clone 30 objects of the same > type and each has state or is responsive to events. I've used Lego > Mindstorms and although it's graphical, I found it more procedural > than trully OO. OK, well I haven't actually used the Mindstorms software (doesn't run on a Mac), so maybe that was a bad example. And the description on this list was more about flowchart-type programming. I guess I'm biased by using things like Interface Builder, which does exactly what you mention above: Clone (well, instantiate) the objects and give you access to their state, let you drag them around and wire them together. Pure Data[1] lets you visually wire together objects, and I think Processing[2] does as well (could be wrong here, haven't played with it for awhile). So it is possible. [1] http://puredata.info/ [2] http://www.processing.org/ > Of course there's a big difference between design time and run time. > You can have a visual interface for designing objects more easily than > one for showing what's happening on execution, other than the running > of the program itself (like Sims). Different views for looking at the program vs. looking at the running of the program. Gelertner's book "Mirror Worlds" is all about looking at data in real-time, giving manipulatable graphic representations of information (which could be information about the program, or current events, or whatever). In HyperCard you could view the cards as a program, or you could look at the scripts which were driving each button and tweak those. On OS X there are "widgets" which are lightweight graphical programs that you can "flip around" and change their state (mostly preferences) on the back. Lots of possibilities here. > However, even the design time interfaces I've worked with that tout > their graphicalness require some coding e.g. the Visual Studio type > environments. GameMaker is another example of a highly visual design > time environment, but with viewable source code if you want to see it. Sure. It depends how much is acceptable. There are going to be words in there somewhere. > Making the visual <-> source relationship fully "round trip" as the > original poster suggested, e.g. you could parse the source and create > a graphical version as a result, seems HIGHLY problematic. The visual > environments I know about and use on the job don't really advertise > that. Yes, any time you convert from one format to another you tend to add or remove data (or both). Either way, it's hard to round-trip. Capturing the intent of the data without 100% fidelity is more achievable. --Dethe > > Kirby > From dblank at brynmawr.edu Sat Apr 15 22:29:13 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Sat, 15 Apr 2006 16:29:13 -0400 (EDT) Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> Message-ID: <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> >> > On 4/15/06, kirby urner wrote: >> > > Given Python is so OO, my first concern would be whether this >> > > flowchart-driven system would push us back to a more loopy/blocky >> > > procedural style. I'd like to see what this would look like on >> paper >> > > before I was persuaded it was a worthwhile undertaking -- not that >> I'm >> > > any kind of gatekeeper or funder in this regard, so pay no >> attention. When I asked about such a visual programming project for Python, I was just thinking out loud, too. So, this discussion is in exactly the right spirit: what are the pros/cons? how hard would it be? would it help/hurt? >> I think we *could* imagine a graphical language that was OO, but the >> original description a few posts back didn't seem to accommodate that. >> It's not trivial. What happens when you clone 30 objects of the same >> type and each has state or is responsive to events. I've used Lego >> Mindstorms and although it's graphical, I found it more procedural >> than trully OO. I didn't mention anything about instantiated objects, nor objects at all. But I would imagine that a successful project could show not only the flow of a procedure, but also capture the interactions between instantiated objects. I imagine (maybe) a window for each class, and page of a form for each method. Other windows might show a timeline of events and current objects and their interactions. > OK, well I haven't actually used the Mindstorms software (doesn't run > on a Mac), so maybe that was a bad example. And the description on > this list was more about flowchart-type programming. I guess I'm > biased by using things like Interface Builder, which does exactly what > you mention above: Clone (well, instantiate) the objects and give you > access to their state, let you drag them around and wire them > together. Pure Data[1] lets you visually wire together objects, and I > think Processing[2] does as well (could be wrong here, haven't played > with it for awhile). So it is possible. > > [1] http://puredata.info/ > [2] http://www.processing.org/ I'll check these out; thanks. [snip] >> Making the visual <-> source relationship fully "round trip" as the >> original poster suggested, e.g. you could parse the source and create >> a graphical version as a result, seems HIGHLY problematic. The visual >> environments I know about and use on the job don't really advertise >> that. > > Yes, any time you convert from one format to another you tend to add > or remove data (or both). Either way, it's hard to round-trip. > Capturing the intent of the data without 100% fidelity is more > achievable. I think that this round-trip ability would be required to make it useful to the growing Python community, and toolbox. That way, people see, literally, how making a graphical box in one place matches up exactly with code in a program. DBASE IV, I think it was, did this very well---they had a graphical editing system for forms, but the form was stored as pure DBASE code. Foxpro, on the other hand, stored their forms in tables. (I mention these because Kirby and I both worked in Foxpro for a few years.) I don't think it would be that hard to do round-trip for Python. -Doug > --Dethe > >> >> Kirby >> > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Sat Apr 15 22:50:12 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 15 Apr 2006 21:50:12 +0100 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> Message-ID: > [1] http://puredata.info/ This one reminds me of HP VEE (no longer supported I'm thinking) and LabView http://www.ni.com/labview/ > [2] http://www.processing.org/ > Poking around here, I didn't see a GUI-based back end for programming (looked like a text based API) but maybe I just didn't look hard enough. Some knowledge domains make GUI object based programming easier, as when there's an implied pipeline, i.e. signal or data. I suppose the *best* example of this using Python is ESRI's ArcView or whatever the latest version is called. Very graphical (drag and drop, point to data sources, string together objects), plus generates Python source code under the hood (one of the reasons I got to do a 3 hour training for ESRI/GIS types last year). Kirby From dblank at brynmawr.edu Sat Apr 15 23:03:03 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Sat, 15 Apr 2006 17:03:03 -0400 (EDT) Subject: [Edu-sig] Visual Programming in Python? Message-ID: <36577.68.34.179.248.1145134983.squirrel@webmail.brynmawr.edu> [I've rearranged and selected some of Kirby's comments to facilitate my comments. The full post is below.] Kirby said: > Just thinking out loud here. One of our Shuttleworth Summit attenders > was going back to Cape Town with Imagine Logo, a somewhat expensive > commercial Logo aimed at the kid market (I guess that's redundant: > Logo is by definition aimed at kids, no?). I'd like to first point out that Logo is not used by just kids for just playing around. We use NetLogo in a few of the college courses that I teach to do serious playing around. NetLogo is great, and has some things that I wish Python had. NetLogo is not a visual programming environment, but has a drag-n-drop work area for adding inputs (buttons, sliders) and outputs (graphs). A very nice tool indeed. > But this brings up an interesting point: should we try to assemble > Pythonic tools that go into graphical hand-holding down to such a > level, e.g. for very young children? > > Alan Kay strongly believes a young child shouldn't have to type to > experience programming, i.e. some kind of drag and drop or other > non-typing interface should facilitate programming. > > I have no problem with that if (a) we accept that typing will become > important later and (b) don't insist that core Python has any > responsibility to pander to non-typers. > > I do agree with Arthur that Python shouldn't pander. It was > originally designed as a kind of teaching language, user friendly for > newbies, but not newbie children, rather newbie adults with a > professional need to program for some reason (e.g. telescopy experts, > biologists, chemists or whathaveyou). That's the heritage and I don't > see any reason to pretend otherwise. Python was never premised on > being "kid friendly" in the way Squeak was. I am not interested in any pandering, but I am interested in lowering the bar so that non-programmers can explore areas that have been outside of their capabilities. The problem, as I see it, is that it is hard for me to span Logo to Python. It is not that the students I want to entice can't type, but they don't have any experience in traditional programming. These are students from pyschology, economics, biology, english, archaeology, etc. I've described Python as a Pedagogically Scalable Framework (e.g., as the students gain in experience, Python has new abilities waiting for them). So, rather than require students to create a class to write Hello World, students can first just print it, then learn about functions, then about classes---building on what they already know as they go. Adding a graphical, visual programming tool to the toolbox could help extend the reach of Python to all kinds of non-traditional would-be programmers. > I keep coming back to the notion that heterogeny is a good thing. Yes, of course. But I also see the advantage of having Python have a broad scope. I don't think anyone thinks that homogeneity is good, and yet Java has emerged as the single language for which one can take the AP computer science test. That surely has done more harm than good in CS. > One exercise we did at this Shuttleworth Summit was stand on a line > according to how much we agreed with the statement: if we *could* > implement a 10 year long curriculum around one language only, we > should, at least for testing purposes, i.e. to see how well it worked. I would probably agree with a slightly different statement: if we could implement a 10 year long focus on a single language for use in CS1 and AP testing, should we, to see how well it worked? There is no reason not to (and many reason we should) introduce other languages in the curriculum, but why not come together on a better intro language? I think it is happening, and Python is it. In any event, I am leaning towards the notion that having a visualization tool for seeing and creating Python's flow, objects, events, and interactions would be worth the effort. But only if it was a 1-to-1 match, with round-trip conversions. -Doug >> Very good point. The way I see it would be that this would be a >> tool to teach beginners about control statements and program >> flow *for relatively simple programs*. Something like a "guess >> the number" or your the word substitution program (mad lib?) >> that you talked about previously. The idea is to have something >> complementary to other tools (like turtle graphics, etc.). >> At least, that's _my_ take on it :-) >> >> Andr? > > Yes, that's a reasonable interpretation. But from my point of view > it'd be overkill. A few diagrams of the traditional flowchart type > should get the point across, then move into nongraphical coding. > > But this brings up an interesting point: should we try to assemble > Pythonic tools that go into graphical hand-holding down to such a > level, e.g. for very young children? > > Alan Kay strongly believes a young child shouldn't have to type to > experience programming, i.e. some kind of drag and drop or other > non-typing interface should facilitate programming. > > I have no problem with that if (a) we accept that typing will become > important later and (b) don't insist that core Python has any > responsibility to pander to non-typers. > > I do agree with Arthur that Python shouldn't pander. It was > originally designed as a kind of teaching language, user friendly for > newbies, but not newbie children, rather newbie adults with a > professional need to program for some reason (e.g. telescopy experts, > biologists, chemists or whathaveyou). That's the heritage and I don't > see any reason to pretend otherwise. Python was never premised on > being "kid friendly" in the way Squeak was. > > So if other environments e.g. Squeak or Lego Mindstorms, already have > ways to accomplish this "almost no typing goal" is there any reason to > commit the resources of the Python community in this direction? In > other words, is there any reason to try pushing "snake language" into > this ecological niche, and in what sense would it even be ostensibly > Python any more, if we did? If it's just the implementation language, > then it'd be somewhat hidden -- so then why not use something faster? > > I keep coming back to the notion that heterogeny is a good thing. > > One exercise we did at this Shuttleworth Summit was stand on a line > according to how much we agreed with the statement: if we *could* > implement a 10 year long curriculum around one language only, we > should, at least for testing purposes, i.e. to see how well it worked. > > I stood fairly far at the other end as I recall (disagreeing with the > statement): it's a curriculum *goal* to not get mired in one and only > one language. We *want* diversity and making Python do the whole > thing would be a bad idea in principle. > > But that's NOT to say we shouldn't have turtles, robots or other > kid-friendly stuff in Python. It's more to say that it's being > implemented in Python is not the chief advantageous feature (as if we > expect kids that age to dig into the source code). The pedagogical > advantages should be around the quality of the lessons and > experiences, regardless of the implementation language, no? > > That being said, if one turtle or robot environment is free and open > source, while another is closed source, proprietary, and possibly > expensive, that *is* a feature to advertise as advantageous. However, > Pythonic products needn't be free or open source, we already know. > Pythonic is not synonymous with FOSS, even if the language itself is > FOSS. > > Just thinking out loud here. One of our Shuttleworth Summit attenders > was going back to Cape Town with Imagine Logo, a somewhat expensive > commercial Logo aimed at the kid market (I guess that's redundant: > Logo is by definition aimed at kids, no?). > > If we're to support the tentative Shuttleworth approach of using Logo > with the youngest kids (then Squeak, then Python), we'd need something > free and open source, and probably cross platform. There's no budget > for expensive software in this picture. > > We need to start assembling candidate packages that'd run in a Tux Lab > on Edubuntu I guess. What Logos? Squeak already works. Do we need > to include wx in that distro? Is it included already? How about > VPython (required for Pygeo, among other packages). > > I'll have to poke around more when I get back to Portland, where Derek > has it installed in his test bed. > > Kirby > in London > > PS: hope OK I'm replying to the list; your previous came to me only > but doesn't appear confidential in any way. > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Sat Apr 15 23:05:43 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 15 Apr 2006 22:05:43 +0100 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> Message-ID: > I think that this round-trip ability would be required to make it useful > to the growing Python community, and toolbox. That way, people see, > literally, how making a graphical box in one place matches up exactly with > code in a program. DBASE IV, I think it was, did this very well---they had > a graphical editing system for forms, but the form was stored as pure > DBASE code. Foxpro, on the other hand, stored their forms in tables. (I > mention these because Kirby and I both worked in Foxpro for a few years.) > I don't think it would be that hard to do round-trip for Python. > > -Doug Actually dBase IV wasn't round trip. If you want to change the form, change it graphically. If you change the source directly, you'll break the link back to the form. The typical workaround was to not put a lot of code directly in forms, but do calls to external procedure files. FoxPro did it better, still not round trip exactly. No friendly way to go into those tables except through the GUI/Project front end. Microsoft has made a name for itself in providing these GUI-based drag and drop component/object based programming environments. Python is less popular with those accustomed to Visual Studio and/or FoxPro because it indeed lacks a fully developed version of such an IDE. Boa Constructor and wx-based PythonCard are the two in this genre I'm most aware of, with the latter consciously aimed at those with a MSFT VB type background. We're no longer talking about kid-friendly programming though. This is about adult application developers who want to save time, especially when it comes to visually designing a user interface from palettes of canned widgets. I still use Visual FoxPro to this day, for precisely such interface work. Kirby From lac at strakt.com Sat Apr 15 23:56:51 2006 From: lac at strakt.com (Laura Creighton) Date: Sat, 15 Apr 2006 23:56:51 +0200 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: Message from "kirby urner" of "Sat, 15 Apr 2006 22:05:43 BST." References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> Message-ID: <200604152156.k3FLuplc016953@theraft.strakt.com> In a message of Sat, 15 Apr 2006 22:05:43 BST, "kirby urner" writes: >We're no longer talking about kid-friendly programming though. This >is about adult application developers who want to save time, >especially when it comes to visually designing a user interface from >palettes of canned widgets. it's not just time. It's the boredom. Writing commands to put the little widgets here and there and there is to mind-numbingly dull. Drag and drop has its own sort of tedium, mind you, but for some reason it doesn't irritate me nearly so much as afternoons wasted moving things a few pixels to the left, and then down a bit, and so on and so forth. Laura From trent at oliphant.org Sun Apr 16 00:16:12 2006 From: trent at oliphant.org (Trent Oliphant) Date: Sat, 15 Apr 2006 16:16:12 -0600 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> Message-ID: <444170AC.8030300@oliphant.org> Kirby wrote >We're no longer talking about kid-friendly programming though. This >is about adult application developers who want to save time, >especially when it comes to visually designing a user interface from >palettes of canned widgets. > > I never thought that the discussion was necessarily just making something that is kid-friendly, but I think that would be a possible benefit. I personally would love to have this sort of tool - mostly for learning purposes and being able to follow code. I would be willing to work on this sort of project - especially if it had as ONE of its focus tools for teaching programming concepts. I homeschool my children and have tried to figure out how to teach them programming. I know that there is alot of great books and other tools out there for this, but alot of it is an issue of time. If I could be working on a project with my children and the tools were easy enough for them to use - then I would be able to work with them more. Kirby also wrote earlier >Given Python is so OO, my first concern would be whether this >flowchart-driven system would push us back to a more loopy/blocky >procedural style. I'd like to see what this would look like on paper >before I was persuaded it was a worthwhile undertaking -- not that I'm >any kind of gatekeeper or funder in this regard, so pay no attention. > Even in OO programming there is still plenty that is procedural based within objects and methods. Of course - I don't know that I fully use the power of OO in my programming style rather just using a class as a wrapper for a bunch of procedures. Trent Oliphant From lac at strakt.com Sun Apr 16 00:35:35 2006 From: lac at strakt.com (Laura Creighton) Date: Sun, 16 Apr 2006 00:35:35 +0200 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: Message from Trent Oliphant of "Sat, 15 Apr 2006 16:16:12 MDT." <444170AC.8030300@oliphant.org> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> <444170AC.8030300@oliphant.org> Message-ID: <200604152235.k3FMZZTI019102@theraft.strakt.com> I think that scripps lab have written what you want. http://www.scripps.edu/~stoffler/proj/ViPEr/viper.html I remember hearing that the talk they gave at the last pre-pycon Python conference was fantastic. I don't know if this means their python is circa 2002, though. Laura From lac at strakt.com Sun Apr 16 00:47:05 2006 From: lac at strakt.com (Laura Creighton) Date: Sun, 16 Apr 2006 00:47:05 +0200 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: Message from Laura Creighton of "Sun, 16 Apr 2006 00:35:35 +0200." <200604152235.k3FMZZTI019102@theraft.strakt.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> <444170AC.8030300@oliphant.org> <200604152235.k3FMZZTI019102@theraft.strakt.com> Message-ID: <200604152247.k3FMl5lv019469@theraft.strakt.com> In a message of Sun, 16 Apr 2006 00:35:35 +0200, Laura Creighton writes: >I think that scripps lab have written what you want. > >http://www.scripps.edu/~stoffler/proj/ViPEr/viper.html > >I remember hearing that the talk they gave at the last pre-pycon >Python conference was fantastic. I don't know if this means their >python is circa 2002, though. > >Laura Ooops, after poking around I see that the new version of ViPEr is called VISION http://www.scripps.edu/~stoffler/proj/Vision/vision.html but still looks like what you were interested in. Laura From vceder at canterburyschool.org Sun Apr 16 01:15:47 2006 From: vceder at canterburyschool.org (Vern Ceder) Date: Sat, 15 Apr 2006 19:15:47 -0400 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <200604152247.k3FMl5lv019469@theraft.strakt.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> <444170AC.8030300@oliphant.org> <200604152235.k3FMZZTI019102@theraft.strakt.com> <200604152247.k3FMl5lv019469@theraft.strakt.com> Message-ID: <44417EA3.3020400@canterburyschool.org> I talked to Michel Sanner, one of the developers, at PyCon this year and Vision, as it's now called, is very much still under development and using the current Python. It's largely (but not exclusively) aimed at creating ways to visualize molecular and biological processes. Vern Laura Creighton wrote: > In a message of Sun, 16 Apr 2006 00:35:35 +0200, Laura Creighton writes: >> I think that scripps lab have written what you want. >> >> http://www.scripps.edu/~stoffler/proj/ViPEr/viper.html >> >> I remember hearing that the talk they gave at the last pre-pycon >> Python conference was fantastic. I don't know if this means their >> python is circa 2002, though. >> >> Laura > > Ooops, after poking around I see that the new version of ViPEr is > called VISION http://www.scripps.edu/~stoffler/proj/Vision/vision.html > > but still looks like what you were interested in. > > Laura > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig -- This time for sure! -Bullwinkle J. Moose ----------------------------- Vern Ceder, Director of Technology Canterbury School, 3210 Smith Road, Ft Wayne, IN 46804 vceder at canterburyschool.org; 260-436-0746; FAX: 260-436-5137 From ianb at colorstudy.com Sun Apr 16 02:14:33 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Sat, 15 Apr 2006 19:14:33 -0500 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <36577.68.34.179.248.1145134983.squirrel@webmail.brynmawr.edu> References: <36577.68.34.179.248.1145134983.squirrel@webmail.brynmawr.edu> Message-ID: <44418C69.3060209@colorstudy.com> dblank at brynmawr.edu wrote: > Kirby said: > >> Just thinking out loud here. One of our Shuttleworth Summit attenders >> was going back to Cape Town with Imagine Logo, a somewhat expensive >> commercial Logo aimed at the kid market (I guess that's redundant: >> Logo is by definition aimed at kids, no?). > > I'd like to first point out that Logo is not used by just kids for just > playing around. We use NetLogo in a few of the college courses that I > teach to do serious playing around. NetLogo is great, and has some things > that I wish Python had. NetLogo is not a visual programming environment, > but has a drag-n-drop work area for adding inputs (buttons, sliders) and > outputs (graphs). A very nice tool indeed. Rebol (http://www.rebol.com/) is a Logo for adults. They don't say so, but it is Logo. Well, at least if you define Logo as "lisp without parenthesis" (well, it's Rebol's a bit more Logo-like than *just* that, but that's kind of the core of it). -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From kirby.urner at gmail.com Sun Apr 16 03:03:08 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 16 Apr 2006 02:03:08 +0100 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <200604152156.k3FLuplc016953@theraft.strakt.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> <200604152156.k3FLuplc016953@theraft.strakt.com> Message-ID: Laura: > it's not just time. It's the boredom. Writing commands to put the > little widgets here and there and there is to mind-numbingly dull. Yes, exactly. Kirby From delza at livingcode.org Sun Apr 16 16:53:52 2006 From: delza at livingcode.org (Dethe Elza) Date: Sun, 16 Apr 2006 07:53:52 -0700 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <200604152156.k3FLuplc016953@theraft.strakt.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> <41328.68.34.179.248.1145132953.squirrel@webmail.brynmawr.edu> <200604152156.k3FLuplc016953@theraft.strakt.com> Message-ID: <24d517dd0604160753m3050ebe5tfe0ee273e8eb92fa@mail.gmail.com> On 4/15/06, Laura Creighton wrote: > In a message of Sat, 15 Apr 2006 22:05:43 BST, "kirby urner" writes: > > >We're no longer talking about kid-friendly programming though. This > >is about adult application developers who want to save time, > >especially when it comes to visually designing a user interface from > >palettes of canned widgets. > > it's not just time. It's the boredom. Writing commands to put the > little widgets here and there and there is to mind-numbingly dull. > Drag and drop has its own sort of tedium, mind you, but for some > reason it doesn't irritate me nearly so much as afternoons wasted > moving things a few pixels to the left, and then down a bit, and so > on and so forth. If that's the main issue, then we just need to get everyone to use a Mac and be done with it. Not only does Interface Builder let you instantiate objects by dragging, and let you position and size them by dragging, it lets you configure them (with text in another window), and wire them together by control dragging. You can even subclass and add new properties and methods (signatures only, not implementations) within the graphic environment. As you drag you see subtle lines to help you conform to Apple's User Interface Guidelines. If your document is based on CoreData (a wrapper for SQLite embedded database) then you can create an application without "coding" at all[1]. Even the data schema can be created graphically in XCode. The result is a GUI that you can script from Python. It's fast to develop in, just not cross-platform. There's also Adobes' (was Macromedia's) Flex Builder 2[2]. Flex is their GUI widget layer for Flash, and Flex Builder is a plugin for Eclipse. It lets you drag, drop, wire like Interface Builder does (or maybe even a little better), but has a feature I really wish IB had: you can switch the view to an XML representation of your UI, change the XML, and see the changes reflected when you switch back to the graphical view. The limitations of Flex Builder are that a) it creates a Flash file, and b) the scripting language is Javascript. Also, Flex Builder 2 is still in Beta and won't be free when it's released, unlike Apple's tools which are free, provided you've spend $$$ to buy a Mac. --Dethe [1] http://cocoadevcentral.com/articles/000085.php (Tutorial to build a CoreData app without writing any code) [2] http://www.macromedia.com/software/flex/productinfo/faq/flex2_faq.html#section-2 > > Laura > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From delza at livingcode.org Sun Apr 16 17:12:44 2006 From: delza at livingcode.org (Dethe Elza) Date: Sun, 16 Apr 2006 08:12:44 -0700 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <24d517dd0604151155h33779f80l45c7e042250a1aa1@mail.gmail.com> <24d517dd0604151238y82da0fdq2bb71bf7e254407a@mail.gmail.com> Message-ID: <24d517dd0604160812x78ee1b80g4ac8ad477f511d52@mail.gmail.com> On 4/15/06, kirby urner wrote: > > [1] http://puredata.info/ > > This one reminds me of HP VEE (no longer supported I'm thinking) and LabView > http://www.ni.com/labview/ > > > [2] http://www.processing.org/ > > > > Poking around here, I didn't see a GUI-based back end for programming > (looked like a text based API) but maybe I just didn't look hard > enough. You're right, my bad. It's very visual, being focused on graphics, but the coding is still in text. > Some knowledge domains make GUI object based programming easier, as > when there's an implied pipeline, i.e. signal or data. Absolutely. One step towards a visual interface that I've experimented with is to store changes in a program as Python commands that could be run to recreate the current state of the program. I was building a turtle-based environment for my kids (never completed) where, instead of typing commands to the turtle, you could click where you wanted the turtle to go and a little cartoon turtle would turn to face that coordinate and walk over to it. Or you could pick up the turtle and drag it where you wanted, or drag the turtle's leg to turn it. The key for me is that all the commands were stored as Python and the kids could *see* what they were doing, that making the turtle move around and draw pictures was "programming," that they could change the program to get a different result, and with some canned examples that drew a house, a star, etc., to introduce looping and basic function definition. The animation program I'm working on now is a variation on the same idea, and the documents can be saved as Python or as SVG and tweaked by hand. The problem with exposing such graphical programs "as code" is that the vast bulk of the code is just x,y coordinates, which don't make it look particularly friendly. > I suppose the *best* example of this using Python is ESRI's ArcView or > whatever the latest version is called. Very graphical (drag and drop, > point to data sources, string together objects), plus generates Python > source code under the hood (one of the reasons I got to do a 3 hour > training for ESRI/GIS types last year). I'll have to check that out[1]. Seems to be a GIS mapping engine with a scripting interface. Have you seen Frink[2]? It's a scripting language that embeds WordNet and also has a lot of domain knowledge about units and conversions, so it can handle numbers representing amounts, while retaining the unit the amount is measured in, and also handles basic language translation, parts of speech lookup, etc. It's kind of interesting to imagine a language where this kind of domain knowledge was built in and all the knobs turned to eleven. Even if the mapping was just an API for calling Google Maps, the more things like that you have access to, the more unexpected ways that you can combine them to create something new. --Dethe [1] http://www.esri.com/software/arcgis/arcview/index.html [2] http://futureboy.homeip.net/frinkdocs/ > > Kirby > From aharrin at luc.edu Sun Apr 16 19:04:54 2006 From: aharrin at luc.edu (Andrew Harrington) Date: Sun, 16 Apr 2006 12:04:54 -0500 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> Message-ID: <44427936.2040408@luc.edu> Several points on visual programming and flow charts ... 1. Visual programming in Python is complicated by the fact that it is not statically typed. If you want x to be assigned the reference returned by function f, you cannot be sure of the type, so it is hard to then be able to have a GUI element to select a method to use with x. 2. On loops and flow charts. I am clearly behind OOP at all sorts of levels. My judgment is that OOP texts tend to ignore the fact that inside methods there are algorithms with good old loops and decisions, and students have a hard time with them (particularly loops) and they need to be taught effectively. They are underneath objects, and they are definitely there and important. A flow-chart-ish approach to visualizing them might help. I'm not sure. I have tried lots of ways, but not used flow charts much. Obviously if you are trying to set up a model of a complicated domain, you are likely to have all sorts of objects, and the interfaces between the objects are key, and you can use UML, or all sorts of schemes. I would not use loop modeling tools to model an object-oriented domain at the top level. Still, if you are going below the level of overall design to actually programming through a graphical interface, you get to down to loops and decisions, and a graphical flow through them could definitely be useful *within* a method. Andy kirby urner wrote: >>Very good point. The way I see it would be that this would be a >>tool to teach beginners about control statements and program >>flow *for relatively simple programs*. Something like a "guess >>the number" or your the word substitution program (mad lib?) >>that you talked about previously. The idea is to have something >>complementary to other tools (like turtle graphics, etc.). >>At least, that's _my_ take on it :-) >> >>Andr? >> >> > >Yes, that's a reasonable interpretation. But from my point of view >it'd be overkill. A few diagrams of the traditional flowchart type >should get the point across, then move into nongraphical coding. > >But this brings up an interesting point: should we try to assemble >Pythonic tools that go into graphical hand-holding down to such a >level, e.g. for very young children? > >Alan Kay strongly believes a young child shouldn't have to type to >experience programming, i.e. some kind of drag and drop or other >non-typing interface should facilitate programming. > >I have no problem with that if (a) we accept that typing will become >important later and (b) don't insist that core Python has any >responsibility to pander to non-typers. > >I do agree with Arthur that Python shouldn't pander. It was >originally designed as a kind of teaching language, user friendly for >newbies, but not newbie children, rather newbie adults with a >professional need to program for some reason (e.g. telescopy experts, >biologists, chemists or whathaveyou). That's the heritage and I don't >see any reason to pretend otherwise. Python was never premised on >being "kid friendly" in the way Squeak was. > >So if other environments e.g. Squeak or Lego Mindstorms, already have >ways to accomplish this "almost no typing goal" is there any reason to >commit the resources of the Python community in this direction? In >other words, is there any reason to try pushing "snake language" into >this ecological niche, and in what sense would it even be ostensibly >Python any more, if we did? If it's just the implementation language, >then it'd be somewhat hidden -- so then why not use something faster? > >I keep coming back to the notion that heterogeny is a good thing. > >One exercise we did at this Shuttleworth Summit was stand on a line >according to how much we agreed with the statement: if we *could* >implement a 10 year long curriculum around one language only, we >should, at least for testing purposes, i.e. to see how well it worked. > >I stood fairly far at the other end as I recall (disagreeing with the >statement): it's a curriculum *goal* to not get mired in one and only >one language. We *want* diversity and making Python do the whole >thing would be a bad idea in principle. > >But that's NOT to say we shouldn't have turtles, robots or other >kid-friendly stuff in Python. It's more to say that it's being >implemented in Python is not the chief advantageous feature (as if we >expect kids that age to dig into the source code). The pedagogical >advantages should be around the quality of the lessons and >experiences, regardless of the implementation language, no? > >That being said, if one turtle or robot environment is free and open >source, while another is closed source, proprietary, and possibly >expensive, that *is* a feature to advertise as advantageous. However, >Pythonic products needn't be free or open source, we already know. >Pythonic is not synonymous with FOSS, even if the language itself is >FOSS. > >Just thinking out loud here. One of our Shuttleworth Summit attenders >was going back to Cape Town with Imagine Logo, a somewhat expensive >commercial Logo aimed at the kid market (I guess that's redundant: >Logo is by definition aimed at kids, no?). > >If we're to support the tentative Shuttleworth approach of using Logo >with the youngest kids (then Squeak, then Python), we'd need something >free and open source, and probably cross platform. There's no budget >for expensive software in this picture. > >We need to start assembling candidate packages that'd run in a Tux Lab >on Edubuntu I guess. What Logos? Squeak already works. Do we need >to include wx in that distro? Is it included already? How about >VPython (required for Pygeo, among other packages). > >I'll have to poke around more when I get back to Portland, where Derek >has it installed in his test bed. > >Kirby >in London > >PS: hope OK I'm replying to the list; your previous came to me only >but doesn't appear confidential in any way. >_______________________________________________ >Edu-sig mailing list >Edu-sig at python.org >http://mail.python.org/mailman/listinfo/edu-sig > > -- Andrew N. Harrington Computer Science Department Undergraduate Program Director Loyola University Chicago http://www.cs.luc.edu/~anh 512B Lewis Towers (office) Office Phone: 312-915-7982 Snail mail to Lewis Towers 416 Dept. Fax: 312-915-7998 820 North Michigan Avenue aharrin at luc.edu Chicago, Illinois 60611 From kirby.urner at gmail.com Mon Apr 17 17:40:33 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 17 Apr 2006 08:40:33 -0700 Subject: [Edu-sig] More post Summit brainstorming Message-ID: Hey, this has all been useful grist for the mill I'd say. Many thank yous to the active contributors. There's a big distinction that needs making: GUI-based programming as a productivity aid (Laura: positioning widgets is mindlessly boring) and as an introduction to the whole idea of what it means to computer program (pedagogical aid). I'm much less conflicted about the former use (productivity), while I'm rather averse to babying/coddling, meanwhile letting uber-geeks maintain private understanding of file trees, OS kernel, device drivers and the world of a low level text based command line. I'm not saying 10 year olds need to be whipped through some harrowing keyboard-intensive training in the bash shell. I'm saying more adult curiousity, a symptom of puberty, should be both cultivated and respected. We share this in the spirit of teaching "how things work". How is your city sewer system set up, what's the municipal water supply, where is the electricity coming from, and what's going on in these computers, at the network level, and inside the box. We have many stories to share, explorations to undertake. As long as the command line world is relevant *to anyone* active on the current computing scene (i.e. we're not talking legacy skillsets, of interest mainly to historians), kids should get the low down. At the police station (HPD -- see archives), we went straight to bash and vi, not to develop all the conditioned reflexes (takes lots of practice, no time), but as tour guides, to show geekworld up close and personal. And don't pretend we don't know that GUIs are for sissies, even still, if by GUI we mean something that candifies, sugar coats, insulates, in a WYSIWYG IDE. That's just fine as a productivity tool, which is how I use 'em, almost daily (see above), but it's NOT the primo landscape when giving newbies the lay of the land -- not *exclusively* in any case. Put another way: what I want for South African kids is a reading knowledge of Python. I don't much care how that's gussied up on a bltblt canvas, what bells and whistles get used. At the heart of it, Python is simply ASCII source code that we know how to read, or don't. The target fluency we're working to cultivate is at that level, not at the level of which mouse buttons to click, which dialog boxes to open (good discussion with Alan Kay about "modal windows" over beers @ JurysDoyle). Navigating the interface isn't irrelevant (gotta learn that too) but it's not a core language in and of itself. The focus is more Scheme than DrScheme, admirable though that packaging may be (I find it admirable). Likewise, I want Squeak to be about, among other things, developing a reading knowledge of SmallTalk. It's not like you have to make a career out of being a SmallTalk programmer. It's more like we're ploughing through Shakespeare, learning what a different English was like, developing backward compatibility -- or Cervantes or whatever. Alice in Wonderland. Or if the "tank language" is Python (embedded in some imaginary world, ala Squeak or ToonTalk, complete with hypercard, turtle and robots), same diff: we want to dive deep into the concepts, through mastery of a true pre-visual computer language. The toons are a means to that end, not an end in themselves, enjoyable as playing with them may be (I'm all for enjoyment). So... What this means for me is I'll be doing austere textual Python with Saturday Academy kids (starting this next weekend), going back and forth between traditional mathematical symbolization and the dot notated version. Here is a "rational number" (typical squiggles) here it is again in Python (lots of operator overloading). GCD, LCM, primes, composites, field properties, edges from those nodes, computer language at the elbow (or front and center, as the case may be). We'll get into ray tracing and other graphical tools, sure, but with a sense of text files driving the whole works, not the other way around. And this is field testing for Shuttleworth, likewise, on the understanding that our testing venue is but one of many. Plus I'm going back to my "rich data structures" idea. What we need is a pipeline into Shuttleworth HQ that provides Pythonic recordings of rich, real world data that might be fun to work with as raw material: bones in the body as a kind of tree (perhaps embedded dictionaries with lists-for-leaves), a periodic table with atomic numbers, data about our solar system (examples already in archives). We've already got a stash of such data, but explicitly adding to this stash for Edubuntu branding and distribution (i.e. as a part of the default /site-packages/datamine/ or whatever) will give the Tux Labs beefier content, adding to lesson plan possibilities (even minus any broadband). Per my whitepaper at the Summit page (wiki), the joules/calories theme will be especially strong (food values, power consumption specs, the generic idea of energy flows). Kirby From ianb at colorstudy.com Mon Apr 17 18:17:14 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Mon, 17 Apr 2006 11:17:14 -0500 Subject: [Edu-sig] More post Summit brainstorming In-Reply-To: References: Message-ID: <4443BF8A.8030207@colorstudy.com> kirby urner wrote: > Put another way: what I want for South African kids is a reading > knowledge of Python. I don't much care how that's gussied up on a > bltblt canvas, what bells and whistles get used. At the heart of it, > Python is simply ASCII source code that we know how to read, or don't. > > The target fluency we're working to cultivate is at that level, not at > the level of which mouse buttons to click, which dialog boxes to open > (good discussion with Alan Kay about "modal windows" over beers @ > JurysDoyle). Navigating the interface isn't irrelevant (gotta learn > that too) but it's not a core language in and of itself. The focus is > more Scheme than DrScheme, admirable though that packaging may be (I > find it admirable). > > Likewise, I want Squeak to be about, among other things, developing a > reading knowledge of SmallTalk. It's not like you have to make a > career out of being a SmallTalk programmer. It's more like we're > ploughing through Shakespeare, learning what a different English was > like, developing backward compatibility -- or Cervantes or whatever. > Alice in Wonderland. Is the idea to teach programming? That seems wrong for any inclusive curriculum. Programming-the-skill will never be relevant to most of these children. As a way of teaching a larger set of ideas about abstraction, I think programming is a great medium. But it's only a useful skill for a small set of students. One thing that I think Logo gets really right is the insistence (cultural as much as anything) that it isn't a language for teaching programming, it's for teaching *with* programming. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From ianb at colorstudy.com Mon Apr 17 18:17:34 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Mon, 17 Apr 2006 11:17:34 -0500 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> Message-ID: <4443BF9E.6030609@colorstudy.com> kirby urner wrote: >> Very good point. The way I see it would be that this would be a >> tool to teach beginners about control statements and program >> flow *for relatively simple programs*. Something like a "guess >> the number" or your the word substitution program (mad lib?) >> that you talked about previously. The idea is to have something >> complementary to other tools (like turtle graphics, etc.). >> At least, that's _my_ take on it :-) >> >> Andr? > > Yes, that's a reasonable interpretation. But from my point of view > it'd be overkill. A few diagrams of the traditional flowchart type > should get the point across, then move into nongraphical coding. > > But this brings up an interesting point: should we try to assemble > Pythonic tools that go into graphical hand-holding down to such a > level, e.g. for very young children? > > Alan Kay strongly believes a young child shouldn't have to type to > experience programming, i.e. some kind of drag and drop or other > non-typing interface should facilitate programming. I think "typing" is the wrong thing to look at. A young child shouldn't have to hunt and peck -- too many things to keep track of at once. And they shouldn't have to form grammatically correct code, which doesn't mean anything to them when they are starting. But that doesn't make typing as a whole bad. So a typical entry into a Logo environment involves a kid using the arrow keys to define a shape. They get some output, they don't have to hunt and peck, they have a constrained environment. None of which is necessarily *better* than a graphically composable program. But it's certainly a lot easier to create ;) Where perhaps it becomes more interesting is using these things as a path to full grammar. For instance, you hit some arrows, and you have a very very crude paint program. Not that fun. But if you turn that into language, then you have something more interesting. E.g., they hit some keys, they have a "shape", but the shape is actually represented as programming text, like: [F F F R F F R F R R L L F ...] That's the most simple representation, just the keys they hit. You could even use glyphs instead of letters. But it introduces the idea, and starts to open up areas for further abstraction. In the geometric world of turtles, it gives you a basic and nontrivial building block (well, nontrivial depending on the age -- but you could also adjust this accordingly). It also lets the student learn from immitation -- in this case, immitating the code created by the constrained interface. Unlike much-reviled code generators seen elsewhere, the constrained interfaces would create human-editable code, and would not be a "complete" environment (like no editing built into them). Another kind of graphical environment that seems interesting to me is representing lexical structure graphically (i.e., modules, classes, functions, for/while loops, if statements). I think this is a much more conservative approach than drag-and-drop programming, but offers some real advantages, particularly for some of the students who won't naturally catch on to programming. Rich literals is another similar idea; e.g., given the right environment you could represent a color as a literal, with the color inlined into the code and editable with a color selector. Both of these fit in fairly well to the Python programming model, just not into the typical toolset (including Python's most basic tools, like the loading of modules). With the AST branch merged in Python 2.5, maybe introducing different parsers would be more feasible than previously. > We need to start assembling candidate packages that'd run in a Tux Lab > on Edubuntu I guess. What Logos? Squeak already works. Do we need > to include wx in that distro? Is it included already? How about > VPython (required for Pygeo, among other packages). Re: Logos, I haven't looked for a while, but last I looked just a couple implementations stood out. TurtleTracks in Java was one. UCBLogo was architected for the days of DOS, with very limited computer resources; there's been some recent work to improve it, but I personally don't think Logo is so hard to implement that it's worth starting from there. NetLogo and StarLogo are Logo, but also feel different than the average Logo. There's a Mono Logo that looks pretty good: http://liogo.sourceforge.net/ and Elica is another nice Windows-only Logo, that's not open source but is free, and I think at least deserves some attention if you are thinking about approachable projects for a 3D environment (like VPython). An interesting exercise might be translating some parts of Computer Science Logo Style (http://www.cs.berkeley.edu/~bh/logo.html) into Python, to get a feel for how much of a text like that is related to the language, and how much to the environment. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From kirby.urner at gmail.com Mon Apr 17 18:29:43 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 17 Apr 2006 09:29:43 -0700 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <44427936.2040408@luc.edu> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> <44427936.2040408@luc.edu> Message-ID: On 4/16/06, Andrew Harrington wrote: > Several points on visual programming and flow charts ... > > 1. Visual programming in Python is complicated by the fact that it is > not statically typed. If you want x to be assigned the reference > returned by function f, you cannot be sure of the type, so it is hard to > then be able to have a GUI element to select a method to use with x. This shouldn't be a huge problem. Visual FoxPro isn't statically typed either (reassign at will, no need to pre-declare type). Dynamic typing is in no way inconsistent with visual GUI programming, round trip or otherwise. > 2. On loops and flow charts. I am clearly behind OOP at all sorts of > levels. My judgment is that OOP texts tend to ignore the fact that > inside methods there are algorithms with good old loops and decisions, > and students have a hard time with them (particularly loops) and they > need to be taught effectively. They are underneath objects, and they > are definitely there and important. A flow-chart-ish approach to > visualizing them might help. I'm not sure. I have tried lots of ways, > but not used flow charts much. You're right, shouldn't ignore that Python methods are procedural code, makes sense to do mini-function coding first, then explore OO coding (except one might visit dot-notation even prior to mini-function coding -- what's worked for me in the 8th grade context). Looping and branching -- can't get around those. Not irrelevant in any way, just because of later OO developments. > Obviously if you are trying to set up a model of a complicated domain, > you are likely to have all sorts of objects, and the interfaces between > the objects are key, and you can use UML, or all sorts of schemes. I > would not use loop modeling tools to model an object-oriented domain at > the top level. Still, if you are going below the level of overall > design to actually programming through a graphical interface, you get to > down to loops and decisions, and a graphical flow through them could > definitely be useful *within* a method. > > Andy I like the idea of diagrammatic representations of problem domains using some kind of boxes and arrows notation, something not too formal and doesn't have to generate code. The imagination glues the diagram to the code -- not a step we should have to automate before continuing with serious-minded CS-type training in a developing world context. I'm very open to more GUI tools coming on-line, but don't see any particular absence as halting progress until we have same. In other words, we already have enough tools to get on with it. I'm not waiting for large new green field development to occur, even if I expect such development to keep occuring anyway. That's good, because bottlenecks are just we don't need any more of at this point. The TIMMS scores tell the story. The situation is critical and needs more than just another long-delay type response. We're not "on hold" waiting for any geniuses to get back to us. Kirby From kirby.urner at gmail.com Mon Apr 17 18:37:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 17 Apr 2006 09:37:05 -0700 Subject: [Edu-sig] More post Summit brainstorming In-Reply-To: <4443BF8A.8030207@colorstudy.com> References: <4443BF8A.8030207@colorstudy.com> Message-ID: > Is the idea to teach programming? That seems wrong for any inclusive > curriculum. Programming-the-skill will never be relevant to most of > these children. As a way of teaching a larger set of ideas about > abstraction, I think programming is a great medium. But it's only a > useful skill for a small set of students. The idea is to teach a new kind of fluency that accommodates the technologies likely to make the most difference in a developing world context. Cheap hardware and free software make for a new kind of analytic thinking skills delivery system, a new kind of playground if you will. Not just your daddy's swings and slides any more. So we approach a coding language much as we approach a math notation today, complete with greek letters and canned functions. It's a new way of covering a lot of familiar ground, while meanwhile roping in a lot more contemporary information, relating to real world challenges on the ground. > One thing that I think Logo gets really right is the insistence > (cultural as much as anything) that it isn't a language for teaching > programming, it's for teaching *with* programming. > Yes, this is "programming to learn" more than "learning to program". We'll develop our analytical skills by practicing OO-style thinking, meaning a diagrammatic breakup of a problem domain into main players and their relationships, a kind of analysis needed in advance of any coding. How far into working code we go will depend on the context, but some practice in going all the way will be necessary, because students want that kind of feedback as a measure of mastery. If your code doesn't actually work, what fun is that? Kirby From kirby.urner at gmail.com Mon Apr 17 19:01:24 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 17 Apr 2006 10:01:24 -0700 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <4443BF9E.6030609@colorstudy.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> <4443BF9E.6030609@colorstudy.com> Message-ID: > An interesting exercise might be translating some parts of Computer > Science Logo Style (http://www.cs.berkeley.edu/~bh/logo.html) into > Python, to get a feel for how much of a text like that is related to the > language, and how much to the environment. > > > -- > Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org One thing that was new was Alan Kay, representing Seymour Papert's views to the best of his ability, suggested that Seymour no longer regards "suppressing the receiver" as an important feature, meaning he's paving the way for explicity mention of the turtle as a message receiver, e.g. via Python notation: So this isn't Logo, but it's probably where we're headed with the turtle stuff: t1 = Turtle() t1.forward(10) I can imagine a big commercial company contributing a colorful professional grade edition to the education community, via GNU or whatever. Making the syntax consistently Pythonic would be an attractive feature (implement bindings for both Python *and* traditional Logo why not?). Kirby From andre.roberge at gmail.com Mon Apr 17 19:56:17 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Mon, 17 Apr 2006 14:56:17 -0300 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <4443BF9E.6030609@colorstudy.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> <4443BF9E.6030609@colorstudy.com> Message-ID: <7528bcdd0604171056i2d9216dcr5d453af3890f62bf@mail.gmail.com> On 4/17/06, Ian Bicking wrote: > kirby urner wrote: [snip] > > > > Alan Kay strongly believes a young child shouldn't have to type to > > experience programming, i.e. some kind of drag and drop or other > > non-typing interface should facilitate programming. > > I think "typing" is the wrong thing to look at. A young child shouldn't > have to hunt and peck -- too many things to keep track of at once. And > they shouldn't have to form grammatically correct code, which doesn't > mean anything to them when they are starting. > > But that doesn't make typing as a whole bad. So a typical entry into a > Logo environment involves a kid using the arrow keys to define a shape. > They get some output, they don't have to hunt and peck, they have a > constrained environment. > > None of which is necessarily *better* than a graphically composable > program. But it's certainly a lot easier to create ;) Where perhaps it > becomes more interesting is using these things as a path to full > grammar. For instance, you hit some arrows, and you have a very very > crude paint program. Not that fun. But if you turn that into language, > then you have something more interesting. E.g., they hit some keys, > they have a "shape", but the shape is actually represented as > programming text, like: > > [F F F R F F R F R R L L F ...] > > That's the most simple representation, just the keys they hit. You > could even use glyphs instead of letters. But it introduces the idea, > and starts to open up areas for further abstraction. In the geometric > world of turtles, it gives you a basic and nontrivial building block > (well, nontrivial depending on the age -- but you could also adjust this > accordingly). It also lets the student learn from immitation -- in this > case, immitating the code created by the constrained interface. Unlike > much-reviled code generators seen elsewhere, the constrained interfaces > would create human-editable code, and would not be a "complete" > environment (like no editing built into them). > Nice ideas. I'm going to adapt them in rur-ple (sorry about my single mindedness :-) As it stand, within rur-ple, one can make the robot move forward (after clicking in its world window to give it focus) by pressing the up arrow key; turning left by pressing the left arrow key; picking up beeper by pressing "p", and putting one down by pressing "P". This was mostly done for earlier testing of the program. Now, I can link this to the editing window by "typing" the corresponding commands [move(), turn_left(), pick_beeper(), put_beeper()] in addition to updating the graphical world when the appropriate keys are pressed. In terms of user interactions, the only caveat that I see is that I should probably find a way to indicate which sub-window (editor or robot world) has the focus... I suppose I could change the background color... Any of you think the above ideas are silly?... As for the next step (flowchart for decision tree), I think it would have to be handled very differently. Andr? From ianb at colorstudy.com Tue Apr 18 02:34:57 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Mon, 17 Apr 2006 19:34:57 -0500 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> <7528bcdd0604150739r6d0cf7c3nea91d686a5fc70c9@mail.gmail.com> <4443BF9E.6030609@colorstudy.com> Message-ID: <44443431.4070007@colorstudy.com> kirby urner wrote: >>An interesting exercise might be translating some parts of Computer >>Science Logo Style (http://www.cs.berkeley.edu/~bh/logo.html) into >>Python, to get a feel for how much of a text like that is related to the >>language, and how much to the environment. >> >> >>-- >>Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org > > > One thing that was new was Alan Kay, representing Seymour Papert's > views to the best of his ability, suggested that Seymour no longer > regards "suppressing the receiver" as an important feature, meaning > he's paving the way for explicity mention of the turtle as a message > receiver, e.g. via Python notation: > > So this isn't Logo, but it's probably where we're headed with the turtle stuff: > > t1 = Turtle() > t1.forward(10) > > I can imagine a big commercial company contributing a colorful > professional grade edition to the education community, via GNU or > whatever. Making the syntax consistently Pythonic would be an > attractive feature (implement bindings for both Python *and* > traditional Logo why not?). I've struggled a little with how this would work in Logo, and looked some at how different dialects do it. I have it something like this in PyLogo: make :t newturtle tell :t forward 10 And then I was thinking of extending OO in the same way dynamic scope works, which is sloppy but amused me, and maybe an OK kind of sloppy. So: forward 10 Means "ask all the active objects if they know how to 'forward'", where there is a stack of active objects, ending with the global namespace (where plain functions are kept). Then you do: tell :t [forward 10] Which puts :t onto the end of that stack, then executes the block. You can use it like: make :s (open "filename "w) tell :s [write "hi] Which will write "hi" to the filename, since the file object will be on the object stack. However, the plain "tell :t forward 10" would still work as a special syntax, which would require that :t actually implement a forward method. Incidentally, all of this works off the Python object model (to the degree I have it implemented -- it's not quite complete yet), so you really could share a single Turtle implementation between the two. I have yet to figure out how to implement keyword arguments in Logo, though. I was trying to figure out how I might run VPython from PyLogo, and the keyword arguments were a real kicker there. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From nelsoneci at gmail.com Fri Apr 14 04:05:30 2006 From: nelsoneci at gmail.com (Nelson Castillo) Date: Thu, 13 Apr 2006 21:05:30 -0500 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> References: <1144947372.13112.114.camel@mightymouse.brynmawr.edu> <7528bcdd0604131030r517a7084wad6067bfdd35d38d@mail.gmail.com> Message-ID: <2accc2ff0604131905p6bcb92b1l78f737a739e24983@mail.gmail.com> > A while ago I received an email from Nelson Castillo (sorry Nelson, > for not having replied sooner) who wrote a [non-Python] program that > does something similar to what you are describing. The program can be > found at http://geocities.com/arhuaco/dfd.html > I have received a request to include something like what you describe > within rur-ple (wxPython based, rather than Tkinter). I have > postponed looking into it seriously until version 1.0 of rur-ple > (realistically, not until the end of the summer). I would be > interested in such a project - with the time constraint caveat. It seems people like to use graphical programs a lot. Dfd is widely used. It's in C++. Unfortunately, the other authors don't agree about releasing it with a free license :( I really wish to see some similar program. -- http://arhuaco.org/ From kirby.urner at gmail.com Tue Apr 18 21:39:32 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 18 Apr 2006 12:39:32 -0700 Subject: [Edu-sig] Kirby presents to LKL (streaming video) Message-ID: So the London Knowledge Lab has kindly made available my little Pythonic mathematics talk via streaming video (Quicktime). If you want to stare at a small patch of screen into which I sometimes float, balloon-like, have a look. http://www.lkl.ac.uk/video/urner0406.html That design on my T-shirt is some Native American like logo, a bird head I think (ask ActiveState), not a phallus. Kirby From jpsandys at yahoo.com Wed Apr 19 21:15:47 2006 From: jpsandys at yahoo.com (Jeff Sandys) Date: Wed, 19 Apr 2006 12:15:47 -0700 (PDT) Subject: [Edu-sig] Visual Programming in Python? Message-ID: <20060419191547.6084.qmail@web51410.mail.yahoo.com> Kirby said: > So this isn't Logo, but it's probably where we're headed with > the turtle stuff: > > t1 = Turtle() > t1.forward(10) > > I can imagine a big commercial company contributing a colorful > professional grade edition to the education community, via GNU > or whatever. Making the syntax consistently Pythonic would be > an attractive feature (implement bindings for both Python *and* > traditional Logo why not?). Thank you, Kirby, for expressing this. While PyLogo is an interesting and valuable experiment, I don't think that it will contribute to introductory Python programming education. I love Logo syntax and enjoy teaching Logo to Middle school students. I wouldn't use PyLogo when teaching Python. What I would like to see in a turtle environment comes from StarLogo ( http://education.mit.edu/starlogo/ ). StarLogo has multiple turtles, the turtles can inherit methods to make new turtle classes, and the background also has methods for its cells, implementing Conway's Life only takes several lines. The Santa Fe Institute uses StarLogo to teach non-programmers sophisticated behavior and business simulations. I think that creating a StarPython, with Python syntax, would be a more valuable effort that forcing Python to resemble Logo. Python would be easier to teach if it had clearer error messages. Most Logo error messages lead the programmer to the solution for the bug. I would like to see an IDE that had Doctest and maybe profile as a button in the menu bar. Another advanced Logo is Elica ( http://www.elica.net/ ). Elica has 3D geometry, a nice object browser and abandons the Logo like Ask and Tell object syntax for Python like dot notation. Elica architecture allows linking other programs. I imagine a close integration of Python and Elica ( Pelican ? ) but this is beyond my programming abilities. Kirby, where is your final Shuttleworth report? Did you get anything out of it? I liked your XP idea of piloting many ideas. Do you think they will create a successful curriculum in 3 years? Thanks, Jeff Sandys __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From Christianna_Lee at prenhall.com Wed Apr 19 18:04:25 2006 From: Christianna_Lee at prenhall.com (Lee, Christianna) Date: Wed, 19 Apr 2006 12:04:25 -0400 Subject: [Edu-sig] Interested in reviewing proposals for Python texts? Message-ID: Hello, my name is Christianna Lee and I am posting this e-mail on behalf of Prentice Hall. We are currently looking for qualified professors to help us by reviewing proposals for textbook projects using Python. We are seeing a surge in the number of classes using Python as a programming language and we are interested in creating innovative and relevant texts to bolster this trend. We would prefer professors who are currently teaching Python at a four year college, but would be interested in hearing from anyone who feels they are qualified to review Python-based pedagogical material. If you are interested, please e-mail me at this address with your name, description of the classes you teach and/or your qualifications for reviewing Python material. Thank you so much and we look forward to hearing from you! Regards, Christianna Christianna Lee Editorial Assistant- Computer Science One Lake Street Upper Saddle River, NJ 07458 ph-201-236-7878 fax-201-236-7170 *********************************************************************** This email may contain confidential material. If you were not an intended recipient, please notify the sender and delete all copies. We may monitor email to and from our network. *********************************************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060419/835a7d0e/attachment.html From ianb at colorstudy.com Thu Apr 20 05:26:26 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Wed, 19 Apr 2006 22:26:26 -0500 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <20060419191547.6084.qmail@web51410.mail.yahoo.com> References: <20060419191547.6084.qmail@web51410.mail.yahoo.com> Message-ID: <4446FF62.9040401@colorstudy.com> Jeff Sandys wrote: > Kirby said: >> So this isn't Logo, but it's probably where we're headed with >> the turtle stuff: >> >> t1 = Turtle() >> t1.forward(10) >> >> I can imagine a big commercial company contributing a colorful >> professional grade edition to the education community, via GNU >> or whatever. Making the syntax consistently Pythonic would be >> an attractive feature (implement bindings for both Python *and* >> traditional Logo why not?). > > Thank you, Kirby, for expressing this. While PyLogo is an > interesting and valuable experiment, I don't think that it will > contribute to introductory Python programming education. I love > Logo syntax and enjoy teaching Logo to Middle school students. > I wouldn't use PyLogo when teaching Python. PyLogo wouldn't be particularly useful teaching Python, since it isn't Python. But it makes it possible to share infrastructure and environment between the two languages. So (barring some small details) you could run VPython from Logo, and the students would be building familiarity with that model. And I think there's no reason VPython in Logo would look much different than in Python -- the core concepts there aren't bound to the language, they are bound to the domain of 3D modeling. A bunch of other parts are also relatively unassociated with the language, like the basic development process (editing code, running programs, etc). As to the merits of Logo as a language and Python as a language, I'm not sure. Logo is grammatically simpler. Generally it is more insulated from the underlying implementation. It isn't burdened with ideas like "good software engineering". But it's not necessarily designed to lead to Python, as say Guido van Robot is. But anyway, that's a different (though still interesting) discussion. At least PyLogo lets you hedge your language bets a bit, if you are working on non-language concerns. > What I would like to see in a turtle environment comes from > StarLogo ( http://education.mit.edu/starlogo/ ). StarLogo has > multiple turtles, the turtles can inherit methods to make new > turtle classes, and the background also has methods for its cells, > implementing Conway's Life only takes several lines. The Santa > Fe Institute uses StarLogo to teach non-programmers sophisticated > behavior and business simulations. > > I think that creating a StarPython, with Python syntax, would be > a more valuable effort that forcing Python to resemble Logo. That's hard, or maybe easy. With CPython, something like StarPython is hard. The kind of concurrency it does isn't practical with OS threads. Maybe with Greenlets, though I must admit I don't understand them. But with Stackless Python it might not be so hard, at least within certain constraints. Cooperative microthreads are possible there, and that's kind of at the core of StarLogo's system. Implementing the turtles from that point might not be so hard. That said, I'm not sure how well Stackless interacts with C extensions, i.e., the graphics available in Python. I guess that would be something to try out. > Python would be easier to teach if it had clearer error messages. > Most Logo error messages lead the programmer to the solution for > the bug. I would like to see an IDE that had Doctest and maybe > profile as a button in the menu bar. Error messages are indeed hard. It's easier when you have a clear idea of system and user code. In a typical Logo implementation where the library is implemented in a language other than Logo, it's easy to tell what is inside and outside -- everything in Logo belongs to the programmer, everything not in Logo belongs to the system. In Python it is not so easy, especially because errors often bubble up from deep in system code, and you actually have to inspect the system code to understand what it means in the context of your code. As an example, shutil(None, 'tmp'): Traceback (most recent call last): File "", line 1, in ? File "/usr/lib/python2.4/shutil.py", line 81, in copy copyfile(src, dst) File "/usr/lib/python2.4/shutil.py", line 41, in copyfile if _samefile(src, dst): File "/usr/lib/python2.4/shutil.py", line 31, in _samefile return os.path.samefile(src, dst) File "/usr/lib/python2.4/posixpath.py", line 218, in samefile s1 = os.stat(f1) TypeError: coercing to Unicode: need string or buffer, NoneType found Sigh. It's not like hiding that traceback can make that error more understandable. I really don't know how to resolve that. Though it definitely is possible to trim exceptions down. For instance, not to show code that is part of the standard library (or at least filter that out unless explicitly expanded). That won't make the exception make sense (coerce to Unicode?! talk about obscure), but at least it will better highlight the problem code. > Another advanced Logo is Elica ( http://www.elica.net/ ). Elica > has 3D geometry, a nice object browser and abandons the Logo like > Ask and Tell object syntax for Python like dot notation. Elica > architecture allows linking other programs. I imagine a close > integration of Python and Elica ( Pelican ? ) but this is beyond > my programming abilities. Elica is definitely interesting. It seems pretty bound to Windows; or at least the graphical side, I would assume. A Windows dependency seems like a problem for many of the target projects. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From kirby.urner at gmail.com Thu Apr 20 18:08:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 20 Apr 2006 09:08:13 -0700 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <4446FF62.9040401@colorstudy.com> References: <20060419191547.6084.qmail@web51410.mail.yahoo.com> <4446FF62.9040401@colorstudy.com> Message-ID: > PyLogo wouldn't be particularly useful teaching Python, since it isn't > Python. But it makes it possible to share infrastructure and > environment between the two languages. So (barring some small details) > you could run VPython from Logo, and the students would be building > familiarity with that model. And I think there's no reason VPython in > Logo would look much different than in Python -- the core concepts there > aren't bound to the language, they are bound to the domain of 3D modeling. I think implementing swimming turtles within VPython, using pure Python modules and syntax, is a viable approach. I might just use IPython as a command line shell, and have kids instantiate and instruct their turtles from there. VPython would be the view. Modules (perhaps organized in an __init__ package) would supply the model (command line is controller). Kirby From pdfernhout at kurtz-fernhout.com Fri Apr 21 01:23:40 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Thu, 20 Apr 2006 19:23:40 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> Message-ID: <444817FC.6000307@kurtz-fernhout.com> I've long been interested in making Python development more Squeak Smalltalk like. See for example a recent post of mine to the Jython user mailing list with some code (would be also useful for CPython with a few changes): [jython-users] ReloaderWindow 0.2 (improvements to selective reloading) http://sourceforge.net/mailarchive/message.php?msg_id=14482359 On the topic of an integrated 2D/3D crossplatform solution for Python (like Squeak has), I'd like to point to my related comments on this list from six (!) years back: [Edu-sig] Common Graphical Framework for Python Tutorials? Fri, 04 Feb 2000 11:16:39 -0500 http://mail.python.org/pipermail/edu-sig/2000-February/000032.html [Edu-sig] a modest proposal II Fri, 04 Feb 2000 18:03:01 -0500 http://mail.python.org/pipermail/edu-sig/2000-February/000063.html [Edu-sig] IDLE/TK limitations for learning environments Fri, 04 Feb 2000 18:32:54 -0500 http://mail.python.org/pipermail/edu-sig/2000-February/000065.html [Edu-sig] Not well supported on the Mac? Sun, 28 May 2000 15:24:21 -0400 http://mail.python.org/pipermail/edu-sig/2000-May/000495.html Glad to see some interest in such ideas is perking up here. :-) It's all quite doable with enough effort. Though I'd watch out for Squeak licensing and some Squeak unfinished complexity management issues. I think it might be better to just use the Squeak base cross-platform ideas or base code (or perhaps base a new work on wxWidgets) and build a larger common framework using Python technology and the Python license (and yet also of interest to Squeakers, like by adding in support for a Smalltalk parser). Alternatively, one could build on top of Jython -- see my post on this list from last year on this topic: [Edu-sig] On Jython for education Wed Oct 19 15:26:02 CEST 2005 http://mail.python.org/pipermail/edu-sig/2005-October/005410.html I think the Jython-based approach might be easiest, though one then has to wrestle with other Java community and licensing issues. [I personally think the Squeak approach would be more stable and maintainable though, just 2000 lines of core C to port per platform, with widgets built on that, and a dynamic loading facility for other native code.] A cross-platform system supporting both Python and Smalltalk (and perhaps Java) on a JVM with a complete Smalltalk-like development environment (including cross-image debugging and development) and with 3D plus some sort of PythonCard/HyperCard framework out of the box, which had the option of running as a browser plugin, would be really neat. Probably at least few person months (for me :-) to get that going to the point where it reached a critical mass and was something people wanted to use or build on top of though. I've worked on bits and pieces of all these ideas in a variety of contexts, but never had a chance to put them all together. --Paul Fernhout Andre Roberge wrote: > And, if I may quote from Kirby's follow-up post > http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-two.html > --- > [...] > Loosely coupled tools, with a bottom-up, open source curriculum > writing process, will leave the question of tools somewhat open-ended. > The lesson plans will specify the software needed, with multiple paths > possible. > --- > +1. I couldn't agree more :-) > ============ > [...] > Momentum seems to be building for a stronger graphics engine, either > 2D or 3D, with Python bindings, that'll run interactively from within > a browser. The Squeak folks may be willing to contribute to this > effort. Guido feels we'll need to recruit new talent for this, as the > Python community is currently pretty maxed out on projects. Should > such an engine be developed, turtle stuff would be incorporated > therein. > ======= > > I would love to see this happening and would definitely be willing to > contribute to such an effort. Of course, I would use this to port > rur-ple to the web (as a first step). Anybody else is as excited > about this possibility as I am? > > Andr? From ianb at colorstudy.com Fri Apr 21 03:10:19 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Thu, 20 Apr 2006 20:10:19 -0500 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <444817FC.6000307@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> Message-ID: <444830FB.7080609@colorstudy.com> Paul D. Fernhout wrote: > I think the Jython-based approach might be easiest, though one then has to > wrestle with other Java community and licensing issues. [I personally > think the Squeak approach would be more stable and maintainable though, > just 2000 lines of core C to port per platform, with widgets built on > that, and a dynamic loading facility for other native code.] I'm not clear what the advantage of this kind of strategy is over CPython. Sure, 2000 lines of C is easier to port, but CPython is ported, so that's not a problem. The graphical layer isn't portable, but pygame is fairly portable and runs on a more optimized layer (SDL) than what Squeak runs on (AFAIK -- though I haven't payed any attention to what their graphical infrastructure is like for years). I guess I just don't understand the complaints about Python graphics. Sure, there's work to do, but the core graphics capabilities provide a solid foundation, in addition to some good higher level things as well (like VPython). If Squeak has some good higher-level ideas, then those would be ported, I don't see any way you could leverage the Squeak code directly. As for actually integrating with Smalltalk, I suspect embedding the Squeak VM in Python is feasible. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From guido at python.org Fri Apr 21 10:29:14 2006 From: guido at python.org (Guido van Rossum) Date: Fri, 21 Apr 2006 09:29:14 +0100 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <444817FC.6000307@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> Message-ID: There's a lot to read in your post and the links you post -- more than I have time ofr right now. Let me try to prune some of the ideas. I'm not interested in switching to Jython for this purpose; nor am I interested in directly linking to code that's part of Squeak -- unless, perhaps, there's some low-level code that is independent of the rest of the Squeak environment while providing some functionality we need. I'm also not interested in making Python an entirely self-contained system such as Squeak is -- much of Python's strengths come from its capabilities as a glue language, seamlessly integrating with other software on many different platforms. But, after encouragement from Alan Kay, I *am* interested in producing a Squeak-like environment *on top* of Python. Alan suggested using a slightly different starting point than Squeak; modern graphics cards have a wealth of functionality that can be accessed directly. I'm no graphics expert, but I believe OpenGL and perhaps SVG could be the right basis to get started. The approach that seems to make the most sense to me (but I'm open for alternatives) is to start out by producing a solid low-level graphics package like this that can work across platforms (Linux, Windows and OSX preferably); once that is settled, we could build an application resembling Squeak's UI. There's probably more to it; but typing this email at a busy conference my thoughts are a bit distracted. --Guido On 4/21/06, Paul D. Fernhout wrote: > I've long been interested in making Python development more Squeak > Smalltalk like. See for example a recent post of mine to the Jython user > mailing list with some code (would be also useful for CPython with a few > changes): > [jython-users] ReloaderWindow 0.2 (improvements to selective reloading) > http://sourceforge.net/mailarchive/message.php?msg_id=14482359 > > On the topic of an integrated 2D/3D crossplatform solution for Python > (like Squeak has), I'd like to point to my related comments on this list > from six (!) years back: > > [Edu-sig] Common Graphical Framework for Python Tutorials? > Fri, 04 Feb 2000 11:16:39 -0500 > http://mail.python.org/pipermail/edu-sig/2000-February/000032.html > > [Edu-sig] a modest proposal II > Fri, 04 Feb 2000 18:03:01 -0500 > http://mail.python.org/pipermail/edu-sig/2000-February/000063.html > > [Edu-sig] IDLE/TK limitations for learning environments > Fri, 04 Feb 2000 18:32:54 -0500 > http://mail.python.org/pipermail/edu-sig/2000-February/000065.html > > [Edu-sig] Not well supported on the Mac? > Sun, 28 May 2000 15:24:21 -0400 > http://mail.python.org/pipermail/edu-sig/2000-May/000495.html > > Glad to see some interest in such ideas is perking up here. :-) > > It's all quite doable with enough effort. Though I'd watch out for Squeak > licensing and some Squeak unfinished complexity management issues. I think > it might be better to just use the Squeak base cross-platform ideas or > base code (or perhaps base a new work on wxWidgets) and build a larger > common framework using Python technology and the Python license (and yet > also of interest to Squeakers, like by adding in support for a Smalltalk > parser). > > Alternatively, one could build on top of Jython -- see my post on this > list from last year on this topic: > > [Edu-sig] On Jython for education > Wed Oct 19 15:26:02 CEST 2005 > http://mail.python.org/pipermail/edu-sig/2005-October/005410.html > > I think the Jython-based approach might be easiest, though one then has to > wrestle with other Java community and licensing issues. [I personally > think the Squeak approach would be more stable and maintainable though, > just 2000 lines of core C to port per platform, with widgets built on > that, and a dynamic loading facility for other native code.] A > cross-platform system supporting both Python and Smalltalk (and perhaps > Java) on a JVM with a complete Smalltalk-like development environment > (including cross-image debugging and development) and with 3D plus some > sort of PythonCard/HyperCard framework out of the box, which had the > option of running as a browser plugin, would be really neat. Probably at > least few person months (for me :-) to get that going to the point where > it reached a critical mass and was something people wanted to use or build > on top of though. I've worked on bits and pieces of all these ideas in a > variety of contexts, but never had a chance to put them all together. > > --Paul Fernhout > > Andre Roberge wrote: > > And, if I may quote from Kirby's follow-up post > > http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-two.html > > --- > > [...] > > Loosely coupled tools, with a bottom-up, open source curriculum > > writing process, will leave the question of tools somewhat open-ended. > > The lesson plans will specify the software needed, with multiple paths > > possible. > > --- > > +1. I couldn't agree more :-) > > ============ > > [...] > > Momentum seems to be building for a stronger graphics engine, either > > 2D or 3D, with Python bindings, that'll run interactively from within > > a browser. The Squeak folks may be willing to contribute to this > > effort. Guido feels we'll need to recruit new talent for this, as the > > Python community is currently pretty maxed out on projects. Should > > such an engine be developed, turtle stuff would be incorporated > > therein. > > ======= > > > > I would love to see this happening and would definitely be willing to > > contribute to such an effort. Of course, I would use this to port > > rur-ple to the web (as a first step). Anybody else is as excited > > about this possibility as I am? > > > > Andr? > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From dario at ita.chalmers.se Fri Apr 21 11:15:19 2006 From: dario at ita.chalmers.se (=?ISO-8859-1?Q?Dario_Lopez-K=E4sten?=) Date: Fri, 21 Apr 2006 11:15:19 +0200 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> Message-ID: <4448A2A7.20106@ita.chalmers.se> re. 2D/3D engines with python bindings, there is a the Panda 3D engine with pytohn bindings (www.padna3d.org) that was originally developed by Disney, but later relased as free software. From the website: """Panda3D was developed by Disney for their massively multiplayer online game, Toontown. It was released as free software in 2002. Panda3D is now developed jointly by Disney and Carnegie Mellon University's Entertainment Technology Center. """ Unfortunately, I belive the license (http://www.panda3d.org/license.php) does not qualify as a FSF-defined free license (GPL-compatible or not); for instance it has export restrictions, so it may not be interesting for a project like this, but I thought I'd mention panda3d for completeness sake. Cheers, /dario -- -- ------------------------------------------------------------------- Dario Lopez-K?sten, IT Systems & Services Chalmers University of Tech. Lyrics applied to programming & application design: "emancipate yourself from mental slavery" - redemption song, b. marley From pdfernhout at kurtz-fernhout.com Fri Apr 21 15:04:27 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Fri, 21 Apr 2006 09:04:27 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <444830FB.7080609@colorstudy.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <444830FB.7080609@colorstudy.com> Message-ID: <4448D85B.1010000@kurtz-fernhout.com> Ian Bicking wrote: > Paul D. Fernhout wrote: >> [I >> personally think the Squeak approach would be more stable and >> maintainable though, just 2000 lines of core C to port per platform, >> with widgets built on that, and a dynamic loading facility for other >> native code.] > > I'm not clear what the advantage of this kind of strategy is over > CPython. Sure, 2000 lines of C is easier to port, but CPython is > ported, so that's not a problem. The graphical layer isn't portable, > but pygame is fairly portable and runs on a more optimized layer (SDL) > than what Squeak runs on (AFAIK -- though I haven't payed any attention > to what their graphical infrastructure is like for years). > > I guess I just don't understand the complaints about Python graphics. > Sure, there's work to do, but the core graphics capabilities provide a > solid foundation, in addition to some good higher level things as well > (like VPython). If Squeak has some good higher-level ideas, then those > would be ported, I don't see any way you could leverage the Squeak code > directly. I think the main issue is not graphics; it is more cross-platform development environment. But there are really several issues when you look at Squeak: * crossplatform graphics and other systems (e.g. sound, files, sockets). * crossplatform development tools using those graphics, and these are good tools, including complete source version history, cross referencing function use, object inspection, and so on. * crossplatform object store (saving the system state) * most of the system (including widgets and most of the VM) is written and maintained in the native language of Smalltalk (though in some cases translated to C), and so is cross platform * because the system is so self-contained, it is easier to make it run on bare hardware or as a browser plugin. I've been mostly doing Python the past few years, so my Squeak knowledge may be a little out of date (the last two years have seen some major changes), but basically, there are four parts to the overall Squeak architecture: about 0.1% base platform specific code (C), about 1% VM code (C generated from Smalltalk), about 2% loadable code (any language, maybe some generated from Smalltalk), and about 96.9% the rest of the object system (pure Smalltalk). (The percentages are just my guess of approximate code size to give you a feel for it). Some more details on the parts follow. One part is about 2000 lines of code which mostly support displaying a bitmapped window on the screen, handling mouse and keyboard events, talking to files, the network, and a basic sound system. [Some of these parts might be commented out in various situations, like running headless, e.g. "Embedded Squeak".] This layer could potentially be used by Python as is, although it probably would need to be tweaked a little to have less dependencies to the rest of the Squeak system (i.e. it may expect a certain object record format). But it is true that one could use SDL (or even wxWindows, or OpenGL) to supply many of these services. In theory, one might be able to make use of libraries like the Apache Portable Runtime http://apr.apache.org/ to do some of this too. The Python way would probably be to use these prebuilt systems, and ignore any extra footprint costs or limiting portability to exotic or bare hardware. Squeak as an idea has long included the goal to run on bare hardware, which has been demoed, but I'm assuming most people here would be content with running just on GNU/Linux and then (OS X) Mac and Windows, which any combination of SDL, OpenGL, wxWidgets, and APR cover. Another is a larger amount of C code which is generated by translating a subset of Smalltalk to C -- this is what define the bulk of the bytecode processing VM plus related support routines. Since this is written in a subset of Smalltalk, it is possible to run this VM code within a Smalltalk system (as simulation in a sense) and develop and debug it with a comfy environment. PyPy's RPython is somewhat similar in purpose to Squeaks's "Slang". Then there are dynamically loadable modules which can be written in any languages. Note that some of these module may be handcoded C or C++, but others might be written in Smalltalk and translated to C using Slang for efficiency. There is a Squeak 3D engine that did this approach, starting out merged into the VM and then becomign a module. The more complex sound primitives written in Smalltalk also migrated out of the VM and into modules too. One needs a common cross-platform interface for this. Again, perhaps APR might help? One could try using ideas from the related Squeak codebase. Then there is the rest of the Squeak system (including compiler and development tools) is written in Smalltalk and works on top of the previous three layers, running on the VM. In practice all GUI widgets are defined at this top level in Smalltalk (unless you did something funky with loadable module for calling wxWindows or native widgets such). When a Smalltalk "image" is written out (or read in), what is written (or read) is the structure of objects at this fourth layer, and that layer is written and loadable in a completely cross-platform way, meaning that for all the core development tools and so on, you can move your image from one machine to another and just run it. (Of course, if you depend on a platform specific dynamically loadable modules, like for Surround Sound, that part might not work). I think a Python using a similar architecture would be pretty neat. But, a Python system running on top of SWT or wxWindows (with some of its own widgets) and with access to the Apache Portable Runtime library might get many of the benefits at little cost. It wouldn't get all the benefits -- Squeak can supply a full GUI with development environment and compiler in a little over one megabyte and run on bare hardware with just a little more glue, but it would be a nice start. For me, a big issue is transparency, not "graphics" by itself. I like as much of the system to be accessible from within itself as possible. I get frustrated, say, when I can't drill down into the code of wxWidgets easily (and see it as Python). Squeak has that kind of transparency most of the time. (Not always, because there is a VM, but mostly, and even the VM can be self-hosted and simulated). Still, there are issues with that transparency for beginners (who get confused by seeing too much code at once, or who break parts of the system they should not mess with at first, like make *all* windows hang when opened, which kills the debugger). But even experienced users can suffer too, when they hang the system from usign too many objects or changing core base classes. So I like the promising idea of developing and debugging across images (or VMs) -- that is, you develop using tools in a VM you are not also changing, but they work across a socket to talk to another VM where your application is running. I have one prototype that does that somewhat (for a custom language); I built a socket server into the VM. I realized later it would probably be better to build a client in instead, and have just one redirecting server on the machine, which coordinated client debuggers and client applications; that way you just use one common port, and can debug multi-VM stuff as well. I also have a feeling about complexity and Squeak, which is related to the struggles the Squeak community has had managing rapid changes to core Squeak features. And that is, building on the Squeak vision of the image, it is that one should have one image per application, (which is somewhat more how Python acts in practice) rather than try to bundle several of them together into one image. That way, applications that work would stay working, rather than break every time somebody modifies the base system. Disk space and memory and bandwidth are so cheap now, but human time is so expensive, why not just have lots of little applications and VMs running at the same time. Sure, maybe later one can do like Java 1.5 and have some VM sharing, but at the start, I'd rather see lots of robust independent applets with wildly different versions of every library, but see them all working and relatively bulletproof while other innovations were going on in the community. But that would require easier cross-image communications, perhaps made easier by the system I outlined above for debugging and remote development. This would require of course some rarely changing common communications protocol (or at least, one with versions). Anyway, as Alan Kay says "burn the diskpacks", which in this case I would suggest means, don't just try to ape Squeak in Python, but, building on Python's (and Squeaks's) strengths, and paying attention to the lessons learned from viewing them as experiments, build something better. > As for actually integrating with Smalltalk, I suspect embedding the > Squeak VM in Python is feasible. There are a couple ways to do this: * Have two VMs side by side (but communication is a pain) * Have one unified VM (but one language may suffer or need to change somewhat for ease of doing this). The VMs can be written directly in C (or whatever: C++, Objective C, or OCAML :-). Or they could be written in a subset or derivative of Python (PyPy's RPython) or Smalltalk (see, it's implementation language, Slang http://minnow.cc.gatech.edu/squeak/2267 ). Or one language could be written on top of another (though performance might be a big issue if the object models mismatch). In this case, given Python is more flexible using dictionaries for object (though slower) I would suggests it would make more sense to use a unified VM approach, and put a Smalltalk-like syntax on top of an existing Python VM and Python object model (maybe with a couple tweaks) and just see how far that goes. This would also have the benefit of making it easy to write a "Self" like prototypish Smalltalk on top of Python, using Python's dictionary mechanisms. Squeak's newer GUI (Morphic) is prototype oriented, and is derived from work on Self. I already have a variant of a Smalltalk parser written in Python, and they are not that hard to do (Smalltalk is an easy language to parse). I've said a lot of nice things about Squeak, but I'll add here why I use Python instead. As a Squeak negative, a big issue for me (others will disagree) is the license and licensing history. Anything that Disney touches scares me for example, and I don't think that stuff developed when the Squeak team was at Disney is clearly licensed (I kept raising the Python licensing problems example (CNRI claiming it was never formally licensed), and that was just dealing with a non-profit!). http://www.python.org/download/releases/1.6/license_faq/ The Squeak license even as it is isn't formally "open source" or "free" for several reasons. I could have fixed Squeak's technical issues (and it has several I have not mentioned), but I could never get past the license, so after it seemed no one "in charge" cared much about fixing it they way I wanted it fixed, or alternatively community interest in starting a from scratch reimplementation, I moved on. On Python's plus side, it has better and more libraries than Squeak, has a bigger community, has a C-like syntax the masses find more acceptable (I still prefer Smalltalk's keyword syntax though, along with blocks in control structures, though I like indentation), it has a relatively good licensing history, and it has widespread commercial use (good for consulting). Python misses many of Smalltalk's development tools overall, but those are more easily remedied by a programmer than changing a license set in stone by two big corporations, creating a trap which could spring shut at any moment. As I say, people disagree with my perception of the license. Squeak's still a neat system, and for most people seems free enough. But Python has had more traction and really is free. --Paul Fernhout From kirby.urner at gmail.com Fri Apr 21 15:55:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 06:55:05 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <4448D85B.1010000@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <444830FB.7080609@colorstudy.com> <4448D85B.1010000@kurtz-fernhout.com> Message-ID: Some thoughts: * wx would not be appropriate as a PySqueak substrate, as it's too oriented around our existing mental model of widgets (pulldown, popup, canvas, button), whereas Squeak's more generic concept of graphical object defies most widespread OS conventions. Plus wx is fragile. * IronPython is a likely implementation candidate for any such environment, because it'll have that Pythonic glue language role in .NET/Mono. Any graphics intensive engine we're talking about is likely the target for several languages (development costs would justify such a cosmopolitan approach, plus lift a lot of weight off PSF). Learn it with Python on Mono, then find another language to fall in love with. It's OK, and it's still the same CLR in any case and so in that sense remains familiar. * Squeak itself is already very usable, so in terms of the Shuttleworth trajectory, I refuse to see a bottleneck i.e. refuse to imagine *any* new Frankensteinish Py* is so on the Critical Path that all curriculum writing must cease and desist, while we wait for the Software Gurus to write it. On the contrary, we're not really waiting for Software Gurus period, although we admire their work and credit them for making our project possible (now, already, not "when it's done (whatever 'it' is)"). Kirby From winstonw at stratolab.com Fri Apr 21 15:45:51 2006 From: winstonw at stratolab.com (Winston Wolff) Date: Fri, 21 Apr 2006 09:45:51 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> Message-ID: Has anybody looked at http://processing.org? They have a very small but beautiful and easy to use development system for writing graphics programs. It's what inspired my Python version: http://stratolab.com/ misc/makebot/ They are excellent teaching tools because: - The system is so simple. Just type in a line or two of code and click RUN. - Graphics are accessible with just a few lines like circle ( [100,100], 50 ). And graphics are a great place to start because beginners get such a large bang for their buck. Graphics provide a lot of motivation which is needed because programming is difficult. As others have noted on this list, we programmers have forgotten how hard it is to think like programmers. But for new students, they really have to work hard at it. Getting visual feedback is a great reward for their efforts. - People are already familiar with the GUI conventions of Windows and/or Mac OS X. But when I started using Squeak, I had to re-learn where things are and how to navigate the operating system. Microsoft and Apple have spent a lot of time developing a good GUI, why should we try to redevelop one. It's a waste of time. Let's just focus on the learning part, and not build a whole new GUI just for schools. -Winston On Apr 21, 2006, at 4:29 AM, Guido van Rossum wrote: > There's a lot to read in your post and the links you post -- more than > I have time ofr right now. Let me try to prune some of the ideas. > > I'm not interested in switching to Jython for this purpose; nor am I > interested in directly linking to code that's part of Squeak -- > unless, perhaps, there's some low-level code that is independent of > the rest of the Squeak environment while providing some functionality > we need. I'm also not interested in making Python an entirely > self-contained system such as Squeak is -- much of Python's strengths > come from its capabilities as a glue language, seamlessly integrating > with other software on many different platforms. > > But, after encouragement from Alan Kay, I *am* interested in producing > a Squeak-like environment *on top* of Python. Alan suggested using a > slightly different starting point than Squeak; modern graphics cards > have a wealth of functionality that can be accessed directly. I'm no > graphics expert, but I believe OpenGL and perhaps SVG could be the > right basis to get started. > > The approach that seems to make the most sense to me (but I'm open for > alternatives) is to start out by producing a solid low-level graphics > package like this that can work across platforms (Linux, Windows and > OSX preferably); once that is settled, we could build an application > resembling Squeak's UI. > > There's probably more to it; but typing this email at a busy > conference my thoughts are a bit distracted. > > --Guido > > On 4/21/06, Paul D. Fernhout wrote: >> I've long been interested in making Python development more Squeak >> Smalltalk like. See for example a recent post of mine to the >> Jython user >> mailing list with some code (would be also useful for CPython with >> a few >> changes): >> [jython-users] ReloaderWindow 0.2 (improvements to selective >> reloading) >> http://sourceforge.net/mailarchive/message.php?msg_id=14482359 >> >> On the topic of an integrated 2D/3D crossplatform solution for Python >> (like Squeak has), I'd like to point to my related comments on >> this list >> from six (!) years back: >> >> [Edu-sig] Common Graphical Framework for Python Tutorials? >> Fri, 04 Feb 2000 11:16:39 -0500 >> http://mail.python.org/pipermail/edu-sig/2000-February/000032.html >> >> [Edu-sig] a modest proposal II >> Fri, 04 Feb 2000 18:03:01 -0500 >> http://mail.python.org/pipermail/edu-sig/2000-February/000063.html >> >> [Edu-sig] IDLE/TK limitations for learning environments >> Fri, 04 Feb 2000 18:32:54 -0500 >> http://mail.python.org/pipermail/edu-sig/2000-February/000065.html >> >> [Edu-sig] Not well supported on the Mac? >> Sun, 28 May 2000 15:24:21 -0400 >> http://mail.python.org/pipermail/edu-sig/2000-May/000495.html >> >> Glad to see some interest in such ideas is perking up here. :-) >> >> It's all quite doable with enough effort. Though I'd watch out for >> Squeak >> licensing and some Squeak unfinished complexity management issues. >> I think >> it might be better to just use the Squeak base cross-platform >> ideas or >> base code (or perhaps base a new work on wxWidgets) and build a >> larger >> common framework using Python technology and the Python license >> (and yet >> also of interest to Squeakers, like by adding in support for a >> Smalltalk >> parser). >> >> Alternatively, one could build on top of Jython -- see my post on >> this >> list from last year on this topic: >> >> [Edu-sig] On Jython for education >> Wed Oct 19 15:26:02 CEST 2005 >> http://mail.python.org/pipermail/edu-sig/2005-October/005410.html >> >> I think the Jython-based approach might be easiest, though one >> then has to >> wrestle with other Java community and licensing issues. [I personally >> think the Squeak approach would be more stable and maintainable >> though, >> just 2000 lines of core C to port per platform, with widgets built on >> that, and a dynamic loading facility for other native code.] A >> cross-platform system supporting both Python and Smalltalk (and >> perhaps >> Java) on a JVM with a complete Smalltalk-like development environment >> (including cross-image debugging and development) and with 3D plus >> some >> sort of PythonCard/HyperCard framework out of the box, which had the >> option of running as a browser plugin, would be really neat. >> Probably at >> least few person months (for me :-) to get that going to the point >> where >> it reached a critical mass and was something people wanted to use >> or build >> on top of though. I've worked on bits and pieces of all these >> ideas in a >> variety of contexts, but never had a chance to put them all together. >> >> --Paul Fernhout >> >> Andre Roberge wrote: >>> And, if I may quote from Kirby's follow-up post >>> http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day- >>> two.html >>> --- >>> [...] >>> Loosely coupled tools, with a bottom-up, open source curriculum >>> writing process, will leave the question of tools somewhat open- >>> ended. >>> The lesson plans will specify the software needed, with multiple >>> paths >>> possible. >>> --- >>> +1. I couldn't agree more :-) >>> ============ >>> [...] >>> Momentum seems to be building for a stronger graphics engine, either >>> 2D or 3D, with Python bindings, that'll run interactively from >>> within >>> a browser. The Squeak folks may be willing to contribute to this >>> effort. Guido feels we'll need to recruit new talent for this, as >>> the >>> Python community is currently pretty maxed out on projects. Should >>> such an engine be developed, turtle stuff would be incorporated >>> therein. >>> ======= >>> >>> I would love to see this happening and would definitely be >>> willing to >>> contribute to such an effort. Of course, I would use this to port >>> rur-ple to the web (as a first step). Anybody else is as excited >>> about this possibility as I am? >>> >>> Andr? >> >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig at python.org >> http://mail.python.org/mailman/listinfo/edu-sig >> > > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig ______________________________________________________ winston wolff - (646) 827-2242 - http://www.stratolab.com learning by creating - video game courses for kids in new york From ianb at colorstudy.com Fri Apr 21 17:52:08 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 21 Apr 2006 10:52:08 -0500 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> Message-ID: <4448FFA8.5000506@colorstudy.com> Guido van Rossum wrote: > There's a lot to read in your post and the links you post -- more than > I have time ofr right now. Let me try to prune some of the ideas. > > I'm not interested in switching to Jython for this purpose; nor am I > interested in directly linking to code that's part of Squeak -- > unless, perhaps, there's some low-level code that is independent of > the rest of the Squeak environment while providing some functionality > we need. I'm also not interested in making Python an entirely > self-contained system such as Squeak is -- much of Python's strengths > come from its capabilities as a glue language, seamlessly integrating > with other software on many different platforms. > > But, after encouragement from Alan Kay, I *am* interested in producing > a Squeak-like environment *on top* of Python. Alan suggested using a > slightly different starting point than Squeak; modern graphics cards > have a wealth of functionality that can be accessed directly. I'm no > graphics expert, but I believe OpenGL and perhaps SVG could be the > right basis to get started. This all sounds like pygame. Is there a reason people aren't happy with pygame as infrastructure? It's quite portable, there are already widgets built on top of it (like Squeak, these widgets have no relation to the system UI -- for better and worse). It already has a development community. There's still a lot of hard work to creating a real Squeak-like environment there, but going any lower level than that -- especially for reasons like portability -- just doesn't make any sense. If there was some other environment with other compelling reasons to use it (like maybe better vector support, or better libraries to create systems with text flow and whatnot), but unless someone wants something that *already exists* elsewhere, I can't see a reason to consider radical infrastructure work. There are some basic limitations to pygame, but those limitations don't seem to be the reason people are speculating about other (mostly non-existant) systems. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From guido at python.org Fri Apr 21 18:00:56 2006 From: guido at python.org (Guido van Rossum) Date: Fri, 21 Apr 2006 17:00:56 +0100 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <4448FFA8.5000506@colorstudy.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <4448FFA8.5000506@colorstudy.com> Message-ID: On 4/21/06, Ian Bicking wrote: > This all sounds like pygame. Is there a reason people aren't happy with > pygame as infrastructure? It's quite portable, there are already > widgets built on top of it (like Squeak, these widgets have no relation > to the system UI -- for better and worse). It already has a development > community. Good idea. I never managed to successfully install pygame, so I kind of question the "quite portable" assertion. But maybe it's better now. (Does it run on OSX at all?) > There's still a lot of hard work to creating a real Squeak-like > environment there, but going any lower level than that -- especially for > reasons like portability -- just doesn't make any sense. If there was > some other environment with other compelling reasons to use it (like > maybe better vector support, or better libraries to create systems with > text flow and whatnot), but unless someone wants something that *already > exists* elsewhere, I can't see a reason to consider radical > infrastructure work. > > There are some basic limitations to pygame, but those limitations don't > seem to be the reason people are speculating about other (mostly > non-existant) systems. How is pygame's 3D support? While Squeak's UI has a very flat 2D look, some Squeak apps are effectively 3D virtual worlds. All the pygame apps I've seen demoed (e.g. Armin Rigo's PyPy slides and demos) were entirely 2D. But maybe there's 3D rendering with camera positions, shading, lighting etc. too? (If not, adding it might be a SoC project?) -- --Guido van Rossum (home page: http://www.python.org/~guido/) From ianb at colorstudy.com Fri Apr 21 18:40:29 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 21 Apr 2006 11:40:29 -0500 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <4448FFA8.5000506@colorstudy.com> Message-ID: <44490AFD.8090203@colorstudy.com> I don't actually know a ton about Pygame. I was going to copy someone listed on the website, but the pygame website is currently broken. So off the top of my head I'm copying Richard Jones, and maybe he'll be able to better describe pygame's abilities than I (the discussion kind of starts from here: http://mail.python.org/pipermail/edu-sig/2006-April/006176.html) Guido van Rossum wrote: > On 4/21/06, Ian Bicking wrote: > >>This all sounds like pygame. Is there a reason people aren't happy with >>pygame as infrastructure? It's quite portable, there are already >>widgets built on top of it (like Squeak, these widgets have no relation >>to the system UI -- for better and worse). It already has a development >>community. > > > Good idea. I never managed to successfully install pygame, so I kind > of question the "quite portable" assertion. But maybe it's better now. > (Does it run on OSX at all?) It does, but the installers aren't always up to date with the OS. It's portable if someone ports it. Starting a new project because no one is willing to put the effort into keeping an existing port up to date is also a bad strategy. The underlying layer -- SDL -- is the best graphics portability layer I know of. Not that I know a ton about these things. The only flaw I see in it is that it doesn't interact with native widgets or windows, which doesn't seem like what people want to do. So either you reimplement SDL (which is what Squeak does -- though it predates SDL), or reimplement pygame. >>There's still a lot of hard work to creating a real Squeak-like >>environment there, but going any lower level than that -- especially for >>reasons like portability -- just doesn't make any sense. If there was >>some other environment with other compelling reasons to use it (like >>maybe better vector support, or better libraries to create systems with >>text flow and whatnot), but unless someone wants something that *already >>exists* elsewhere, I can't see a reason to consider radical >>infrastructure work. >> >>There are some basic limitations to pygame, but those limitations don't >>seem to be the reason people are speculating about other (mostly >>non-existant) systems. > > > How is pygame's 3D support? While Squeak's UI has a very flat 2D look, > some Squeak apps are effectively 3D virtual worlds. I don't actually have much pygame experience. SDL has OpenGL support, and I see some evidence that it is exposed to PyGame as well. > All the pygame apps I've seen demoed (e.g. Armin Rigo's PyPy slides > and demos) were entirely 2D. But maybe there's 3D rendering with > camera positions, shading, lighting etc. too? (If not, adding it might > be a SoC project?) If it's just a matter of exposing or improving the underlying OpenGL bindings to Python, then that seems like a feasible project. If that work is already done, then a good project might be working on filling out a widget system (several are reviewed here: http://pitchersduel.iuplog.com/default.asp?item=109658) -- if you can't do decent text editing then that's a problem for a programming environment. Finding a mentor already familiar with Pygame would be essential. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From tjd at sfu.ca Fri Apr 21 19:41:42 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Fri, 21 Apr 2006 10:41:42 -0700 Subject: [Edu-sig] Shuttleworth Summit Message-ID: > Has anybody looked at http://processing.org? They have a very small > but beautiful and easy to use development system for writing graphics > programs. It's what inspired my Python version: http://stratolab.com/ > misc/makebot/ I've looked at it briefly in the past, and it seemed to me to be just a very Java-like language with some built-in graphical helper objects. I assumed it was designed for teaching basic graphical composition concepts to university-level fine arts students, and that its major appeal is the high-quality of the visuals produced by the graphical helper objects. I do agree that Squeak has a tremendous learning curve for someone already familiar with mainstream programming, or who wants to do much beyond the standard demos (as nice as they are). I would love to see eToys in Python. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From delza at livingcode.org Fri Apr 21 20:30:07 2006 From: delza at livingcode.org (Dethe Elza) Date: Fri, 21 Apr 2006 11:30:07 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> Message-ID: <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> On 4/21/06, Guido van Rossum wrote: > There's a lot to read in your post and the links you post -- more than > I have time ofr right now. Let me try to prune some of the ideas. > > I'm not interested in switching to Jython for this purpose; nor am I > interested in directly linking to code that's part of Squeak -- > unless, perhaps, there's some low-level code that is independent of > the rest of the Squeak environment while providing some functionality > we need. I'm also not interested in making Python an entirely > self-contained system such as Squeak is -- much of Python's strengths > come from its capabilities as a glue language, seamlessly integrating > with other software on many different platforms. > > But, after encouragement from Alan Kay, I *am* interested in producing > a Squeak-like environment *on top* of Python. Alan suggested using a > slightly different starting point than Squeak; modern graphics cards > have a wealth of functionality that can be accessed directly. I'm no > graphics expert, but I believe OpenGL and perhaps SVG could be the > right basis to get started. The Mozilla project has some of the best cross-platform widget-level toolboxes, including SVG (and they are looking at OpenGL support). The funny thing about most cross-platform graphics toolkits is that the ignore the platform with the best graphics: OS X. > The approach that seems to make the most sense to me (but I'm open for > alternatives) is to start out by producing a solid low-level graphics > package like this that can work across platforms (Linux, Windows and > OSX preferably); once that is settled, we could build an application > resembling Squeak's UI. That's a huge project to start from scratch. Mozilla-the-toolkit is adding support for Python in the next major version, perhaps Python can leverage that? > There's probably more to it; but typing this email at a busy > conference my thoughts are a bit distracted. > > --Guido More on the Smalltalk-Squeak-OS X interplay: Squeak may be "cross-platform" but it's always been unusably slow on OS X when I've tried it. I'm used to building GUIs with the PyObjC bridge and native Cocoa widgets, which are generally as fast in Python as they are in Objective-C. Also, Objective-C is based directly on Smalltalk, but meshes *really* well with Python, and there is a cross-platform version of much of the Cocoa library: GnuStep. GnuStep isn't all the way there, but it could be a good place to start if the Mozilla libararies aren't chosen. --Dethe From guido at python.org Fri Apr 21 20:38:48 2006 From: guido at python.org (Guido van Rossum) Date: Fri, 21 Apr 2006 19:38:48 +0100 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> Message-ID: On 4/21/06, Dethe Elza wrote: > The Mozilla project has some of the best cross-platform widget-level > toolboxes, including SVG (and they are looking at OpenGL support). > The funny thing about most cross-platform graphics toolkits is that > the ignore the platform with the best graphics: OS X. Isn't Mozilla big as a bus? Also, the goal (in an educational context) is *not* a pre-built widget set but a fast raw graphics environment on tolp of which you can design your own widget set. This is not particularly good application design from a classic POV (since you're not getting native widget functionality) but the importance from an educational POV is that it lets students "open the hood" and see how things are implemented (almost) all the way to the raw bitblt operations. > > The approach that seems to make the most sense to me (but I'm open for > > alternatives) is to start out by producing a solid low-level graphics > > package like this that can work across platforms (Linux, Windows and > > OSX preferably); once that is settled, we could build an application > > resembling Squeak's UI. > > That's a huge project to start from scratch. Mozilla-the-toolkit is > adding support for Python in the next major version, perhaps Python > can leverage that? Not clear how since Mozilla would still be on top. Anyway, I explained above that I don't want a widget toolkit to build on. > More on the Smalltalk-Squeak-OS X interplay: Squeak may be > "cross-platform" but it's always been unusably slow on OS X when I've > tried it. Yes, that's a problem with their cross-platform lowest-common-denominator approach. Perhaps they even used the X11 emulation on OSX... That's why Alan Kay suggested that Python start at a different abstraction level, more in tune with graphics accelerator hardware (not that I have any idea what such hardware is capable of these days, or what type of API it has). > I'm used to building GUIs with the PyObjC bridge and native > Cocoa widgets, which are generally as fast in Python as they are in > Objective-C. Also, Objective-C is based directly on Smalltalk, but > meshes *really* well with Python, and there is a cross-platform > version of much of the Cocoa library: GnuStep. GnuStep isn't all the > way there, but it could be a good place to start if the Mozilla > libararies aren't chosen. Um, the same problem -- it's a widget library. Did you see the posts about pygame? That's a more likely candidate. -- --Guido van Rossum (home page: http://www.python.org/~guido/) From delza at livingcode.org Fri Apr 21 20:46:37 2006 From: delza at livingcode.org (Dethe Elza) Date: Fri, 21 Apr 2006 11:46:37 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <4448FFA8.5000506@colorstudy.com> Message-ID: <24d517dd0604211146t723352e2u249b110a584caa82@mail.gmail.com> On 4/21/06, Guido van Rossum wrote: > On 4/21/06, Ian Bicking wrote: > > This all sounds like pygame. Is there a reason people aren't happy with > > pygame as infrastructure? It's quite portable, there are already > > widgets built on top of it (like Squeak, these widgets have no relation > > to the system UI -- for better and worse). It already has a development > > community. > > Good idea. I never managed to successfully install pygame, so I kind > of question the "quite portable" assertion. But maybe it's better now. > (Does it run on OSX at all?) Yes, it runs on OS X and Bob Ippolito periodically updates the port so it keeps reasonably up-to-date (and PyGame isn't changing all that fast these days, most of the activity is on Python-only add-ons which "just work"). > > There's still a lot of hard work to creating a real Squeak-like > > environment there, but going any lower level than that -- especially for > > reasons like portability -- just doesn't make any sense. If there was > > some other environment with other compelling reasons to use it (like > > maybe better vector support, or better libraries to create systems with > > text flow and whatnot), but unless someone wants something that *already > > exists* elsewhere, I can't see a reason to consider radical > > infrastructure work. > > > > There are some basic limitations to pygame, but those limitations don't > > seem to be the reason people are speculating about other (mostly > > non-existant) systems. > > How is pygame's 3D support? While Squeak's UI has a very flat 2D look, > some Squeak apps are effectively 3D virtual worlds. PyGame is a very low-level infrastructure for moving around bitmapped graphics and primitive event capture. It also supports a mode for equally low-level OpenGL. So it does support 3D, but nothing like Squeak, which I believe supports a full scene graph with high-level objects. Widget tools created with PyGame share with Squeak the fact they they don't look or behave like native widgets, and tend to be uglier than the native widgets on any modern system. They can be OK for a game, which typically use custom widgets anyhow, but are grating for use in applications--worse than Java. The Mozilla folks used to have similar problems, but have spent years now working on their toolkit to get native look and feel to their widgets, with good (and still improving) results (better than wx, better than Swing, light years better than Tk or OpenOffice). > All the pygame apps I've seen demoed (e.g. Armin Rigo's PyPy slides > and demos) were entirely 2D. But maybe there's 3D rendering with > camera positions, shading, lighting etc. too? (If not, adding it might > be a SoC project?) > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > --Dethe From delza at livingcode.org Fri Apr 21 21:19:25 2006 From: delza at livingcode.org (Dethe Elza) Date: Fri, 21 Apr 2006 12:19:25 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> Message-ID: <24d517dd0604211219s4aa84ad4u40463cb40b3bac1e@mail.gmail.com> On 4/21/06, Guido van Rossum wrote: > On 4/21/06, Dethe Elza wrote: > > The Mozilla project has some of the best cross-platform widget-level > > toolboxes, including SVG (and they are looking at OpenGL support). > > The funny thing about most cross-platform graphics toolkits is that > > the ignore the platform with the best graphics: OS X. > > Isn't Mozilla big as a bus? XulRunner[1] (the toolkit version of Mozilla) download is 6.9MB (Windows), 8.8MB (OS X), 7.9MB (Linux) . I don't know how big Tk alone is, but ActiveTCL is 18-22MB. wxWidgets doesn't list file sizes, but the zip version for Windows is 19.3MB (had to download it to find out) without including the Python bindings. On the other hand, PyGame is 0.8-1.2MB, but for that you get a hardware abstraction layer and not much else. Also, as Ian hinted earlier, doing vector work on PyGame looks terrible, it's really optimized for moving bitmaps around really fast. http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk/ > Also, the goal (in an educational context) is *not* a pre-built widget > set but a fast raw graphics environment on tolp of which you can > design your own widget set. This is not particularly good application > design from a classic POV (since you're not getting native widget > functionality) but the importance from an educational POV is that it > lets students "open the hood" and see how things are implemented > (almost) all the way to the raw bitblt operations. OK. Sounds like a much bigger project than Python 3000 or PyPy. > > > The approach that seems to make the most sense to me (but I'm open for > > > alternatives) is to start out by producing a solid low-level graphics > > > package like this that can work across platforms (Linux, Windows and > > > OSX preferably); once that is settled, we could build an application > > > resembling Squeak's UI. > > > > That's a huge project to start from scratch. Mozilla-the-toolkit is > > adding support for Python in the next major version, perhaps Python > > can leverage that? > > Not clear how since Mozilla would still be on top. Anyway, I explained > above that I don't want a widget toolkit to build on. Not sure what you mean about Mozilla still being on top, but it's clear you don't want to go that route. > > More on the Smalltalk-Squeak-OS X interplay: Squeak may be > > "cross-platform" but it's always been unusably slow on OS X when I've > > tried it. > > Yes, that's a problem with their cross-platform > lowest-common-denominator approach. Perhaps they even used the X11 > emulation on OSX... No, but that's what OpenOffice and VPython did. I can ignore OpenOffice, but I miss VPython. > That's why Alan Kay suggested that Python start at a different > abstraction level, more in tune with graphics accelerator hardware > (not that I have any idea what such hardware is capable of these days, > or what type of API it has). OS X, some versions of X (and probably Vista, if it ever ships) are built on top of OpenGL, using the hardware accelerator as a low-level window manager. That's part of why you lose so much by implementing widgets non-natively, there is a *lot* going on in the native toolkit, with integration between the input, the hardware accelerator, the operating sytem, services, etc. Recent 2D toolkits have been built on top of OpenGL, but graphics chipmakers are also beginning to build 2D acceleration into their chips, first for cellphones (which adopted SVG much more widely than desktops did), but soon for desktops/laptops as well. The API is OpenGL (for 3D), not sure about the 2D stuff, probably display PDF like what Apple uses, possibly with native support for SVG. > > I'm used to building GUIs with the PyObjC bridge and native > > Cocoa widgets, which are generally as fast in Python as they are in > > Objective-C. Also, Objective-C is based directly on Smalltalk, but > > meshes *really* well with Python, and there is a cross-platform > > version of much of the Cocoa library: GnuStep. GnuStep isn't all the > > way there, but it could be a good place to start if the Mozilla > > libararies aren't chosen. > > Um, the same problem -- it's a widget library. Did you see the posts > about pygame? That's a more likely candidate. Yes, but I've used PyGame, which is why I have trouble taking that idea seriously. I guess if you want it to be Python from the metal on up you'll have to go down that rabbit-hole, or one much like it, but that's going to be a tremendous amount of work to recreate stuff that already exists in better forms. --Dethe > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) > From jpsandys at yahoo.com Fri Apr 21 21:40:51 2006 From: jpsandys at yahoo.com (Jeff Sandys) Date: Fri, 21 Apr 2006 12:40:51 -0700 (PDT) Subject: [Edu-sig] Visual Programming in Python? Message-ID: <20060421194051.37369.qmail@web51414.mail.yahoo.com> ... Ian Bicking wrote: > As to the merits of Logo as a language and Python as a language, > I'm not sure. Logo is grammatically simpler. Generally it is > more insulated from the underlying implementation. It isn't > burdened with ideas like "good software engineering". I will respectively disagree with your comments, but arguements about these points would be counterproductive. >Jeff Sandys wrote: >> What I would like to see in a turtle environment comes from >> StarLogo ( http://education.mit.edu/starlogo/ ). StarLogo has >> multiple turtles, the turtles can inherit methods to make new >> turtle classes, and the background also has methods for its cells, >> implementing Conway's Life only takes several lines. ... >> >> I think that creating a StarPython, with Python syntax, would be >> ... valuable ... > > That's hard, or maybe easy. > > With CPython, something like StarPython is hard. The kind of > concurrency it does isn't practical with OS threads. Maybe with > Greenlets, though I must admit I don't understand them. > ... Why? StarLogo is written in Java, I do not believe that it is threaded. Threads would be nice but I don't think they are necessary to create StarLogo functionality in Python. >> Python would be easier to teach if it had clearer error messages. >> ... > > Error messages are indeed hard. It's easier when you have a > clear idea of system and user code. In a typical Logo > implementation where the library is implemented in a language > other than Logo, it's easy to tell what is inside and outside -- > everything in Logo belongs to the programmer, everything not in > Logo belongs to the system. In Python it is not so easy, > especially because errors often bubble up from deep in system > code, and you actually have to inspect the system code to > understand what it means in the context of your code. As an > example, > > shutil(None, 'tmp'): > > Traceback (most recent call last): > File "", line 1, in ? > File "/usr/lib/python2.4/shutil.py", line 81, in copy > copyfile(src, dst) > File "/usr/lib/python2.4/shutil.py", line 41, in copyfile > if _samefile(src, dst): > File "/usr/lib/python2.4/shutil.py", line 31, in _samefile > return os.path.samefile(src, dst) > File "/usr/lib/python2.4/posixpath.py", line 218, in samefile > s1 = os.stat(f1) > TypeError: coercing to Unicode: need string or buffer, NoneType found > > Sigh. It's not like hiding that traceback can make that error > more understandable. I really don't know how to resolve that. > > Though it definitely is possible to trim exceptions down. For > instance, not to show code that is part of the standard library > (or at least filter that out unless explicitly expanded). That > won't make the exception make sense (coerce to Unicode?! talk > about obscure), but at least it will better highlight the > problem code. How would you attack this problem to get a Logo like error message, "shutil didn't like None as an input"? I would be interested in contributing to an errors for beginners project. Thanks -- Jeff Sandys __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From ianb at colorstudy.com Fri Apr 21 22:18:06 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 21 Apr 2006 15:18:06 -0500 Subject: [Edu-sig] Visual Programming in Python? In-Reply-To: <20060421194051.37369.qmail@web51414.mail.yahoo.com> References: <20060421194051.37369.qmail@web51414.mail.yahoo.com> Message-ID: <44493DFE.3060900@colorstudy.com> Jeff Sandys wrote: > Ian Bicking wrote: > >>As to the merits of Logo as a language and Python as a language, >>I'm not sure. Logo is grammatically simpler. Generally it is >>more insulated from the underlying implementation. It isn't >>burdened with ideas like "good software engineering". > > > I will respectively disagree with your comments, but arguements > about these points would be counterproductive. How so? I don't have a chip on my shoulder about Logo or anything, so I'm not particularly set in my opinion. (But you'd have to try hard to convince me that children should have to type turtle.set_pen_color((r,g,b))). >>Jeff Sandys wrote: >> >>>What I would like to see in a turtle environment comes from >>>StarLogo ( http://education.mit.edu/starlogo/ ). StarLogo has >>>multiple turtles, the turtles can inherit methods to make new >>>turtle classes, and the background also has methods for its cells, >>>implementing Conway's Life only takes several lines. ... >>> >>>I think that creating a StarPython, with Python syntax, would be >>>... valuable ... >> >>That's hard, or maybe easy. >> >>With CPython, something like StarPython is hard. The kind of >>concurrency it does isn't practical with OS threads. Maybe with >>Greenlets, though I must admit I don't understand them. >>... > > > Why? StarLogo is written in Java, I do not believe that it is > threaded. Threads would be nice but I don't think they are > necessary to create StarLogo functionality in Python. I think StarLogo is interpreted. At least, I assume so, and seem to remember something about that. Meaning that it is a language built on the JVM, not interacting with the JVM. Given that, they have tremendous freedom in how they deal with concurrency. You could build a similarly concurrent language on top of Python, but that language would not be Python anymore than StarLogo is Java. You could introduce that kind of concurrency into Python, but to do so you need to explore things like Greenlets or Stackless Python. Which isn't so bad! Those projects exist and are intended to serve just this kind of purpose. Or you could reimplement Python, but I think that's a little silly. Neither Jython nor IronPython are compatible with the concurrency concepts of StarPython, and that probably won't change soon because they want to interact smoothly with their environments. PyPy is actively pursuing those kinds of ideas for concurrency, and would not be an unreasonable basis, but it's more reasonable to start with a more conservative implementation (both Greenlets and Stackless were written by PyPy developers). >>>Python would be easier to teach if it had clearer error messages. >>>... >> >>Error messages are indeed hard. It's easier when you have a >>clear idea of system and user code. In a typical Logo >>implementation where the library is implemented in a language >>other than Logo, it's easy to tell what is inside and outside -- >>everything in Logo belongs to the programmer, everything not in >>Logo belongs to the system. In Python it is not so easy, >>especially because errors often bubble up from deep in system >>code, and you actually have to inspect the system code to >>understand what it means in the context of your code. As an >>example, >> >>shutil(None, 'tmp'): >> >>Traceback (most recent call last): >> File "", line 1, in ? >> File "/usr/lib/python2.4/shutil.py", line 81, in copy >> copyfile(src, dst) >> File "/usr/lib/python2.4/shutil.py", line 41, in copyfile >> if _samefile(src, dst): >> File "/usr/lib/python2.4/shutil.py", line 31, in _samefile >> return os.path.samefile(src, dst) >> File "/usr/lib/python2.4/posixpath.py", line 218, in samefile >> s1 = os.stat(f1) >>TypeError: coercing to Unicode: need string or buffer, NoneType found >> >>Sigh. It's not like hiding that traceback can make that error >>more understandable. I really don't know how to resolve that. >> >>Though it definitely is possible to trim exceptions down. For >>instance, not to show code that is part of the standard library >>(or at least filter that out unless explicitly expanded). That >>won't make the exception make sense (coerce to Unicode?! talk >>about obscure), but at least it will better highlight the >>problem code. > > > How would you attack this problem to get a Logo like error message, > "shutil didn't like None as an input"? I would be interested in > contributing to an errors for beginners project. I really don't know. It's a very hard problem. Again, the system/user divide makes this an easier problem to tackle in other languages (*not* including Smalltalk). Especially a dynamic language buit on a static language (like PHP, but due to Python's rich Python-based standard library even CPython doesn't count here). With an underlying static language (often including a clear idea of "primitives") all the type checking and general error checking occur very close to where the user code exists. In Python the error checking might occur far away -- like in this case, where there's three shutil frames and a posixpath frame before you get to a real primitive (os.stat). In this particular case the "coercing..." message is not very good. It could be "string or unicode object required, not %r" % obj. That would help considerably. I've never looked into why these errors look like they do, so I don't know if there's a reason for the current form. I think some careful consideration of tracebacks could take you some distance here. For instance, highlight the TypeError, which is accurate even if the message is rather distracting. Hide the frames from the standard library. Highlight the line of user code that produced the problem (and any other bits of user code that might have called it). Make sure you get rid of system code that precedes the user code, not just system code below the user code. (For instance, in a web framework there will always be system code that does dispatching about the user code; in GUI code there will probably be system code that calls the user code callbacks in response to events) If it was possible to highlight the exact expression that caused the problem, that would be nice. I don't think this is currently possible in Python, or at least not easy. That means if you did: x = None y = 10 print "You are %s inches away" % (math.sqrt(x**2+y**2)) It would highlight or point to "x**2". On another tack, I personally have found it very helpful to be able to explore local scopes when encountering exceptions, especially for type errors like this. What I'm using personally in my web framework (Paste) gives a traceback (that is somewhat trimmed, but not as aggressively as I suggest here), and you can interact with each frame. So you could look at the actual values of the expressions passed into shutil.copyfile, or look at x in that previous example. This is like pdb, but pdb does a whole lot more than this -- just this one feature gives me 90% of what I want to do, and in a more usable form than pdb IMHO (I haven't had a chance to try debuggers like winpdb, which might be more usable than pdb). This debugging interaction is something Squeak/Smalltalk also offers and emphasizes as a primary means of debugging. I've never tried the etoys stuff, so I don't know how debugging works there. Anyway, all the mechanisms are there in Python, we just aren't using them as actively as we should. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From ianb at colorstudy.com Fri Apr 21 22:54:21 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 21 Apr 2006 15:54:21 -0500 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> Message-ID: <4449467D.3020504@colorstudy.com> Dethe Elza wrote: > That's a huge project to start from scratch. Mozilla-the-toolkit is > adding support for Python in the next major version, perhaps Python > can leverage that? While I've advocated pygame over reimplementing bitblt from scratch (ala Squeak), I personally agree that Mozilla would be a better foundation than either. But then I'm a web developer, so that's not too surprising. All programming is done at some level of abstraction beneath which we don't go. Different programmers have different levels. I happily stick to the Python level and ignore most of what goes on in the interpreter. I assume we are expecting that the GC is transparent. And really even bitblt is too low level anymore -- reasonable graphics (including pygame) are done at a higher level where underlying optimizations are easier to apply. So just because there is a lower level doesn't mean that it's helpful to expose that lower level. Mozilla raises that level way, way up. There's practically no pixels at all. Things like buttons are opaque primitives. Text and fonts are basic primitives. It's just this sort of thing that makes me like web development more than GUI development. What's the more pedagogical level of abstraction? Honestly I think Mozilla is. Admittedly it is a very eclectic paradigm. At one point it's interested mostly in pixels (as with a raster image), and another moment it practically bristles if you mention pixels (with layout and flow). Some parts are large and full of meaning (like a button) or small and abstract and meaningless (like in CSS). But it still represents a level of abstraction that is relevant for the future. Just like memory management hasn't been generally relevant for years, and pointers are quickly on their way out too, I think pixel management is already mostly a niche area that should only be of concern among those people who build the underlying infrastructure. The fact that you can understand computers from the top down instead of the bottom up is what makes them appropriate to give to children. Not just children, but children in the developing world, who share little of the background of the people who have created those computer systems. They have an opportunity to explore with higher abstractions and lower abstractions, and even without any exploration they have something useful that encourages them to build familiarity. So I don't think moving the floor around is so dramatic of an operation, because that's not where children start anyway. If we give children an environment in which things like XUL form the foundation of the system that's fine. It's mathematicians that love to reduce things into their most primitive states -- pixels and lambda calculous and minimal interfaces. But to the person who doesn't fully understand a large and useful system, *all* systems will seem eclectic. But even more interesting, someone could whip together a usable system in Mozilla in 1/10 the time of a pygame system, with a more attractive and powerful interface. And browser plugins? Who needs plugins when you your environment *is* the browser? Anyway, plugins are just silly -- embedding a full application in a boxed out part of a browser window doesn't buy you anything. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From kirby.urner at gmail.com Fri Apr 21 23:29:34 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 14:29:34 -0700 Subject: [Edu-sig] Math through programming: sample challenge Message-ID: In math world we have these things called "almost integers" which are weird expressions with transcendentals, usually, that evaluate to within a very tiny percent of wholesome whole numberhood. Probably the most famous example, owing to Ramanujan, is math.e ** (math.pi * math.sqrt(163)), which works out to an "almost integer" of 262537412640768744. http://www.research.att.com/%7Enjas/sequences/A060295 Challenge: Write a generator of Python expressions (up to you if you use an actual generator) with a filter to keep only those that evaluate to within epsilon of an integer. Proposed look (just an idea): >>> almosts = GenExps(1e-4) >>> almosts.next() ('e** (pi * sqrt(58))', 24591257751.999931) Further Reading: http://mathworld.wolfram.com/AlmostInteger.html Kirby Author's note: I haven't tested this for feasibility yet. I've got a new Pythonic Mathematics class starting tomorrow c/o Saturday Academy, so might run it by my students, some of whom already know Python pretty well. It's a good exercise in building valid expressions that evaluate to floats, coupled with some objective (to get "almost integers"). From kirby.urner at gmail.com Fri Apr 21 23:36:02 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 14:36:02 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <4449467D.3020504@colorstudy.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> <4449467D.3020504@colorstudy.com> Message-ID: I ran my slides for the London Knowledge Lab from within Pygame, which allowed me to feature scrolling, bouncing, slides-within-slides, and audio/video clip playing (plus there's a swooshing noise when I go from slide to slide). That's all very fun, but it's not anything like the Squeak experience (wasn't supposed to be). I did it to avoid using PowerPoint on Windows @ OSCON, a fate worse than death. Since then, I've had a few gigs where the same source code proved useful. I'd more like a stable of laptops though, so I could bring the right distro of the right OS to the right meeting, at least more often than not. Kirby From pdfernhout at kurtz-fernhout.com Fri Apr 21 23:48:17 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Fri, 21 Apr 2006 17:48:17 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> Message-ID: <44495321.1010202@kurtz-fernhout.com> Guido van Rossum wrote: > I'm not interested in switching to Jython for this purpose; It might distract from this discussion, but I'd certainly be curious why. Jython 2.1 is a fantastic system, even for something a few years old -- it just works. It could easily call 3D graphics APIs from Java, and could easily make something that could be an applet which ran in most browsers. I'm not pushing hard on this, and I don't want to force you into any off-the-cuff public opinions people might weigh too heavily coming from you, but Jython is indeed a really cool technology which makes the best of a bad situation (that so much effort has gone into an unneeded and poorly thought out (i.e. no closures) new language like Java). If one used Jython with only GNU Classpath and free JVMs, one is even staying on a very free software path avoiding the "Java Trap". http://www.gnu.org/philosophy/java-trap.html Granted, in support of your comment, as I write this, Eclipse with PyDev and the JVM running it crash on me literally five times a day or so as I write Jython code, and I just live with that. It started recently after a recent major system upgrade on my Debian system of several things, and I'm not sure where the problem is (Eclipse code, PyDev, JVM, supporting C libs, supporting Java libs, etc.). So much of the entire system is opaque to the causal user. As I don't have time right now to learn all the things I would need to know to try to diagnose it or fix that, assuming it even was fixable, I don't even start trying and just live with it for now (with a deadline looming, I really don't have the time right now to right this email though, either, of course. :-). In a more self-contained Smalltalk-like environment, short of a VM problem it would be much easier to consider remedying the situation. It's not that I couldn't in theory fix this problem or even fairly easily get more out of Eclipse by bothering to look at its error reporting squirreled away in a directory somewhere -- it's just that the tooling up and debugging overhead, which might take many days, especially given who knows what will be next problem with a new upgrade, just isn't worth it. So I just hope for a fix with the next upgrade. That is a more and more common problem open source developers face -- dealing with the complexity of complex interwoven systems of applications, each in its own language with its own development tools and learning curve, which may interact in subtle ways leading to seemingly random crashes. And it is a crushing problem for beginners. One reason I am all for standalone applications (see my other post). Anyway, that's all a good reason for avoiding Java and its immense set of dependencies (and so Jython), so I can see one justification for such a decision, but Java/Jython still has a lot of pros to weight against the cons, including estimates of where it would be in a few years (e.g. if GNU Classpath progresses, if Sun open sources it, if commercial interest in Jython picks up as more and more people realize what a bad language Java is for most purposes, and so on). I fought Java for years one way or another, but now almost a decade later, they finally got most of the bugs out, there is some open versions, and it is a reasonable platform for some things. > nor am I > interested in directly linking to code that's part of Squeak -- > unless, perhaps, there's some low-level code that is independent of > the rest of the Squeak environment while providing some functionality > we need. You'd also need to watch out for Squeak license issues. I personally would not use any of the Squeak code in another project without contacting the original authors and getting a more standard open source license for it. Most of the lower level code for running on multiple platforms is the work of a few individuals, so this is feasible. But I think it is pretty clear form discussion here that SDL, OpenGL, or another crossplatform tool lime wxWidgets is probably a better match for Python philosophy than using Squeak code. I mentioned wxWidgets also, since one could use wxWidgets and an empty window for a base and write your own widgets by just relying on a simple canvas and drawing all your own stuff, and the result would run anywhere wxWidgets runs. You don't have to use their widgets. Same with using Swing as a base with Jython; you can just use the base canvas. A more Python approach might be to improve AnyGUI, or alternatively, to just write on a common graphics layer which ran on any of Swing, SDL, OpenGL, wxWindows, GTK, or other widget sets. It would not have to be a complex layer -- mostly bitblitting. The complexities can get written above that (like Squeak does). > I'm also not interested in making Python an entirely > self-contained system such as Squeak is -- much of Python's strengths > come from its capabilities as a glue language, seamlessly integrating > with other software on many different platforms. Python will never lose those strength; the community would not allow it. But, one could think of making a somewhat more self contained development system that was more Squeak-like, sort of as a successor to Idle, but with a different focus than just plain coding. Something which was crossplatform and just good enough for most uses, especially if it implemented the remote development / debugging notions I mentioned in another post to this thread. A big win for Smalltalk has always been that you can modify applications while they are running. This isn't just for development; this is one reason some huge commercial applications use Smalltalk to be able to debug and then put in hot fixes in a running application. Python module reloading has never been the same as that (one reason I worked on improving reloading, though the approach I use still has limits and bugs). Beginners really benefit from continual rapid feedback and modifying a program while it runs is a good way to get that. In Smalltalk, a natural way to write your code is in the debugger often times -- just write a stub function with a "self halt" and when it fails, fill it out, and then add more whenever the system says something is not implemented fully. > But, after encouragement from Alan Kay, I *am* interested in producing > a Squeak-like environment *on top* of Python. Alan suggested using a > slightly different starting point than Squeak; modern graphics cards > have a wealth of functionality that can be accessed directly. I'm no > graphics expert, but I believe OpenGL and perhaps SVG could be the > right basis to get started. > > The approach that seems to make the most sense to me (but I'm open for > alternatives) is to start out by producing a solid low-level graphics > package like this that can work across platforms (Linux, Windows and > OSX preferably); once that is settled, we could build an application > resembling Squeak's UI. I'm not up to date on the latest, using mostly Python/Jython now, but even from what I know, there are a few levels (and versions) to Squeak's UI. There are a few different widget tool kits in the system (e.g. MVC, Morphic, Balloon 3D or its successor, in Croquet). Then there are several major applications or development kits built on top of them (eToys, the rest of Croquet, browsers and inspectors, others). So there are a lot of pieces to consider, and parts of them might be worth rejecting (i.e. the specific look of the halo, which I don't like), and parts worth using (some 3D environment notions). Also, both Alice, a 3D environment in Python, http://www.cs.cmu.edu/~stage3/publications/95/journals/IEEEcomputer/CGandA/paper.html and LearningWorks (a 3D environment in VIsualWorks Smalltalk, now defunct?) predate Croquet and have concepts one might learn from or adapt. Personally I think a PythonCard/HyperCard like design tool is an important thing for beginners to have. I guess a big part is what your goals are. And on this list, if we are talking computer programming for everyone, I would think making the whole experience as painless as possible for novices, while still engaging for advanced users, would be a good goal. Graphics can help with that, but there are many other factors, all of which should come together to make a great experience (and that includes base tools like browsers, inspectors, debuggers, and so on). I think that is one reason plain old Python on the command line doing command line text (and file) processing is still so engaging -- it just works, it provides immediate feedback, and it has a lot of long term growth potential for expert use. Anyway it's a big issue to consider what parts of the Squeak vision are most compelling in a Python context. I know Alan Kay gives great demos, but I've seen what happens afterwards when people download Squeak and fall flat on their face with it (over and over). I'm not saying Squeak can't do what Alan shows; those are real live demos. Just that it is both rough around the edges and I think in need of some other user interface and complex management efforts. As I said in another post, Alan Kay says "burn the diskpacks" (since innovation often happens when people start over), which in this case I would suggest means, don't just try to ape Squeak in Python, but, building on Python's (and Squeaks's) strengths, and paying attention to the lessons learned from viewing them as experiments, build something better. So, part of that means figuring out what the goals worth keeping, and what are worth rejecting (and you're doing that with thinking about graphics support for modern cards, but it is just one issue). > There's probably more to it; but typing this email at a busy > conference my thoughts are a bit distracted. One thing I might add in the context of education, is that kids seem to learn most by constructing things and being engaged intrinsically in what they are doing. It seems to me that some of Mark Shuttleworth's philanthropic efforts into education, like his effort to make an open source school administration package, while very well intentioned, are somewhat "old school" -- to try to make a joke of a serious topic effecting hundreds of millions of children's lives (often in a negative way). http://www.johntaylorgatto.com/underground/toc1.htm Specifically, new schooling IMHO is really "unschooling" http://www.unschooling.com/ in the sense of helping kids be engages in and learn from the community around them. I don't think "schooling" can be fixed; though "free schools" certainly are a step in a good direction. http://www.albanyfreeschool.com/overview.shtml Educational efforts that are "Edutainment" or even ones that are simply closed web browser applets letting kids play with one things may be nicer than dusty chalkboards, but they are at best a small improvement. Perhaps that is why people find our garden simulator boring, but they love to design their own plants using our PlantStudio software. What Alan Kay or Seymour Papert or John Taylor Gatto or John Holt or Grace Llewellyn might suggest is that true education happens when adults use their life skills to make opportunities available to children to learn -- and then stand out of the way (until occasionally asked in). It's a fundamentally different philosophy than that taught to "teachers" when they go to teacher training schools. So, based on that, I think any software development environment that confines itself to a browser applet (to meet school needs) is going to short change kids. Yes, it may help in the case of a relative of mine, whose school district forced all teachers to sign a document saying they would be fired if they installed any software on their machines (but presumably Java applets are OK)? But for the larger picture, investing in things that makes school administrator's lives easier isn't IMHO the best investment of free dollars. Schooling is not the same thing as "education". Or in other words, think of public and private schools as being like Microsoft, and unschooling (or to a lesser extent homeschooling) as being like the open source / free software world. Yes, it may make some sense to make life in schools or life using Microsoft windows a little less miserable for those trapped in them (as students or teachers), but that really does not address the root of the problem of both schools and Microsoft as being mainly authoritarian systems that are the antitheses of freedom and growth. I'd say, target the unschooler (or homeschooler) with the software to be written, and then stand out of the way. :-) If that means Shuttleworth is less interested, then so be it; but you might gain thousands of other developers from the unschooled ranks. --Paul Fernhout From kirby.urner at gmail.com Sat Apr 22 00:02:57 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 15:02:57 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <44495321.1010202@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> Message-ID: > If that means Shuttleworth is less interested, then so be it; but > you might gain thousands of other developers from the unschooled ranks. > > --Paul Fernhout I don't get the impression you've really read up on the Shuttleworth Project, which just had its first London summit, resulting in detailed meeting notes, on-line in the Wiki, plus the various blog entries and so on. If you want to speak specifically to the Shuttleworth initiative, I suggest you follow more links and at least get on the same page? Kirby From guido at python.org Sat Apr 22 00:41:22 2006 From: guido at python.org (Guido van Rossum) Date: Fri, 21 Apr 2006 23:41:22 +0100 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> Message-ID: There's been considerable feedback here. I don't have the time to read it all! I'll try to catch up later. If you really want me to comment on something sooner, send a short self-contained message to this thread -- I can effectively do one-off responses much better than longer stuff. -- --Guido van Rossum (home page: http://www.python.org/~guido/) From ianb at colorstudy.com Sat Apr 22 00:47:02 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 21 Apr 2006 17:47:02 -0500 Subject: [Edu-sig] Squeak or HyperCard Message-ID: <444960E6.2010809@colorstudy.com> So, after looking over the Shuttleworth Summit notes, in addition to notes about plugins and graphics and whatnot, there was also notes about HyperCard, but maybe not much discussion. At least the impression from the notes was that Alan Kay thought graphics were essential, but also thought HyperCard was important. I never used HyperCard (only HyperStudio, which I get the impression is not nearly as neat), and I suspect there are subtle features of it that are not apparent to me. But from a technical point of view, I'm also betting it's *much* easier to implement the HyperCard environment than the Squeak environment. Could it be just as valuable a starting point? My cynical self thinks the discussion is about graphics and pixels because with HyperCard all the hard and highly squishing problems are in your face. There's no big technical hurdles, just the questions about how kids interact the computer, what curriculum will be available, etc. All the same problems exist in the Squeak direction, but the technical hurdles are bigger so we can chatter about how we put pixels to the screen and defer all the truly difficult problems. And then there's the question: why exactly is HyperCard worthy of reimplementation, and what are the essential features? -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From francois.schnell at gmail.com Sat Apr 22 01:06:41 2006 From: francois.schnell at gmail.com (francois schnell) Date: Sat, 22 Apr 2006 01:06:41 +0200 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> <4449467D.3020504@colorstudy.com> Message-ID: <13a83ca10604211606j822d426q204e2ebbe39a5ce7@mail.gmail.com> While reading the thread I realised that maybe some of you don't have a clear idea of what a Squeak E-Toy is (obviously there is the official http://www.squeakland.org/ for that) But if you only have five minutes, and want to see an example "was live", I did a "draft screencast" 2 years ago (when I discovered Squeak/E-Toys). It shows in 5 minutes how to create 2 D objects and visually make a little script to teach an animal "bug" to find his way out of a maze. The screencast is not a slick "production" (it was a quick test, bad english, 2 years ago, not very fluid, etc) but It should give you a quick idea if you're not familiar with E-Toys : http://francois.schnell.free.fr/bazar/squeak/Etoys_lab_demo_GB/EToys_lab-demo_GB.htm Since I didn't show it on the screencast I also wanted to mention that on the head of each script there is a little square (right of (!)(O)). When you click on it you switch from the visual tile presentation of the script to its plain code (here smalltalk under the hood), code that you can also change if you want (it also allows you to do more complex things than just with "tiles"). This little square was helpful for me to learn some smalltalk without actually knowing first any syntax. I also think this kind of behaviour (visual-tiles/objects/UI and possibility to see what's under) is valuable for kids when they grow older to program a 'normal' Python script in a 'normal' environment (helpful for the transition for the age 11-14 to 15-18 in the possible curriculum I believe). francois On 21/04/06, kirby urner wrote: > > I ran my slides for the London Knowledge Lab from within Pygame, which > allowed me to feature scrolling, bouncing, slides-within-slides, and > audio/video clip playing (plus there's a swooshing noise when I go > from slide to slide). > > That's all very fun, but it's not anything like the Squeak experience > (wasn't supposed to be). > > I did it to avoid using PowerPoint on Windows @ OSCON, a fate worse > than death. Since then, I've had a few gigs where the same source > code proved useful. > > I'd more like a stable of laptops though, so I could bring the right > distro of the right OS to the right meeting, at least more often than > not. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060422/c074a348/attachment.html From kirby.urner at gmail.com Sat Apr 22 01:17:26 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 16:17:26 -0700 Subject: [Edu-sig] Life Clock Message-ID: We're going to want an easy way to phase in time as the key variable, which can simply mean a runtime mainloop, ala the usual event polling, and have objects do an update in situ, meaning they get nudged forward, one by one: import jungle ecosystem = jungle.creation() # initialize animals for i in range(10): ecosystem.add_animal() def mainloop: while True: for animal in ecosystem: animal.update() There's no need to get into threads here. Develop threads later if there's a greater need for them. Then each animal's update method might advance its life clock by 1: def update(self): self.myticks += 1 self._internal() I'm thinking of self.internal as a method for advancing digestion, doing a sleep cycle, other internal "biologicals" -- perhaps with a weighted randomizer. class Animal ( Metabolic, Reproductive ) : def __init__(self, mom, dad): # birth process if self.viable(mom, dad): self.genes = self.gene_synth ( mom, dad ) self.myprocesses = self.startup() self.alive = True # ...or abort else: raise ValueError, "No viable offspring" def update(self): self.myticks += 1 self.external() self.internal() if not self.alive: # ... end-of-life code Alternatively, if we make our animals be internal to the environment instance, then a single update call to this instance could trigger individual animal updates internally: import jungle ecosystem = jungle.creation() # initialize animals for i in range(10): ecosystem.add_animal() # randomizer? def mainloop: while True: ecosystem.update() # advances environment clock, state changes # some break or pause condition Depending on the kind of animal, it would try adapting in whatever manner. Tsunami? Birds take flight. Kirby From kirby.urner at gmail.com Sat Apr 22 01:29:26 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 16:29:26 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <13a83ca10604211606j822d426q204e2ebbe39a5ce7@mail.gmail.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> <4449467D.3020504@colorstudy.com> <13a83ca10604211606j822d426q204e2ebbe39a5ce7@mail.gmail.com> Message-ID: > While reading the thread I realised that maybe some of you don't have a > clear idea of what a Squeak E-Toy is (obviously there is the official > http://www.squeakland.org/ for that) > Keep in mind that St?phane Ducasse, the author 'Squeak: Learn Programming with Robots' was present at the summit, as were Guido and myself, and Alan Kay. Squeak was capably demonstrated, plus curriculum materials shared. http://wiki.tsf.org.za/shuttleworthfoundationwiki/Project_20Summit It's difficult to talk about Squeak if you haven't downloaded it and used it. As it happens, my daughter's school uses it as a lead-up to Python. Kirby From andre.roberge at gmail.com Sat Apr 22 01:47:16 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 21 Apr 2006 20:47:16 -0300 Subject: [Edu-sig] Life Clock In-Reply-To: References: Message-ID: <7528bcdd0604211647y3b945412y741b10f06dd957f5@mail.gmail.com> On 4/21/06, kirby urner wrote: > We're going to want an easy way to phase in time as the key variable, > which can simply mean a runtime mainloop, ala the usual event polling, > and have objects do an update in situ, meaning they get nudged > forward, one by one: [snip] > Alternatively, if we make our animals be internal to the environment > instance, then a single update call to this instance could trigger > individual animal updates internally: > > import jungle > ecosystem = jungle.creation() > > # initialize animals > for i in range(10): > ecosystem.add_animal() # randomizer? > > def mainloop: > while True: > ecosystem.update() # advances environment clock, state changes > # some break or pause condition > This looks like something that could easily adapted to, and better demonstrated with Pygame. Any reason why you aren't doing this? Andr? > Depending on the kind of animal, it would try adapting in whatever > manner. Tsunami? Birds take flight. > > Kirby From kirby.urner at gmail.com Sat Apr 22 02:11:48 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 17:11:48 -0700 Subject: [Edu-sig] Squeak or HyperCard In-Reply-To: <444960E6.2010809@colorstudy.com> References: <444960E6.2010809@colorstudy.com> Message-ID: > And then there's the question: why exactly is HyperCard worthy of > reimplementation, and what are the essential features? > > -- > Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org I think the general idea is to give kids a fairly easy way to organize material and share it, either peer to peer or from a more central repository. The web is how we do that now, but the amalgam of skills (HTML, Flash, Shockwave, applets, cgi...) is not young kid accessible. For one thing, you need a lot of typing. If I could drag a picture of myself to a top card, then put some icons on a next card, then wire those icons to yet other cards, containing more pictures and video clips, maybe some working code snippets (my little Logo flower), then hey, the typing might even be worth the effort -- especially if I can now easily ship this to my friends. There's a close analogy with teachers looking for ways to get lesson plans in some world-readable format, with working quiz scoring, chat rooms, whatever -- something immediately usable given average mouse and typing skills. Moodle and LAMS come to mind as two examples (the latter was showcased at the Summit, by an expert gent all the way from Sydney, Australia). In other words, in reinventing HyperCard, we're looking for some way to deliver content that's both interactive and not dependent on lots of adult intermediaries with more advanced skills. What a lot of the adult world uses for this purpose today is PowerPoint, but PowerPoint is not as flexibly event driven as HyperCard was, and doesn't include the interactivity. PDF in its full glory is perhaps closer to the ideal in some ways, but most people don't know much about PDF's scriptable characteristics -- which are also too limiting. In the original vision of the web, publishing to it was supposed to be about as easy as reading it. The Wiki tries to help with that, as do reStructured text and the rest. But the fact remains, kids face a lot of hurdles when it comes to getting their content onto the Internet. Kirby From ianb at colorstudy.com Sat Apr 22 02:38:09 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 21 Apr 2006 19:38:09 -0500 Subject: [Edu-sig] Squeak or HyperCard In-Reply-To: References: <444960E6.2010809@colorstudy.com> Message-ID: <44497AF1.30003@colorstudy.com> kirby urner wrote: >>And then there's the question: why exactly is HyperCard worthy of >>reimplementation, and what are the essential features? >> >>-- >>Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org > > > I think the general idea is to give kids a fairly easy way to organize > material and share it, either peer to peer or from a more central > repository. > > The web is how we do that now, but the amalgam of skills (HTML, Flash, > Shockwave, applets, cgi...) is not young kid accessible. For one > thing, you need a lot of typing. > > If I could drag a picture of myself to a top card, then put some icons > on a next card, then wire those icons to yet other cards, containing > more pictures and video clips, maybe some working code snippets (my > little Logo flower), then hey, the typing might even be worth the > effort -- especially if I can now easily ship this to my friends. What strikes me about this is that the technical hurdles seem really low. This doesn't seem hard at all. Lots of squishy questions... but then, getting to the squishy part is where it gets interesting, right? The ease almost makes it seem more intimidating. If it isn't hard, why haven't people done it? Or have people done it, and this will just be a pale immitation of what other's have done? Or have people done it, and it turned out to be a bad idea? Is this just another site builder? Are we just going to give people a pile of rainbow horizontal rules and animated kittens and have them make their own personal homepages? I like animated kittens as much as the next guy, but clearly that was not a revolution. But heck, blogs were technically pretty basic and "obvious" when they were starting too, and are still on the low end of technology. So technical difficulty and importance don't need to be bound together. Maybe no one has done it just because it can't be monitized. Oh no, I said the M-word. Saying it feels like swearing; it's debasing. But back to positive stuff... is wiki revisited and made richer really enough? Client-side programming in Javascript can be very powerful, and it seems like nearly anything that doesn't actually involve synchronizing or communicating via a central hub (aka the web server) can be done quite well on the client side. We're even seeing client side programming drive the server side, with the potential of making the server hub into a fairly neutral technology. Javascript is annoying at times, but it's not a hopeless language, and you can build good abstractions on top of it. This is where my cynical self reminds me that, if it was so easy, why don't I go home right now and do it? Sigh... because there's actually hard problems underneath, and while I can imagine a the result I know the concept will slip away as I reach for it, and I'll be unsure even if I have reached some goal because I won't know how to recognize it. Oh, and I don't actually see how Python fits into this (blasted lack of restricted execution!) Still, that's better than worrying about bitblt ;) -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From pdfernhout at kurtz-fernhout.com Sat Apr 22 03:38:36 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Fri, 21 Apr 2006 21:38:36 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> Message-ID: <4449891C.6020508@kurtz-fernhout.com> kirby urner wrote: >>If that means Shuttleworth is less interested, then so be it; but >>you might gain thousands of other developers from the unschooled ranks. >> >>--Paul Fernhout > > I don't get the impression you've really read up on the Shuttleworth > Project, which just had its first London summit, resulting in detailed > meeting notes, on-line in the Wiki, plus the various blog entries and > so on. If you want to speak specifically to the Shuttleworth > initiative, I suggest you follow more links and at least get on the > same page? Maybe we are talking about different conferences or a different Mark Shuttleworth? :-) Obviously you were there, but perhaps you saw it mainly through the eyes of a curriculum writer? And so questioning the value of a curriculum may be bit like a fish suddenly noticing water? :-) Consider: http://www.tsf.org.za/index.php?option=content&task=view&id=107&Itemid=2 "Shuttleworth project for *schools*" Some of Mark's own phrases from: http://wiki.tsf.org.za/shuttleworthfoundationwiki/Day_20one as an indicator of what he is thinking about (taken out of context which would show he is open minded, true, but look at how many there are): "primary and secondary education" "to become a mathematics teacher" "Technology in classrooms" "supply technology in schools" "Aim: to produce a curriculum" "train teachers" "Institutionalize ... exceptional children" "correct portfolio of schools to implement the curriculum" And some phrases of Mark's from the second day: http://wiki.tsf.org.za/shuttleworthfoundationwiki/Day_20two "used in schools " "In their classroom work" "The child has to solve the problem" "Did he come to the right answer" "identify children who have the answers" "How do you deal with kids who work out their own " "the sort of skills the teachers should be taught" "With the curriculum" "If spent more time planning" "do all the curriculum training" "have a curriculum" Several are about control here -- planning and telling kids what to do. Granted, other people, specifically Alan Kay, made constructivist educational points (though even he still speaks from a somewhat school-oriented context), and Mark responded positively towards them. I clearly think Mark is looking for more ideas, and hence his summit. I acknowledge Mark's flexibility and potential to change; he's one of the few people (dozens?) who has looked at the Earth from space with his own eyes, and an ever rarer few (two? three?) who did it with their own money. Still, I think my point remains, that, acknowledging he had the Summit to look for new ideas, that a "mass schooling == education" equality was, and is still, the source of light illuminating how he is looking at things. And it was the "elephant in the living room" no one talked about (though see below). At best there seems to have been some discussion of how in one broad area of schooling (math & science) there might be a little constructivist approach used here and there in a few grades part of the time. But in reality, any conventional *compulsary* school http://www.johntaylorgatto.com/chapters/5i.htm based approach built on a *compulsary* curriculum will undermine the very notion of what he hopes for in wanting to help preparing kids for the future -- a one likely involving a lot of freewheeling free and open source volunteer community participation. Even forcing kids to help each other learn fixed materials undermines part of that message. Those sorts of truly collaborative skills stem out of self-motivation, not compulsion, and they will only grow ever more important as our society adopts more and more productive technologies worldwide, moving to a world transcending even the notion of "work" itself. http://www.whywork.org/ There was one section where the elephant was apparently mentioned, when the notion of radical changes was brought up and then dismissed on the secodn day: "HK2: Extreme crisis- complete overhaul would mean a higher impact ... VR: Although complete overhaul would be ideal- it would be counterproductive given the realities of South Africa." Time and time again that same conversation comes up the same way, with the same result. So we are left with a focus on: Curriculum, Curriculum, Curriculum -- that is a recurrent them in Mark's phrasing. Some comments by an unschooling advocate on the notion of a curriculum: http://www.naturalchild.com/guest/earl_stevens.html "Allowing curriculums, textbooks, and tests to be the defining, driving force behind the education of a child is a hindrance in the home as much as in the school - not only because it interferes with learning, but because it interferes with trust. As I have mentioned, even educators are beginning to question the pre-planned, year-long curriculum as an out-dated, 19th century educational system. There is no reason that families should be less flexible and innovative than schools." Or see links at: "Unschooling -- Delight-driven learning" http://home-educate.com/unschooling/ As New York State "Teacher of the Year" John Taylor Gatto puts it here in his essay, on what the real curriculum is in almost any schooling context: "The 7-Lesson Schoolteacher" http://www.newciv.org/whole/schoolteacher.txt "It is time that we faced the fact squarely that institutional schoolteaching is destructive to children. ... After an adult lifetime spent teaching school I believe the method of mass-schooling is the only real content it has, don't be fooled into thinking that good curriculum or good equipment or good teachers are the critical determinants of your son and daughter's schooltime. All the pathologies we've considered come about in large measure because the lessons of school prevent children from keeping important appointments with themselves and with their families, to learn lessons in self- motivation, perseverance, self-reliance, courage, dignity and love and lessons in service to others, which are among the key lessons of home life. Thirty years ago these things could still be learned in the time left after school. But television has eaten up most of that time, and a combination of television and the stresses peculiar to two-income or single-parent families have swallowed up most of what used to be family time. Our kids have no time left to grow up fully human, and only thin- soil wastelands to do it in. A future is rushing down upon our culture which will insist that all of us learn the wisdom of non-material experience; a future which will demand as the price of survival that we follow a pace of natural life economical in material cost. These lessons cannot be learned in schools as they are. School is like starting life with a 12-year jail sentence in which bad habits are the only curriculum truly learned. I teach school and win awards doing it. I should know." For one alternative: http://www.johntaylorgatto.com/chapters/3d.htm "I know a school for kids ages three to eighteen that doesn?t teach anybody to read, yet everyone who goes there learns to do it, most very well. It?s the beautiful Sudbury Valley School, twenty miles west of Boston in the old Nathaniel Bowditch "cottage" (which looks suspiciously like a mansion), a place ringed by handsome outbuildings, a private lake, woods, and acres of magnificent grounds. Sudbury is a private school, but with a tuition under $4,000 a year it?s considerably cheaper than a seat in a New York City public school. At Sudbury kids teach themselves to read; they learn at many different ages, even into the teen years (though that?s rare). When each kid is ready he or she self-instructs, if such a formal label isn?t inappropriate for such a natural undertaking. During this time they are free to request as much adult assistance as needed. That usually isn?t much. In thirty years of operation, Sudbury has never had a single kid who didn?t learn to read. All this is aided by a magnificent school library on open shelves where books are borrowed and returned on the honor system. About 65 percent of Sudbury kids go on to good colleges. The place has never seen a case of dyslexia. (That?s not to say some kids don?t reverse letters and such from time to time, but such conditions are temporary and self-correcting unless institutionalized into a disease.) So Sudbury doesn?t even teach reading yet all its kids learn to read and even like reading. What could be going on there that we don?t understand?" So why build software tools oriented towards schools and a compulsory "curriculum" if the real goal is helping kids educate themselves and become productive citizens of the 21st century? Yes, schools could be made a bit less terrible, but why spend rare philanthropic dollars for such a meager outcome? Someone like Mark Shuttleworth has so much potential as an agent of positive change, but it seems like, despite the fact that his effort will do some small good for some school kids, it is mostly a non-starter as far as significant change. Of course, this is to be expected. As Gatto points out in his book: http://www.johntaylorgatto.com/underground/toc5.htm "Chapter Seventeen -- The Politics Of Schooling -- At the heart of the durability of mass schooling is a brilliantly designed power fragmentation system which distributes decision-making so widely among so many warring interests that large-scale change is impossible without a guidebook. Few insiders understand how to steer this ship and the few who do may have lost the will to control it." That is the elephant in the educational living room in all its glory. To be clear, this note isn't meant personally, even though it obviously hacks at the roots of the notion of a fixed curriculum for kids, and you personally make such curricula. I have no problems with people writing good tutorials, or people figuring out useful educational widgets to make, or people helping other people who spend time around kids learn how to interact productively with them, or people thinking about what types of things are useful to learn and laying out interesting paths for kids to follow at their own choosing. The best part of our garden simulator is perhaps the help system my wife spent six months writing, which is a resource for many thousands of people on the web now. If one looks at writing curricula in that sense, then such aids can be useful. But add compulsion to any of those notions (even our garden simulator!), and you get back to the problem we have today with mass compulsory schooling. It undermines your very own work, by turning your labors of love on curricula into instruments of torture (boredom is in a sense a form of torture) wielded by "teachers" who (often unknowingly) teach mainly the seven real lessons of schooling Gatto outlines instead. And you don't get someone like Bucky Fuller through conventional compulsory schooling, and we certainly need more people like him in the 21st century. From: http://www.madrone.com/Home-ed/hs35.htm "Almost no one who has changed our world, has reached his or her new knowledge through [learning that results because you are forced]. ... To me, one of the most striking examples of this is Buckminster Fuller. Until he got glasses in elementary school, he was essentially blind. He developed his ideas about shape and structure playing with dried peas in kindergarten." So in that sense, Bucky's poor physical vision protected him from the compulsory school curriculum that might have ruined his true inner vision. Science education in compulsory schools is essentially a machine grinding out diamonds (PhDs). It is also a failing pyramid scheme, since it produces more specialists then the world needs, each of which wants to turn out many more of the same specialist. In the words of the Vice Provost of Caltech, Dr. David L. Goodstein: http://www.house.gov/science/goodstein_04-01.htm "Science education in America is a mining and sorting operation in which we seek out diamonds in the rough that can be cut and polished into gems just like us, the existing scientists, and we discard all the rest. This system has produced the best scientists in the world, but it is also responsible for the woeful technical illiteracy of the American workforce. Furthermore, now that the period of exponential growth is over we find ourselves with a surplus of gems that we can?t afford. That is why the Internet crackles with the complaints of young Ph.D.?s who can?t get jobs doing the research they were trained for." Mark sets out to do good; my worry is how many Bucky Fullers the curriculum he plans is about to grind to ruin. Still, his may ruin less of them then some other worse curricula, but is that the best we can hope for, to save just a few children from the griding gears of a compulsory schooling machine? Even in the face of impossible odds against worldwide compulsory school machinery costing trillions of dollars a year to operate to keep grinding down most children into dirt (cue Pink Floyd :-), http://www.lyricsfreak.com/p/pink-floyd/108776.html [*] or as Gatto puts it: "Bianca, You Animal, Shut Up!" http://www.johntaylorgatto.com/underground/prologue.htm even then, shouldn't we desperately hope for something more? And shouldn't that desperate hope inform our vision of what truly educational software and "computer programming for everyone" should be all about? --Paul Fernhout [*] Too bad Pink Floyd didn't use the word "schooling" instead of "education" in "Another Brick in The Wall". In that sense, even they succumbed unwittingly to the evil they try to fight. From kirby.urner at gmail.com Sat Apr 22 03:48:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 18:48:13 -0700 Subject: [Edu-sig] Life Clock In-Reply-To: <7528bcdd0604211647y3b945412y741b10f06dd957f5@mail.gmail.com> References: <7528bcdd0604211647y3b945412y741b10f06dd957f5@mail.gmail.com> Message-ID: > This looks like something that could easily adapted to, and better demonstrated > with Pygame. Any reason why you aren't doing this? > > Andr? > I want to use pure Python without a lot of extra library stuff. The understanding kids develop will rely on the imagination a lot, with the foreground remaining essentially lexical (just like a science fiction novel is mostly just words on a page). You can picture all those little bunnies hopping around in your mind's eye. We don't need the overhead of actual graphical bunnies -- though some puppeting programs may provide them. Here's some working code except there's something not yet right -- no fox is eating a bunny yet. I haven't figured out why. from random import randint class Mammal (object): def __init__(self, name, eco): self.name = name self.stomach = [] self.alive = True self.eco = eco self.timetolive = 100 self.clock = 0 self.xpos = randint(-3,3) self.ypos = randint(-3,3) def update(self): self.clock += 1 self.move() if self.clock > self.timetolive: self.alive = False self.die() def move(self): self.xpos += randint(-1, 1) self.ypos += randint(-1, 1) class Bunny (Mammal): def iseaten(self, fox): self.alive = False print '%s is eaten by %s.' % (self, fox) def die(self): print '%s dies of old age.' % self def __repr__(self): return 'Bunny %s age: %s @ (%s, %s)' % (self.name, self.clock, self.xpos, self.ypos) class Fox (Mammal): def eat(self): for bunny in self.eco.bunnies.values(): if (self.xpos == bunny.xpos) and (self.ypos == bunny.ypos): self.stomach.append( bunny ) bunny.iseaten(self) def die(self): print '%s dies of old age.' % self def __repr__(self): return 'Fox %s age: %s @ (%s, %s)' % (self.name, self.clock, self.xpos, self.ypos) class Ecosystem(object): def __init__(self): self.bunnies = {} self.foxes = {} def update(self): # state change for bunny in self.bunnies.values(): bunny.update() for fox in self.foxes.values(): fox.update() # cull for i, bunny in self.bunnies.items(): if not bunny.alive: self.bunnies.pop(i) for i, fox in self.foxes.items(): if not fox.alive: self.foxes.pop(i) def main(): eco = Ecosystem() for i in range(100): eco.bunnies[i] = Bunny(i, eco) for i in range(100): eco.foxes[i] = Fox(i, eco) print 'Bunnies:', eco.bunnies print 'Foxes: ', eco.foxes for cycle in range(200): eco.update() Kirby From kirby.urner at gmail.com Sat Apr 22 03:58:49 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 18:58:49 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <4449891C.6020508@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> Message-ID: I've read some Gatto and know about unschooling. But how does that tie in to your advocacy for Jython, for example? And what does this sentence even mean: "Mark sets out to do good; my worry is how many Bucky Fullers the curriculum he plans is about to grind to ruin." I can't understand your logic yet. The commitment is to bottom-up curriculum development, not one guy (not me, not anyone) imposing some top-down compulsory "must learn" thing, except insofar as we tie to the pre-existing national curriculum for South Africa. The lesson plans will specify what software is needed. If that software actually exists, so much the better. And the students themselves are authors of some of these lesson plans. It's a community effort. A lot of these TuxLabs double as businesses after hours, with some of the same talent overlapping i.e. the dual-use nature of the lab makes for a convenient apprenticeship and transition to paying work for older, more skilled kids. Kirby From andre.roberge at gmail.com Sat Apr 22 05:15:45 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 22 Apr 2006 00:15:45 -0300 Subject: [Edu-sig] Life Clock In-Reply-To: References: <7528bcdd0604211647y3b945412y741b10f06dd957f5@mail.gmail.com> Message-ID: <7528bcdd0604212015k7075d676wcc98e42b8df5f31c@mail.gmail.com> On 4/21/06, kirby urner wrote: > Here's some working code except there's something not yet right -- no > fox is eating a bunny yet. I haven't figured out why. > [snip] > class Fox (Mammal): > # add the following (I think :-) def update(self): Mammal.update(self) self.eat() > def eat(self): > for bunny in self.eco.bunnies.values(): > if (self.xpos == bunny.xpos) and (self.ypos == bunny.ypos): > self.stomach.append( bunny ) > bunny.iseaten(self) > > def die(self): > print '%s dies of old age.' % self > > def __repr__(self): > return 'Fox %s age: %s @ (%s, %s)' % (self.name, self.clock, > self.xpos, self.ypos) > [snip] Andr? From kirby.urner at gmail.com Sat Apr 22 05:48:49 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 21 Apr 2006 20:48:49 -0700 Subject: [Edu-sig] Life Clock In-Reply-To: <7528bcdd0604212015k7075d676wcc98e42b8df5f31c@mail.gmail.com> References: <7528bcdd0604211647y3b945412y741b10f06dd957f5@mail.gmail.com> <7528bcdd0604212015k7075d676wcc98e42b8df5f31c@mail.gmail.com> Message-ID: On 4/21/06, Andre Roberge wrote: > On 4/21/06, kirby urner wrote: > > Here's some working code except there's something not yet right -- no > > fox is eating a bunny yet. I haven't figured out why. > > > [snip] > > class Fox (Mammal): > > > # add the following (I think :-) > def update(self): > Mammal.update(self) > self.eat() > Andr? > Hey, brilliant fix guy. My foxes were never getting to eat, as the Mammal update knew nothing about eating. So you overrode and got my fox's update to actually devour bunnies. In the output below, it looks like every bunny gets eaten except one, which dies of old age: >>> reload(jungle) >>> jungle.main() ... Bunny 22 age: 1 @ (3, 3) is eaten by Fox 0 age: 1 @ (3, 3). Bunny 29 age: 1 @ (3, 3) is eaten by Fox 0 age: 1 @ (3, 3). Bunny 12 age: 1 @ (0, 2) is eaten by Fox 2 age: 1 @ (0, 2). Bunny 63 age: 1 @ (0, 2) is eaten by Fox 2 age: 1 @ (0, 2). Bunny 19 age: 1 @ (-2, 3) is eaten by Fox 5 age: 1 @ (-2, 3). Bunny 27 age: 1 @ (-2, 3) is eaten by Fox 5 age: 1 @ (-2, 3). Bunny 98 age: 1 @ (-2, 3) is eaten by Fox 5 age: 1 @ (-2, 3). Bunny 31 age: 1 @ (-3, -1) is eaten by Fox 6 age: 1 @ (-3, -1). Bunny 47 age: 1 @ (-3, -1) is eaten by Fox 6 age: 1 @ (-3, -1). Bunny 99 age: 1 @ (-3, -1) is eaten by Fox 6 age: 1 @ (-3, -1). Bunny 8 age: 1 @ (2, -1) is eaten by Fox 7 age: 1 @ (2, -1). Bunny 61 age: 1 @ (2, -1) is eaten by Fox 7 age: 1 @ (2, -1). Bunny 54 age: 1 @ (3, 1) is eaten by Fox 9 age: 1 @ (3, 1). Bunny 93 age: 1 @ (3, 1) is eaten by Fox 9 age: 1 @ (3, 1). Bunny 78 age: 1 @ (-4, -2) is eaten by Fox 10 age: 1 @ (-4, -2). Bunny 1 age: 1 @ (-1, -3) is eaten by Fox 13 age: 1 @ (-1, -3). Bunny 69 age: 1 @ (-1, -3) is eaten by Fox 13 age: 1 @ (-1, -3). Bunny 85 age: 1 @ (-1, -3) is eaten by Fox 13 age: 1 @ (-1, -3). Bunny 88 age: 1 @ (-1, -3) is eaten by Fox 13 age: 1 @ (-1, -3). Bunny 4 age: 1 @ (-2, -3) is eaten by Fox 14 age: 1 @ (-2, -3). Bunny 70 age: 1 @ (-2, -3) is eaten by Fox 14 age: 1 @ (-2, -3). Bunny 74 age: 1 @ (-2, -2) is eaten by Fox 15 age: 1 @ (-2, -2). Bunny 76 age: 1 @ (-2, -2) is eaten by Fox 15 age: 1 @ (-2, -2). Bunny 16 age: 1 @ (-1, 3) is eaten by Fox 16 age: 1 @ (-1, 3). Bunny 67 age: 1 @ (-1, 3) is eaten by Fox 16 age: 1 @ (-1, 3). Bunny 54 age: 1 @ (3, 1) is eaten by Fox 17 age: 1 @ (3, 1). Bunny 93 age: 1 @ (3, 1) is eaten by Fox 17 age: 1 @ (3, 1). Bunny 17 age: 1 @ (0, -1) is eaten by Fox 20 age: 1 @ (0, -1). Bunny 6 age: 1 @ (1, 2) is eaten by Fox 21 age: 1 @ (1, 2). Bunny 15 age: 1 @ (1, 2) is eaten by Fox 21 age: 1 @ (1, 2). Bunny 43 age: 1 @ (-2, 4) is eaten by Fox 23 age: 1 @ (-2, 4). Bunny 94 age: 1 @ (-2, 4) is eaten by Fox 23 age: 1 @ (-2, 4). Bunny 14 age: 1 @ (0, 4) is eaten by Fox 24 age: 1 @ (0, 4). Bunny 43 age: 1 @ (-2, 4) is eaten by Fox 25 age: 1 @ (-2, 4). Bunny 94 age: 1 @ (-2, 4) is eaten by Fox 25 age: 1 @ (-2, 4). Bunny 74 age: 1 @ (-2, -2) is eaten by Fox 26 age: 1 @ (-2, -2). Bunny 76 age: 1 @ (-2, -2) is eaten by Fox 26 age: 1 @ (-2, -2). Bunny 11 age: 1 @ (1, -2) is eaten by Fox 28 age: 1 @ (1, -2). Bunny 24 age: 1 @ (1, -2) is eaten by Fox 28 age: 1 @ (1, -2). Bunny 38 age: 1 @ (1, -2) is eaten by Fox 28 age: 1 @ (1, -2). Bunny 32 age: 1 @ (3, 2) is eaten by Fox 29 age: 1 @ (3, 2). Bunny 7 age: 1 @ (-2, 1) is eaten by Fox 30 age: 1 @ (-2, 1). Bunny 26 age: 1 @ (-2, 1) is eaten by Fox 30 age: 1 @ (-2, 1). Bunny 25 age: 1 @ (1, -1) is eaten by Fox 31 age: 1 @ (1, -1). Bunny 79 age: 1 @ (1, -1) is eaten by Fox 31 age: 1 @ (1, -1). Bunny 84 age: 1 @ (-2, -1) is eaten by Fox 34 age: 1 @ (-2, -1). Bunny 96 age: 1 @ (-2, -1) is eaten by Fox 34 age: 1 @ (-2, -1). Bunny 97 age: 1 @ (-1, 0) is eaten by Fox 35 age: 1 @ (-1, 0). Bunny 30 age: 1 @ (1, 0) is eaten by Fox 36 age: 1 @ (1, 0). Bunny 72 age: 1 @ (1, 0) is eaten by Fox 36 age: 1 @ (1, 0). Bunny 25 age: 1 @ (1, -1) is eaten by Fox 37 age: 1 @ (1, -1). Bunny 79 age: 1 @ (1, -1) is eaten by Fox 37 age: 1 @ (1, -1). Bunny 12 age: 1 @ (0, 2) is eaten by Fox 39 age: 1 @ (0, 2). Bunny 63 age: 1 @ (0, 2) is eaten by Fox 39 age: 1 @ (0, 2). Bunny 56 age: 1 @ (-1, -2) is eaten by Fox 40 age: 1 @ (-1, -2). Bunny 71 age: 1 @ (-1, -2) is eaten by Fox 40 age: 1 @ (-1, -2). Bunny 16 age: 1 @ (-1, 3) is eaten by Fox 42 age: 1 @ (-1, 3). Bunny 67 age: 1 @ (-1, 3) is eaten by Fox 42 age: 1 @ (-1, 3). Bunny 19 age: 1 @ (-2, 3) is eaten by Fox 44 age: 1 @ (-2, 3). Bunny 27 age: 1 @ (-2, 3) is eaten by Fox 44 age: 1 @ (-2, 3). Bunny 98 age: 1 @ (-2, 3) is eaten by Fox 44 age: 1 @ (-2, 3). Bunny 78 age: 1 @ (-4, -2) is eaten by Fox 45 age: 1 @ (-4, -2). Bunny 10 age: 1 @ (-2, 2) is eaten by Fox 46 age: 1 @ (-2, 2). Bunny 60 age: 1 @ (-2, 2) is eaten by Fox 46 age: 1 @ (-2, 2). Bunny 77 age: 1 @ (-2, 2) is eaten by Fox 46 age: 1 @ (-2, 2). Bunny 82 age: 1 @ (-2, 2) is eaten by Fox 46 age: 1 @ (-2, 2). Bunny 36 age: 1 @ (4, 3) is eaten by Fox 47 age: 1 @ (4, 3). Bunny 16 age: 1 @ (-1, 3) is eaten by Fox 48 age: 1 @ (-1, 3). Bunny 67 age: 1 @ (-1, 3) is eaten by Fox 48 age: 1 @ (-1, 3). Bunny 35 age: 1 @ (1, 1) is eaten by Fox 50 age: 1 @ (1, 1). Bunny 73 age: 1 @ (1, 1) is eaten by Fox 50 age: 1 @ (1, 1). Bunny 4 age: 1 @ (-2, -3) is eaten by Fox 51 age: 1 @ (-2, -3). Bunny 70 age: 1 @ (-2, -3) is eaten by Fox 51 age: 1 @ (-2, -3). Bunny 7 age: 1 @ (-2, 1) is eaten by Fox 54 age: 1 @ (-2, 1). Bunny 26 age: 1 @ (-2, 1) is eaten by Fox 54 age: 1 @ (-2, 1). Bunny 54 age: 1 @ (3, 1) is eaten by Fox 55 age: 1 @ (3, 1). Bunny 93 age: 1 @ (3, 1) is eaten by Fox 55 age: 1 @ (3, 1). Bunny 8 age: 1 @ (2, -1) is eaten by Fox 56 age: 1 @ (2, -1). Bunny 61 age: 1 @ (2, -1) is eaten by Fox 56 age: 1 @ (2, -1). Bunny 66 age: 1 @ (-2, 0) is eaten by Fox 57 age: 1 @ (-2, 0). Bunny 81 age: 1 @ (-2, 0) is eaten by Fox 57 age: 1 @ (-2, 0). Bunny 8 age: 1 @ (2, -1) is eaten by Fox 58 age: 1 @ (2, -1). Bunny 61 age: 1 @ (2, -1) is eaten by Fox 58 age: 1 @ (2, -1). Bunny 11 age: 1 @ (1, -2) is eaten by Fox 62 age: 1 @ (1, -2). Bunny 24 age: 1 @ (1, -2) is eaten by Fox 62 age: 1 @ (1, -2). Bunny 38 age: 1 @ (1, -2) is eaten by Fox 62 age: 1 @ (1, -2). Bunny 19 age: 1 @ (-2, 3) is eaten by Fox 63 age: 1 @ (-2, 3). Bunny 27 age: 1 @ (-2, 3) is eaten by Fox 63 age: 1 @ (-2, 3). Bunny 98 age: 1 @ (-2, 3) is eaten by Fox 63 age: 1 @ (-2, 3). Bunny 83 age: 1 @ (2, -3) is eaten by Fox 65 age: 1 @ (2, -3). Bunny 74 age: 1 @ (-2, -2) is eaten by Fox 66 age: 1 @ (-2, -2). Bunny 76 age: 1 @ (-2, -2) is eaten by Fox 66 age: 1 @ (-2, -2). Bunny 19 age: 1 @ (-2, 3) is eaten by Fox 67 age: 1 @ (-2, 3). Bunny 27 age: 1 @ (-2, 3) is eaten by Fox 67 age: 1 @ (-2, 3). Bunny 98 age: 1 @ (-2, 3) is eaten by Fox 67 age: 1 @ (-2, 3). Bunny 56 age: 1 @ (-1, -2) is eaten by Fox 68 age: 1 @ (-1, -2). Bunny 71 age: 1 @ (-1, -2) is eaten by Fox 68 age: 1 @ (-1, -2). Bunny 25 age: 1 @ (1, -1) is eaten by Fox 69 age: 1 @ (1, -1). Bunny 79 age: 1 @ (1, -1) is eaten by Fox 69 age: 1 @ (1, -1). Bunny 43 age: 1 @ (-2, 4) is eaten by Fox 70 age: 1 @ (-2, 4). Bunny 94 age: 1 @ (-2, 4) is eaten by Fox 70 age: 1 @ (-2, 4). Bunny 1 age: 1 @ (-1, -3) is eaten by Fox 71 age: 1 @ (-1, -3). Bunny 69 age: 1 @ (-1, -3) is eaten by Fox 71 age: 1 @ (-1, -3). Bunny 85 age: 1 @ (-1, -3) is eaten by Fox 71 age: 1 @ (-1, -3). Bunny 88 age: 1 @ (-1, -3) is eaten by Fox 71 age: 1 @ (-1, -3). Bunny 46 age: 1 @ (-4, -1) is eaten by Fox 72 age: 1 @ (-4, -1). Bunny 13 age: 1 @ (0, 1) is eaten by Fox 74 age: 1 @ (0, 1). Bunny 91 age: 1 @ (0, 1) is eaten by Fox 74 age: 1 @ (0, 1). Bunny 84 age: 1 @ (-2, -1) is eaten by Fox 76 age: 1 @ (-2, -1). Bunny 96 age: 1 @ (-2, -1) is eaten by Fox 76 age: 1 @ (-2, -1). Bunny 21 age: 1 @ (0, -3) is eaten by Fox 77 age: 1 @ (0, -3). Bunny 11 age: 1 @ (1, -2) is eaten by Fox 78 age: 1 @ (1, -2). Bunny 24 age: 1 @ (1, -2) is eaten by Fox 78 age: 1 @ (1, -2). Bunny 38 age: 1 @ (1, -2) is eaten by Fox 78 age: 1 @ (1, -2). Bunny 23 age: 1 @ (1, -3) is eaten by Fox 79 age: 1 @ (1, -3). Bunny 68 age: 1 @ (1, -3) is eaten by Fox 79 age: 1 @ (1, -3). Bunny 84 age: 1 @ (-2, -1) is eaten by Fox 82 age: 1 @ (-2, -1). Bunny 96 age: 1 @ (-2, -1) is eaten by Fox 82 age: 1 @ (-2, -1). Bunny 17 age: 1 @ (0, -1) is eaten by Fox 83 age: 1 @ (0, -1). Bunny 12 age: 1 @ (0, 2) is eaten by Fox 84 age: 1 @ (0, 2). Bunny 63 age: 1 @ (0, 2) is eaten by Fox 84 age: 1 @ (0, 2). Bunny 13 age: 1 @ (0, 1) is eaten by Fox 85 age: 1 @ (0, 1). Bunny 91 age: 1 @ (0, 1) is eaten by Fox 85 age: 1 @ (0, 1). Bunny 42 age: 1 @ (0, -2) is eaten by Fox 87 age: 1 @ (0, -2). Bunny 13 age: 1 @ (0, 1) is eaten by Fox 88 age: 1 @ (0, 1). Bunny 91 age: 1 @ (0, 1) is eaten by Fox 88 age: 1 @ (0, 1). Bunny 23 age: 1 @ (1, -3) is eaten by Fox 89 age: 1 @ (1, -3). Bunny 68 age: 1 @ (1, -3) is eaten by Fox 89 age: 1 @ (1, -3). Bunny 36 age: 1 @ (4, 3) is eaten by Fox 91 age: 1 @ (4, 3). Bunny 18 age: 1 @ (-4, 0) is eaten by Fox 92 age: 1 @ (-4, 0). Bunny 30 age: 1 @ (1, 0) is eaten by Fox 93 age: 1 @ (1, 0). Bunny 72 age: 1 @ (1, 0) is eaten by Fox 93 age: 1 @ (1, 0). Bunny 6 age: 1 @ (1, 2) is eaten by Fox 97 age: 1 @ (1, 2). Bunny 15 age: 1 @ (1, 2) is eaten by Fox 97 age: 1 @ (1, 2). Bunny 11 age: 1 @ (1, -2) is eaten by Fox 98 age: 1 @ (1, -2). Bunny 24 age: 1 @ (1, -2) is eaten by Fox 98 age: 1 @ (1, -2). Bunny 38 age: 1 @ (1, -2) is eaten by Fox 98 age: 1 @ (1, -2). Bunny 0 age: 2 @ (-2, 3) is eaten by Fox 5 age: 2 @ (-2, 3). Bunny 48 age: 2 @ (-2, 3) is eaten by Fox 5 age: 2 @ (-2, 3). Bunny 62 age: 2 @ (0, 3) is eaten by Fox 11 age: 2 @ (0, 3). Bunny 86 age: 2 @ (0, 3) is eaten by Fox 11 age: 2 @ (0, 3). Bunny 65 age: 2 @ (-3, -1) is eaten by Fox 15 age: 2 @ (-3, -1). Bunny 62 age: 2 @ (0, 3) is eaten by Fox 16 age: 2 @ (0, 3). Bunny 86 age: 2 @ (0, 3) is eaten by Fox 16 age: 2 @ (0, 3). Bunny 20 age: 2 @ (-1, 0) is eaten by Fox 18 age: 2 @ (-1, 0). Bunny 52 age: 2 @ (-1, 0) is eaten by Fox 18 age: 2 @ (-1, 0). Bunny 9 age: 2 @ (1, 3) is eaten by Fox 24 age: 2 @ (1, 3). Bunny 50 age: 2 @ (1, 3) is eaten by Fox 24 age: 2 @ (1, 3). Bunny 65 age: 2 @ (-3, -1) is eaten by Fox 26 age: 2 @ (-3, -1). Bunny 89 age: 2 @ (-3, 0) is eaten by Fox 30 age: 2 @ (-3, 0). Bunny 40 age: 2 @ (2, 4) is eaten by Fox 32 age: 2 @ (2, 4). Bunny 65 age: 2 @ (-3, -1) is eaten by Fox 34 age: 2 @ (-3, -1). Bunny 9 age: 2 @ (1, 3) is eaten by Fox 39 age: 2 @ (1, 3). Bunny 50 age: 2 @ (1, 3) is eaten by Fox 39 age: 2 @ (1, 3). Bunny 0 age: 2 @ (-2, 3) is eaten by Fox 46 age: 2 @ (-2, 3). Bunny 48 age: 2 @ (-2, 3) is eaten by Fox 46 age: 2 @ (-2, 3). Bunny 3 age: 2 @ (-3, 1) is eaten by Fox 54 age: 2 @ (-3, 1). Bunny 58 age: 2 @ (-3, 1) is eaten by Fox 54 age: 2 @ (-3, 1). Bunny 90 age: 2 @ (-3, 1) is eaten by Fox 54 age: 2 @ (-3, 1). Bunny 45 age: 2 @ (4, 1) is eaten by Fox 55 age: 2 @ (4, 1). Bunny 3 age: 2 @ (-3, 1) is eaten by Fox 57 age: 2 @ (-3, 1). Bunny 58 age: 2 @ (-3, 1) is eaten by Fox 57 age: 2 @ (-3, 1). Bunny 90 age: 2 @ (-3, 1) is eaten by Fox 57 age: 2 @ (-3, 1). Bunny 28 age: 2 @ (3, 0) is eaten by Fox 61 age: 2 @ (3, 0). Bunny 89 age: 2 @ (-3, 0) is eaten by Fox 72 age: 2 @ (-3, 0). Bunny 40 age: 2 @ (2, 4) is eaten by Fox 80 age: 2 @ (2, 4). Bunny 64 age: 2 @ (0, 1) is eaten by Fox 84 age: 2 @ (0, 1). Bunny 53 age: 2 @ (4, 3) is eaten by Fox 91 age: 2 @ (4, 3). Bunny 41 age: 2 @ (2, 1) is eaten by Fox 97 age: 2 @ (2, 1). Bunny 49 age: 2 @ (2, 1) is eaten by Fox 97 age: 2 @ (2, 1). Bunny 34 age: 3 @ (1, 1) is eaten by Fox 2 age: 3 @ (1, 1). Bunny 95 age: 3 @ (-2, 0) is eaten by Fox 18 age: 3 @ (-2, 0). Bunny 37 age: 3 @ (-1, 1) is eaten by Fox 42 age: 3 @ (-1, 1). Bunny 37 age: 3 @ (-1, 1) is eaten by Fox 48 age: 3 @ (-1, 1). Bunny 34 age: 3 @ (1, 1) is eaten by Fox 53 age: 3 @ (1, 1). Bunny 37 age: 3 @ (-1, 1) is eaten by Fox 74 age: 3 @ (-1, 1). Bunny 51 age: 3 @ (-1, 2) is eaten by Fox 84 age: 3 @ (-1, 2). Bunny 37 age: 3 @ (-1, 1) is eaten by Fox 85 age: 3 @ (-1, 1). Bunny 33 age: 4 @ (2, 1) is eaten by Fox 2 age: 4 @ (2, 1). Bunny 33 age: 4 @ (2, 1) is eaten by Fox 9 age: 4 @ (2, 1). Bunny 55 age: 4 @ (1, 4) is eaten by Fox 11 age: 4 @ (1, 4). Bunny 57 age: 4 @ (1, 4) is eaten by Fox 11 age: 4 @ (1, 4). Bunny 55 age: 4 @ (1, 4) is eaten by Fox 24 age: 4 @ (1, 4). Bunny 57 age: 4 @ (1, 4) is eaten by Fox 24 age: 4 @ (1, 4). Bunny 80 age: 4 @ (-3, 1) is eaten by Fox 26 age: 4 @ (-3, 1). Bunny 33 age: 4 @ (2, 1) is eaten by Fox 53 age: 4 @ (2, 1). Bunny 55 age: 4 @ (1, 4) is eaten by Fox 90 age: 4 @ (1, 4). Bunny 57 age: 4 @ (1, 4) is eaten by Fox 90 age: 4 @ (1, 4). Bunny 39 age: 4 @ (1, 3) is eaten by Fox 97 age: 4 @ (1, 3). Bunny 5 age: 5 @ (4, 2) is eaten by Fox 17 age: 5 @ (4, 2). Bunny 92 age: 5 @ (2, 2) is eaten by Fox 61 age: 5 @ (2, 2). Bunny 87 age: 5 @ (2, 3) is eaten by Fox 91 age: 5 @ (2, 3). Bunny 59 age: 7 @ (4, 0) is eaten by Fox 39 age: 7 @ (4, 0). Bunny 2 age: 9 @ (3, -2) is eaten by Fox 62 age: 9 @ (3, -2). Bunny 44 age: 27 @ (4, 10) is eaten by Fox 70 age: 27 @ (4, 10). Bunny 75 age: 101 @ (-13, -16) dies of old age. Fox 0 age: 101 @ (18, 5) dies of old age. Fox 1 age: 101 @ (-19, -14) dies of old age. Fox 2 age: 101 @ (10, 3) dies of old age. Fox 3 age: 101 @ (-3, -1) dies of old age. Fox 4 age: 101 @ (1, 11) dies of old age. Fox 5 age: 101 @ (13, 12) dies of old age. Fox 6 age: 101 @ (-1, 10) dies of old age. Fox 7 age: 101 @ (-7, -10) dies of old age. Fox 8 age: 101 @ (-2, 2) dies of old age. Fox 9 age: 101 @ (4, 4) dies of old age. Fox 10 age: 101 @ (6, 6) dies of old age. Fox 11 age: 101 @ (19, 6) dies of old age. Fox 12 age: 101 @ (9, -5) dies of old age. Fox 13 age: 101 @ (-6, -1) dies of old age. Fox 14 age: 101 @ (-14, 8) dies of old age. Fox 15 age: 101 @ (0, 7) dies of old age. Fox 16 age: 101 @ (1, 2) dies of old age. Fox 17 age: 101 @ (5, 22) dies of old age. Fox 18 age: 101 @ (-6, 4) dies of old age. Fox 19 age: 101 @ (12, -4) dies of old age. Fox 20 age: 101 @ (6, -10) dies of old age. Fox 21 age: 101 @ (10, 6) dies of old age. Fox 22 age: 101 @ (-13, 10) dies of old age. Fox 23 age: 101 @ (-5, 7) dies of old age. Fox 24 age: 101 @ (20, -5) dies of old age. Fox 25 age: 101 @ (-7, -1) dies of old age. Fox 26 age: 101 @ (6, 0) dies of old age. Fox 27 age: 101 @ (0, 1) dies of old age. Fox 28 age: 101 @ (4, -4) dies of old age. Fox 29 age: 101 @ (14, -3) dies of old age. Fox 30 age: 101 @ (-6, 10) dies of old age. Fox 31 age: 101 @ (-2, 4) dies of old age. Fox 32 age: 101 @ (8, 18) dies of old age. Fox 33 age: 101 @ (12, 2) dies of old age. Fox 34 age: 101 @ (18, -4) dies of old age. Fox 35 age: 101 @ (-10, 23) dies of old age. Fox 36 age: 101 @ (0, -5) dies of old age. Fox 37 age: 101 @ (17, 7) dies of old age. Fox 38 age: 101 @ (0, -3) dies of old age. Fox 39 age: 101 @ (14, -7) dies of old age. Fox 40 age: 101 @ (0, 3) dies of old age. Fox 41 age: 101 @ (10, 1) dies of old age. Fox 42 age: 101 @ (-4, -15) dies of old age. Fox 43 age: 101 @ (0, -15) dies of old age. Fox 44 age: 101 @ (-5, -9) dies of old age. Fox 45 age: 101 @ (-1, 7) dies of old age. Fox 46 age: 101 @ (-14, 10) dies of old age. Fox 47 age: 101 @ (16, 7) dies of old age. Fox 48 age: 101 @ (9, -4) dies of old age. Fox 49 age: 101 @ (-4, -6) dies of old age. Fox 50 age: 101 @ (-2, 2) dies of old age. Fox 51 age: 101 @ (-3, -7) dies of old age. Fox 52 age: 101 @ (2, -8) dies of old age. Fox 53 age: 101 @ (-4, 4) dies of old age. Fox 54 age: 101 @ (4, 8) dies of old age. Fox 55 age: 101 @ (10, -1) dies of old age. Fox 56 age: 101 @ (9, 8) dies of old age. Fox 57 age: 101 @ (-17, -8) dies of old age. Fox 58 age: 101 @ (13, 18) dies of old age. Fox 59 age: 101 @ (0, -10) dies of old age. Fox 60 age: 101 @ (20, 8) dies of old age. Fox 61 age: 101 @ (-1, 12) dies of old age. Fox 62 age: 101 @ (2, -11) dies of old age. Fox 63 age: 101 @ (5, 5) dies of old age. Fox 64 age: 101 @ (-5, -15) dies of old age. Fox 65 age: 101 @ (7, 7) dies of old age. Fox 66 age: 101 @ (11, -5) dies of old age. Fox 67 age: 101 @ (-2, 8) dies of old age. Fox 68 age: 101 @ (-10, 0) dies of old age. Fox 69 age: 101 @ (-11, 5) dies of old age. Fox 70 age: 101 @ (3, -3) dies of old age. Fox 71 age: 101 @ (-3, -8) dies of old age. Fox 72 age: 101 @ (-12, 12) dies of old age. Fox 73 age: 101 @ (30, -5) dies of old age. Fox 74 age: 101 @ (3, 4) dies of old age. Fox 75 age: 101 @ (-6, -19) dies of old age. Fox 76 age: 101 @ (-3, -1) dies of old age. Fox 77 age: 101 @ (-2, 11) dies of old age. Fox 78 age: 101 @ (-7, -11) dies of old age. Fox 79 age: 101 @ (-4, -9) dies of old age. Fox 80 age: 101 @ (-14, -5) dies of old age. Fox 81 age: 101 @ (-7, -10) dies of old age. Fox 82 age: 101 @ (1, -1) dies of old age. Fox 83 age: 101 @ (1, -5) dies of old age. Fox 84 age: 101 @ (-19, 5) dies of old age. Fox 85 age: 101 @ (-12, 7) dies of old age. Fox 86 age: 101 @ (4, 11) dies of old age. Fox 87 age: 101 @ (1, 1) dies of old age. Fox 88 age: 101 @ (2, -5) dies of old age. Fox 89 age: 101 @ (-6, -12) dies of old age. Fox 90 age: 101 @ (4, 0) dies of old age. Fox 91 age: 101 @ (-1, 4) dies of old age. Fox 92 age: 101 @ (-16, 1) dies of old age. Fox 93 age: 101 @ (5, -3) dies of old age. Fox 94 age: 101 @ (-14, 5) dies of old age. Fox 95 age: 101 @ (-8, -1) dies of old age. Fox 96 age: 101 @ (-7, 14) dies of old age. Fox 97 age: 101 @ (-2, 1) dies of old age. Fox 98 age: 101 @ (13, -9) dies of old age. Fox 99 age: 101 @ (-5, 7) dies of old age. >>> Thanks again. Kirby From francois.schnell at gmail.com Sat Apr 22 07:50:19 2006 From: francois.schnell at gmail.com (francois schnell) Date: Sat, 22 Apr 2006 07:50:19 +0200 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <24d517dd0604211130x1561a86fsdace14c8f0e3f72b@mail.gmail.com> <4449467D.3020504@colorstudy.com> <13a83ca10604211606j822d426q204e2ebbe39a5ce7@mail.gmail.com> Message-ID: <13a83ca10604212250g76a2663ia1c061ea1203b1f1@mail.gmail.com> On 22/04/06, kirby urner wrote: > > > Keep in mind that St?phane Ducasse, the author 'Squeak: Learn > Programming with Robots' was present at the summit, as were Guido and > myself, and Alan Kay. Squeak was capably demonstrated, plus > curriculum materials shared. > > I know but this wasn't the case of all the other people on this thread (or I missed something). I think it's important to clarify what people are talking about. One of the classic problem is the confusion between Squeak and E-Toys (or "Squeak-E-Toys"). Squeak is the full multimedia smalltalk for programmers (-> squeak.org). E-Toys is just a part which use Morphic and its viewer framework for end-users or kids (-> squeakland.org) If you talk about "Squeak" on Squeak.org list people expect smalltalk code, Squeak Browser, Change Set, Method Finder, etc ... Obviously the two learning curves are very different and the targeted audience also. I imagine what people are talking about here is mainly E-Toys (or Squeak E-Toys) but I could be wrong. francois -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060422/a81d3f63/attachment.htm From delza at livingcode.org Sat Apr 22 08:10:47 2006 From: delza at livingcode.org (Dethe Elza) Date: Fri, 21 Apr 2006 23:10:47 -0700 Subject: [Edu-sig] Vector Library (was: Shuttleworth Summit) Message-ID: <24d517dd0604212310k1f523dejce321a13bd123b87@mail.gmail.com> If you want a smaller library than Mozilla's xulrunner, it might be worth considering PyCairo[1]. Cairo is the 2D vector library that Mozilla is moving to. If you want to build up from core principles, at least using vectors as the core principles beats using pixels. They're not mutually exclusive of course, but Cairo does pixels better than PyGame does vectors, from what I've seen. Cairo has a backend called glitz which takes advantage of hardware acceleration, and it can also write to Postscript files for printing, which is useful in an educational context. [1] http://cairographics.org/pycairo --Dethe On 4/21/06, Guido van Rossum wrote: > There's been considerable feedback here. I don't have the time to read > it all! I'll try to catch up later. If you really want me to comment > on something sooner, send a short self-contained message to this > thread -- I can effectively do one-off responses much better than > longer stuff. > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From guido at python.org Sat Apr 22 10:48:43 2006 From: guido at python.org (Guido van Rossum) Date: Sat, 22 Apr 2006 09:48:43 +0100 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <4449891C.6020508@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> Message-ID: Let me just add that *this* is an example of why I am going to quickly extract myself from this discussion. There are radically opposing views of education, and it very quickly gets political. I can't read up on all the stuff and I can't trust one side to be "right" just because they make the last post. I'm interested in Python software. I'm not interested in taking sides in a political discussion. --Guido On 4/22/06, Paul D. Fernhout wrote: > kirby urner wrote: > >>If that means Shuttleworth is less interested, then so be it; but > >>you might gain thousands of other developers from the unschooled ranks. > >> > >>--Paul Fernhout > > > > I don't get the impression you've really read up on the Shuttleworth > > Project, which just had its first London summit, resulting in detailed > > meeting notes, on-line in the Wiki, plus the various blog entries and > > so on. If you want to speak specifically to the Shuttleworth > > initiative, I suggest you follow more links and at least get on the > > same page? > > Maybe we are talking about different conferences or a different Mark > Shuttleworth? :-) Obviously you were there, but perhaps you saw it mainly > through the eyes of a curriculum writer? And so questioning the value of > a curriculum may be bit like a fish suddenly noticing water? :-) > > Consider: > http://www.tsf.org.za/index.php?option=content&task=view&id=107&Itemid=2 > "Shuttleworth project for *schools*" > > Some of Mark's own phrases from: > http://wiki.tsf.org.za/shuttleworthfoundationwiki/Day_20one > as an indicator of what he is thinking about (taken out of context which > would show he is open minded, true, but look at how many there are): > "primary and secondary education" > "to become a mathematics teacher" > "Technology in classrooms" > "supply technology in schools" > "Aim: to produce a curriculum" > "train teachers" > "Institutionalize ... exceptional children" > "correct portfolio of schools to implement the curriculum" > > And some phrases of Mark's from the second day: > http://wiki.tsf.org.za/shuttleworthfoundationwiki/Day_20two > "used in schools " > "In their classroom work" > "The child has to solve the problem" > "Did he come to the right answer" > "identify children who have the answers" > "How do you deal with kids who work out their own " > "the sort of skills the teachers should be taught" > "With the curriculum" > "If spent more time planning" > "do all the curriculum training" > "have a curriculum" > Several are about control here -- planning and telling kids what to do. > > Granted, other people, specifically Alan Kay, made constructivist > educational points (though even he still speaks from a somewhat > school-oriented context), and Mark responded positively towards them. I > clearly think Mark is looking for more ideas, and hence his summit. I > acknowledge Mark's flexibility and potential to change; he's one of the > few people (dozens?) who has looked at the Earth from space with his own > eyes, and an ever rarer few (two? three?) who did it with their own money. > > Still, I think my point remains, that, acknowledging he had the Summit to > look for new ideas, that a "mass schooling == education" equality was, and > is still, the source of light illuminating how he is looking at things. > And it was the "elephant in the living room" no one talked about (though > see below). At best there seems to have been some discussion of how in one > broad area of schooling (math & science) there might be a little > constructivist approach used here and there in a few grades part of the > time. But in reality, any conventional *compulsary* school > http://www.johntaylorgatto.com/chapters/5i.htm > based approach built on a *compulsary* curriculum will undermine the very > notion of what he hopes for in wanting to help preparing kids for the > future -- a one likely involving a lot of freewheeling free and open > source volunteer community participation. Even forcing kids to help each > other learn fixed materials undermines part of that message. Those sorts > of truly collaborative skills stem out of self-motivation, not compulsion, > and they will only grow ever more important as our society adopts more and > more productive technologies worldwide, moving to a world transcending > even the notion of "work" itself. > http://www.whywork.org/ > > There was one section where the elephant was apparently mentioned, when > the notion of radical changes was brought up and then dismissed on the > secodn day: "HK2: Extreme crisis- complete overhaul would mean a higher > impact ... VR: Although complete overhaul would be ideal- it would be > counterproductive given the realities of South Africa." > > Time and time again that same conversation comes up the same way, with the > same result. So we are left with a focus on: Curriculum, Curriculum, > Curriculum -- that is a recurrent them in Mark's phrasing. > > Some comments by an unschooling advocate on the notion of a curriculum: > http://www.naturalchild.com/guest/earl_stevens.html > "Allowing curriculums, textbooks, and tests to be the defining, driving > force behind the education of a child is a hindrance in the home as much > as in the school - not only because it interferes with learning, but > because it interferes with trust. As I have mentioned, even educators are > beginning to question the pre-planned, year-long curriculum as an > out-dated, 19th century educational system. There is no reason that > families should be less flexible and innovative than schools." > Or see links at: > "Unschooling -- Delight-driven learning" > http://home-educate.com/unschooling/ > > As New York State "Teacher of the Year" John Taylor Gatto puts it here in > his essay, on what the real curriculum is in almost any schooling context: > "The 7-Lesson Schoolteacher" > http://www.newciv.org/whole/schoolteacher.txt > "It is time that we faced the fact squarely that institutional > schoolteaching is destructive to children. ... > After an adult lifetime spent teaching school I believe the method > of mass-schooling is the only real content it has, don't be fooled into > thinking that good curriculum or good equipment or good teachers are the > critical determinants of your son and daughter's schooltime. All the > pathologies we've considered come about in large measure because the > lessons of school prevent children from keeping important appointments > with themselves and with their families, to learn lessons in self- > motivation, perseverance, self-reliance, courage, dignity and love and > lessons in service to others, which are among the key lessons of home > life. Thirty years ago these things could still be learned in the time > left after school. But television has eaten up most of that time, and a > combination of television and the stresses peculiar to two-income or > single-parent families have swallowed up most of what used to be family > time. Our kids have no time left to grow up fully human, and only thin- > soil wastelands to do it in. A future is rushing down upon our culture > which will insist that all of us learn the wisdom of non-material > experience; a future which will demand as the price of survival that we > follow a pace of natural life economical in material cost. These > lessons cannot be learned in schools as they are. School is like > starting life with a 12-year jail sentence in which bad habits are the > only curriculum truly learned. I teach school and win awards doing it. I > should know." > > For one alternative: > http://www.johntaylorgatto.com/chapters/3d.htm > "I know a school for kids ages three to eighteen that doesn't teach > anybody to read, yet everyone who goes there learns to do it, most very > well. It's the beautiful Sudbury Valley School, twenty miles west of > Boston in the old Nathaniel Bowditch "cottage" (which looks suspiciously > like a mansion), a place ringed by handsome outbuildings, a private lake, > woods, and acres of magnificent grounds. Sudbury is a private school, but > with a tuition under $4,000 a year it's considerably cheaper than a seat > in a New York City public school. At Sudbury kids teach themselves to > read; they learn at many different ages, even into the teen years (though > that's rare). When each kid is ready he or she self-instructs, if such a > formal label isn't inappropriate for such a natural undertaking. During > this time they are free to request as much adult assistance as needed. > That usually isn't much. In thirty years of operation, Sudbury has never > had a single kid who didn't learn to read. All this is aided by a > magnificent school library on open shelves where books are borrowed and > returned on the honor system. About 65 percent of Sudbury kids go on to > good colleges. The place has never seen a case of dyslexia. (That's not to > say some kids don't reverse letters and such from time to time, but such > conditions are temporary and self-correcting unless institutionalized into > a disease.) So Sudbury doesn't even teach reading yet all its kids learn > to read and even like reading. What could be going on there that we don't > understand?" > > So why build software tools oriented towards schools and a compulsory > "curriculum" if the real goal is helping kids educate themselves and > become productive citizens of the 21st century? Yes, schools could be > made a bit less terrible, but why spend rare philanthropic dollars for > such a meager outcome? Someone like Mark Shuttleworth has so much > potential as an agent of positive change, but it seems like, despite the > fact that his effort will do some small good for some school kids, it is > mostly a non-starter as far as significant change. Of course, this is to > be expected. As Gatto points out in his book: > http://www.johntaylorgatto.com/underground/toc5.htm > "Chapter Seventeen -- The Politics Of Schooling -- At the heart of the > durability of mass schooling is a brilliantly designed power fragmentation > system which distributes decision-making so widely among so many warring > interests that large-scale change is impossible without a guidebook. Few > insiders understand how to steer this ship and the few who do may have > lost the will to control it." > That is the elephant in the educational living room in all its glory. > > To be clear, this note isn't meant personally, even though it obviously > hacks at the roots of the notion of a fixed curriculum for kids, and you > personally make such curricula. I have no problems with people writing > good tutorials, or people figuring out useful educational widgets to make, > or people helping other people who spend time around kids learn how to > interact productively with them, or people thinking about what types of > things are useful to learn and laying out interesting paths for kids to > follow at their own choosing. The best part of our garden simulator is > perhaps the help system my wife spent six months writing, which is a > resource for many thousands of people on the web now. If one looks at > writing curricula in that sense, then such aids can be useful. But add > compulsion to any of those notions (even our garden simulator!), and you > get back to the problem we have today with mass compulsory schooling. It > undermines your very own work, by turning your labors of love on curricula > into instruments of torture (boredom is in a sense a form of torture) > wielded by "teachers" who (often unknowingly) teach mainly the seven real > lessons of schooling Gatto outlines instead. > > And you don't get someone like Bucky Fuller through conventional > compulsory schooling, and we certainly need more people like him in the > 21st century. From: > http://www.madrone.com/Home-ed/hs35.htm > "Almost no one who has changed our world, has reached his or her new > knowledge through [learning that results because you are forced]. ... To > me, one of the most striking examples of this is Buckminster Fuller. Until > he got glasses in elementary school, he was essentially blind. He > developed his ideas about shape and structure playing with dried peas in > kindergarten." So in that sense, Bucky's poor physical vision protected > him from the compulsory school curriculum that might have ruined his true > inner vision. > > Science education in compulsory schools is essentially a machine grinding > out diamonds (PhDs). It is also a failing pyramid scheme, since it > produces more specialists then the world needs, each of which wants to > turn out many more of the same specialist. In the words of the Vice > Provost of Caltech, Dr. David L. Goodstein: > http://www.house.gov/science/goodstein_04-01.htm > "Science education in America is a mining and sorting operation in which > we seek out diamonds in the rough that can be cut and polished into gems > just like us, the existing scientists, and we discard all the rest. This > system has produced the best scientists in the world, but it is also > responsible for the woeful technical illiteracy of the American workforce. > Furthermore, now that the period of exponential growth is over we find > ourselves with a surplus of gems that we can't afford. That is why the > Internet crackles with the complaints of young Ph.D.'s who can't get jobs > doing the research they were trained for." > > Mark sets out to do good; my worry is how many Bucky Fullers the > curriculum he plans is about to grind to ruin. Still, his may ruin less of > them then some other worse curricula, but is that the best we can hope > for, to save just a few children from the griding gears of a compulsory > schooling machine? Even in the face of impossible odds against worldwide > compulsory school machinery costing trillions of dollars a year to operate > to keep grinding down most children into dirt (cue Pink Floyd :-), > http://www.lyricsfreak.com/p/pink-floyd/108776.html [*] > or as Gatto puts it: "Bianca, You Animal, Shut Up!" > http://www.johntaylorgatto.com/underground/prologue.htm > even then, shouldn't we desperately hope for something more? And shouldn't > that desperate hope inform our vision of what truly educational software > and "computer programming for everyone" should be all about? > > --Paul Fernhout > [*] Too bad Pink Floyd didn't use the word "schooling" instead of > "education" in "Another Brick in The Wall". In that sense, even they > succumbed unwittingly to the evil they try to fight. > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From guido at python.org Sat Apr 22 12:19:02 2006 From: guido at python.org (Guido van Rossum) Date: Sat, 22 Apr 2006 11:19:02 +0100 Subject: [Edu-sig] Moving forward an educational Python environment -- leadership wanted Message-ID: I'm looking for someone to "own" the development of a Squeak-like environment for Python. I can help by getting you in touch with Alan Kay and other Squeak folks. But I just can't be managing this project myself -- I need to focus on Python 3000, which has quite a different set of goals (not incompatible, just different, and enough to keep me very busy in the next two years). To provide some background, here is (with permission, and slightly edited) a forwarded message from Mark Shuttleworth in response to something I sent him this morning. --Guido ---------- Forwarded message ---------- From: Mark Shuttleworth Date: Apr 22, 2006 8:56 AM Subject: Re: Moving forward the educational Python code development To: Guido van Rossum Cc: Kirby Urner , [...] Guido van Rossum wrote: > After Kirby's posts and mine on the Python mailing list for the >education Special Interest Group (edu-sig at python.org), several threads >have spun up showing that there is a lot of interest in the topic of >making Python more "Squeak-like", however you might want to define >this. This is great news. My sense is that it will take three or more years to get a Squeak-like environment built up in the Python world. It will take a lot of work, more raw development work than TSF is willing to fund. Our project deliverable is the curriculum and the training program for teachers to teach it, we don't want to be responsible for delivering the unified development environment through we recognise that having a unified environment is beneficial to the project. The only way the unified development environment will actually happen is if the SqueakLand community, with Alan's leadership, makes this their goal, and figures out how to work with the Python community. It's the SqueakLand folks who understand what that environment needs to "feel" like. They have the strong vision as to what the tools should do. At the same time, the Python community will need some people to step up and welcome that effort, contributing to it over time, because the SqueakLand folks are used to Squeak and they will need to learn how best to execute their vision in Python. TSF can provide some limited funding, but we're not setup to lead development efforts (we learned the hard way with SchoolTool which is now in good shape). Most of the TSF funding will go towards actual curriculum development that USES the tools available. We will initially use Logo, Squeak and Python as-is, because they are there right now, and will develop the curriculum using what's currently available with a view to consolidating it all around Python as Python gains the ability to deliver Logo-like and Squeak-like environments. > I believe now is the time to delegate to someone other than me the >task of researching the course of action; what exactly is needed, >which toolkit to use (e.g. Mozilla, pygame, OpenGL, or something >else?), and to manage the development. Unfortunately I don't have the >time to do this myself. Does the Shuttleworth Foundation have >resources to pick up this project, now that there's momentum building >up? >This could take the form of an existing Shuttleworth employee jumping >in, or some Foundation money to get one of the interested contributors >(perhaps ) to put in their time (part-time). I don't see this >happening (at the time scale envisioned) on a purely volunteer basis. >I'm sure we can get volunteers to do coding for the project; but >managing it, researching the possible options, and making decisions >probably requires someone dedicated to this task. Yes, agreed, and we can contribute some funding towards the leadership of the effort. I'm not keen to fund "part time work with no clear deliverables" because its hard to get predictable results that way. I guess what we need are you and Alan to figure out between you who will make the most effective leader, bringing together the SqueakLand vision in a Python execution, and we would step up to fund portion of that person's time. [...] I think the leadership of this effort needs to be decided after discussion with Alan too, so that whoever is the funded driving force has buy in from both communities. If you'd like to forward this message to other folks in the community as a statement of the parts TSF is able to contribute to, please do. Mark ---------- End forwarded message ---------- -- --Guido van Rossum (home page: http://www.python.org/~guido/) From lac at strakt.com Sat Apr 22 13:42:21 2006 From: lac at strakt.com (Laura Creighton) Date: Sat, 22 Apr 2006 13:42:21 +0200 Subject: [Edu-sig] Squeak or HyperCard In-Reply-To: Message from Ian Bicking of "Fri, 21 Apr 2006 17:47:02 CDT." <444960E6.2010809@colorstudy.com> References: <444960E6.2010809@colorstudy.com> Message-ID: <200604221142.k3MBgLVZ027216@theraft.strakt.com> >And then there's the question: why exactly is HyperCard worthy of >reimplementation, and what are the essential features? > >-- >Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org When hypercard came out, it was an immediate hit with people who had never programmed before, to the astonishment of its creators. I don't think that anybody ever studied these new users of hypercard to find out what it was about this that made people find it 'easier to do' than, for instance, programming in Pascal. Was it the linking? if so, have wikis and the WWW taken over this particular niche? Was it allowing ordinals and cardinals in expressions? Was it easy access to a widget library? I don't know of any research that tried to answer the question 'why Hypercard?' only the odd bit of anectdotal reports. Perhaps the fact that we don't know the answer to your question is reason enough to reimplement it? Laura From pdfernhout at kurtz-fernhout.com Sat Apr 22 14:13:14 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Sat, 22 Apr 2006 08:13:14 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> Message-ID: <444A1DDA.4050307@kurtz-fernhout.com> Guido- You are prudent to avoid politics in your public comments as the leader and BDFL for the free Python community (a double edge of celebrity, and you handle it well). And we would expect no less of you. :-) But the reality is politics is about resource allocation, including that done by a community of free and open source developers, so it plays into any design discussion (even if only done implicitly). Humans live and breath politics, even when they make a decision just to go code in a corner (which is not always a bad decision, of course. :-). Or, to paraphrase Carl von Clausewitz: http://en.wikipedia.org/wiki/Carl_von_Clausewitz "Software is is merely a continuation of politics [by other means]". :-) [Though see the article for the rest of that story.] And perhaps Kirby and I are not so far apart in some ways. :-) Certainly almost anyone on this list is looking for something better than what we have now for math and science education, with the hopes Python can be a part of it. I am very impressed with what Kirby is able to do with using existing Python tools for education. I can just wonder how much more he could do in a more post _Voyage from Yesteryear_ context, where compulsory schools have withered away as we know them now. :-) http://www.jamesphogan.com/books/voyage/baen99/titlepage.shtml See also Hogan's _Mission to Minerva_ for more on an alternative vision of schooling (presented in passing): http://www.jamesphogan.com/books/m2minerva/baen04/titlepage.shtml If you are looking for a middle way for Python, then by all means, make something attractive for both unschooling and schooling. Or, as an approach, write something for constructivist open-ended unschooling (like we did with our Garden Simulator) and then get someone like Kirby write a curriculum guide for it for when teachers choose to use it in school. :-) Seriously though, I'd rather Kirby wrote such a guide than someone less inspired, and as long as school exists, you need someone like Kirby to interface with them and their ways of doing things. And if you follow some of Alan Kay's ideas, that is probably where you will end up. Consider what Alan Kay says here: http://www.squeakland.org/school/HTML/essays/dynabook_revisited.htm "B&C : So is the Dynabook just another potential learning tool? AK : It's just like a musical instrument. You don't need it. The most important thing about any musical instrument is that you don't need the damn thing in the first place. Because people all have got an instrument inside them. If you have a great musician and a bunch of children, you've got music, because that person can teach them how to sing. On the other hand, you can have the best instruments in the world, but if the music teacher is no good, nothing's going to happen. You can look for the music inside the piano, but that's not where it is. Same thing with the Dynabook. You don't need technology to learn science and math. You just absolutely don't need it. What you need to have are the right conditions. In music, if you've got the right conditions and you've got music happening, then the instruments amplify what you've got like mad. The best thing a teacher can do is to set up the best conditions for each kid to learn. Once you have that, then the computer can help immeasurably. Conversely, just putting computers in the schools without creating a rich learning environment is useless -- worse than useless, because it's a red herring. There's a sense something good is happening, when nothing real is happening at all. Marshall McLuhan made the point that one of the crucial things about printed books was that you didn't have to read them in a social setting, such as a classroom. People can pursue knowledge independently and from the most unorthodox, subversive, or just plain weird points of view. But that is rarely how things are taught in school. Most educators want kids to learn things in the form of belief rather than being able to construct a kind of skeptical scaffolding, which is what science is all about. The ability to explore and test multiple points of view is one of the great strengths of our culture, but you'd never know it by looking at a classroom. Science today is taught in America as a secular religion. But science is not the same as knowing the things learned by science. Science itself is a stance in relationship to knowledge. In order to do science, you have to give up the notion of truth. Because we don't know the world directly; we know the world through our mind's representational systems, which are like maps. Science is a map that is always incomplete, and so it can always be criticized and improved. And that's why it's so effective at, say, treating diabetes, or whatever. Because the map is incomplete, it can always be improved, and so it is the best way to deal with what is. One of the problems with the way computers are used in education is that they are most often just an extension of this idea that learning means just learning accepted facts. But what really interests me is using computers to transmit ideas, points of view, ways of thinking. You don't need a computer for this, but just as with a musical instrument, once you get onto this way of using them, then the computer is a great amplifier for learning." So, one point is to consider software development environments (and education) as an amplifier of individual diversity, like a musical instrument, rather than use it to level people into standard ways of doing things. Still, if you look at the failure of other educational reform initiatives, like Lego/Logo (a big success for learning, but a failure in widespread school adoption) what you will see is that people create the great open ended learning environments where kids could learn math and science or other things, and then the creators (.e.g. Papert) lament that schools tell kids what to do with the open ended tools in a very micromanaging kind of way, oriented around curriculum checkpoints, defeating the whole purpose of the thing. One can accept that is likely to happen to any innovation inserted into a school context (even John Holt gave up reforming them after decades spent trying) http://www.holtgws.com/index.html but the point I am making is that it is important to design your stuff to operate outside school restrictions and a school setting anyway, to have any hope of success with CP4E. Thus, for example, I think, for example, focusing on a browser applet plugin is not a good idea. Yes, have that mixed in as a delivery point perhaps if it is easy, but not at the core. I'd say the failure of mass compulsory schooling, like global climate change, is really a settled issue (and it was even brought up at the summit). So that part is not controversial (very much). It's just that some social processes are so very hard to stop once they get going. And as Gatto points out, if only the problem were just a conspiracy to be easily dealt with by a few changes. http://www.johntaylorgatto.com/underground/prologue8.htm "If you obsess about conspiracy, what you?ll fail to see is that we are held fast by a form of highly abstract thinking fully concretized in human institutions which has grown beyond the power of the managers of these institutions to control. If there is a way out of the trap we?re in, it won?t be by removing some bad guys and replacing them with good guys. Who are the villains, really, but ourselves? People can change, but systems cannot without losing their structural integrity". I could say a lot of things about "militarism", "War is a racket" -- Major General Smedley Darlington Butler http://lexrex.com/enlightened/articles/warisaracket.htm but the US "military" itself (esp. DARPA) is nonetheless full of a lot of very smart people, many who think very deeply about the meaning of "security", and if you consider the origins of CP4E as a DARPA grant http://www.python.org/doc/essays/cp4e.html it was to address a very real need in US society -- that of mathematically and scientifically and computationally literate people -- people who could make the US a viable society in the 21st century. (One reason the USA had to import you. :-) But how in the world can the be such a demand exist, considering, say, http://www.eda.admin.ch/washington_emb/e/home/science/usa.html "In 2001, more than 780 billion US $ were spent on education, approximately 7.7 % of the US GDP."? Does that make any sense? Clearly the issue is not money spent. It is how it is spent. Another example from the US military (From Gatto): http://www.johntaylorgatto.com/chapters/3b.htm "After the psychologists told the officers that the graduates weren?t faking, Defense Department administrators knew that something terrible had happened in grade school reading instruction. And they knew it had started in the thirties. Why they remained silent, no one knows. The switch back to reading instruction that worked for everyone should have been made then. But it wasn?t." The military may not have the entire solution, but they are grounded enough in reality to see the scope of the problem -- after all, they have to deal with it every day in managing recruits. And they understand the value of informal science education. In US society after all it is more the non-compulsory museums (like the Exploratorium) http://www.exploratorium.edu/ and free libraries (and now the internet) that are succeeding teaching math and science, not the schools. The need for scientifically and technically and computationally literate people is not the US's only need, but it remains an important one, and that need I would suggest is a symptom of deeper problems with the schooling enterprise, as schooling was designed precisely not to make skeptics of the masses, but instead to make factory worker conformists. How can a conformist do real science or math? True, "We cannot command Nature except by obeying her" -- Francis Bacon, but after that basic obedience comes a very open ended world of choices. So, in some ways, while everything is political, I think the issue of the failure of compulsory mass schooling is not as controversial as one might think. Still, what is controversial, and political, is more how to fix them (more of the same and "higher standards", or "and now for something completely different". :-) Consider Jerry Mintz's comments here: http://www.greenmoneyjournal.com/article.mpl?newsletterid=21&articleid=195 "Nevertheless, there is an education revolution going on, and it is long overdue. It is moving in the diametrically opposite direction of the "testing" push. The latter comes from the bureaucrats from within that dying system, who do know there is something wrong. But since they can't think "out of the box," the only remedy they can come up with is longer hours, more homework, and "teaching to the test," in other words, more of the same. The education revolution is coming from people who have created alternative schools and programs, thousands of them, and from others who have checked "none of the above" and have decided to home educate. There are now nearly two million people home educating. The first charter school was started in 1991. Now there are 2500 of them! And there are over 7500 additional alternatives in our database and many thousands more we have yet to discover. All of these fall in the general category of "learner-centered" approaches. We list many of them in our book, The Almanac of Education Choices. These people are steadfastly OPPOSED to the governmental thrust for more "standardization" and testing. So a battle is looming. The testers will ultimately lose. It has happened before, most recently in the 80's with the "Back to Basics" movement. The question is only how long it will take, and how much destructiveness will happen in the interim. " The problem as I see it through, is you can't have a "national curriculum" without "national standards". Which means ultimately Mark's initiative is almost certain to be frustrated in the process. By all means it is worth doing almost anything to help a few kids, but the question is, will it achieve the kind of larger change he must be looking for, consider alternative paths that might be more productive (like focusing on software tools for unschoolers/homeschoolers)? Clearly, Mark Shuttleworth is not in the "higher standards" camp. And that is a good thing. So, we are just really talking about the meaning of "completely" in Monty Python's "and now for something completely different". :-) All the best. --Paul Fernhout Guido van Rossum wrote: > Let me just add that *this* is an example of why I am going to quickly > extract myself from this discussion. There are radically opposing > views of education, and it very quickly gets political. I can't read > up on all the stuff and I can't trust one side to be "right" just > because they make the last post. I'm interested in Python software. > I'm not interested in taking sides in a political discussion. > > --Guido From kirby.urner at gmail.com Sat Apr 22 15:40:09 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 22 Apr 2006 06:40:09 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <444A1DDA.4050307@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444A1DDA.4050307@kurtz-fernhout.com> Message-ID: Paul: >If you are looking for a middle way for Python, then by all means, make >something attractive for both unschooling and schooling. Or, as an >approach, write something for constructivist open-ended unschooling (like >we did with our Garden Simulator) and then get someone like Kirby write a >curriculum guide for it for when teachers choose to use it in school. :-) Like I said Paul, this is less about some guy like me coming in with some mandatory curriculum, and more about anybody with talent, including students, coming up with lesson plans for a central repository, with field tested better than not field tested i.e. if you have a classroom activity for us, one you've actually tried, why not share it? Let others improve on it, mix and match. The repository grows. That's the open source way. A whole *separate* thread is the idea of coming up with new software tools that don't currently exist, especially tools aimed to help with education, such as a more powerful graphics engine with Python bindings. Or a new kind of HyperCard. For a lot of geeks, a first reflex is: what new software might we write? But that's not always the key question. My advice to Shuttleworth Project (like when I write to staff) is consistent: Even if we had no new software, we already have the tools to come up with a dynamite learning environment that helps cultivate analytical skills per Project goals, by a bottom-up process. And yet: new software *will* be coming down the pipe (exactly what it looks like we can't always say -- edu-sig is one place where we dream and/or share working examples). So... best of both worlds: what we already have is enough to get us going, plus we're looking forward to more. Kirby From guido at python.org Sat Apr 22 16:15:36 2006 From: guido at python.org (Guido van Rossum) Date: Sat, 22 Apr 2006 15:15:36 +0100 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <444A1DDA.4050307@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444A1DDA.4050307@kurtz-fernhout.com> Message-ID: Paul, Is there any way you could say this in less than 20 lines? As it stands it's way too long for me to read. I'd like to present Shuttleworth's POV in capsule. South Africa's educational system is bankrupt (not literally but practically). With limited means compared to the SA department of education (see the financials downloadable from tsf.org.za) Shuttleworth is trying to provide something useful for SA's poorest kids to prevent a whole generation from being lost. I severely doubt that whatever might fix the US educational system will work in SA. --Guido On 4/22/06, Paul D. Fernhout wrote: > Guido- > > You are prudent to avoid politics in your public comments as the leader > and BDFL for the free Python community (a double edge of celebrity, and > you handle it well). And we would expect no less of you. :-) > > But the reality is politics is about resource allocation, including that > done by a community of free and open source developers, so it plays into > any design discussion (even if only done implicitly). Humans live and > breath politics, even when they make a decision just to go code in a > corner (which is not always a bad decision, of course. :-). > > Or, to paraphrase Carl von Clausewitz: > http://en.wikipedia.org/wiki/Carl_von_Clausewitz > "Software is is merely a continuation of politics [by other means]". :-) > [Though see the article for the rest of that story.] > > And perhaps Kirby and I are not so far apart in some ways. :-) Certainly > almost anyone on this list is looking for something better than what we > have now for math and science education, with the hopes Python can be a > part of it. I am very impressed with what Kirby is able to do with using > existing Python tools for education. I can just wonder how much more he > could do in a more post _Voyage from Yesteryear_ context, where compulsory > schools have withered away as we know them now. :-) > http://www.jamesphogan.com/books/voyage/baen99/titlepage.shtml > See also Hogan's _Mission to Minerva_ for more on an alternative vision of > schooling (presented in passing): > http://www.jamesphogan.com/books/m2minerva/baen04/titlepage.shtml > > If you are looking for a middle way for Python, then by all means, make > something attractive for both unschooling and schooling. Or, as an > approach, write something for constructivist open-ended unschooling (like > we did with our Garden Simulator) and then get someone like Kirby write a > curriculum guide for it for when teachers choose to use it in school. :-) > Seriously though, I'd rather Kirby wrote such a guide than someone less > inspired, and as long as school exists, you need someone like Kirby to > interface with them and their ways of doing things. And if you follow some > of Alan Kay's ideas, that is probably where you will end up. > > Consider what Alan Kay says here: > http://www.squeakland.org/school/HTML/essays/dynabook_revisited.htm > "B&C : So is the Dynabook just another potential learning tool? > AK : It's just like a musical instrument. You don't need it. The most > important thing about any musical instrument is that you don't need the > damn thing in the first place. Because people all have got an instrument > inside them. If you have a great musician and a bunch of children, you've > got music, because that person can teach them how to sing. On the other > hand, you can have the best instruments in the world, but if the music > teacher is no good, nothing's going to happen. You can look for the music > inside the piano, but that's not where it is. Same thing with the > Dynabook. You don't need technology to learn science and math. You just > absolutely don't need it. What you need to have are the right conditions. > In music, if you've got the right conditions and you've got music > happening, then the instruments amplify what you've got like mad. The best > thing a teacher can do is to set up the best conditions for each kid to > learn. Once you have that, then the computer can help immeasurably. > Conversely, just putting computers in the schools without creating a rich > learning environment is useless -- worse than useless, because it's a red > herring. There's a sense something good is happening, when nothing real is > happening at all. Marshall McLuhan made the point that one of the crucial > things about printed books was that you didn't have to read them in a > social setting, such as a classroom. People can pursue knowledge > independently and from the most unorthodox, subversive, or just plain > weird points of view. But that is rarely how things are taught in school. > Most educators want kids to learn things in the form of belief rather than > being able to construct a kind of skeptical scaffolding, which is what > science is all about. The ability to explore and test multiple points of > view is one of the great strengths of our culture, but you'd never know it > by looking at a classroom. Science today is taught in America as a secular > religion. But science is not the same as knowing the things learned by > science. Science itself is a stance in relationship to knowledge. In order > to do science, you have to give up the notion of truth. Because we don't > know the world directly; we know the world through our mind's > representational systems, which are like maps. Science is a map that is > always incomplete, and so it can always be criticized and improved. And > that's why it's so effective at, say, treating diabetes, or whatever. > Because the map is incomplete, it can always be improved, and so it is the > best way to deal with what is. One of the problems with the way computers > are used in education is that they are most often just an extension of > this idea that learning means just learning accepted facts. But what > really interests me is using computers to transmit ideas, points of view, > ways of thinking. You don't need a computer for this, but just as with a > musical instrument, once you get onto this way of using them, then the > computer is a great amplifier for learning." > > So, one point is to consider software development environments (and > education) as an amplifier of individual diversity, like a musical > instrument, rather than use it to level people into standard ways of doing > things. > > Still, if you look at the failure of other educational reform initiatives, > like Lego/Logo (a big success for learning, but a failure in widespread > school adoption) what you will see is that people create the great open > ended learning environments where kids could learn math and science or > other things, and then the creators (.e.g. Papert) lament that schools > tell kids what to do with the open ended tools in a very micromanaging > kind of way, oriented around curriculum checkpoints, defeating the whole > purpose of the thing. One can accept that is likely to happen to any > innovation inserted into a school context (even John Holt gave up > reforming them after decades spent trying) > http://www.holtgws.com/index.html > but the point I am making is that it is important to design your stuff to > operate outside school restrictions and a school setting anyway, to have > any hope of success with CP4E. Thus, for example, I think, for example, > focusing on a browser applet plugin is not a good idea. Yes, have that > mixed in as a delivery point perhaps if it is easy, but not at the core. > > I'd say the failure of mass compulsory schooling, like global climate > change, is really a settled issue (and it was even brought up at the > summit). So that part is not controversial (very much). It's just that > some social processes are so very hard to stop once they get going. And as > Gatto points out, if only the problem were just a conspiracy to be easily > dealt with by a few changes. > http://www.johntaylorgatto.com/underground/prologue8.htm > "If you obsess about conspiracy, what you'll fail to see is that we are > held fast by a form of highly abstract thinking fully concretized in human > institutions which has grown beyond the power of the managers of these > institutions to control. If there is a way out of the trap we're in, it > won't be by removing some bad guys and replacing them with good guys. Who > are the villains, really, but ourselves? People can change, but systems > cannot without losing their structural integrity". > > I could say a lot of things about "militarism", > "War is a racket" -- Major General Smedley Darlington Butler > http://lexrex.com/enlightened/articles/warisaracket.htm > but the US "military" itself (esp. DARPA) is nonetheless full of a lot of > very smart people, many who think very deeply about the meaning of > "security", and if you consider the origins of CP4E as a DARPA grant > http://www.python.org/doc/essays/cp4e.html > it was to address a very real need in US society -- that of mathematically > and scientifically and computationally literate people -- people who could > make the US a viable society in the 21st century. (One reason the USA had > to import you. :-) > > But how in the world can the be such a demand exist, considering, say, > http://www.eda.admin.ch/washington_emb/e/home/science/usa.html > "In 2001, more than 780 billion US $ were spent on education, > approximately 7.7 % of the US GDP."? Does that make any sense? > > Clearly the issue is not money spent. It is how it is spent. Another > example from the US military (From Gatto): > http://www.johntaylorgatto.com/chapters/3b.htm > "After the psychologists told the officers that the graduates weren't > faking, Defense Department administrators knew that something terrible had > happened in grade school reading instruction. And they knew it had started > in the thirties. Why they remained silent, no one knows. The switch back > to reading instruction that worked for everyone should have been made > then. But it wasn't." > > The military may not have the entire solution, but they are grounded > enough in reality to see the scope of the problem -- after all, they have > to deal with it every day in managing recruits. And they understand the > value of informal science education. In US society after all it is more > the non-compulsory museums (like the Exploratorium) > http://www.exploratorium.edu/ > and free libraries (and now the internet) that are succeeding teaching > math and science, not the schools. The need for scientifically and > technically and computationally literate people is not the US's only need, > but it remains an important one, and that need I would suggest is a > symptom of deeper problems with the schooling enterprise, as schooling was > designed precisely not to make skeptics of the masses, but instead to make > factory worker conformists. How can a conformist do real science or math? > True, "We cannot command Nature except by obeying her" -- Francis Bacon, > but after that basic obedience comes a very open ended world of choices. > > So, in some ways, while everything is political, I think the issue of the > failure of compulsory mass schooling is not as controversial as one might > think. Still, what is controversial, and political, is more how to fix > them (more of the same and "higher standards", or "and now for something > completely different". :-) Consider Jerry Mintz's comments here: > http://www.greenmoneyjournal.com/article.mpl?newsletterid=21&articleid=195 > "Nevertheless, there is an education revolution going on, and it is long > overdue. It is moving in the diametrically opposite direction of the > "testing" push. The latter comes from the bureaucrats from within that > dying system, who do know there is something wrong. But since they can't > think "out of the box," the only remedy they can come up with is longer > hours, more homework, and "teaching to the test," in other words, more of > the same. The education revolution is coming from people who have created > alternative schools and programs, thousands of them, and from others who > have checked "none of the above" and have decided to home educate. There > are now nearly two million people home educating. The first charter school > was started in 1991. Now there are 2500 of them! And there are over 7500 > additional alternatives in our database and many thousands more we have > yet to discover. All of these fall in the general category of > "learner-centered" approaches. We list many of them in our book, The > Almanac of Education Choices. These people are steadfastly OPPOSED to the > governmental thrust for more "standardization" and testing. So a battle is > looming. The testers will ultimately lose. It has happened before, most > recently in the 80's with the "Back to Basics" movement. The question is > only how long it will take, and how much destructiveness will happen in > the interim. " > > The problem as I see it through, is you can't have a "national curriculum" > without "national standards". Which means ultimately Mark's initiative is > almost certain to be frustrated in the process. By all means it is worth > doing almost anything to help a few kids, but the question is, will it > achieve the kind of larger change he must be looking for, consider > alternative paths that might be more productive (like focusing on software > tools for unschoolers/homeschoolers)? > > Clearly, Mark Shuttleworth is not in the "higher standards" camp. And that > is a good thing. So, we are just really talking about the meaning of > "completely" in Monty Python's "and now for something completely > different". :-) > > All the best. > > --Paul Fernhout > > Guido van Rossum wrote: > > Let me just add that *this* is an example of why I am going to quickly > > extract myself from this discussion. There are radically opposing > > views of education, and it very quickly gets political. I can't read > > up on all the stuff and I can't trust one side to be "right" just > > because they make the last post. I'm interested in Python software. > > I'm not interested in taking sides in a political discussion. > > > > --Guido > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From kirby.urner at gmail.com Sat Apr 22 16:16:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 22 Apr 2006 07:16:59 -0700 Subject: [Edu-sig] Life Clock In-Reply-To: References: <7528bcdd0604211647y3b945412y741b10f06dd957f5@mail.gmail.com> <7528bcdd0604212015k7075d676wcc98e42b8df5f31c@mail.gmail.com> Message-ID: OK, here're two related Python modules for students to play with: Intro to OO animals: http://www.4dsolutions.net/ocn/python/zoo.py OO animals with a life clock: http://www.4dsolutions.net/ocn/python/jungle.py I'm starting a new Saturday Academy class today and intend to use both of these as a kind of ice breaker, meaning a way to quickly get into a lot of Python concepts. The computer lab I'm using supposedly has VPython and POV-Ray, in addition to Python, so we'll be branching out into more visualizations eventually, I expect. Thanks for your help Andre. I left room for additional collaborators if anyone feels like jumping in e.g. showing our animals moving around as colored blobs in VPython for example (might be a student project). Kirby From jeff at elkner.net Sat Apr 22 16:46:12 2006 From: jeff at elkner.net (Jeffrey Elkner) Date: Sat, 22 Apr 2006 14:46:12 +0000 Subject: [Edu-sig] Look for opportunities and avoid bogging down in differences... In-Reply-To: Message-ID: <20060422144612.22481.1018292027.divmod.quotient.15976@ohm> I'm not sure what to make of all the discussion on the list lately. Is it a hopefull sign of motion toward real gains developing tools for Python in Computer Science education, or is it just a whole lot of bluster which will soon blow away folks interested in actually getting something done? It seems to me that we should seek the broadest possible unity, find collaboration possibilities where they exist, understand that there will never be *one solution*, and respectfully permit folks with a different approach to do their own thing without feeling compelled to convince them they are wrong. Then perhaps we could use the tools at our disposal to make a real impact on the lives of young learners. My interest here is very personal. I want to become a more effective teacher and to better serve the students who enter my classroom. I'm not really interested in entertaining the notion that perhaps there shouldn't be a classroom, and that everything I'm doing is outdated and should be abandoned in favor of some other approach to learning. It does not bother me in the least that others may be exploring such things, but if that is the main focus of this list then I really don't belong on it. Anyone out there interested in mentoring high school age students with Python projects? Andr? Roberge has kindly offered to work with some of my students on GASP (a livewires rewrite using pygame). His was the only response to my earlier request for mentors, and the only thing good to come to me recently from being on this list (thanks, Andr?!). I would love to be involved as "on-site customer" for a new Squeak-like environment for Python. It would be great if folks with the required skills could answer Guido's call to take up that project. I would be more than happy to provide student testers to work with the developers testing the software, and to work writing curriculum (for those interested in curriculum ;-) using the new system. jeff elkner yorktown high school arlington, va jeff at elkner.net >Let me just add that *this* is an example of why I am going to quickly >extract myself from this discussion. There are radically opposing >views of education, and it very quickly gets political. I can't read >up on all the stuff and I can't trust one side to be "right" just >because they make the last post. I'm interested in Python software. >I'm not interested in taking sides in a political discussion. > >--Guido From andre.roberge at gmail.com Sat Apr 22 17:01:42 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 22 Apr 2006 12:01:42 -0300 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444A1DDA.4050307@kurtz-fernhout.com> Message-ID: <7528bcdd0604220801l76c494aao5a3a8b5ad44136f9@mail.gmail.com> On 4/22/06, Guido van Rossum wrote: [snip] > I'd like to present Shuttleworth's POV in capsule. > > South Africa's educational system is bankrupt (not literally but > practically). With limited means compared to the SA department of > education (see the financials downloadable from tsf.org.za) > Shuttleworth is trying to provide something useful for SA's poorest > kids to prevent a whole generation from being lost. I severely doubt > that whatever might fix the US educational system will work in SA. > > --Guido > There are brilliant teachers that do not need a set curriculum to guide students, that do not feel threatened by students finding out things on their own that they themselves (the teachers) did not know, but rather thrive on it. There are other individuals, often without formal training in pedagogy, that choose to guide a few students (often their own children) outside of traditional settings (e.g. home schooling). Then there's the rest of them, the majority... One can not count on either of the first two kind of people described above to educate children of an entire nation. The average teacher needs a "crutch" (read: a well-defined curriculum) to follow and help him or her teach. I applaud Shuttleworth's initiative ... and I am not convinced that whatever comes out of it could not be of significant use in the U.S. (or Canada :-) as well. Here's a challenge to anyone interested: rather than debating what's the "best way" to teach, how about coming out with an actual "lesson/learning exercise" or a small computer program that could be used today by an *average* teacher in S.A., who may not be as computer litterate as people on this list are. Andr? From kirby.urner at gmail.com Sat Apr 22 17:12:15 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 22 Apr 2006 08:12:15 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <7528bcdd0604220801l76c494aao5a3a8b5ad44136f9@mail.gmail.com> References: <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444A1DDA.4050307@kurtz-fernhout.com> <7528bcdd0604220801l76c494aao5a3a8b5ad44136f9@mail.gmail.com> Message-ID: > Here's a challenge to anyone interested: > rather than debating what's the "best way" to teach, how about coming out > with an actual "lesson/learning exercise" or a small computer > program that could be used today by an *average* teacher in S.A., > who may not be as computer litterate as people on this list are. > > Andr? I'd like to amend that: Picture a tuxLab in the hinterland, maybe near Bloem (Orange Free State). Stack of DVDs in the corner. Player. Teachers make sure stuff doesn't walk away, like police (they know the police). The police are good in this picture (a simplification). GNOME. As time goes on: Mono. Strategy: those who know (whatever age) teach those who don't (any age), except it's not a one way street because there's always more of them than there are of you (i.e. you'll be getting taught, as much as you also teach). This is the realistic beginning. The tuxLabs already exist. The free Ubuntu and Edubuntu are legally downloadable, burnable, copiable. We'll feed the distros from back office locations, work with NGOs on getting those DVDs spread around (by jeep, whatever). Teachers will be empowered to float lesson plans in the repository, and talent will get noticed (by other teachers -- same as always in other words: peer review). Kirby From kirby.urner at gmail.com Sat Apr 22 17:36:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 22 Apr 2006 08:36:13 -0700 Subject: [Edu-sig] Look for opportunities and avoid bogging down in differences... In-Reply-To: <20060422144612.22481.1018292027.divmod.quotient.15976@ohm> References: <20060422144612.22481.1018292027.divmod.quotient.15976@ohm> Message-ID: On 4/22/06, Jeffrey Elkner wrote: > I'm not sure what to make of all the discussion on the list lately. Hi Jeff -- A temporary spike as we come down off the high mountains of the Shuttleworth Summit, Chelsea, UK. I don't expect this high volume of PySqueaking to continue. Per my theme of X years on this list, I'm not looking to improve computer science education per se. I'm into taking over for math teachers, who haven't kept up with the technology curve, which means their students have been left behind. So, for example, this recent Life Clocks thread in edu-sig translates directly to this Math Forum lesson plan, which I'm about to go field test at Portland State University, in my role as Adjunct Faculty, Silicon Forest, Oregon. http://mathforum.org/kb/thread.jspa?threadID=1369616 Kirby From andre.roberge at gmail.com Sat Apr 22 18:02:32 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 22 Apr 2006 13:02:32 -0300 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444A1DDA.4050307@kurtz-fernhout.com> <7528bcdd0604220801l76c494aao5a3a8b5ad44136f9@mail.gmail.com> Message-ID: <7528bcdd0604220902h3d5901cdg66d1adb8e8f5e8ac@mail.gmail.com> On 4/22/06, kirby urner wrote: > > Here's a challenge to anyone interested: > > rather than debating what's the "best way" to teach, how about coming out > > with an actual "lesson/learning exercise" or a small computer > > program that could be used today by an *average* teacher in S.A., > > who may not be as computer litterate as people on this list are. > > > > Andr? > > I'd like to amend that: > > Picture a tuxLab in the hinterland, maybe near Bloem (Orange Free > State). Stack of DVDs in the corner. Player. Teachers make sure > stuff doesn't walk away, like police (they know the police). The > police are good in this picture (a simplification). GNOME. As time > goes on: Mono. Strategy: those who know (whatever age) teach those > who don't (any age), except it's not a one way street because there's > always more of them than there are of you (i.e. you'll be getting > taught, as much as you also teach). > > This is the realistic beginning. The tuxLabs already exist. The free > Ubuntu and Edubuntu are legally downloadable, burnable, copiable. > We'll feed the distros from back office locations, work with NGOs on > getting those DVDs spread around (by jeep, whatever). Teachers will > be empowered to float lesson plans in the repository, and talent will > get noticed (by other teachers -- same as always in other words: peer > review). > "The tuxLabs already exist... Teachers will be empowered to float lesson plans in the repository..." My point is that there is no "floating of lessons in the repository" taking place (save perhaps by yourself :-). This is what needs to happen, and why I "issued a challenge". I've tried (with rur-ple) and it's hard work, much harder than programming! (aside: rur-ple is slowly creeping towards version 1.0 - the only reason it's not there yet is because there are many lessons left from what I thought version 1.0 should include. Software-wise, I could have called a much-earlier release the 1.0 version.) Andr? > Kirby > From mtobis at gmail.com Sun Apr 23 01:00:27 2006 From: mtobis at gmail.com (Michael Tobis) Date: Sat, 22 Apr 2006 18:00:27 -0500 Subject: [Edu-sig] Look for opportunities and avoid bogging down in differences... In-Reply-To: <20060422144612.22481.1018292027.divmod.quotient.15976@ohm> References: <20060422144612.22481.1018292027.divmod.quotient.15976@ohm> Message-ID: I agree with the subject line. Jeff, the not-very-rich client idea we discussed at PyCon is very much on my mind. I think I've got a realistic design for a doctest-driven beginners' programming courseware suitable for presenting HHTLCSpy - type materials that can be put together in a week or so with my level of skill. (Or a half-day if I let Ian B in on it... ) That week probably won't happen before early June, but I think I'll have something of immediate interest to you early enough in the summer that we can develop real curriculum in time for next fall. I am also mentoring people in Python here in Chicago, both in an informal ad hoc group and at an inner city high school, largely as a consequence of your influence. It's been a remarkable experience for me! On the other hand, I am absolutely beside myself with enthusiasm for the confluence of Squeak and Python! (See this page in my personal web pages: http://geosci.uchicago.edu/~tobis/squeak.html ) I don't think Squeathon competes with HTTLCSpy ; rather I hope to establish my bona fides in this area by delivering a small package of immediate utility that I hope you will find useful enough to actually use, and soon at that! I think this list can accommodate both near-term and long-term objectives, especially if we eschew hair-splitting and tangential philosophy in favor of useful results both immediate and long-term. mt From pdfernhout at kurtz-fernhout.com Sun Apr 23 04:06:10 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Sat, 22 Apr 2006 22:06:10 -0400 Subject: [Edu-sig] Moving forward an educational Python environment In-Reply-To: References: Message-ID: <444AE112.7070404@kurtz-fernhout.com> Guido- It's really exciting to see the idea moving forward of Squeak concepts running on a stable Python base that all was under conventional "free" and "open source" licenses, and that Squeak-like technology could finally be in the "free" part of a Debian-based distribution. I'm certainly willing to throw my hat in the ring (not to discourage anybody else, though :-); however, see the end for some limitations. I'm posting this to the edusig list because people might be interested in commenting on these ideas or working them into their own proposals. I'm happy to privately send a resume (since we are talking funding here), but for now instead here are my initial thoughts on how I would approach this. Obviously, these notions could be refined by talking to other people (especially Squeakers) at the start. And tactics would also depend on who else wanted to help. Essentially they cover choice of language and technologies, and then a sketch of a development plan. The major parts of the development plan as I see it initially would include roughly in order: * adding more support for changing Python applications while they are running, * getting a Smalltalk-like language on top of Python that uses Python libraries, (optional, but Squeaker-friendly) * integrating in a HyperCard/PythonCard derivative, * stress testing the system by getting one or more major constructivist educational applications under it (like our Garden Simulator), * adding eToys and Logo support, * and finally moving into work on supporting 2D/3D Croquet-like capabilities (the last item being what would take a very long time, having future subplans, and so on). How polished any of those things end up being would be a function of how much other people get involved; I would see my initial goal to get the systems working together under Ubuntu and then hope others will see value in them and help keep them going as I take on a more coordinating role as time goes by (though I'd rather be coding when I can, especially in such a neat system.) === objective === The overall objective would be to capture the excitement Alan Kay conveys about Squeak Smalltalk, eToys, Croquet and so on, but do that on a stable and freely licensed Python base. The specific goal would be using Python to deliver constructivist educational activities, both helping people create 3D simulations and helping people use a variety of programming styles (code, icons, HyperCard, etc.). Integrated communications from multiple users is important in the full system, though perhaps not at first? The system should both be novice friendly and of interest to experts. As per my previous comments, overall I'd personally focus more on supporting constructivist self-education without a teacher's direct involvement or the need for a specific curriculum (beyond simple tutorials, etc.). However, I'd concede such a system in use within the classroom would be better than what schools have now, and it would be nice to have someone write school curriculum units related to it (though I personally would not want to make a lot of design concessions for school as opposed to home use, though I don't expect they are needed much anyway). === choice of Python === On Python vs. Jython: I'm quite happy to work mainly in Python and not Jython, despite my earlier (and see below) plugs for Jython. :-) One can make strong arguments for basing the project in CPython too. :-) I'd still argue though that if you want a browser plugin then using Jython somehow is the best way to go, and I would not want to put any effort myself on plugin support if the project was done in CPython (though would be still happy to coordinate that if someone pursued that). My thinking is that if plugin applets really mattered, we'd see more of them already with Jython. Once a good system is working, Jython could still be a web deployment vehicle for some parts of the system (like eToys or stand-alone simulations, though probably requiring a compatibility layer). I don't see IronPython as a good candidate because of the patent uncertainty etc. related to dotnet/Mono issues, especially if GNU/Linux is a first platform. === tool philosophy === Keeping with the Python philosophy, I would see this as a suite of tools which each might be supported by different technologies (including different GUI libraries). To keep this manageable, I would focus first on something that runs on top of Debian GNU/Linux. Ubuntu is such a platform, and would be the obvious development platform and test place for packages, though I currently run plain Debian, so I would have to switch eventually. However, I would keep in mind Mac and Windows support in a choice of cross-platform approaches (likely one or more of wxWidgets, SDL, and OpenGL, though I found the Mozilla idea intriguing too) and perhaps developing a compatibility layer for some parts of the system. But making cross-platform support a priority would only come in as others committed to be at active testers on those platforms. If that is at the start, then great. From a reliability standpoint, on Windows or the Mac it might make sense to include an entire local CPython system with the application, because the difficulty of ensuring prerequisites. Much as I'd like to drill down through the entire system in Python (or Smalltalk) I don't see that as a realistic starting goal. After PyPy matures, and once the rest of the system works, then there might be more energy to do that (say, by translating wxWidgets code at first to Python). Some of that capability will also mature through work on HyperCard and eToys. So, I wouldn't promise the system would look at all Squeak-like from the start, but some of the tools could evolve that way. It's hard to explain, but I have a hunch a remote debugging/development approach through the network will make the suite of applications always feel more transparent, even if the drill down level often stops at the widget API. Incidentally, funky GUIs would be another good reason to use Jython to use Swing look and feels like napkin: http://www.akuaku.org/archives/2004/09/napkin_swing_lo.shtml if that was really important. Still, in the approach I outline even Jython based applications could take part in the overall set of networked applications I reference below as browsers or debuggers of code defining SDL based applications, for example, or an SDL based debugger could debug a network-aware Jython application. === to do === Here is a list of TODO tasks in a rough order. === open up communications with Squeakers and Pythonistas === Obviously, getting talking with Alan's group as soon as possible is important, as well as making the project open to the Python community. This entails getting a mailing list, wiki, and SVN repository going, as well as probably firing up the latest OpenCroquet for communications with Alan's group. But there is also a lot to be done before making a major effort to use their ideas or invite them to use intermediate results. === supporting changing Python apps while they run === My first focus would be getting Smalltalk-like development environment capabilities into Python. For the most part that means supporting modifying actively running Python code and having a classical browser, inspector, and debugger like Smalltalk offers. However, the future of Smalltalk is away from all-in-one image systems, since there are a lot of issues of shooting yourself in the foot when your development tools share an objectspace or VM with your application (e.g. making it so all windows can't open themselves), so remote debugging and image construction is desirable. To support this at first might involve using a separate thread running in the application, and would initially use a sort of module or per function reloading approach, but later the Python VM could be modified to support a debugger socket connection natively. I already have a crude prototypes of this using C and Python, though they are tied to representing data as Pointrel triads (don't ask why. :-) I would initially base this on a model of both debugged program and debugger being clients of a single redirecting server on the machine. Handling source code versions easily is an important part of the Smalltalk experience, and I could initially use my Pointrel data repository system for an initial versioning source code system, though integrating with SVN would be nice too. As per above, these initial GUI tools might be in wxWidgets, though end user programs might more likely be in OpenGL or SDL or whatever; I might take a longer look at whether other existing free Python system could help support this (e.g. BoaConstructor), but my emphasis here would be on getting the overall socket communications in place, thinking that better development tools could always be hooked in as clients. I would try to ship the objects around as pickled Python objects, but would need to look hard at current security issues there, otherwise they would end up as some other format. I would expect any core changes to Python or existing libraries to be placed under the Python license, but likely I would want to release the more standalone toolsets like a debugger client or browser client under the GPL. To be clear, what I am going for here is the "feel" of developing in Smalltalk, where you can point your inspector at an arbitrary application, not necessarily the specifics of the Squeak experience. In this case, the Python philosophy of being like glue :-) suggests treating Ubuntu (or any OS) as analogous to a Squeak VM, and finding a way, sockets in this case, to make seemingly different things work together. === putting a Smalltalk subsystem on top of Python === After that was working (and it might be tough to make work with any degree of reliability and ease of use, as something easier, since I already have a Smalltalk-like parse written in Python), I'd put a Smalltalk-like mini-language on top of all this, but calling the Python class library. That's to give the Squeakers just an early taste of what might be possible, and also to provide initial hooks for the development tools to be somewhat syntax neutral. Debugging support for non-Python syntax might be fairly limited at this point though. The hardest part of that is handling Smalltalk blocks; but that could be done as cryptically named functions for cases where they could not be inlined. Other languages might be integrated if they were easy -- like Forth, Scheme, and Logo, but again still using the Python libraries and object model. However, doing any language beyond Smalltalk would easily be deferred or delegated. Real users of these languages would be disappointed since most of the effort in learning a language is learning the library, and these would use Python's, but I think such an approach would suffice for self-education purposes. Still, this entire idea of supporting other languages could be dropped at the start. But if it was, it would be more likely Python only features would creep into the system, making it harder to add other later. It seems though that multi-language integration is an interest of the Shuttleworth Foundation, and it's something I like too. === order could vary === The next few activities could run concurrently depending on how much help I got, but they would likely be done in the order listed otherwise. === HyperCard/PythonCard === I would proceed to add a simple HyperCard like system, possibly drawing heavily on or possibly merging with the PythonCard project. This activity might eventually drift into supporting prototype-based Morphic-like Python-drawn widgets as it iterates down the road. It would involve settling on a good cross-platform widget approach. I think wxWidgets is still the strongest candidate here for a variety of reasons I could discuss later, including choice by the Open Source Applications Foundation for Chandler, and especially as it can run alongside OpenGL. http://www.wxwidgets.org/opengl.htm But I definitely would need to look at Mozilla widgets more based on discussions here. Defining resizing rules is always a big issue in dynamically placing components, especially if you want the results to be cross-platform; I would probably ignore that at the start. === stress testing by porting a constructivist application === After basic Hypercard compatibility, and widget choice, I could then stress test the system by porting to it at least one (and preferably all three) of our educational applications written in Delphi -- our Garden Simulator, PlantStudio Software, and our StoryHarp software (which would be under the GPL). I already have a Delphi->Python translator that did much of the heavy lifting on that, and have lots of Python code, but I still need to tie them to a specific Python widget set. Adding some more polish to this translator and releasing it might also hope make the framework of interest to Delphi developers. These applications could all be used either for unschooling or as part of school curriculum. Two of them are graphics intensive and use a 3D turtle, which as a unit could be broken out separately under the Python license, and would later form the basis for supporting Logo like capabilities and simple 3D graphics projects (though Logo language support would come later). This phase might really be more about tweaking the browser, debugger, inspector and related socket code than doing anything GUI related; wxWidgets would probably be used extensively if the system is relying on CPython. But it is an important one to make the system as bulletproof as possible. === eToys and Logo -- 2D === Once there was basic HyperCard-like support, and at least one full educational applications was working, then it would make sense to expand the system by making lots of eToys-like ideas. This would also be a natural time to build in Logo type support, programmable by either code or icons. I would see this as providing a rough 2D world support, more proof of concept, with hope it would develop further later. === OpenCroquet -- 3D & networking === After that, there would be moving more into more complex 2D and 3D worlds, inspired by Squeak, Croquet, LearningWorks, and Alice. At this point things would be pretty open ended. Sometimes, I could adopt a "burn the disk" packs approach of trying to learn from the best of these ideas though perhaps not necessarily using any existing code. For something like eToys, that's probably a reasonable idea. But obviously Croquet is likely a different beast. Where Squeakland could offer core Croquet code or other neat things as packages I could integrate and support, I might just translate it to Python (probably with a tool) or alternatively support it on a Smalltalk layer instead. OpenGL would be used extensively here, again perhaps on wxWidgets. How this part would proceed would depend a lot on what level of collaboration has been built with different groups, especially Squeakland. I would have my own pet projects to build on this level too (mostly simulations related to sustainable development and manufacturing, self-replicating space habitats, and so on). Overall, this last item is the biggest chunk of effort, and has the most uncertainty, and the least detail, but I think most of the other projects make sense to do first as steps to this because they would provide a solid educational platform that Squeakers would respect. :-) On the other hand, in terms of collaboration between Squeakland and Python, it makes sense to push this part up to the first item, and try to do it concurrently with the other tasks. === schedule === No promises as to schedules; it would all ship when it was ready for feedback. :-) But if it wasn't somewhat impressive by the end of this year, and at least all but the last section weren't working somewhat well, then I'd be disappointed (even if I was doing all the work myself). Obviously, the last item would develop over the course of at least a couple years. === project naming === I think an appropriate name for the system might be "PataPata", the name of a South African song my family likes "just about dancing, singing and having a great time": http://songsforteaching.homestead.com/PWM2PataPata.html PATA could mean "Python Advanced Technology Applications"? But there might be trademark issues with that; it's common. Variants of "Constructivist" or "PyConstructivist" are other naming option. But I'm sure others could have good naming ideas; Michael Tobis used "Squeathon", for example. === issues === To be frank, putting some money on the table would make it easier to get my wife to let me to fully commit to this long term, though I myself would rather pay for the privilege. :-) I'm mostly busy to mid-May. After that I could put 1/2 to 3/4 time into it, if everything else made sense. It's a lot of work, and a big commitment, so if someone else is raring to go and wants to put even more effort into it, and knows more about both platforms, or is a better match in some other way to both communities, go for it. I do think I'm a somewhat good match -- with a knowledge of both systems and communities (though rusty on the Squeak side these days); also the project brings together a lot of loose threads in my life as a software developer, so that motivates me to want to do it. My biggest drawback is probably long emails when I get excited about something. :-) There are certainly others who might be better at it (Cees de Groot is one such person) but it's a matter of interest and availability. --Paul Fernhout Guido van Rossum wrote: > I'm looking for someone to "own" the development of a Squeak-like > environment for Python. I can help by getting you in touch with Alan > Kay and other Squeak folks. But I just can't be managing this project > myself -- I need to focus on Python 3000, which has quite a different > set of goals (not incompatible, just different, and enough to keep me > very busy in the next two years). > > To provide some background, here is (with permission, and slightly > edited) a forwarded message from Mark Shuttleworth in response to > something I sent him this morning. > > --Guido > > ---------- Forwarded message ---------- From: Mark Shuttleworth > Date: Apr 22, 2006 8:56 AM Subject: Re: Moving > forward the educational Python code development To: Guido van Rossum > Cc: Kirby Urner , [...] > > > Guido van Rossum wrote: > >> After Kirby's posts and mine on the Python mailing list for the >> education Special Interest Group (edu-sig at Python.org), several >> threads have spun up showing that there is a lot of interest in the >> topic of making Python more "Squeak-like", however you might want to >> define this. > > > This is great news. > > My sense is that it will take three or more years to get a Squeak-like > environment built up in the Python world. It will take a lot of work, > more raw development work than TSF is willing to fund. Our project > deliverable is the curriculum and the training program for teachers to > teach it, we don't want to be responsible for delivering the unified > development environment through we recognise that having a unified > environment is beneficial to the project. > > The only way the unified development environment will actually happen > is if the SqueakLand community, with Alan's leadership, makes this > their goal, and figures out how to work with the Python community. It's > the SqueakLand folks who understand what that environment needs to > "feel" like. They have the strong vision as to what the tools should > do. At the same time, the Python community will need some people to > step up and welcome that effort, contributing to it over time, because > the SqueakLand folks are used to Squeak and they will need to learn > how best to execute their vision in Python. > > TSF can provide some limited funding, but we're not setup to lead > development efforts (we learned the hard way with SchoolTool which is > now in good shape). Most of the TSF funding will go towards actual > curriculum development that USES the tools available. We will initially > use Logo, Squeak and Python as-is, because they are there right now, > and will develop the curriculum using what's currently available with a > view to consolidating it all around Python as Python gains the ability > to deliver Logo-like and Squeak-like environments. > > > >> I believe now is the time to delegate to someone other than me the >> task of researching the course of action; what exactly is needed, >> which toolkit to use (e.g. Mozilla, pygame, OpenGL, or something >> else?), and to manage the development. Unfortunately I don't have the >> time to do this myself. Does the Shuttleworth Foundation have >> resources to pick up this project, now that there's momentum building >> up? > > >> This could take the form of an existing Shuttleworth employee jumping >> in, or some Foundation money to get one of the interested >> contributors (perhaps ) to put in their time (part-time). I don't see >> this happening (at the time scale envisioned) on a purely volunteer >> basis. I'm sure we can get volunteers to do coding for the project; >> but managing it, researching the possible options, and making >> decisions probably requires someone dedicated to this task. > > > Yes, agreed, and we can contribute some funding towards the leadership > of the effort. I'm not keen to fund "part time work with no clear > deliverables" because its hard to get predictable results that way. I > guess what we need are you and Alan to figure out between you who will > make the most effective leader, bringing together the SqueakLand > vision in a Python execution, and we would step up to fund portion of > that person's time. > > [...] > > I think the leadership of this effort needs to be decided after > discussion with Alan too, so that whoever is the funded driving force > has buy in from both communities. If you'd like to forward this message > to other folks in the community as a statement of the parts TSF is > able to contribute to, please do. > > Mark ---------- End forwarded message ---------- > > -- --Guido van Rossum (home page: http://www.Python.org/~guido/) > _______________________________________________ Edu-sig mailing list > Edu-sig at Python.org http://mail.Python.org/mailman/listinfo/edu-sig From pdfernhout at kurtz-fernhout.com Sun Apr 23 05:42:37 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Sat, 22 Apr 2006 23:42:37 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> Message-ID: <444AF7AD.5020406@kurtz-fernhout.com> kirby urner wrote: > I've read some Gatto and know about unschooling. But how does that > tie in to your advocacy for Jython, for example? No direct link. I just think Jython is great technology considering Java's (technically) undeserved success in the market. :-) Also, if you want browser plugin support for Python, Jython already has it running as a Java applet, and that will cover more versions of more browsers than anything we can realistically hope to support with another flavor of Python. If plugin support is not important, then CPython seems a better choice to me for an educational Python with the least licensing and deployment and dependency issues and with the greatest current support. > And what does this > sentence even mean: "Mark sets out to do good; my worry is how many > Bucky Fullers the curriculum he plans is about to grind to ruin." In the context of the previous statement there, and if you consider Gatto's points about just about every inner-city kid he taught being a potential great success at contributing something to society, as well as the actual success of a place like the Albany Free School with kids who have problems at other conventional schools: http://www.albanyfreeschool.com/overview.shtml it means that schooling centered around the current needs of the curriculum instead of the current needs of the student actively harms the potential of most kids. And, as Gatto suggests, modern schools were designed to do just that -- to be levelers, not amplifiers. In order to level someone, you need to grind them down one way or another to fit some standard. :-( Today Bucky Fuller might have been placed in a special ed class and then likely put on Ritalin for obsessing about those dried peas and not paying enough attention to the teacher in class. Drugged up and labeled a failure from kindergarten, he might never have developed enough self-esteem to think great thoughts (or make them known to the world). Granted, schools do try to raise others up to the standard (but usually fail miserably at that anyway, which is OK, because it failures paradoxically justifies the need for schooling, because the kid is usually blamed). As Gatto points out, the ironic thing when we say schools are "failing", is that the reality is that schools are actually "succeeding" at what they were designed to do. They were designed mainly by industrialists http://www.johntaylorgatto.com/historytour/history1.htm to make most people into compliant factory workers and consumers. Ideal consumers and factory workers from an industrialist point of view are not skeptical people -- thus the focus on science as a collection of facts, not a way of skeptical thought. The problem is just that the purpose to which they were designed in a very public way two to three generations ago (with ultimately the buy-in of most people at the time) is no longer the purpose which we now desperately need them to fulfill (which is now to create citizens for a dynamic and technology oriented 21st century) We are facing a variety of specific issues resulting in part from the very success of consumerism and industrialism, and it is often that the success of one generation turns out to be the problem of the next as conditions change in part from that success. For example, the US had a lot of productive factories for two generations, so now the problem is more what to do with all the stuff we have (including how to power it and recycle it sustainably). > I can't understand your logic yet. The commitment is to bottom-up > curriculum development, not one guy (not me, not anyone) imposing some > top-down compulsory "must learn" thing, except insofar as we tie to > the pre-existing national curriculum for South Africa. Hundreds of years ago, most kids learned what they needed to know from family and community, though some wealthy people had one-on-one tutors for their kids. The notion of sticking a bunch of kids the same age together in a room and expecting them to all learn the same thing at the same time is only in the last century or so, and it is clearly not how children learn best, since kids are ready to grasp ideas at very unpredictable times. It is a waste of a child's and a teacher's time to try before they are ready -- whether reading, writing, arithmetic, or other things, but that waste is exactly what an age based curriculum demands. So no curriculum, even a "bottom-up" one that expects kids to learn something in a specific year (let alone in a specific month or day) is going to be good for kids overall. Enough such interactions grinds down kids into tiny fractions of what they could of been (and it is not too good for the teachers psyche either); it makes many kids actively hate education, or at least hate and fear specific subjects (often math, but also often reading). Boredom by itself isn't torture and is an important part of life, but forcing kids to be in boring situations they can't evade physically or mentally for years at a time is torture IMHO. The bottom line is trust. A mandatory "curriculum" is an act of mistrust. A kid who senses mistrust is goign to be an unhappy one. I have fewer problems with advisory curricula, as suggestions or hints. > The lesson plans will specify what software is needed. If that > software actually exists, so much the better. And the students > themselves are authors of some of these lesson plans. Well, that's a start, assuming the same kids who are the authors are the ones doing the learning, otherwise, it might just be bullying. Still, I won't question that getting kids to design lesson plans is probably a very educational experience for many of them.. But on lesson plans, consider this Quaker joke (respectful enough, I think): http://www.netfunny.com/rhf/jokes/89q3/quaker.603.html "One World War II Quaker conscientious objector had been a professional wrestler. Once when he and some other inmates of the Coshocton CPS camp in Ohio made a trip into town, they were hassled about their pacifism by some local youths, who insisted that only force could change the German's views. In response, the ex-wrestler took off his coat, challenged one of the local boys to a match, and promptly threw the townie across the room. He then asked the youth, "Now do you believe that force won't change people's views?" "Heck no!" the local boy hollered back. "That's exactly my point," said the Quaker, who put on his coat and left." So, where are the lesson plans someone used to teach you be a curriculum writer and Python evangelist? :-) Or did you learn that by trial and error and life experience? That's exactly my point. :-) > It's a > community effort. A lot of these TuxLabs double as businesses after > hours, with some of the same talent overlapping i.e. the dual-use > nature of the lab makes for a convenient apprenticeship and transition > to paying work for older, more skilled kids. That all sounds good as far as it goes. And definitely in line with self-education. Anyway, time to wind this theme down and move onto other things. --Paul Fernhout From pdfernhout at kurtz-fernhout.com Sun Apr 23 07:09:25 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Sun, 23 Apr 2006 01:09:25 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444A1DDA.4050307@kurtz-fernhout.com> Message-ID: <444B0C05.40100@kurtz-fernhout.com> Guido- A fair enough request. Summary: Schooling is not the same as education. Any country seeking to develop is not going to improve itself in the 21st century by adopting an outdated child management method called "schooling" -- which even in the USA has been discarded by the parents of about one to two million homeschooled and unschooled kids (and growing). Efforts to change schooling with open ended technology have a history of failure (e.g. Lego/Logo) as the school system micromanages them to neutralize their potential. Propping up such schooling systems may be ultimately counterproductive and simply prolong the suffering, as opposed to investing funds into newer ideas, like "free schools" or home-based "unschooling". Ideally, instead of a school, put a free-admission science and technology museum and library as an educational resource center in every community which kids can visit whenever they want (100 successful demonstration centers might change public opinion). Focus investments where the solutions are coming from, not where the problems are caused. A future "educational Python" should focus more on being a good match for those new educational paradigms than trying to prop up the old failing one. So, design an educational Python evolved from Squeak ideals that is good for use in TuxLabs, Fablabs, science centers, libraries, and homes. If it is also helpful to kids at school, that would be a nice bonus. --Paul Fernhout A mantra for those who would help others who are disadvantaged with less likelihood of alienating them (especially in other countries): "I help you not out of charity, but out of a realization that my own liberation is bound up with yours. I hope someday you pass on this gift to others when you are able to." Guido van Rossum wrote: > Paul, > > Is there any way you could say this in less than 20 lines? As it > stands it's way too long for me to read. > > I'd like to present Shuttleworth's POV in capsule. > > South Africa's educational system is bankrupt (not literally but > practically). With limited means compared to the SA department of > education (see the financials downloadable from tsf.org.za) > Shuttleworth is trying to provide something useful for SA's poorest > kids to prevent a whole generation from being lost. I severely doubt > that whatever might fix the US educational system will work in SA. > > --Guido From kirby.urner at gmail.com Sun Apr 23 07:34:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 22 Apr 2006 22:34:25 -0700 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: <444AF7AD.5020406@kurtz-fernhout.com> References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444AF7AD.5020406@kurtz-fernhout.com> Message-ID: > Hundreds of years ago, most kids learned what they needed to know from > family and community, though some wealthy people had one-on-one tutors for > their kids. The notion of sticking a bunch of kids the same age together > in a room and expecting them to all learn the same thing at the same time > is only in the last century or so, and it is clearly not how children > learn best, since kids are ready to grasp ideas at very unpredictable > times. It is a waste of a child's and a teacher's time to try before they > are ready -- whether reading, writing, arithmetic, or other things, but > that waste is exactly what an age based curriculum demands. So no > curriculum, even a "bottom-up" one that expects kids to learn something in > a specific year (let alone in a specific month or day) is going to be good > for kids overall. However, this assumption was not explicitly made a part of the TSF initiative as I recall. Some of the homeschooling literature may need updating in light of the fact that a room outfitted with computers is not necessarily the setting for any "one size fits all" curriculum. In point of fact, as a learner ready to explore prime numbers a little more, it's up to me to sweep through the repository (yes Andre, somewhat mythical at this point) and pull up lesson plans relevant to my needs and tools (e.g. I want to use Python). OK, so I find this lesson/tutorial and start exploring Fermat's Little Theorem as applied to public key cryptography. I'm 15. In the meantime, there's this 15 year old next to me who is gaga for fish, and spends hours studying them. If she ever wants to learn more about prime numbers, I could show her, but chances are won't be sharing my new knowledge with anyone in my class, at least not all of it. On the other hand, I'd like to know more about carnivorous fish in the Amazon river... You see where I'm going with this. And there's an advantage over homeschooling here, in that if you do have a shared lab, you can start modeling division of labor and up-close collaboration more successfully. You can more easily demonstrate aspects of the network, using the local subnet. Pinging and so on. Less of a lonely endeavour, more chances to share your enthusiasm for a topic with a classmate. Kirby From guido at python.org Sun Apr 23 10:22:39 2006 From: guido at python.org (Guido van Rossum) Date: Sun, 23 Apr 2006 09:22:39 +0100 Subject: [Edu-sig] Stop the unschooling debate. NOW. Message-ID: Everybody (!) please leave any discussion of schooling vs. unschooling or home schooling out of edu-sig. This is not the right platform -- the full name is edu-sig at python.org and the stated goal is discussion of Python in education. There is a use for Python in education whether traditional or deconstructed. Arguments about which form of education is best do not belong here -- as has already been shown they suck up bandwidth worse than decorators, lambda and bool. If you have a comment on Shuttleworth's plans, write him directly. He doesn't read edu-sig and nobody here has a say in how TSF spends its money. And no, the participants in the discussion don't get a parting shot of the form "okay, I will withdraw, but here are my last words". Believe me, you've already had your say. (Hey, I'm almost wishing for Art. At least he's terse. :-) -- --Guido van Rossum (home page: http://www.python.org/~guido/) From jeff at elkner.net Sun Apr 23 17:23:22 2006 From: jeff at elkner.net (Jeffrey Elkner) Date: Sun, 23 Apr 2006 15:23:22 +0000 Subject: [Edu-sig] DocTest Quiz In-Reply-To: Message-ID: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> On Sat, 22 Apr 2006 18:00:27 -0500, Michael Tobis wrote: >I think I've got a realistic design for a doctest-driven beginners' >programming courseware suitable for presenting HHTLCSpy - type >materials that can be put together in a week or so with my level of >skill. (Or a half-day if I let Ian B in on it... ) That week probably >won't happen before early June, but I think I'll have something of >immediate interest to you early enough in the summer that we can >develop real curriculum in time for next fall. Thanks, Michael! I've written up a brief description of the tool I'm looking for here: http://dc.ubuntu-us.org/projects/doctest-quiz.php and a briefer launchpad spec here: https://launchpad.net/products/cando/+spec/doctest-quiz Paul Carduner is interested in working on it, and I'm looking into submitting it as a Summer of Code project. I'll keep you posted. jeff From kirby.urner at gmail.com Sun Apr 23 18:43:11 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 23 Apr 2006 09:43:11 -0700 Subject: [Edu-sig] DocTest Quiz In-Reply-To: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> Message-ID: > Thanks, Michael! I've written up a brief description of the tool I'm looking for here: > > http://dc.ubuntu-us.org/projects/doctest-quiz.php > I'm interested in this project as well. Per my day one blog post re Shuttleworth Summit: What Alan and I most agree on is the need for Wikipedia type content to mix with an interactive component. He showed me his recent Javascript implementation of Logo. I'm reminded of our ability to create interactive "labs" in the J language. Python needs a more developed interactive teaching module: show some stuff, give students a command line, show more stuff, and so on. [ http://controlroom.blogspot.com/2006/04/shuttleworth-summit-day-one.html ] The J language lab is a very useful, yet simple tool, allowing teachers to write interactive scripts that show J, then turn control over to students, show more J and so on. Having labs run in a browser would be a double plus ("server side" might just mean on the local classroom server -- no broadband need apply). Here's an example of a J Lab as it appears to the author. Students running it will get a friendlier "chatty shell" that walks them through a series of exercises about turtle graphics: http://www.jsoftware.com/jwiki/BrianSchott/code/turtleGraphics/lab Kirby > and a briefer launchpad spec here: > > https://launchpad.net/products/cando/+spec/doctest-quiz > > Paul Carduner is interested in working on it, and I'm looking into submitting it as a Summer of Code project. I'll keep you posted. > > jeff > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From andre.roberge at gmail.com Sun Apr 23 19:25:52 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sun, 23 Apr 2006 14:25:52 -0300 Subject: [Edu-sig] DocTest Quiz In-Reply-To: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> Message-ID: <7528bcdd0604231025r3e2c6758r30570f35eb9f7da7@mail.gmail.com> On 4/23/06, Jeffrey Elkner wrote: [snip] > > Thanks, Michael! I've written up a brief description of the tool I'm looking for here: > > http://dc.ubuntu-us.org/projects/doctest-quiz.php [snip] While it is not quite what Jeff described in the above quoted link, you may want to check the newer version (1.9, released minutes ago) of "lightning" to be found at: https://sourceforge.net/project/showfiles.php?group_id=125834 Lightning is a wxPython-based app that I wrote to test code snippets. It is a "notebook" with two pages: one is a basic editor, the other is a python shell. I just added two options where one can run doctest on the code written in the editor, either in basic or verbose mode, by pressing a button. (The addition is a rush job; it works, but I will need to refactor the code soon.) You can test it with the example found at http://www.python.org/doc/lib/module-doctest.html All you need to do is copy the code in that page from === """ This is the "example" module. The example module supplies one function, factorial(). For example, >>> factorial(5) 120 """ def factorial(n): #............ [snip] while factor <= n: result *= factor factor += 1 return result ======== i.e. you do NOT need to add the following: ===================== def _test(): import doctest doctest.testmod() if __name__ == "__main__": _test() ======================= You can also try lightning with the example given in the link quoted from Jeff's message. Feel free to let me know your impressions! Andr? From mtobis at gmail.com Sun Apr 23 20:03:12 2006 From: mtobis at gmail.com (Michael Tobis) Date: Sun, 23 Apr 2006 13:03:12 -0500 Subject: [Edu-sig] DocTest Quiz In-Reply-To: References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> Message-ID: Ah, but see, the sandbox is unnecessary if the doctest runs on the client. Which is why the first pass is a small job. mt From ianb at colorstudy.com Sun Apr 23 20:25:29 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Sun, 23 Apr 2006 13:25:29 -0500 Subject: [Edu-sig] DocTest Quiz In-Reply-To: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> Message-ID: <444BC699.1000004@colorstudy.com> Jeffrey Elkner wrote: > On Sat, 22 Apr 2006 18:00:27 -0500, Michael Tobis > wrote: >> I think I've got a realistic design for a doctest-driven beginners' >> programming courseware suitable for presenting HHTLCSpy - type >> materials that can be put together in a week or so with my level of >> skill. (Or a half-day if I let Ian B in on it... ) That week >> probably won't happen before early June, but I think I'll have >> something of immediate interest to you early enough in the summer >> that we can develop real curriculum in time for next fall. > > Thanks, Michael! I've written up a brief description of the tool I'm > looking for here: > > http://dc.ubuntu-us.org/projects/doctest-quiz.php > > and a briefer launchpad spec here: > > https://launchpad.net/products/cando/+spec/doctest-quiz > > Paul Carduner is interested in working on it, and I'm looking into > submitting it as a Summer of Code project. I'll keep you posted. Have you guys contacted the people doing sandboxed Python on the web? I've seen two of them, but I can't for the life of me remember where and my searching has been fruitless so far. I think both people hang out on comp.lang.python. Of course, if it is running off localhost or otherwise not interactive-over-the-web then you can avoid the problem entirely. Though then you have to be sure you trust the doctest, since it could contain malicious code that would be run on the student's computer (it's more obvious if the code is malicious, but at least you want to be careful about it). If there were student-contributed doctests this seems like a potential concern. Of course if you were actually running a course, you could potentially just give each student a user account on a Unixy host and not worry about what they do. This would avoid the tedium of helping people get working and consistent Python development environments, and you could start adding things like version control to the base setup for each student. One of the things the doctest model might make possible is to avoid editing live code (which Python isn't good for). Since everything is repeatable you just start over each time. The tests would run in a separate process from the editing environment. Though you'd still want the test environment to hang around, so it'd be inspectable. But doctest's standard reports are enough to start with, so that feature could be added later. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From mtobis at gmail.com Mon Apr 24 01:54:57 2006 From: mtobis at gmail.com (Michael Tobis) Date: Sun, 23 Apr 2006 18:54:57 -0500 Subject: [Edu-sig] DocTest Quiz In-Reply-To: <444BC699.1000004@colorstudy.com> References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> <444BC699.1000004@colorstudy.com> Message-ID: On 4/23/06, Ian Bicking wrote: > Have you guys contacted the people doing sandboxed Python on the web? > I've seen two of them, but I can't for the life of me remember where and > my searching has been fruitless so far. I think both people hang out on > comp.lang.python. Is this the thread you are remembering? http://tinyurl.com/f94u8 see especially http://www.mired.org/home/mwm/try_python/ I asked some questions on that thread about sandboxing prompted by Jeff's idea, and got some interesting responses. That said: Ultimately to get to the big one-room python schoolhouse we all seem to want, it really has to be a peer relationship with peers picking which puzzles are interesting. However, to test kids' passing microtests in a school curriculum, you don;t need that. All you need is a way for the kid to pass the doctest and ask a server for a credential. Specifically: It is possible to do this entirely through HTTP requests on the client. The student would be doing conventional doctests during development, but would be running a validator that hits a server with HTTP requests ("validate my code for exercise 42") gets HTTP responses ('send me the output from "foo(42)" with this ticket T ') and resubmits ('here's ticket T, foo(42) returns "don't talk to me about life") and the server responds ("OK, you are validated in the database, and here is ticket U which will allow you to request exercise 43). You DON'T want the client code to be a real XML-RPC server, because it has to be an HTTP client, since these kids will be running in an arbitrarily locked-down requirement, except for outbound HTTP requests. But, except for being the client at the lowest level, it looks a lot like an XML-RPC server, interpreting known requests Security advantages abound. The validation server address will be hardwired into the code that the client runs, and will be a trusted machine on the part of the school system that delivers those codes to the users.. That code can, like a vanilla XML-RPC server, only run registered procedures, if you are worried about executing arbitrary code from a hacked server. ALL TESTS RUN ON THE CLIENT. You need not fear for any horror that the kid the kid's evil older cousin comes up with, because they will never get to run any scripts server side. Probably you will want the server code to be directly munging doctests to make its requests. That way, the teacher can specify conventional doctests, and it will be the server's job to parse them into requests. Again, this is to say nothing against solving the sandbox problem, as even bigger things become possible with true sandboxes. My intent is to knock this thing out in a few days, though, so we can spend the summer producing curriculum for Jeff to try out. The first version would probably just wrap XML-RPC on the client and doctest on the server. Unfortunately, those few days haven't materialized yet, and won't for a couple of weeks. This was the inspiration that knowcked me over the head at PyCon. I hope there's still room to go with it. > If there were student-contributed doctests this > seems like a potential concern. Yes, this is the problem with my approach. I don't handle that, and that is why a sandbox solution is still a good idea. But my approach solves Jeff's immediate functional requirements very simply without any security problems at all. mt From ianb at colorstudy.com Mon Apr 24 02:13:53 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Sun, 23 Apr 2006 19:13:53 -0500 Subject: [Edu-sig] DocTest Quiz In-Reply-To: References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> <444BC699.1000004@colorstudy.com> Message-ID: <444C1841.8080905@colorstudy.com> Michael Tobis wrote: > It is possible to do this entirely through HTTP requests on the > client. The student would be doing conventional doctests during > development, but would be running a validator that hits a server with > HTTP requests ("validate my code for exercise 42") gets HTTP responses > ('send me the output from "foo(42)" with this ticket T ') and > resubmits ('here's ticket T, foo(42) returns "don't talk to me about > life") and the server responds ("OK, you are validated in the > database, and here is ticket U which will allow you to request > exercise 43). Is it necessary to do this, instead of just having the client-hosted program report the student's progress? The only advantage is if you don't trust the client hosted program to report accurately. But then, it's not that hard to get the client-hosted program to lie about the output of the program either. Doing a chatty doctest across hosts seems like more trouble than its worth. > You DON'T want the client code to be a real XML-RPC server, because it > has to be an HTTP client, since these kids will be running in an > arbitrarily locked-down requirement, except for outbound HTTP > requests. But, except for being the client at the lowest level, it > looks a lot like an XML-RPC server, interpreting known requests XML-RPC is just specially-formatted HTTP requests, so it wouldn't effect any port security. >> If there were student-contributed doctests this >> seems like a potential concern. > > Yes, this is the problem with my approach. I don't handle that, and > that is why a sandbox solution is still a good idea. If everything is purely run on the client side, it's probably not *that* big of a deal, if you only accept code from 'trusted' students, i.e., students actually in the class, or doctests vetted by some trusted group (e.g., teachers moderating a wiki). Then the students can only mess up other people's computers to same degree they can mess up their computers, which if you are in a lab isn't a big deal (and you probably need a restoration process for other reasons anyway). -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From andre.roberge at gmail.com Mon Apr 24 02:17:34 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sun, 23 Apr 2006 21:17:34 -0300 Subject: [Edu-sig] DocTest Quiz In-Reply-To: References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> <444BC699.1000004@colorstudy.com> Message-ID: <7528bcdd0604231717j7c76db77k3d38af8f14adc460@mail.gmail.com> On 4/23/06, Michael Tobis wrote: [snip] > Ultimately to get to the big one-room python schoolhouse we all seem > to want, it really has to be a peer relationship with peers picking > which puzzles are interesting. > > However, to test kids' passing microtests in a school curriculum, you > don;t need that. > All you need is a way for the kid to pass the doctest and ask a server > for a credential. > > Specifically: [... more below...] When I taught, I used to tell students: "if you don't understand, please ask your questions even if you feel that you're probably the only one who doesn't understand; chances are that *many* other students feel the same way." So, here goes ;-) Here's how I understand the description below: Doctests are on the server. Student's code is on the client. "Running" the code includes three steps: 1. a request to the server to send the doctest to the client 2. the client executes the student's code together with the doctest. 3. the result is sent back to the server for validation. This (step 2) means that the Python interpreter is located on the client's computer. Security worries are the client's alone. I thought the whole idea was to not require the client to have Python installed... Here's how I understood the desired situation. Doctests are on the server. Student's code is on the client. "Running" the code includes the following three steps. 1. The code is sent to the server 2. The server executes the student's code together with the doctest. 3. The result can be checked by the server for validation, with some feedback sent to the client. Step 2 in this case means security concerns on the server ... hence, the need for a Python sandbox. Where did I go wrong? Andr? > > It is possible to do this entirely through HTTP requests on the > client. The student would be doing conventional doctests during > development, but would be running a validator that hits a server with > HTTP requests ("validate my code for exercise 42") gets HTTP responses > ('send me the output from "foo(42)" with this ticket T ') and > resubmits ('here's ticket T, foo(42) returns "don't talk to me about > life") and the server responds ("OK, you are validated in the > database, and here is ticket U which will allow you to request > exercise 43). > > You DON'T want the client code to be a real XML-RPC server, because it > has to be an HTTP client, since these kids will be running in an > arbitrarily locked-down requirement, except for outbound HTTP > requests. But, except for being the client at the lowest level, it > looks a lot like an XML-RPC server, interpreting known requests > > Security advantages abound. The validation server address will be > hardwired into the code that the client runs, and will be a trusted > machine on the part of the school system that delivers those codes to > the users.. That code can, like a vanilla XML-RPC server, only run > registered procedures, if you are worried about executing arbitrary > code from a hacked server. ALL TESTS RUN ON THE CLIENT. You need not > fear for any horror that the kid the kid's evil older cousin comes up > with, because they will never get to run any scripts server side. > > Probably you will want the server code to be directly munging doctests > to make its requests. That way, the teacher can specify conventional > doctests, and it will be the server's job to parse them into requests. > > Again, this is to say nothing against solving the sandbox problem, as > even bigger things become possible with true sandboxes. My intent is > to knock this thing out in a few days, though, so we can spend the > summer producing curriculum for Jeff to try out. The first version > would probably just wrap XML-RPC on the client and doctest on the > server. Unfortunately, those few days haven't materialized yet, and > won't for a couple of weeks. > > This was the inspiration that knowcked me over the head at PyCon. I > hope there's still room to go with it. > > > If there were student-contributed doctests this > > seems like a potential concern. > > Yes, this is the problem with my approach. I don't handle that, and > that is why a sandbox solution is still a good idea. > > But my approach solves Jeff's immediate functional requirements very > simply without any security problems at all. > > mt > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From mtobis at gmail.com Mon Apr 24 04:08:05 2006 From: mtobis at gmail.com (Michael Tobis) Date: Sun, 23 Apr 2006 21:08:05 -0500 Subject: [Edu-sig] DocTest Quiz In-Reply-To: <444C1841.8080905@colorstudy.com> References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> <444BC699.1000004@colorstudy.com> <444C1841.8080905@colorstudy.com> Message-ID: On 4/23/06, Ian Bicking wrote: > > ... except for being the client at the lowest level, it > > looks a lot like an XML-RPC server, interpreting known requests > > XML-RPC is just specially-formatted HTTP requests, so it wouldn't effect > any port security. I wonder if I am succeeding in making myself clear. Let me try to boil it down. Imagine that I am just a kid whose parents have bought me an AOL login or something, so (in general) I can't service HTTP requests. But I *can* make them. So I can run client code that requests a test and then requests validation of my response to that test, over HTTP. In a nutshell that is my proposal. > > >> If there were student-contributed doctests this > >> seems like a potential concern. > > > > Yes, this is the problem with my approach. I don't handle that, and > > that is why a sandbox solution is still a good idea. > > If everything is purely run on the client side, it's probably not *that* > big of a deal, if you only accept code from 'trusted' students, i.e., > students actually in the class, or doctests vetted by some trusted group > (e.g., teachers moderating a wiki). Then the students can only mess up > other people's computers to same degree they can mess up their > computers, which if you are in a lab isn't a big deal (and you probably > need a restoration process for other reasons anyway). "It's not *that* big a deal" does seem to be the answer to the sandbox question in education. If we aren't exchanging money or signing contracts, the occasional malfeasance might not be that consequential. But if we are running everything client side we need trusted TESTS for sure, because the evil cousin could as easily hack the test as the target code. The school serving as instrument for infecting the citizen's computer by evil doctests would not go over very well in most jurisdictions. I do think such a thing potentially has great value, but it might be very tricky to run such code client side, at least prior to some of the major efforts we have started to discuss here. A specialized client running an invisible test delivered from a trusted server seems to me to be a useful tool, that is very safe and rather easy to deploy is straughtforward. It could be stitched together quickly, has practically zero security issues, and allows tests to be performed and validated on any computer which can make outbound web requests. I think that's valuable. mt From mtobis at gmail.com Mon Apr 24 05:02:15 2006 From: mtobis at gmail.com (Michael Tobis) Date: Sun, 23 Apr 2006 22:02:15 -0500 Subject: [Edu-sig] DocTest Quiz In-Reply-To: References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> <444BC699.1000004@colorstudy.com> <444C1841.8080905@colorstudy.com> Message-ID: Andre, I agree with your summary, and I don't think you went wrong in any way. I am simply saying that the first approach is much easier than the second and raises far fewer issues, probably with the proviso that the tests themselves must be trusted. The design I am proposing is responsive to a conversation I had with Jeff at PyCon, and to the "goal" that is described on this page http://dc.ubuntu-us.org/projects/doctest-quiz.php but is admittedly not responsive to the "requirements" on the page. What I'm raising here is the possibility that the "goal" does not imply the "requirements". Because Jeff's users are high school students involved in a year-long exploration of Python, I presumed that they are developing code on the client, not the server. Therefore Python is installed and therefore a specialized client could also be installed. Perhaps I misunderstood, though. Jeff, could please clarify the nature of the use cases that you envision in the near term? Do you have some case where running the tests on the client would not work? mt From chuck at freshsources.com Mon Apr 24 05:26:29 2006 From: chuck at freshsources.com (Chuck Allison) Date: Sun, 23 Apr 2006 21:26:29 -0600 Subject: [Edu-sig] The "Best" IDE Message-ID: <257985291.20060423212629@freshsources.com> Hello edu-sig, Sorry for such an uninteresting question in light of all that's been discussed lately, but I will be teaching Python at Symantec again this year - this time an intermediate class to follow up last year's Intro class with. Last year we used Komodo as an IDE, because it was available for a limited time for free. I was hoping to get your input on good IDEs for Python, and especially for those which are free. What are your thoughts? PS - I was told that Mark Hammond's COM module was buggy with 2.4. Has that been fixed? I plan on covering COM this time but want something that works. Thanks again. -- Best regards, -- Chuck Allison From winstonw at stratolab.com Tue Apr 25 07:39:23 2006 From: winstonw at stratolab.com (Winston Wolff) Date: Tue, 25 Apr 2006 01:39:23 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: <7528bcdd0604140839v354acb67rf18c41a7addb250a@mail.gmail.com> <444817FC.6000307@kurtz-fernhout.com> <44495321.1010202@kurtz-fernhout.com> <4449891C.6020508@kurtz-fernhout.com> <444A1DDA.4050307@kurtz-fernhout.com> Message-ID: What a fascinating thread this is. So many great ideas being thrown out. But I think that we are often focusing in on little pieces whereas we need to get a big picture first. Furthermore, I know as computer scientist I naturally look at details and enjoy technical solutions, whereas the system we are discussing is a human system: a student, her environment, her peers, teachers, parents, principals. The distinction is important but I often miss it because I love concentrating on source code for long stretches at a time and lose my perspective of the people involved. The critical thing is that any software solution will be a tool to help one of these people do their thing better. I.e. a tool to help a student experiment more easily with logic or problem solving. But just as valid is a tool that helps a student get peer-reviews which inspires him to pursue his interest and refine it to an art form. Or a tool that helps a parent see where their child is thriving and stumbling so they can praise or help. Below is an overview of the educational system as I see it, and I have written it in the form of a software engineering type requirements analysis. It's long, longer than the 20 lines Guido prefers, but it covers a big area. I hope you find the length was necessary. I'll start what my understanding of the question. From what I've gathered from the shuttleworth wiki: http://wiki.tsf.org.za/shuttleworthfoundationwiki/Project_20Summit The focus seems to be: What can we do as computer scientists to help education? Specifically, Mr. Shuttleworth wants the next generation to be good at problem solving and analytical thinking. Being South African, he is primarily concerned with developing technology that can be deployed in the poorer areas of Africa. Below I list the different actors in this problem, what they do, and some idea for technical solutions in that area. Again, the system is a human system and any technical solutions will be tools to help them, not tools they do something for them. I.e. we want tools like Word Processors or Photoshop which help people do a job they can do without computers, but the computer makes it easier, faster, more fun, and with better results. Thus it is critical to understand the full breadth of what people in the system do, so we can choose the best area to write tools. Students -------- - Students learn something. -- Easier said than done. But there is so much more than just this. - Students get excited about something and want to study it. -- This is a big part of what I use computers for: motivation. You can't teach anything to a student who isn't interested. And a student who is really interested learns so much so quickly. Video games have a lot to teach about motivation and learning. Not only do video games excite kids, but they often have "training missions" which teach the rules of the game from within. - Students use knowledge tools like books and websites to read about subjects they are interested in. But the first knowledge tool were other people. Children watch their parents and then copy that action. That's a fast and effective method. Can computers emulate this method? Could we use video? - Students experiment with their subject to practice and learn about it. This is what constructivists emphasize and was one of Piaget's epiphanies: That learning is the process of students constructing their knowledge of how things work by tying together bits of information they have heard, and trying them out in practice. Because computers can simulate other systems, they provide a way to experiment in a subject with no physical limitations, and one tool (the computer) can be used over and over for many different subjects. - Students get lazy and procrastinate. Although stories of the enthusiastic student are inspirational, not everybody is enthusiastic and motivated all the time. It's just as important to teach students that laziness and procrastination don't pay as much as enthusiastic effort does pay. I have worked in well-to-do schools and not-very- well-off schools. In both of them, students like to stall the teacher, bring up unrelated tangents, and crack jokes--it's a lot of fun. The difference though, is that the well-to-do schools don't tolerate much of it, and the not-so-well-off schools let the students slip through 80% of the time without penalty. Once things get to a certain point, then policing the students takes up all the teacher's time and they aren't thinking about learning anymore. Can we create tools that lighten burden of policing and accounting of bad behavior? - Students get feedback on how well they are learning. Traditionally this has been through quizzes and tests. A big problem with tests is students focus on their grade, when they should really be focusing on how the test can help them learn better. I adapted an idea (originally called a Qtorial I think) where written instructions were combined with quizzes very tightly. E.g. a web page that alternates between information, and a multiple choice quiz. I combined this idea with XP automated tests to write a programming tutorial that tells students how to use a programming feature, and then asks the student to do an example. But the student's work is then tested with an automated test and the student gets immediate feedback. That makes for a lot of feedback even when you have many students and few teachers, or students working on completely different subjects. Teachers -------- - Teachers tell students how things work. I'm not sure if there are any technical solutions to be had here. - Teachers prepare a situation where students can learn something. This could be something the teacher thinks should be learned, or something the student is curious about. It might be a science experiment, or a trip outside to study bugs. I like the Waldorf/Steiner school philosophy where students want to learn, and the teacher's role is to remove the obstacles in the student's way. This is a big area for computers. One possibility is improving communication of teaching practices. Right now many website share lesson plans, but it can take can take two hours to find a lesson plan for a one hour class. Often I could have written my own in the same time. But I think there are many other ways computers could help teachers find instructional material relevant to a subject. And this sounds traditional, but it could just as easily be constructivist. Maybe a particular student has gone very far in studying bugs, and the teacher/coach wants to find more tools for the student to pursue his interest more deeply. - Teachers learn to become better teachers. Another big one, but one that is often missed. Teaching or coaching is a skill and teachers are humans who have to learn that skill. This also ties into teacher motivation. If teachers are always learning their craft, they are excited and enjoying their job. If the teacher gives the same lecture for 30 years, it's not going to be very exciting by the end. I'm a big fan of eXtreme Programming and one big thing XP does in practice is make programmers improve as engineers and communicators. XP makes programmers think about their process, and also provides lots of feedback loops to guide them. Could we make XP type tools and methodologies for teaching? Parents ------- - Parents instill their children with many if not most of their value scales. Can we develop tools that help parents help their children? - Parents make educational choices for their children. - Parents provide reinforcement for good work or, hopefully rarely, punishment for misguided deeds. Principals and Boards of Education ---------------------------------- This only applies if we are still talking about an educational system, as opposed to home-schooling or unschooling. - Management helps teachers become better teachers - Management has to do unhappy things like removing teachers who really shouldn't be teaching. Many more things can be mentioned here, but I think they become very much up for debate. But it's important to at least mention the role in this overview. Who is Winston, what is this Stratolab thing? --------------------------------------------- For those of you interested in where I get these ideas, I have two decades of experience in software: finance, video game, and educational software. I've been working on how to apply technology towards education for the past three years. Towards that end, I must first know my audience so, I currently teach video game programming to middle school students in New York City. ______________________________________________________ winston wolff - (646) 827-2242 - http://www.stratolab.com learning by creating - video game courses for kids in new york From winstonw at stratolab.com Tue Apr 25 08:00:43 2006 From: winstonw at stratolab.com (Winston Wolff) Date: Tue, 25 Apr 2006 02:00:43 -0400 Subject: [Edu-sig] DocTest Quiz In-Reply-To: References: <20060423152322.22481.1404114671.divmod.quotient.16282@ohm> <444BC699.1000004@colorstudy.com> <444C1841.8080905@colorstudy.com> Message-ID: <7BBF52D7-C3B7-44B2-AF30-BA1ED5364EF6@stratolab.com> I have built a system very similar to this idea for my video game programming courses. I have a small application that runs a cherrypy web server. There is just one button that opens a web browser to the start page. Each page can be one of: - A regular page with text on it. - A multiple choice quiz - A page that describes a problem to solve, and opens a piece of sample Python code in my simplified Python IDE (MakeBot). On that page, is also a TEST button that runs test code on whatever the student has changed in the sample code. My system hides the test code, but DocTest would probably work very well for many Python situations. I have noticed though that some of my students will focus more on what the test is doing than what the problem is. So I've started hiding what the test is actually testing so they have only the clues of my instructions and green OK or a general description of the error in red. The interesting thing is that each page in cherrypy is just a Python object, so a test page can do anything that Python can do. For another course in interactive fiction (text adventures/MUDs) I started writing tests that would telnet into the MUD and interact with the student in the MUD universe. Anything testable with Python like computers simulations of physics or biological phenomenon could be incorporated into the tutorial, not just programming. -Winston On Apr 23, 2006, at 11:02 PM, Michael Tobis wrote: > Andre, I agree with your summary, and I don't think you went wrong > in any way. > > I am simply saying that the first approach is much easier than the > second and raises far fewer issues, probably with the proviso that the > tests themselves must be trusted. > > The design I am proposing is responsive to a conversation I had with > Jeff at PyCon, and to the "goal" that is described on this page > > http://dc.ubuntu-us.org/projects/doctest-quiz.php > > but is admittedly not responsive to the "requirements" on the page. > What I'm raising here is the possibility that the "goal" does not > imply the "requirements". > > Because Jeff's users are high school students involved in a year-long > exploration of Python, I presumed that they are developing code on the > client, not the server. Therefore Python is installed and therefore a > specialized client could also be installed. > > Perhaps I misunderstood, though. > > Jeff, could please clarify the nature of the use cases that you > envision in the near term? Do you have some case where running the > tests on the client would not work? > > mt > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig ______________________________________________________ winston wolff - (646) 827-2242 - http://www.stratolab.com learning by creating - video game courses for kids in new york From radenski at chapman.edu Tue Apr 25 23:43:39 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Tue, 25 Apr 2006 14:43:39 -0700 Subject: [Edu-sig] Python Workshop at Chapman University, Orange, CA, June 19-22, 2006 Message-ID: A tuition-free summer workshop "Python First: A Lab-Based Digital Introduction to Computer Science" will be held at Chapman University in Orange, Southern California, June 19-22 (Monday - Thursday). This workshop is open to computer science educators who seek alternatives to either purely commercial languages, such as Java or C++, or purely educational environments, such as Scheme and Alice, for introductory computer science courses. Participants in this workshop will learn how to make intro computer courses more attractive to students (1) by teaching an easy to learn yet practical and effective scripting language - Python, (2) by making all course resources available in a comprehensive online study pack ( http://studypack.com ), and (3) by using an extensive set of detailed and easy to follow self-guided labs. Prior knowledge of the Python language is not expected. The summer workshop is tuition-free. A nominal registration fee will cover meals and snacks. Transportation costs and lodging are the responsibility of the attendee. Please see: http://www.chapman.edu/wcls/MathCS/sWorkshop/Python/default.asp for complete details on the Python workshop and an on-line registration form. Or contact Dr. Arnold Shugarman (Shugarman at chapman.edu) for more information. Atanas Radenski mailto:radenski at chapman.edu http://www.chapman.edu/~radenski/ If you think you are boring your audience, go slower not faster -- Gustav Mahler From radenski at chapman.edu Wed Apr 26 01:35:47 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Tue, 25 Apr 2006 16:35:47 -0700 Subject: [Edu-sig] Shuttleworth Summit Message-ID: > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Winston Wolff [ ... del ... ] > But I think that we are often focusing in on little pieces > whereas we need to get a big picture first. Furthermore, I know as > computer scientist I naturally look at details and enjoy technical > solutions, whereas the system we are discussing is a human system: a > student, her environment, her peers, teachers, parents, principals. > The distinction is important but I often miss it because I love > concentrating on source code for long stretches at a time and lose my > perspective of the people involved. The critical thing is that any > software solution will be a tool to help one of these people do their > thing better. Very nicely said indeed. > Students [ ... del ... ] > - Students get excited about something and want to study it. -- 1. It seems to me that most people study because they have to, not because they are excited about it. For example, students are supposed to go to school and get education to end up with good jobs. Even when people get excited, most would procrastinate. Successful learning usually happens when the learner is bound by required activities, deadlines, and grading. (I am not saying that required activities guarantee good learning but they help.) Unfortunately, independent learning is a difficult process because most people do not seem to have the necessary self-discipline. We tend to procrastinate and postpone. I really want to learn Spanish so that I can go backpacking in Chile, I am very excited about this (I have been excited for years) and even bought texts and recordings; I started studying but cannot maintain the process because I am not pressed to (no schedule, no deadlines, no required activities, no grades). 2. Even when students study because they are required to, students are still *willing and ready to learn*. Getting them excited about the subject matter helps. However, what is crucial to keep them going is *success in what they are doing*. Who likes to fail? Normally nobody. We all like to succeed in what we are doing, no matter what we are doing. Thus, our students need to be given a chance to succeed. Making it through and succeeding is what really makes people excited. "I made it! I made it!" What can be more motivational than this feeling? It does not matter that much what exactly you are doing, what matters is that you succeed rather than fail. Do you like failing? Most people hate to fail. Students hate to fail - not necessarily in terms of grades (in a narrow sense) but in managing required activities in general. 3. Even when students succeed, they need to understand how they succeeded. (Imagine a student who made his GUI work but who does not actually understand event handling, for example.) To keep students motivated success in not enough. They need to *feel they are in control*. We try to entertain students too much sometimes. Games are entertaining, graphics is entertaining, GUIs are entertaining, etc. What is in fact entertaining and motivating is: (1) succeeding in what you are doing, and (2) being in control while succeeding. If students succeed and understand games, GUIs, or graphics, or anything else for that matter, they will be happy. It they make it through the required activities but are not sure if they understand it, they may not be as happy. If they fail, they will hate it, graphics, games, whatever. [ ... del ... ] What is it that makes Python a better educational language in comparison to other languages? It is not necessarily the possibility to program graphics or games or GUIs. What gives Python a real edge is the opportunity to design courses in which students (1) succeed in what you are doing and (2) understand what they are doing(i.e., are in control while succeeding). For some reasons, Python is better suited to achieve this than many other languages. At least this is what I believe in. Respectfully, Atanas Radenski mailto:radenski at chapman.edu http://www.chapman.edu/~radenski/ If you think you are boring your audience, go slower not faster -- Gustav Mahler From kirby.urner at gmail.com Wed Apr 26 19:36:21 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 26 Apr 2006 10:36:21 -0700 Subject: [Edu-sig] Tips for wandering faculty Message-ID: By wandering faculty, I mean you're invited to gigs in a room you don't control and maybe have never seen before -- my situation rather often. A lab tech has likely installed Python ahead of time, but in a lab situation, there's always the question of rights, especially write rights. The typical thing is to not know or care about /site-packages, and so to have no writable access to *any* disk space on the default Python path. Your mileage may vary. We have several ways of addressing this situation, both from within the bash shell (if using Linux or maybe OS X) or from within Windows. To keep things Pythonic, I mix the subject of namespaces, essential early Python, with the example of sys, and sys.path in particular. Here's an importable resource you're able to append to, meaning whatever home directory you *can* write to is appendable to sys.path per this session. And that's a good thing. Plus it reinforces the core concept: import menagerie as zoo and/or from zoo import Dog, Monkey, Human. Many side bar topics also feature (including escape characters, if you want to stick with Windows backslash notation -- I have a take-it-or-leave-it attitude, as Python is quite willing to use forward slashes even on Windows). I like this segment for another reason: unlike some educators, I have no interest in "shielding" my students from the gross reality of some hunkering OS, complete with kernel, GUI resources and whathaveyou. Yes, a Linux system is huge and complicated. No, I don't favor "insulating" students from that hugeness, by constructing some dream world atop it and inside it, but unaware of it. This whole idea that we must "protect" students from this context is an anathema to me, as it's hypocritical. The people who *build* your pseudo or virtual reality need to know about these underlayers, these pipeworks and clockworks. Their not wanting to clue you in is a sign they're not treating you as a peer, but as a rat in some maze of their own devising. It may sound like I'm taking aim at Squeak here, but I'm not really. Squeak provides a more open source world that goes almost to the chip, just like Linux. You have access to the source code if you want it, down to where SmallTalk meets C, at which point there's not a lot to see (others have commented on this piece -- what Python might stand to gain from once the intended meetings happen in the Bay Area). More I'm taking aim at curricula which haven't discussed the file tree by the time we're dealing with 15 year olds. If you're already 15, and have no access to a bash shell, or the concepts of hard disk and filesystem, then IF you're actually using a hard drive with a file system, you're being ripped off, big time. Time to shop for a smarter set of teachers. Learn about partitions, standard trees and variants, search paths, config files. Don't let them hide that stuff behind a curtain. Kirby From chuck at freshsources.com Wed Apr 26 19:52:44 2006 From: chuck at freshsources.com (Chuck Allison) Date: Wed, 26 Apr 2006 11:52:44 -0600 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: References: Message-ID: <1011848902.20060426115244@freshsources.com> ku> I like this segment for another reason: unlike some educators, I have ku> no interest in "shielding" my students from the gross reality of some ku> hunkering OS, complete with kernel, GUI resources and whathaveyou. But novices can handle only so much. I agree that we don't want to create artificial worlds, but we must take care on how much and what we present on day 1. The surest way to lose students is to talk about things they don't understand and see no need for. Kernels are not day 1 material (for anyone). The other issue, of course, is the variety of learning paradigms. Some people are more visually oriented than others. When I taught Python to adult testers last year we didn't need a visual approach (although we used Komodo for easy development). But when my 14-year old nephew last year said, "Uncle Chuck, teach me to program!", I had his attention for 30 seconds and then he was gone because I had nothing graphical (i.e., Alice-like) for him to play with. He just could not grasp typing 2+3 at the command-line ad getting 5 out. Who cares about a linear conversation with a computer console? -- Best regards, Chuck From kirby.urner at gmail.com Wed Apr 26 20:12:44 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 26 Apr 2006 11:12:44 -0700 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: <1011848902.20060426115244@freshsources.com> References: <1011848902.20060426115244@freshsources.com> Message-ID: > But novices can handle only so much. I agree that we don't want to > create artificial worlds, but we must take care on how much and what > we present on day 1. The surest way to lose students is to talk about > things they don't understand and see no need for. Kernels are not day > 1 material (for anyone). > I show excerpts from the documentary 'Revolution OS' (not the whole thing), in which Linus himself does a good job of describing the job of an operating system. I don't do this on day one though, like you say. > The other issue, of course, is the variety of learning paradigms. Some > people are more visually oriented than others. When I taught Python to > adult testers last year we didn't need a visual approach (although we > used Komodo for easy development). But when my 14-year old nephew last > year said, "Uncle Chuck, teach me to program!", I had his attention > for 30 seconds and then he was gone because I had nothing graphical > (i.e., Alice-like) for him to play with. He just could not grasp > typing 2+3 at the command-line ad getting 5 out. Who cares about a > linear conversation with a computer console? > I tell my Saturday Academy kids that if they're serious about programming, they need to learn to be "brutally lexical" -- and then I go on to demonstrate what that means (which *doesn't* mean we never do graphical). Kirby From ianb at colorstudy.com Wed Apr 26 20:21:31 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Wed, 26 Apr 2006 13:21:31 -0500 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: References: Message-ID: <444FBA2B.2090203@colorstudy.com> kirby urner wrote: > Yes, a Linux system is huge and complicated. No, I don't favor > "insulating" students from that hugeness, by constructing some dream > world atop it and inside it, but unaware of it. This whole idea that > we must "protect" students from this context is an anathema to me, as > it's hypocritical. The people who *build* your pseudo or virtual > reality need to know about these underlayers, these pipeworks and > clockworks. Their not wanting to clue you in is a sign they're not > treating you as a peer, but as a rat in some maze of their own > devising. Personally I wish *I* could be insulated from more of this; leaky and imperfect systems make this impossible at the moment. A strong abstraction is great -- at some point you may need to understand what that abstraction is built on, but even then it is nice to be able to retreat back into the abstraction so you can focus on what's really interesting and new that you are doing. There's a bunch of examples of this which I think are uncontroversial. Things like GC, pointers, characters (which are missing in Python), TCP/IP (which few people access directly anymore), the underlying mechanisms of threads and processes, and a bunch of other things that are so basic I have a hard time remembering they exist. Anyway, tangential to this, but maybe useful, I wrote a script to create isolated Python environments that doesn't require the cooperation of the system Python installation: http://blog.ianbicking.org/workingenv-revisited.html -- it may be useful for educational environments as well; easy to set up, and easy to throw away if you mess up your environment. Though it's dependent on PYTHONPATH, which isn't very accessible in a typical Mac or Windows environment (unless you are using one of those in a unixy style); hopefully someone familiar with those environments can suggest something. In this case, I think the status quo -- which forces you to think about the entire system, package management, etc -- is simply dumb. It's dumb for experienced programmers and dumb for newbies. For experienced programmers the status quo is sloppy and implicit; for newbies the status quo is dangerous and inaccessible. Neither group is well served. Kind of like manual memory management... we shouldn't mistake design problems for deep and useful ideas. There's hard and deep and useful ideas too; I'm just pointing out that not all hard things are deep or useful ;) -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From kirby.urner at gmail.com Wed Apr 26 20:35:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 26 Apr 2006 11:35:39 -0700 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: <444FBA2B.2090203@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> Message-ID: > Personally I wish *I* could be insulated from more of this; leaky and > imperfect systems make this impossible at the moment. A strong > abstraction is great -- at some point you may need to understand what > that abstraction is built on, but even then it is nice to be able to > retreat back into the abstraction so you can focus on what's really > interesting and new that you are doing. > That's nice if you're not just into escapist fantasy. Great to bliss out in a well-designed and productive environment, no one arguing with that. But that's no excuse for keeping kids clueless too long. > There's a bunch of examples of this which I think are uncontroversial. > Things like GC, pointers, characters (which are missing in Python), > TCP/IP (which few people access directly anymore), the underlying > mechanisms of threads and processes, and a bunch of other things that > are so basic I have a hard time remembering they exist. > We use 'Warriors of the Net' (a movie) to introduce TCP/IP (by "we" I mean the Silicon Forest based educators I work with). It makes as much sense to start with TCP/IP as it does with RAM and CPU in some ways. It's easy to look at processes through any kind of task manager (bash or Windows, doesn't matter). Learning to kill a process is pretty basic. I'll have kids start 'em just to kill 'em. They enjoy the sense of power this gives them. Kirby From pdfernhout at kurtz-fernhout.com Wed Apr 26 23:51:18 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 26 Apr 2006 17:51:18 -0400 Subject: [Edu-sig] Turtles all the way down (was Re: Tips ...) In-Reply-To: References: <444FBA2B.2090203@colorstudy.com> Message-ID: <444FEB56.8050402@kurtz-fernhout.com> kirby urner wrote: > Ian Bicking wrote: >>Personally I wish *I* could be insulated from more of this; leaky and >>imperfect systems make this impossible at the moment. A strong >>abstraction is great -- at some point you may need to understand what >>that abstraction is built on, but even then it is nice to be able to >>retreat back into the abstraction so you can focus on what's really >>interesting and new that you are doing. >> > That's nice if you're not just into escapist fantasy. Great to bliss > out in a well-designed and productive environment, no one arguing with > that. But that's no excuse for keeping kids clueless too long. Isn't "abstraction" mathematically simplifying something somehow, or creating an alternative mapping of part of the system to a symbol system you are comfortable working with? And isn't "fantasy" making up new stuff you like (even if only in your mind) from bits and pieces of ideas you have experience with? So, isn't even much of GNU/Linux is an "abstraction" away of many hardware details, like file systems are abstractions hiding how many disk platter you have and what sectors are in use, and "device nodes" are another abstraction, as are the "services" the kernel provides? They could all be provided other ways (or not at all), using other APIS, and are different on other computers and OSs throughout history (and may well change in the future). And, by contrast, the Linux kernel only a "fantasy" of Linus Torvalds (at one much earlier point, for some short time before he set to coding). So, when kids learn the guts of Linux, it seems they are still learning only an abstraction that was once a fantasy. Maybe something to remind them about occasionally. I liked Ian's point and your response because it reminds me of that Star Trek:TNG episode where people think they are leaving the Holodeck, only to find out later the ship they are in is still really just a virtual one and they are still on the Holodeck. For all we know, this reality is just a "escapist" simulation too: :-) See: "Are You Living In a Computer Simulation?" http://www.simulation-argument.com/ The more practice kids have mastering (and even creating or transcending) various new-to-them systems of rules the more prepared they will be for whatever life (or death :-) may throw at them down the road. Also, it is in our choices of what systems of rules to learn that we make some of life's hardest and most important decisions. So, by all means, it is good to encourage kids to get into details (like inodes) underneath abstractions (like files) when they want to, as a new and potentially useful sort of set of rules to master. But, just remind them, there always may be another layer of "turtles" :-). http://en.wikipedia.org/wiki/Turtles_all_the_way_down A related motivational CP4E question for kids who have probably all see the movie "The Matrix": Turtle -> Python -> OS -> Hardware -> Physics -> Universe -> Turtle? Of course, that question may be just too explosive for some classrooms? To somewhat address the original "Tips" question, and to address a genuine issue of computer literacy as GNU/Linux rises in dominance, and to address this issue of mastering multiple levels of abstraction, perhaps kids and even some teachers could be encouraged to make a tiny GNU/Linux distribution to make a Python interpreter shell that boots from on a diskette or USB stick or CDROM, and creates a RAM disk for classroom experiments. It isn't that hard. See: http://www.linuxlinks.com/Distributions/Floppy/ [has one already] http://www.linuxfromscratch.org/ [general instructions] Then you would have a custom Python which would be useful for wandering faculty (assuming the admins let you reboot the machine, and it was configured to allowing booting from removable media). --Paul Fernhout From pdfernhout at kurtz-fernhout.com Wed Apr 26 23:51:37 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 26 Apr 2006 17:51:37 -0400 Subject: [Edu-sig] PC terminology to end processes? (was Re: Tips ...) In-Reply-To: References: <444FBA2B.2090203@colorstudy.com> Message-ID: <444FEB69.3000702@kurtz-fernhout.com> kirby urner wrote: > Learning to kill a process is pretty basic. I'll have kids start 'em > just to kill 'em. They enjoy the sense of power this gives them. I see the value in encouraging kids to have a sense of their own power, but I have a script on my system (just for myself) which lets me type "stop" instead of "kill". Even in a virtual world of computing, is teaching kids to "kill" a good message? Language does effect thought to an extent. http://en.wikipedia.org/wiki/Sapir-Whorf_Hypothesis I feel a bit the same way about some user manuals that go on about "depressing" or "hitting" buttons. "Press" is a better choice I think. Also, someday those processes might represent sentient AIs and attempting to "kill" them might have serious consequences. Perhaps good to to get kids thinking about the potential rights of any sentience, even now. :-) --Paul Fernhout From mtobis at gmail.com Thu Apr 27 00:21:52 2006 From: mtobis at gmail.com (Michael Tobis) Date: Wed, 26 Apr 2006 17:21:52 -0500 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: <444FBA2B.2090203@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> Message-ID: Ian, among his talents, has a knack for terse, interesting generalizations. His style is so laid back that sometimes I wonder if other people notice how clever some of the things he says are. For instance: "we shouldn't mistake design problems for deep and useful ideas. There's hard and deep and useful ideas too; I'm just pointing out that not all hard things are deep or useful" That's a keeper. On the other hand, let me remind everyone that many people despair of this list because it spends too much time on impractical generalities. So I would add that we shouldn't mistake interesting conversations for progress. Many of the topics raised here are hard and deep but, at least for present purposes, still not very useful. I believe should keep the conversation germane to the intersection of Python and education, specifically, to the development of Python tools that are relevant to education. I don't know what the twentieth precept is, but I nominate: "La perfection est atteinte non quand il ne reste rien a ajouter, mais quand il ne reste rien a enlever" -Antoine de St Exupery Let's try to say less and say it better. mt From ianb at colorstudy.com Thu Apr 27 00:56:57 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Wed, 26 Apr 2006 17:56:57 -0500 Subject: [Edu-sig] Turtles all the way down (was Re: Tips ...) In-Reply-To: <444FEB56.8050402@kurtz-fernhout.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> Message-ID: <444FFAB9.10801@colorstudy.com> Paul D. Fernhout wrote: > To somewhat address the original "Tips" question, and to address a genuine > issue of computer literacy as GNU/Linux rises in dominance, and to address > this issue of mastering multiple levels of abstraction, perhaps kids and > even some teachers could be encouraged to make a tiny GNU/Linux > distribution to make a Python interpreter shell that boots from on a > diskette or USB stick or CDROM, and creates a RAM disk for classroom > experiments. It isn't that hard. > See: > http://www.linuxlinks.com/Distributions/Floppy/ [has one already] > http://www.linuxfromscratch.org/ [general instructions] > Then you would have a custom Python which would be useful for wandering > faculty (assuming the admins let you reboot the machine, and it was > configured to allowing booting from removable media). Well, you could also just include Python without the OS ;) I think that would be easier. Has anyone tried Movable Python (http://www.voidspace.org.uk/python/movpy/)? It's only for Windows, but I assume the technique is mostly portable (though some of the libraries are not so easy, I imagine, like wxPython). Anyway, I'm sure you could fit Python for several OS's onto one CD plus some useful libraries, and save some time doing setup, which is otherwise a great way to waste a lot of class time. Has anyone put together such a bundle? Or maybe it's already out there, even if written for other reasons. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From pdfernhout at kurtz-fernhout.com Thu Apr 27 01:05:20 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 26 Apr 2006 19:05:20 -0400 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <444FEB56.8050402@kurtz-fernhout.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> Message-ID: <444FFCB0.7080003@kurtz-fernhout.com> I previously wrote: > Then you would have a custom Python which would be useful for wandering > faculty (assuming the admins let you reboot the machine, and it was > configured to allowing booting from removable media). I just noticed this: http://wiki.python.org/moin/PythonCd "Welcome to your Python CD! This is a bootable CD based on [Debian GNU/Linux and KNOPPIX. The special thing about it is that it has lots of Python stuff!" Anyone used it? I'm curious: is it even practical to expect to walk into most modern educational computer lab in a typical school and expect to be able to reboot all the computers to run from your own Python CD? Do people's school computer labs typically allow a boot from removable media? I know it was quite possible to boot your own stuff when I ran an educational computer lab (or rather, impossible to stop. with those motherboards) but that was a long time ago (back in the days of 5-1/4 and Token Ring). I don't know what typical admin policies would be now. But todays' motherboards seem much more likely to have an option for picking the boot medium on reboot (but also more options to disable media booting which you would need to get into the BIOS settings to change). --Paul Fernhout From dblank at brynmawr.edu Thu Apr 27 02:16:47 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Wed, 26 Apr 2006 20:16:47 -0400 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <444FFCB0.7080003@kurtz-fernhout.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> Message-ID: <1146097007.4126.47.camel@mightymouse.brynmawr.edu> On Wed, 2006-04-26 at 19:05 -0400, Paul D. Fernhout wrote: > I previously wrote: > > Then you would have a custom Python which would be useful for wandering > > faculty (assuming the admins let you reboot the machine, and it was > > configured to allowing booting from removable media). > > I just noticed this: > http://wiki.python.org/moin/PythonCd > "Welcome to your Python CD! This is a bootable CD based on [Debian > GNU/Linux and KNOPPIX. The special thing about it is that it has lots of > Python stuff!" > > Anyone used it? > > I'm curious: is it even practical to expect to walk into most modern > educational computer lab in a typical school and expect to be able to > reboot all the computers to run from your own Python CD? Do people's > school computer labs typically allow a boot from removable media? I haven't used this CD, but we do have a similar disk with all of our Python-based robotics stuff here: http://pyrorobotics.org/?page=PyroLiveCD including a Python-based wrapper on a 3D simulator (Gazebo) that you can control from Python. You can drive a helicopter from Python! How cool is that? It is very practical to turn a regular lab of Windows machines into a lab of Linux machines (as long as they don't have the "boot from CD" locked down with a BIOS password, which they might. You can mount any disk and fiddle with it, so there are some security issues here.). Do note that you need to have a CD for each machine, as it reads from the CD as it needs to. This also makes it a little slower on the start-up. If your machines have good RAM and CD-ROM drives, you'll barely notice though. These disks are great for giving tutorials at workshops and conferences, and very nice to have so students can do their work at home. -Doug > I know it was quite possible to boot your own stuff when I ran an > educational computer lab (or rather, impossible to stop. with those > motherboards) but that was a long time ago (back in the days of 5-1/4 and > Token Ring). I don't know what typical admin policies would be now. But > todays' motherboards seem much more likely to have an option for picking > the boot medium on reboot (but also more options to disable media booting > which you would need to get into the BIOS settings to change). > > --Paul Fernhout > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From yinxianglong at gmail.com Thu Apr 27 03:11:58 2006 From: yinxianglong at gmail.com (=?GB2312?B?0vzP6cH6?=) Date: Thu, 27 Apr 2006 09:11:58 +0800 Subject: [Edu-sig] Help: How can I control a new IE window using PAMIE? In-Reply-To: <977252d80604261808n24af1a68idd4cb82c13bfa4f5@mail.gmail.com> References: <977252d80604261808n24af1a68idd4cb82c13bfa4f5@mail.gmail.com> Message-ID: <977252d80604261811r40607a14m43766967f07089f6@mail.gmail.com> I am using PAMIE to test a web application. I want to control a new IE window opened by clicking a link. How to do? For example: HTML source: go_to_b Using PAMIE I can click the link named aIE. Now how can I control the window whose url is "b.html"? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060427/62c7bd76/attachment.html From ianb at colorstudy.com Thu Apr 27 03:24:12 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Wed, 26 Apr 2006 20:24:12 -0500 Subject: [Edu-sig] HTConsole Message-ID: <44501D3C.50307@colorstudy.com> Thinking about some of these discussions, I decided to explore building a Python console app, available as a web page. No sandboxing; it's intended to be run on localhost. It's still pretty rough and doesn't have a ton of neat features. The file management is pretty weak, and doctesting is just stubbed out. Anyway, you can get it with: easy_install HTConsole Then run "htconsole" and a web page should pop up for your interactive pleasure. The ideal is to make Python objects live and editable through the web page. For instance, if you define a function it will be listed with its body in the web page, and you can edit the function in place. Unfortunately it's easy to run out of room, so I might have to explore other ways of displaying information. Also, there's a bunch of problems I've had -- like how to get the body of functions, and how (if it is possible at all) to update a function in place, just to start with. But anyway, with some imagination maybe you can see what's interesting about it, and maybe point out directions for further work that might be more fruitful from your own perspective. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From andre.roberge at gmail.com Thu Apr 27 04:09:39 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Wed, 26 Apr 2006 23:09:39 -0300 Subject: [Edu-sig] HTConsole In-Reply-To: <44501D3C.50307@colorstudy.com> References: <44501D3C.50307@colorstudy.com> Message-ID: <7528bcdd0604261909x7451053ex1e10f7513861a12a@mail.gmail.com> On 4/26/06, Ian Bicking wrote: > Thinking about some of these discussions, I decided to explore building > a Python console app, available as a web page. No sandboxing; it's > intended to be run on localhost. > > It's still pretty rough and doesn't have a ton of neat features. The > file management is pretty weak, and doctesting is just stubbed out. > > Anyway, you can get it with: > > easy_install HTConsole I'd really like to get it to work so as to try, but I haven't been able to. Here's what I did, followed by the (complete) error message. ============= For those (like me) who don't have easy_install, you apparently find it at: http://peak.telecommunity.com/DevCenter/EasyInstall If the default location is not on your path, you need to change directory to where it is found. (that's the case for me). Then, doing as Ian suggested: C:\Python24\Scripts>easy_install HTConsole Searching for HTConsole Reading http://www.python.org/pypi/HTConsole/ Best match: HTConsole 0.1 Downloading http://cheeseshop.python.org/packages/2.4/H/HTConsole/HTConsole-0.1- py2.4.egg#md5=99c85b1876a359f2e10c23df6bd63eb1 Processing HTConsole-0.1-py2.4.egg creating c:\python24\lib\site-packages\HTConsole-0.1-py2.4.egg Extracting HTConsole-0.1-py2.4.egg to c:\python24\lib\site-packages Adding HTConsole 0.1 to easy-install.pth file Installing htconsole-script.py script to C:\Python24\Scripts Installing htconsole.exe script to C:\Python24\Scripts Installed c:\python24\lib\site-packages\htconsole-0.1-py2.4.egg Processing dependencies for HTConsole Searching for Paste Reading http://www.python.org/pypi/Paste/ Reading http://pythonpaste.org Best match: Paste 0.9 Downloading http://cheeseshop.python.org/packages/2.4/P/Paste/Paste-0.9-py2.4.eg g#md5=0cc8f68bb84b5f4efb587cb1bfc5a4a9 Processing Paste-0.9-py2.4.egg creating c:\python24\lib\site-packages\Paste-0.9-py2.4.egg Extracting Paste-0.9-py2.4.egg to c:\python24\lib\site-packages Adding Paste 0.9 to easy-install.pth file Installed c:\python24\lib\site-packages\paste-0.9-py2.4.egg Searching for WebHelpers Reading http://www.python.org/pypi/WebHelpers/ Reading http://pylonshq.com/WebHelpers/ Best match: WebHelpers 0.1 Downloading http://cheeseshop.python.org/packages/2.4/W/WebHelpers/WebHelpers-0. 1-py2.4.egg#md5=6c945cc1169f5dc440f1a00352b0796a Processing WebHelpers-0.1-py2.4.egg creating c:\python24\lib\site-packages\WebHelpers-0.1-py2.4.egg Extracting WebHelpers-0.1-py2.4.egg to c:\python24\lib\site-packages Adding WebHelpers 0.1 to easy-install.pth file Installed c:\python24\lib\site-packages\webhelpers-0.1-py2.4.egg Searching for RuleDispatch Reading http://www.python.org/pypi/RuleDispatch/ Couldn't find index page for 'RuleDispatch' (maybe misspelled?) Scanning index of all packages (this may take a while) Reading http://www.python.org/pypi/ No local packages or download links found for RuleDispatch error: Could not find suitable distribution for Requirement.parse('RuleDispatch' ) ############################# Ok, I got an error message. Still, let's try, keeping my fingers crossed ;-) > > Then run "htconsole" and a web page should pop up for your interactive > pleasure. The ideal is to make Python objects live and editable through > the web page. For instance, if you define a function it will be listed > with its body in the web page, and you can edit the function in place. C:\Python24\Scripts>htconsole Traceback (most recent call last): File "C:\Python24\Scripts\htconsole-script.py", line 5, in ? from pkg_resources import load_entry_point File "c:\python24\lib\site-packages\setuptools-0.6a11-py2.4.egg\pkg_resources. py", line 2438, in ? working_set.require(__requires__) File "c:\python24\lib\site-packages\setuptools-0.6a11-py2.4.egg\pkg_resources. py", line 585, in require needed = self.resolve(parse_requirements(requirements)) File "c:\python24\lib\site-packages\setuptools-0.6a11-py2.4.egg\pkg_resources. py", line 483, in resolve raise DistributionNotFound(req) # XXX put more info here pkg_resources.DistributionNotFound: RuleDispatch ################## Any idea? Andr? > [snip] > > Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From ianb at colorstudy.com Thu Apr 27 04:22:48 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Wed, 26 Apr 2006 21:22:48 -0500 Subject: [Edu-sig] HTConsole In-Reply-To: <7528bcdd0604261909x7451053ex1e10f7513861a12a@mail.gmail.com> References: <44501D3C.50307@colorstudy.com> <7528bcdd0604261909x7451053ex1e10f7513861a12a@mail.gmail.com> Message-ID: <44502AF8.2070807@colorstudy.com> Andre Roberge wrote: > On 4/26/06, Ian Bicking wrote: >> Thinking about some of these discussions, I decided to explore building >> a Python console app, available as a web page. No sandboxing; it's >> intended to be run on localhost. >> >> It's still pretty rough and doesn't have a ton of neat features. The >> file management is pretty weak, and doctesting is just stubbed out. >> >> Anyway, you can get it with: >> >> easy_install HTConsole > > I'd really like to get it to work so as to try, but I haven't been > able to. Here's what I did, followed by the (complete) error message. > > ============= > For those (like me) who don't have easy_install, you apparently find it at: > http://peak.telecommunity.com/DevCenter/EasyInstall Yes, indeed, forgot to mention that. I forgot that RuleDispatch isn't in PyPI. Use: easy_install -f http://peak.telecommunity.com/snapshots/ HTConsole This tells it where to look for RuleDispatch. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From andre.roberge at gmail.com Thu Apr 27 04:36:00 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Wed, 26 Apr 2006 23:36:00 -0300 Subject: [Edu-sig] HTConsole In-Reply-To: <44502AF8.2070807@colorstudy.com> References: <44501D3C.50307@colorstudy.com> <7528bcdd0604261909x7451053ex1e10f7513861a12a@mail.gmail.com> <44502AF8.2070807@colorstudy.com> Message-ID: <7528bcdd0604261936w4a6c7ab0m7e929dac4ce04608@mail.gmail.com> On 4/26/06, Ian Bicking wrote: > Andre Roberge wrote: > > On 4/26/06, Ian Bicking wrote: > >> Thinking about some of these discussions, I decided to explore building > >> a Python console app, available as a web page. No sandboxing; it's > >> intended to be run on localhost. > >> > >> It's still pretty rough and doesn't have a ton of neat features. The > >> file management is pretty weak, and doctesting is just stubbed out. > >> > >> Anyway, you can get it with: > >> > >> easy_install HTConsole > > > > I'd really like to get it to work so as to try, but I haven't been > > able to. Here's what I did, followed by the (complete) error message. > > > > ============= > > For those (like me) who don't have easy_install, you apparently find it at: > > http://peak.telecommunity.com/DevCenter/EasyInstall > > Yes, indeed, forgot to mention that. I forgot that RuleDispatch isn't > in PyPI. Use: > > easy_install -f http://peak.telecommunity.com/snapshots/ HTConsole > > This tells it where to look for RuleDispatch. > Good news: this installed it properly. Bad news: it does not work here. It starts Firefox (my default browser) at the http://localhost:8001/ page, which then displays a server error. I've appended below the entire error message from the console. Unfortunately, I must quit for the night. Andr? ============== C:\Python24\Scripts>htconsole C:\Python24\lib\site-packages\wareweb-0.1-py2.4.egg\wareweb\wsgiapp.py:58: Depre cationWarning: httpexceptions.middleware is deprecated; use make_middleware or H TTPExceptionHandler instead Serving from: http://localhost:8001 Error - exceptions.TypeError: unbound method compile() must be called with Templ ate instance as first argument (got nothing instead) URL: http://localhost:8001/ File 'c:\\python24\\lib\\site-packages\\Paste-0.9-py2.4.egg\\paste\\exceptions\\ errormiddleware.py', line 138 in __call__ app_iter = self.application(environ, detect_start_response) File 'c:\\python24\\lib\\site-packages\\Paste-0.9-py2.4.egg\\paste\\httpexceptio ns.py', line 619 in __call__ self.send_http_response, catch=HTTPException) File 'c:\\python24\\lib\\site-packages\\Paste-0.9-py2.4.egg\\paste\\wsgilib.py', line 112 in catch_errors_app app_iter = application(environ, start_response) File 'c:\\python24\\lib\\site-packages\\Paste-0.9-py2.4.egg\\paste\\session.py', line 52 in __call__ app_iter = self.application(environ, session_start_response) File 'c:\\python24\\lib\\site-packages\\Paste-0.9-py2.4.egg\\paste\\recursive.py ', line 54 in __call__ return self.application(environ, start_response) File 'c:\\python24\\lib\\site-packages\\PasteDeploy-0.5-py2.4.egg\\paste\\deploy \\config.py', line 157 in __call__ app_iter = self.application(environ, start_response) File 'c:\\python24\\lib\\site-packages\\Paste-0.9-py2.4.egg\\paste\\urlparser.py ', line 173 in __call__ return application(environ, start_response) File 'C:\\Python24\\lib\\site-packages\\wareweb-0.1-py2.4.egg\\wareweb\\servlet. py', line 42 in __call__ File 'C:\\Python24\\lib\\site-packages\\wareweb-0.1-py2.4.egg\\wareweb\\servlet. py', line 85 in _process File 'C:\\Python24\\lib\\site-packages\\wareweb-0.1-py2.4.egg\\wareweb\\event.py ', line 19 in replacement_func File 'C:\\Python24\\lib\\site-packages\\wareweb-0.1-py2.4.egg\\wareweb\\servlet. py', line 102 in run File 'C:\\Python24\\lib\\site-packages\\wareweb-0.1-py2.4.egg\\wareweb\\event.py ', line 19 in replacement_func File 'c:\\python24\\lib\\site-packages\\HTConsole-0.1-py2.4.egg\\htconsole\\site page.py', line 34 in respond standard_template = Template.compile(file=base_filename) exceptions.TypeError: unbound method compile() must be called with Template inst ance as first argument (got nothing instead) CGI Variables ------------- HTTP_ACCEPT: 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,t ext/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET: 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING: 'gzip,deflate' HTTP_ACCEPT_LANGUAGE: 'en-us,en;q=0.5' HTTP_CONNECTION: 'keep-alive' HTTP_HOST: 'localhost:8001' HTTP_KEEP_ALIVE: '300' HTTP_USER_AGENT: 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2' REMOTE_ADDR: '127.0.0.1' REMOTE_HOST: 'localhost' REQUEST_METHOD: 'GET' SCRIPT_NAME: '/' SERVER_NAME: '127.0.0.1' SERVER_PORT: '8001' SERVER_PROTOCOL: 'HTTP/1.1' Configuration ------------- doctest_dir: './doctests/' root_path: 'C:\\Python24\\lib\\site-packages\\htconsole-0.1-py2.4.egg\\htconso le' save_dir: './python/' WSGI Variables -------------- application: htconsole.base_url: '' paste.expected_exceptions: [] paste.httpexceptions: paste.recursive.forward: paste.recursive.include: paste.recursive.script_name: '' paste.session.factory: paste.throw_errors: True paste.urlparser.base_python_name: 'htconsole.web' wsgi process: 'Multithread CGI (?)' ------------------------------------------------------------ > > -- > Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org > From ianb at colorstudy.com Thu Apr 27 05:22:33 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Wed, 26 Apr 2006 22:22:33 -0500 Subject: [Edu-sig] HTConsole In-Reply-To: <7528bcdd0604261936w4a6c7ab0m7e929dac4ce04608@mail.gmail.com> References: <44501D3C.50307@colorstudy.com> <7528bcdd0604261909x7451053ex1e10f7513861a12a@mail.gmail.com> <44502AF8.2070807@colorstudy.com> <7528bcdd0604261936w4a6c7ab0m7e929dac4ce04608@mail.gmail.com> Message-ID: <445038F9.5080303@colorstudy.com> Andre Roberge wrote: > Good news: this installed it properly. > > Bad news: it does not work here. It starts Firefox (my default browser) at the > http://localhost:8001/ > page, which then displays a server error. I've appended below the > entire error message from the console. Unfortunately, I must quit for > the night. I really should have tested that install. In this case it needed Cheetah 2.0, but you got 1.0. I updated those and added some more links and tested it out, so now just "easy_install htconsole" really should work (as of version 0.1.1). Well, unless you don't have a recent version of setuptools. For people who don't have that, grab this file: http://peak.telecommunity.com/dist/ez_setup.py Run that, which will install the newest version of easy_install, run "easy_install htconsole" and you should be good to go. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From kirby.urner at gmail.com Thu Apr 27 06:46:17 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 26 Apr 2006 21:46:17 -0700 Subject: [Edu-sig] Turtles all the way down (was Re: Tips ...) In-Reply-To: <444FFAB9.10801@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFAB9.10801@colorstudy.com> Message-ID: > Anyway, I'm sure you could > fit Python for several OS's onto one CD plus some useful libraries, and > save some time doing setup, which is otherwise a great way to waste a > lot of class time. That sounds feasible in some cases. At Saturday Academy, I phone in what I'd like in the lab, maybe a few weeks ahead of time. I don't personally install stuff, nor necessarily have the rights to (I'm not usually root nor even sysop on PSU systems). I bring one of my own laptops to demo my stuff from the instructor desk. Kirby From kirby.urner at gmail.com Thu Apr 27 06:49:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 26 Apr 2006 21:49:41 -0700 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: References: <444FBA2B.2090203@colorstudy.com> Message-ID: > On the other hand, let me remind everyone that many people despair of > this list because it spends too much time on impractical generalities. > You may so remind, but I will remind everyone too that this is also a celebrated list, the subject of a PhD thesis, with a long and venerable history, including many memorable performances by Tim Peters himself. I can't think of many lists that have been more productive. > So I would add that we shouldn't mistake interesting conversations for > progress. Many of the topics raised here are hard and deep but, at > least for present purposes, still not very useful. > To whom? Do you really get to pass judgment at such a high level? I don't even remember your being here very long. > Let's try to say less and say it better. > > mt Let's try to be less obnoxiously sanctimonious. Kirby From kirby.urner at gmail.com Thu Apr 27 06:53:50 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 26 Apr 2006 21:53:50 -0700 Subject: [Edu-sig] PC terminology to end processes? (was Re: Tips ...) In-Reply-To: <444FEB69.3000702@kurtz-fernhout.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB69.3000702@kurtz-fernhout.com> Message-ID: On 4/26/06, Paul D. Fernhout wrote: > I see the value in encouraging kids to have a sense of their own power, > but I have a script on my system (just for myself) which lets me type > "stop" instead of "kill". I'm disgusted that "kill" isn't politically correct enough. We're engineers, not politicians. > Even in a virtual world of computing, is teaching kids to "kill" a good > message? Language does effect thought to an extent. Sheesh. > I feel a bit the same way about some user manuals that go on about > "depressing" or "hitting" buttons. "Press" is a better choice I think. > OK, so now you're just being funny. Hah! > Also, someday those processes might represent sentient AIs and attempting > to "kill" them might have serious consequences. Perhaps good to to get > kids thinking about the potential rights of any sentience, even now. :-) > > --Paul Fernhout Right. Be fearful little huddly creatures, all aquiver and afraid o dat big bad AI monster. Kirby From ianb at colorstudy.com Thu Apr 27 07:00:14 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Thu, 27 Apr 2006 00:00:14 -0500 Subject: [Edu-sig] PC terminology to end processes? (was Re: Tips ...) In-Reply-To: References: <444FBA2B.2090203@colorstudy.com> <444FEB69.3000702@kurtz-fernhout.com> Message-ID: <44504FDE.3090905@colorstudy.com> kirby urner wrote: > On 4/26/06, Paul D. Fernhout wrote: >> I see the value in encouraging kids to have a sense of their own power, >> but I have a script on my system (just for myself) which lets me type >> "stop" instead of "kill". > > I'm disgusted that "kill" isn't politically correct enough. We're > engineers, not politicians. I like kill too. It's like the difference between "self" and "this"; self is the personification and anthropomorphic form, and this is the object form. I like self more. I like metaphors. And putting science fiction and theatric effect aside, I can't imagine any future where killing processes is at all related to killing people, so I don't think it can be taken too seriously. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From dooms at info.ucl.ac.be Thu Apr 27 09:32:49 2006 From: dooms at info.ucl.ac.be (=?ISO-8859-1?Q?Gr=E9goire_Dooms?=) Date: Thu, 27 Apr 2006 09:32:49 +0200 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: References: Message-ID: <445073A1.5090408@info.ucl.ac.be> Paul Fernhout wrote: > I previously wrote: >> > Then you would have a custom Python which would be useful for wandering >> > faculty (assuming the admins let you reboot the machine, and it was >> > configured to allowing booting from removable media). >> > > I just noticed this: > http://wiki.python.org/moin/PythonCd > "Welcome to your Python CD! This is a bootable CD based on [Debian > GNU/Linux and KNOPPIX. The special thing about it is that it has lots of > Python stuff!" > > Anyone used it? > I did not try that one but developped my own a few years ago: http://www.info.ucl.ac.be/~dooms/python/python.html It is a morphix mainmodule which is easily complemented by minimodules. I have been using it since to teach Python to adults. The CD includes VPython, Jython, mysql, Boost.Python, etc... I gets a little old now and would need a upgrade (Python 2.3, some newer network cards not supported). > I'm curious: is it even practical to expect to walk into most modern > educational computer lab in a typical school and expect to be able to > reboot all the computers to run from your own Python CD? Do people's > school computer labs typically allow a boot from removable media? > At the place where I use this CD, they disable USB but let me boot from the CD. Best, -- Gr?goire Dooms. From lac at strakt.com Thu Apr 27 12:08:04 2006 From: lac at strakt.com (Laura Creighton) Date: Thu, 27 Apr 2006 12:08:04 +0200 Subject: [Edu-sig] Turtles all the way down (was Re: Tips ...) In-Reply-To: Message from Ian Bicking of "Wed, 26 Apr 2006 17:56:57 CDT." <444FFAB9.10801@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFAB9.10801@colorstudy.com> Message-ID: <200604271008.k3RA851f025705@theraft.strakt.com> In a message of Wed, 26 Apr 2006 17:56:57 CDT, Ian Bicking writes: >Well, you could also just include Python without the OS ;) I think that >would be easier. Has anyone tried Movable Python >(http://www.voidspace.org.uk/python/movpy/)? It's only for Windows, but >I assume the technique is mostly portable (though some of the libraries >are not so easy, I imagine, like wxPython). Anyway, I'm sure you could >fit Python for several OS's onto one CD plus some useful libraries, and >save some time doing setup, which is otherwise a great way to waste a >lot of class time. Has anyone put together such a bundle? Or maybe >it's already out there, even if written for other reasons. > > >-- >Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org I've used Knoppix http://www.knoppix.org to provide a bootable linux system packed with whatever it was I wanted to teach. So far it hasn't been python that I have been teaching, but I see no reason why this shouldn't work. Laura From lac at strakt.com Thu Apr 27 12:12:50 2006 From: lac at strakt.com (Laura Creighton) Date: Thu, 27 Apr 2006 12:12:50 +0200 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: Message from "Paul D. Fernhout" of "Wed, 26 Apr 2006 19:05:20 EDT." <444FFCB0.7080003@kurtz-fernhout.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> Message-ID: <200604271012.k3RACoSe025920@theraft.strakt.com> In a message of Wed, 26 Apr 2006 19:05:20 EDT, "Paul D. Fernhout" writes: >I previously wrote: >> Then you would have a custom Python which would be useful for wandering > >> faculty (assuming the admins let you reboot the machine, and it was >> configured to allowing booting from removable media). > >I just noticed this: > http://wiki.python.org/moin/PythonCd >"Welcome to your Python CD! This is a bootable CD based on [Debian >GNU/Linux and KNOPPIX. The special thing about it is that it has lots of >Python stuff!" > >Anyone used it? I didn't even know about it. Thanks. >I'm curious: is it even practical to expect to walk into most modern >educational computer lab in a typical school and expect to be able to >reboot all the computers to run from your own Python CD? Do people's >school computer labs typically allow a boot from removable media? Around here all student machines get completely wiped every month (sometimes every week) without fail. Otherwise they are packed with viruses, porn, and other junk. So bring-your-own distribution is the way to go. The only tricky thing is making sure that the students -- who want to save their own work on a CD -- actually do this properly. >--Paul Fernhout Laura From andre.roberge at gmail.com Thu Apr 27 12:36:52 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Thu, 27 Apr 2006 07:36:52 -0300 Subject: [Edu-sig] HTConsole In-Reply-To: <445038F9.5080303@colorstudy.com> References: <44501D3C.50307@colorstudy.com> <7528bcdd0604261909x7451053ex1e10f7513861a12a@mail.gmail.com> <44502AF8.2070807@colorstudy.com> <7528bcdd0604261936w4a6c7ab0m7e929dac4ce04608@mail.gmail.com> <445038F9.5080303@colorstudy.com> Message-ID: <7528bcdd0604270336n34e9ae7ene4fc13512f11cab9@mail.gmail.com> On 4/27/06, Ian Bicking wrote: [snip] > > I really should have tested that install. In this case it needed > Cheetah 2.0, but you got 1.0. I updated those and added some more links > and tested it out, so now just "easy_install htconsole" really should > work (as of version 0.1.1). > [snip] > > Run that, which will install the newest version of easy_install, run > "easy_install htconsole" and you should be good to go. I had to do easy_install --upgrade htconsole and it worked (the second time; I had a connection refused the first.) It is very nice!! The interface needs a little be of getting used to for multi-line definitions but it's certainly a good basis to build from. Nice work, Ian! > > > -- > Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org > From pdfernhout at kurtz-fernhout.com Thu Apr 27 14:18:49 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Thu, 27 Apr 2006 08:18:49 -0400 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604271012.k3RACoSe025920@theraft.strakt.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> Message-ID: <4450B6A9.6080907@kurtz-fernhout.com> Laura Creighton wrote: > So bring-your-own distribution > is the way to go. The only tricky thing is making sure that the > students -- who want to save their own work on a CD -- actually > do this properly. Wow, I had not even thought about students saving their work beyond to a RAM disk for the session. Nor had I really thought they would take the initiative to use a CD-ROM burner, but I guess those are common in school labs now? And I can see how it would be tricky, if you boot from a CD, to be able to write to a CD, since the system often has to load applications or libraries from CD. Any tips or pointers to links for managing this properly? I think I did it once, but I think I used an external USB writer. Here is a tip on that which seems to imply you need two CD-ROM drives (one for reading, and one for writing) http://www.eleli.de/knoppix/docs/tutorial/english/k3b.html Sounds then like the ideal computer set up, from the point of traveling faculty, would be a lab full of machines that may have no hard disk but have a CD-ROM reader (or even DVD-ROM reader, for bigger distros) and also a separate CD-ROM burner (so students can save their work like they used to do with floppies, but not worry about being able to eject the CDROM the disto is running from). I've seen these two-CD machines in stores, I wonder if they are common in computer labs or classrooms these days? Or does anyone carry around a few external USB CD-ROM burners with them for kids to use to save their work? USB Flash drives with 64MB these days are about $10 retail, so is it possible to expect people to bring their own, or alternatively give them out in class to keep (if it was a paid gig), to use to save their work from done from the bootable CD? Do computer lab PCs in schools now typically have at least one up-front USB ports for easy access? Of course, how important is it in in most cases for students to really save their work from playing with Python for one session? Is this really needed? And now, another thought, maybe if there was some easy way to save your work to the Python site or some other web hosting service (gmail?) then you would not need to worry about kids writing their stuff to CD or USB, they could just run some magical Python application that would stash their Python work on the network somewhere for later retrieval. I can see the value of that as something to consider building into a Python educational environment. I know, for me, this newer 2005 version of Knoppix with the UnionFS http://www.oreillynet.com/sysadmin/blog/2005/03/knoppix_38_and_unionfs_wow_jus.html is a big deal in my own use (since I often wanted to use some package that was not up-to-date on them, but I had a network). With UnionFS in Knoppix you can boot and still grab new packages with apt-get from the network transparently. So, if you are going to a computer lab with network access to the outside world (is this taken for granted these days in the USA?) then you could boot with either a plain or a somewhat customized Knoppix, but still get users to download the latest Python and version of other learning software from the network with a command line "sudo apt-get install package-name". Probably more chance of things going wrong relying on a network, but less need to update your CDs every time you make some change to your demonstration environment. For example, you could keep the latest Python learning environment on your own web site or publish it through Debian, but have the lab all boot a customized Knoppix with an apt sources file which includes a reference to your own web server if needed. Then, you have at least the older version of your stuff on the CDs, but you also have the option of getting newer stuff. Still, it seems like a pain to burn dozens of custom CDs (when you can get them for a dollar or even free), https://shipit.ubuntu.com/ so working with off-the-shelf solutions like an Ubuntu Live CD and having the kids fetch and install your own specific latest Python software off your website using the network is easiest (if you can trust the network to be there). Though that would take getting everyone to type at least few lines on the command line, one to fetch the package from the web to /tmp "cd /tmp; wget http://myserver/wonderful_python_educational_app.deb", one to install it with "dpkg -i wonderful_python_educational_app.deb", and one to run it "wonderful_python_educational_app". Of course this could also be done without apt if you just had an archive with a regular directory you unpacked to /tmp and then did a "python wonderful_python_educational_app.py". I like the notion too that you could burn CDs for people to take home to do stuff there too. I remember when the NeXT system with the first magneto-optical drives came out, and the big excitement was people could have their whole environment on a 256MB disk to take with them and boot from and do their work on public computers. It sounds like this is being realized to an extent for everyone now with bootable CDs. So, the free licensing of GNU/Linux is making a real difference then in what educators can accomplish with Python in computer lab on a practical basis (since you could not legally burn your own CDs with Windows or Mac OS/X on them, without special arrangements with those companies). By the way, not so sure about Mac labs; that would take a separate distro, like a bootable CD of YDL (Yellow-Dog Linux) if such exists? http://www-128.ibm.com/developerworks/library/l-ydlg5.html http://www.terrasoftsolutions.com/products/ydl/ Anyone successfully boot Mac labs with YDL CDs to run Python under GNU/Linux? It looks like you can do it other ways though to use stuff from Apple: http://en.wikipedia.org/wiki/LiveCD#Apple_Macintosh_OS-based (but I am not sure about the licensing issues there either for personal or lab use). Here is recent discussion implying Ubuntu will do it too: http://www.htmlforums.com/archive/index.php/t-69520.html and it looks like some success with the latest Intel macs: http://digg.com/apple/Ubuntu_Live_on_Mac_Mini_with_Ease_ and looking further, looks like it is definitely doable in theory with Ubuntu: http://www.ubuntuforums.org/archive/index.php/t-21233.html (whether that works in practice in Mac labs is a different story, of course). So, it sounds like with a bunch of CDs, some for Intel/PC and some for PPC/Mac, itinerant faculty could (theoretically) handle working in a known environment with current Python support in a lot of computer labs. And then they could possibly also download the latest specific environment they wanted through the network if there was one (or alternatively, distribute the latest environment from a few USB FLASH drives passed around the lab?) Thanks for all the other replies (that robot oriented Python distro looks like a lot of fun!) It sounds like it is a real possibility in many situations in education to either use off the shelf Knoppix-derived bootable CDs, or alternatively rolling your own GNU/Linux distro, to make sure the lab is running Python (or another app) the way you want (at least, for Windows/PC labs). And what's more, it's actually being done in practice by some. --Paul Fernhout From stuartw at mts.net Thu Apr 27 14:05:46 2006 From: stuartw at mts.net (Stuart Williams) Date: Thu, 27 Apr 2006 07:05:46 -0500 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: References: Message-ID: <17488.45978.340392.106559@gargle.gargle.HOWL> >>>>> kirby urner writes: >> So I would add that we shouldn't mistake interesting conversations for >> progress. Many of the topics raised here are hard and deep but, at >> least for present purposes, still not very useful. > To whom? Do you really get to pass judgment at such a high level? I > don't even remember your being here very long. >From the perspective of someone who recently joined, I don't remember you being here very long either, and I hope this isn't a list where the worth of a post is based primarily on how long the poster has been in the club. Stuart. From lac at strakt.com Thu Apr 27 14:48:30 2006 From: lac at strakt.com (Laura Creighton) Date: Thu, 27 Apr 2006 14:48:30 +0200 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: Message from "Paul D. Fernhout" of "Thu, 27 Apr 2006 08:18:49 EDT." <4450B6A9.6080907@kurtz-fernhout.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> <4450B6A9.6080907@kurtz-fernhout.com> Message-ID: <200604271248.k3RCmUhW000481@theraft.strakt.com> In a message of Thu, 27 Apr 2006 08:18:49 EDT, "Paul D. Fernhout" writes: >Laura Creighton wrote: >> So bring-your-own distribution >> is the way to go. The only tricky thing is making sure that the >> students -- who want to save their own work on a CD -- actually >> do this properly. > >Wow, I had not even thought about students saving their work beyond to a >RAM disk for the session. Nor had I really thought they would take the >initiative to use a CD-ROM burner, but I guess those are common in school > >labs now? >Or does anyone carry around a few external USB CD-ROM burners with them >for kids to use to save their work? I bring exactly one. But I have a class size of about 15. They aren't that expensive. >USB Flash drives with 64MB these days are about $10 retail, so is it >possible to expect people to bring their own, or alternatively give them >out in class to keep (if it was a paid gig), to use to save their work >from done from the bootable CD? Do computer lab PCs in schools now >typically have at least one up-front USB ports for easy access? They do here in G?teborg, Sweden. I've thought about using USB sticks, but so far haven't found the motivation to change the way I already do things. >Of course, how important is it in in most cases for students to really >save their work from playing with Python for one session? Is this really >needed? I think so. But in addition to whatever else I am teaching at the time, I am also teaching 'how not to be a passenger in your own life'. So making tools you can use to _do_ or _find out_ something that matters to you is very important to me. 'It's your tool, you made it, and you get to keep it (and improve it)' is very much the message I want to get across. >And now, another thought, maybe if there was some easy way to save your >work to the Python site or some other web hosting service (gmail?) then >you would not need to worry about kids writing their stuff to CD or USB, >they could just run some magical Python application that would stash their >Python work on the network somewhere for later retrieval. I can see the >value of that as something to consider building into a Python educational >environment. When we tried this at the university, the pages ended up being full of the same sort of porn, viruses and root kits that made it necessary to wipe the machines in the first place. > >So, if you are going to a computer lab with network access > to the outside world (is this taken for granted these days in the USA?) I'm in Sweden. I wouldn't know what is available in the USA. >practice by some. > >--Paul Fernhout Laura Creighton From holbert.13 at osu.edu Thu Apr 27 15:17:50 2006 From: holbert.13 at osu.edu (Rick Holbert) Date: Thu, 27 Apr 2006 09:17:50 -0400 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604271248.k3RCmUhW000481@theraft.strakt.com> References: <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> Message-ID: <200604270917.50916.holbert.13@osu.edu> On Thursday 27 April 2006 08:48 am, Laura Creighton wrote: > In a message of Thu, 27 Apr 2006 08:18:49 EDT, "Paul D. Fernhout" writes: > >Laura Creighton wrote: > >USB Flash drives with 64MB these days are about $10 retail, so is it > >possible to expect people to bring their own, or alternatively give them > >out in class to keep (if it was a paid gig), to use to save their work > >from done from the bootable CD? Do computer lab PCs in schools now > >typically have at least one up-front USB ports for easy access? > > They do here in G?teborg, Sweden. I've thought about using USB > sticks, but so far haven't found the motivation to change the way > I already do things. If you're thinking about using USB Flash drives, then Moveable Python might be of interest: http://www.voidspace.org.uk/python/movpy/ Rick From kirby.urner at gmail.com Thu Apr 27 15:43:20 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 06:43:20 -0700 Subject: [Edu-sig] Tips for wandering faculty In-Reply-To: <17488.45978.340392.106559@gargle.gargle.HOWL> References: <17488.45978.340392.106559@gargle.gargle.HOWL> Message-ID: > From the perspective of someone who recently joined, I don't remember > you being here very long either, and I hope this isn't a list where > the worth of a post is based primarily on how long the poster has been > in the club. > > Stuart. There's an open archive and anyone can read back. I don't insist anyone do that, but when I join a list (which I do often enough), I do try to develop a sense of where it's been and how it works. This has been a useful and productive list. For newbies to sign on and characterize it as a disappointment is OK, will happen, but I'm not about to rush in and agree with them. I also find such an attitude arrogant, like when "experts" come to help a developing country without taking the time to learn anything about it first. There's like a 300 page PhD thesis using this list as raw material, also fascinating, a PDF linked from the edu-sig home page. I hope everyone here has at least looked at the edu-sig home page. Just seems a basic courtesy to do some homework before sounding off and acting foolish, the way Tobis does. Kirby From kirby.urner at gmail.com Thu Apr 27 16:01:51 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 07:01:51 -0700 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604270917.50916.holbert.13@osu.edu> References: <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> <200604270917.50916.holbert.13@osu.edu> Message-ID: Saving work is a problem, yes, especially if the computers get wiped weekly, a situation I've not encountered yet. I'm used to at least one directory being writable, in the class I'm currently teaching that'd be c:\\documents and settings\\...\\saturday-acad or something on Windows 2000, and we append that to sys.path, the first time while learning about namespaces. I would not be in favor of using Knoppix to get around this particular situation. For saving work, a stiffy is probably sufficient (1.44 MB). They're not writing huge programs. Another option: we all have access to the Internet, so they could log in to web based email (assuming they all have accounts) and email attach it to themselves. Or I could open a shared class directory and let them upload to it -- we could use Python itself as the FTP client. But I prefer email as a first option. But in my particular circumstances, the directories will not be wiped weekly, so anything saved today will be there tomorrow, and I'm not assigning homework. So emailing stuff home is optional. Memory stick would be just as acceptable. I'll leave it to each student to decide. This Saturday I'll be screening Warriors of the Net about TCP/IP and we'll look at excerpts from 'Revolution OS' (maybe -- that might have to wait). Mostly, this is a math class though, so we'll start in with Euclid's Algorithm (a classic in Python, one of Guido's), and use that to develop Euler's totient concept, then practice checking (not proving) Euler's theorem: a base to N's totient, modulo N = 1, assuming gcd(base,N)==1. I'm gradually going to channel them into separate projects. I think at least one student, who already knows Python pretty well, could implement a Rational Number class, which he could then explain to the group and make available to others. With a rational number class available, we're in a position to play with Continued Fractions using recursion (there's also a non-recursive approach). I like to converge to Phi from both the continued fractions angle and from the Fibonaccis angle, where Phi has a strong geometric meaning in the world of five-fold symmetric polyhedra (is the diagonal of a regular pentagon of edges 1). Simple sequences is the way to go for others. Encyclopedia of Integer Sequences will be consulted. 1, 12, 42, 92, 162... Very short programs, for those new to programming. Also, in this next class (day after tomorrow), I'll be showing up with my big box of polyhedra and doing the quick backgrounder in Fuller geometry I always do. I present it as a "hole" in their current curriculum that Silicon Forest executives want to see filled. More about that in my London Knowledge Lab, OSCON, PyCon and EuroPython presentations, all on line. Kirby From kirby.urner at gmail.com Thu Apr 27 16:08:18 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 07:08:18 -0700 Subject: [Edu-sig] PC terminology to end processes? (was Re: Tips ...) In-Reply-To: <44504FDE.3090905@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB69.3000702@kurtz-fernhout.com> <44504FDE.3090905@colorstudy.com> Message-ID: > > I'm disgusted that "kill" isn't politically correct enough. We're > > engineers, not politicians. > > I like kill too. It's like the difference between "self" and "this"; > self is the personification and anthropomorphic form, and this is the > object form. I like self more. I like metaphors. And putting science > fiction and theatric effect aside, I can't imagine any future where > killing processes is at all related to killing people, so I don't think > it can be taken too seriously. > Good. Strong colorful language is often what saves the imagination in these brutally lexical environments we still work in some days. Exposing an organically growing shop talk to all these political winds, teaching kids to suppress themselves to appear "nicer" in the eyes of fascist word police, is damaging. I'm surprised Paul-the-unschooler would take such a top down approach, but I assume he was being tongue in cheek. Just too ridiculous. Kirby From mtobis at gmail.com Thu Apr 27 17:39:06 2006 From: mtobis at gmail.com (Michael Tobis) Date: Thu, 27 Apr 2006 10:39:06 -0500 Subject: [Edu-sig] One list or two? Message-ID: >From the edu-sig list I wrote: >> On the other hand, let me remind everyone that many people despair of >> this list because it spends too much time on impractical generalities. >> So I would add that we shouldn't mistake interesting conversations for >> progress. Many of the topics raised here are hard and deep but, at >> least for present purposes, still not very useful. >> I believe should keep the conversation germane to the intersection of >> Python and education, specifically, to the development of Python tools >> that are relevant to education. to which Kirby Urner replied: > to do some homework before sounding off and > acting foolish, the way Tobis does. There was general agreement among the attendees at the education BOF meeting at PyCon that a new list was necessary, so although my own presence is recent, my assertion was not unsupported. There has also been some discussion of dissatisfaction with the breadth of discussion here expressed since I have been following the list, notably including some strongly worded advice from Guido van Rossum recently. It happens that in response to this general agreement at PyCon, I set up such a list on Google Groups, with myself and Vern Ceder as owners and potential moderators, and there has been some traffic moving there. http://groups.google.com/group/edupython?lnk=oa Here is the announcement of that list again, as submitted by Anna Ravenscroft: === In order to facilitate small groups working on specific Python-in-Education projects, we have launched an edupython list on google groups (http://groups.google.com/group/edupython or edupython at googlegroups.com). We envision participation by people trying to coordinate work on the nuts and bolts implementation of a project, with frequent progress reports and requests for suggestions and comments coming back to edu-sig. The list developed as a result of a quite well-attended and enthusiastic BOF meeting at PyCon. This edupython list is not intended to replace edu-sig, which remains very strong for theoretical and philosophical discussions, and for getting input and suggestions from a wider group, but is also necessarily higher bandwidth. We invite anyone working on Python-related education projects to join the list. === For myself, I would prefer either that there only be one edu-sig list, and that it stay much more terse, but failing that, that the alternative edupython at googlegroups be linked from the edu-sig page on python.org so that newcomers or occasional contributors to the topic can make their own choice to read from or write to one or both. mt From ianb at colorstudy.com Thu Apr 27 17:47:15 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Thu, 27 Apr 2006 10:47:15 -0500 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604271248.k3RCmUhW000481@theraft.strakt.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> Message-ID: <4450E783.70401@colorstudy.com> Laura Creighton wrote: >>>Of course, how important is it in in most cases for students to really >>>save their work from playing with Python for one session? Is this really >>>needed? > > > I think so. But in addition to whatever else I am teaching at the time, > I am also teaching 'how not to be a passenger in your own life'. So > making tools you can use to _do_ or _find out_ something that matters to you > is very important to me. 'It's your tool, you made it, and you get to keep > it (and improve it)' is very much the message I want to get across. Students also already do enough throw-away work; it's demoralizing to add another such task and make them program into the ether. Anyway, a network syncing seems pretty reasonable. That could be as simple as zipping up the work and uploading it to a class site, and then downloading it later (from any machine); you could put the code to do this on the CD. For something a bit more sophisticated, this is a good argument for importing from URLs. Not inlined into the code, but if you added say 'http://svn.classsite.com/repos/student-name' to sys.path, and an import hook that knew how to read such sites (I think both importing from svn and plain HTTP are possible, since you don't have to do a listdir to attempt an import). Then all you need is a way to edit files on svn directly, which is possible with webdav or maybe something programmed directly into the IDE. And if it is an svn repository, you get automatic version control (you have to turn autocommit on in svn, and your history will be a little chaotic because there's no explicit commits, but you still get version control). Anyway, there's quite a bit of work to do that, but uploading zip files is still easy. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From kirby.urner at gmail.com Thu Apr 27 18:54:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 09:54:39 -0700 Subject: [Edu-sig] One list or two? In-Reply-To: References: Message-ID: > There was general agreement among the attendees at the education BOF > meeting at PyCon that a new list was necessary, so although my own > presence is recent, my assertion was not unsupported. There has also > been some discussion of dissatisfaction with the breadth of discussion > here expressed since I have been following the list, notably including > some strongly worded advice from Guido van Rossum recently. Guido was upset that we were straying into education philosophy, understandable given the just-ended Shuttleworth Summit, where such philosophical questions came up repeatedly. I am in full agreement that education philosophy *should* be on the table, but *not* here on edu-sig, where we'll just bog down in endless citations of an alien literature (i.e. by writers who know nothing of Python or our work together). As to a BOF wanting to start a new list, I don't see a problem, although it seems unnecessary to cast it as a fork or breakaway from edu-sig. Just propose a new group with a mission statement or focus, other than what's already covered here, why not? > It happens that in response to this general agreement at PyCon, I set > up such a list on Google Groups, with myself and Vern Ceder as owners > and potential moderators, and there has been some traffic moving > there. > > http://groups.google.com/group/edupython?lnk=oa Sounds good to me. Good luck with that. I'm staying with edu-sig myself and haven't time for two Python in education groups. Kirby From kirby.urner at gmail.com Thu Apr 27 19:00:19 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 10:00:19 -0700 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <4450E783.70401@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> <4450E783.70401@colorstudy.com> Message-ID: > For something a bit more sophisticated, this is a good argument for > importing from URLs. Not inlined into the code, but if you added say > 'http://svn.classsite.com/repos/student-name' to sys.path, and an import > hook that knew how to read such sites (I think both importing from svn > and plain HTTP are possible, since you don't have to do a listdir to > attempt an import). Then all you need is a way to edit files on svn > directly, which is possible with webdav or maybe something programmed > directly into the IDE. And if it is an svn repository, you get > automatic version control (you have to turn autocommit on in svn, and > your history will be a little chaotic because there's no explicit > commits, but you still get version control). Very sophisticated suggestions. In my open source class for the police (HPD), we did a little diff and patch, leading up to an appreciation of what CVS is all about, and by extension, version control. I tell students that the entire Python.org website is version controlled, with checkin privileges going to various pydotorg-subscribed webmasters (a hat I wore for awhile -- long enough to experience the furious spam-storm, much of it fed by clueless virus-bots). The nice thing about Python source code is the files aren't large, if you're not trucking around libraries like wx or whatever. If it's just pure .py you're into, then a plain old floppy disk is often sufficient. I'm one of those who still thinks there's a place for a floppy drive on a modern computer, even though many newer ones no longer support same. Kirby From dblank at brynmawr.edu Thu Apr 27 19:03:09 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Thu, 27 Apr 2006 13:03:09 -0400 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <4450E783.70401@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> <4450E783.70401@colorstudy.com> Message-ID: <1146157389.26881.42.camel@mightymouse.brynmawr.edu> On Thu, 2006-04-27 at 10:47 -0500, Ian Bicking wrote: [snip] > Anyway, a network syncing seems pretty reasonable. That could be as > simple as zipping up the work and uploading it to a class site, and then > downloading it later (from any machine); you could put the code to do > this on the CD. I believe that Knoppix has the ability to gather up all of the files of a student's desktop, and save them somewhere (network, flash memory, floppy, etc). I think that is "Save KNOPPIX configuration" from the "KNOPPIX" menu item. Then, the student can pick right back up from where they left off. This is a more general solution in that it saves everything from the desktop, but requires Knoppix. Your solution sounds better if they were moving between Windows, Linux, and Knoppix. -Doug > For something a bit more sophisticated, this is a good argument for > importing from URLs. Not inlined into the code, but if you added say > 'http://svn.classsite.com/repos/student-name' to sys.path, and an import > hook that knew how to read such sites (I think both importing from svn > and plain HTTP are possible, since you don't have to do a listdir to > attempt an import). Then all you need is a way to edit files on svn > directly, which is possible with webdav or maybe something programmed > directly into the IDE. And if it is an svn repository, you get > automatic version control (you have to turn autocommit on in svn, and > your history will be a little chaotic because there's no explicit > commits, but you still get version control). > > Anyway, there's quite a bit of work to do that, but uploading zip files > is still easy. > > -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From kirby.urner at gmail.com Thu Apr 27 19:09:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 10:09:39 -0700 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <1146157389.26881.42.camel@mightymouse.brynmawr.edu> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> <4450E783.70401@colorstudy.com> <1146157389.26881.42.camel@mightymouse.brynmawr.edu> Message-ID: > This is a more general solution in that it saves everything from the > desktop, but requires Knoppix. Your solution sounds better if they were > moving between Windows, Linux, and Knoppix. > > -Doug > In my reality, it'd really send the wrong message to bypass the already-functional Windows 2000 and go with a bootable Linux CD. That says "to learn Python, you have to use Linux, Windows isn't sufficient" which, given all Python has done to be at home on Windows, is a very undermining idea. Python is Windows friendly and will become more so as IronPython develops. On the other hand, if the lab is already a Linux Lab (like we had at the police station), then I have no attachment to pushing Windows in any way, except to encourage kids to use Python at home, even if Windows is what they use (which is true in many cases -- still the choice platform for games they tell me). Kirby From david at boddie.org.uk Thu Apr 27 23:06:24 2006 From: david at boddie.org.uk (David Boddie) Date: Thu, 27 Apr 2006 23:06:24 +0200 Subject: [Edu-sig] Bootable Python CDs? Message-ID: <200604272306.25198.david@boddie.org.uk> On Thu Apr 27 17:47:15 CEST 2006, Ian Bicking wrote: > For something a bit more sophisticated, this is a good argument for > importing from URLs. Not inlined into the code, but if you added say > 'http://svn.classsite.com/repos/student-name' to sys.path, and an import > hook that knew how to read such sites (I think both importing from svn > and plain HTTP are possible, since you don't have to do a listdir to > attempt an import). HTTP isn't too hard. I wrote an import hook to do this a few years ago: http://www.boddie.org.uk/python/xhtmlhook/ Of course, it does other things besides import .py files over HTTP, but it shows that it can be done. These days it could be implemented more cleanly using the improved import hook mechanism. David From kirby.urner at gmail.com Thu Apr 27 23:12:11 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 14:12:11 -0700 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604272306.25198.david@boddie.org.uk> References: <200604272306.25198.david@boddie.org.uk> Message-ID: In actual practice, I have students right click and download from my http://www.4dsolutions.net/ocn/python and save in their local (writable) subdirectories. That's the same as downloading .py files via HTTP. So far, we haven't needed to upload. Kirby From radenski at chapman.edu Thu Apr 27 21:51:54 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Thu, 27 Apr 2006 12:51:54 -0700 Subject: [Edu-sig] Bootable Python CDs? Message-ID: > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Douglas S. Blank > On Thu, 2006-04-27 at 10:47 -0500, Ian Bicking wrote: [snip] > I believe that Knoppix has the ability to gather up all of the files of > a student's desktop, and save them somewhere (network, flash memory, > floppy, etc). I think that is "Save KNOPPIX configuration" from the > "KNOPPIX" menu item. Then, the student can pick right back up from where > they left off. I host my Python courses with Moodle. Students can work on any system. At the end of their lab session, they use a browser to save a zipped folder with their intermediate results within Moodle. Later they can download that zipped folder anywhere and continue with the lab. (Moodle does not carry Python, so it should be installed on the system). No need to burn CDs or even use flash (although I would personally save a backup copy somewhere.) Atanas Atanas Radenski mailto:radenski at chapman.edu http://www.chapman.edu/~radenski/ If you think you are boring your audience, go slower not faster -- Gustav Mahler info/edu-sig From aharrin at luc.edu Fri Apr 28 00:35:08 2006 From: aharrin at luc.edu (Andrew Harrington) Date: Thu, 27 Apr 2006 17:35:08 -0500 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604271012.k3RACoSe025920@theraft.strakt.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> Message-ID: <4451471C.9080703@luc.edu> Saving from a CD boot: flash drives should work. A kludgey way if you have internet and a browser is the email files to yourself. Andy Laura Creighton wrote: >In a message of Wed, 26 Apr 2006 19:05:20 EDT, "Paul D. Fernhout" writes: > > >>I previously wrote: >> >> >>>Then you would have a custom Python which would be useful for wandering >>> >>> >>>faculty (assuming the admins let you reboot the machine, and it was >>>configured to allowing booting from removable media). >>> >>> >>I just noticed this: >> http://wiki.python.org/moin/PythonCd >>"Welcome to your Python CD! This is a bootable CD based on [Debian >>GNU/Linux and KNOPPIX. The special thing about it is that it has lots of >>Python stuff!" >> >>Anyone used it? >> >> > >I didn't even know about it. Thanks. > > > >>I'm curious: is it even practical to expect to walk into most modern >>educational computer lab in a typical school and expect to be able to >>reboot all the computers to run from your own Python CD? Do people's >>school computer labs typically allow a boot from removable media? >> >> > >Around here all student machines get completely wiped every month >(sometimes every week) without fail. Otherwise they are packed >with viruses, porn, and other junk. So bring-your-own distribution >is the way to go. The only tricky thing is making sure that the >students -- who want to save their own work on a CD -- actually >do this properly. > > > > > >>--Paul Fernhout >> >> > >Laura >_______________________________________________ >Edu-sig mailing list >Edu-sig at python.org >http://mail.python.org/mailman/listinfo/edu-sig > > -- Andrew N. Harrington Computer Science Department Undergraduate Program Director Loyola University Chicago http://www.cs.luc.edu/~anh 512B Lewis Towers (office) Office Phone: 312-915-7982 Snail mail to Lewis Towers 416 Dept. Fax: 312-915-7998 820 North Michigan Avenue aharrin at luc.edu Chicago, Illinois 60611 From david at boddie.org.uk Fri Apr 28 01:22:27 2006 From: david at boddie.org.uk (David Boddie) Date: Fri, 28 Apr 2006 01:22:27 +0200 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: References: <200604272306.25198.david@boddie.org.uk> Message-ID: <200604280122.28459.david@boddie.org.uk> On Thursday 27 April 2006 23:12, kirby urner wrote: > In actual practice, I have students right click and download from my > http://www.4dsolutions.net/ocn/python and save in their local > (writable) subdirectories. That's the same as downloading .py files > via HTTP. So far, we haven't needed to upload. If you're using an IDE, or even taking the traditional text editor and console approach, I guess you wouldn't really need things like import hooks/hacks to get where you want to go. Still, they might come in handy for interactive work. In the context of an import hook, uploading files wouldn't appear to make much sense, but it reminds me of the SAVE command I used to use in BASIC. It was more useful when programs were developed interactively as listings at the command line, but I notice that ipython has a save command, even if it does something quite different. A save command (export hook?) that pickled and uploaded user-created objects to a remote server might be useful in certain situations. David From ianb at colorstudy.com Fri Apr 28 01:31:29 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Thu, 27 Apr 2006 18:31:29 -0500 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604272306.25198.david@boddie.org.uk> References: <200604272306.25198.david@boddie.org.uk> Message-ID: <44515451.2050805@colorstudy.com> David Boddie wrote: > On Thu Apr 27 17:47:15 CEST 2006, Ian Bicking wrote: > > >>For something a bit more sophisticated, this is a good argument for >>importing from URLs. Not inlined into the code, but if you added say >>'http://svn.classsite.com/repos/student-name' to sys.path, and an import >>hook that knew how to read such sites (I think both importing from svn >>and plain HTTP are possible, since you don't have to do a listdir to >>attempt an import). > > > HTTP isn't too hard. I wrote an import hook to do this a few years ago: > > http://www.boddie.org.uk/python/xhtmlhook/ > > Of course, it does other things besides import .py files over HTTP, but > it shows that it can be done. > > These days it could be implemented more cleanly using the improved import > hook mechanism. You are right, that wasn't hard at all: http://svn.colorstudy.com/home/ianb/httpimport.py I haven't tested this seriously, and I'm not sure about the performance. Mmm... data loading also fits in. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org From david at boddie.org.uk Fri Apr 28 01:52:50 2006 From: david at boddie.org.uk (David Boddie) Date: Fri, 28 Apr 2006 01:52:50 +0200 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <44515451.2050805@colorstudy.com> References: <200604272306.25198.david@boddie.org.uk> <44515451.2050805@colorstudy.com> Message-ID: <200604280152.50857.david@boddie.org.uk> On Friday 28 April 2006 01:31, Ian Bicking wrote: > David Boddie wrote: > > These days it could be implemented more cleanly using the improved import > > hook mechanism. > > You are right, that wasn't hard at all: > http://svn.colorstudy.com/home/ianb/httpimport.py > > I haven't tested this seriously, and I'm not sure about the performance. > Mmm... data loading also fits in. I don't think you need to worry about the performance. These are the main problems with my implementation that I found disappointing: 1. There's no way to import shared library modules unless you want to cache them on disk before loading them. Having said that, I could probably think of some possible workarounds. Ideally, for low level stuff that needed these, you'd have a selection of different versions for different operating systems and architectures on the server, and the import hook would request the relevant one behind the scenes. 2. The help command didn't work properly, making it less useful for interactive use. In the end, an enhanced interpreter/workbook application could do lots of these extra things without needing to bend the rules of the import system. On the other hand, it's fun to code things that make you think differently about the language and interpreter. David From kirby.urner at gmail.com Fri Apr 28 02:06:29 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 17:06:29 -0700 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604280122.28459.david@boddie.org.uk> References: <200604272306.25198.david@boddie.org.uk> <200604280122.28459.david@boddie.org.uk> Message-ID: > If you're using an IDE, or even taking the traditional text editor and > console approach, I guess you wouldn't really need things like import > hooks/hacks to get where you want to go. Still, they might come in handy > for interactive work. Why do you call import a hook/hack? It's just standard Python, typical at the top of any normal Python program. sys.path is where the interpreter searches. Nothing could be simpler. Adding a new directory to sys.path is not any dark and mysterious hack. > In the context of an import hook, uploading files wouldn't appear to make > much sense, but it reminds me of the SAVE command I used to use in BASIC. > It was more useful when programs were developed interactively as listings > at the command line, but I notice that ipython has a save command, even if > it does something quite different. Typically you test things interactively but build your saved classes and functions in a module (a .py file). Saving the interactive session directly is not very useful, except for later reference. It's not executable code. The prompt characters (>>>) get in the way. > A save command (export hook?) that pickled and uploaded user-created objects > to a remote server might be useful in certain situations. > > David This all sounds very baroque and like making something very simple into something very complicated. I also don't recognize your jargon. Been using Python long? Just asking. Kirby From kirby.urner at gmail.com Fri Apr 28 02:09:47 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 17:09:47 -0700 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: References: <200604272306.25198.david@boddie.org.uk> <200604280122.28459.david@boddie.org.uk> Message-ID: > This all sounds very baroque and like making something very simple > into something very complicated. I also don't recognize your jargon. > Been using Python long? Just asking. > > Kirby > OK, I've checked http://svn.colorstudy.com/home/ianb/httpimport.py and see what you're up to (at least I think I do). I think it's kind of overkill if there's a writable subdirectory and you just want to download some .py files via HTTP or FTP. Just download and add the subdirectory to sys.path and you're done. Easy, transparent, and what Python was designed to do. Kirby From david at boddie.org.uk Fri Apr 28 02:28:24 2006 From: david at boddie.org.uk (David Boddie) Date: Fri, 28 Apr 2006 02:28:24 +0200 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: References: <200604272306.25198.david@boddie.org.uk> <200604280122.28459.david@boddie.org.uk> Message-ID: <200604280228.24849.david@boddie.org.uk> On Friday 28 April 2006 02:06, kirby urner wrote: > > If you're using an IDE, or even taking the traditional text editor and > > console approach, I guess you wouldn't really need things like import > > hooks/hacks to get where you want to go. Still, they might come in handy > > for interactive work. > > Why do you call import a hook/hack? It's just standard Python, > typical at the top of any normal Python program. It's a poor play on words. Just to explain, import hooks were formalized in a PEP: http://www.python.org/dev/peps/pep-0302/ Before then (in Python 2.2), it was possible but not quite so straightforward to change import behaviour. > sys.path is where > the interpreter searches. Nothing could be simpler. Adding a new > directory to sys.path is not any dark and mysterious hack. That's true, even if the directory is specified by a URL referencing a remote resource via HTTP. Ian's module focuses on this core feature; my module is somewhat more contrived (a hack), and involves extracting Python code from XHTML. For me, the ability to remote import .py files was a bonus. > Typically you test things interactively but build your saved classes > and functions in a module (a .py file). Saving the interactive > session directly is not very useful, except for later reference. It's > not executable code. The prompt characters (>>>) get in the way. Sometimes, when exploring an API or working through a problem, it's good to be able to go back and see what worked and what didn't. I suppose it's related to the old-style SAVE command, but not quite the same. > > A save command (export hook?) that pickled and uploaded user-created > > objects to a remote server might be useful in certain situations. > > This all sounds very baroque and like making something very simple > into something very complicated. I also don't recognize your jargon. > Been using Python long? Just asking. I'm a relative newcomer to the language - I started learning it back in the 1.5.2 days. I know some people here have been using it for much longer... David From kirby.urner at gmail.com Fri Apr 28 02:37:14 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 17:37:14 -0700 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604280228.24849.david@boddie.org.uk> References: <200604272306.25198.david@boddie.org.uk> <200604280122.28459.david@boddie.org.uk> <200604280228.24849.david@boddie.org.uk> Message-ID: > I'm a relative newcomer to the language - I started learning it back in > the 1.5.2 days. I know some people here have been using it for much longer... > > David Yeah, I get that, thanks for explaining in more detail. I just didn't understand what problem you were trying to solve. Speaking of clever tools, I use py2html a lot as a cgi script to colorize my code. Sort of the opposite of stripping out XHTML. Example: http://www.4dsolutions.net/cgi-bin/py2html.cgi?script=/ocn/python/satacad.py Kirby From ianb at colorstudy.com Fri Apr 28 02:53:18 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Thu, 27 Apr 2006 19:53:18 -0500 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604280152.50857.david@boddie.org.uk> References: <200604272306.25198.david@boddie.org.uk> <44515451.2050805@colorstudy.com> <200604280152.50857.david@boddie.org.uk> Message-ID: <4451677E.9010301@colorstudy.com> David Boddie wrote: > On Friday 28 April 2006 01:31, Ian Bicking wrote: >> David Boddie wrote: > >>> These days it could be implemented more cleanly using the improved import >>> hook mechanism. >> You are right, that wasn't hard at all: >> http://svn.colorstudy.com/home/ianb/httpimport.py >> >> I haven't tested this seriously, and I'm not sure about the performance. >> Mmm... data loading also fits in. > > I don't think you need to worry about the performance. These are the main > problems with my implementation that I found disappointing: > > 1. There's no way to import shared library modules unless you want to > cache them on disk before loading them. Having said that, I could > probably think of some possible workarounds. Ideally, for low level > stuff that needed these, you'd have a selection of different versions > for different operating systems and architectures on the server, and > the import hook would request the relevant one behind the scenes. I was thinking about it mostly for "user" code, which would be pure Python. And the subversion idea also appeals to me. > 2. The help command didn't work properly, making it less useful for > interactive use. Phillip Eby fixed this for Python 2.5 -- not necessarily for my hook, but at least making it possible. I don't know if it's easily backported or not. If not, that would be a real problem. (Tracebacks also don't work nicely) > In the end, an enhanced interpreter/workbook application could do lots of > these extra things without needing to bend the rules of the import system. > On the other hand, it's fun to code things that make you think differently > about the language and interpreter. Yeah, I'm kind of thinking about these things in terms of HTConsole; the "save" command at this point doesn't really save a module -- though it could be a module, it doesn't really feel like one, since "load" just executes the file in the current namespace. But I dunno... this is mostly just at the playing around stage at this point. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From kirby.urner at gmail.com Fri Apr 28 02:59:23 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 27 Apr 2006 17:59:23 -0700 Subject: [Edu-sig] Fractals Message-ID: So one of my high schoolers wants to use Python to understand Fractals? What should we do? Per my opener for Mandelbrot that time (a PowerPoint, done on short notice for Terry, when the originally scheduled talent bailed) I broke it down into sequences and their characteristics. Sequences may be reiterative, meaning they feed back into themselves (Fibonaccis the classic example). Sequences may be convergent, meaning they approach a value. Or divergent, meaning they go huge (more should be said). Or oscillatory (regular repeating sequence). Or chaotic, which is the "irrational number" like sequence: not divergent, not oscillatory, never settles down, never converges. Interesting. So then as an example of chaotic, we should import from cmath and simply explore the feedback loop z = z**2 + c for convergence or divergence. Actually, we don't really need cmath It's not that this loop is chaotic. It's that the boundary in between the convergent and divergent sequences it generates is chaotic. Two complex numbers, arbitrarily close together, may diverge in whether they converge or not, or on how fast they diverge (a source of color differences). >>> def seq(o=0j, z=1+1j): while True: yield o o = o**2 + z >>> g = seq() >>> for i in range(10): print g.next() # divergent! 0j (1+1j) (1+3j) (-7+7j) (1-97j) (-9407-193j) (88454401+3631103j) (7.81099614727e+015+6.42374081669e+014j) (6.05990163519e+031+1.0035162954e+031j) (3.5715362873e+063+1.21624200789e+063j) >>> g = seq(z=0.1+0.1j) >>> for i in range(10): print g.next() # convergent! 0j (0.1+0.1j) (0.1+0.12j) (0.0956+0.124j) (0.09376336+0.1237088j) (0.093487700481+0.123198705499j) (0.0935620291046+0.123035127359j) (0.093616210726+0.123022832334j) (0.0936293776353+0.123033862792j) (0.0936291289629+0.123039168003j) Kirby From andre.roberge at gmail.com Fri Apr 28 03:51:53 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Thu, 27 Apr 2006 22:51:53 -0300 Subject: [Edu-sig] Lightning compiler and doctest quizzes Message-ID: <7528bcdd0604271851n2ebda9a1l46e54d04a744b27e@mail.gmail.com> Inspired by Jeffrey Elkner's earlier posts about using doctest based quizzes to teach Python, I have done a fair bit of work on a little app I wrote a while ago called "Lightning compiler". It can be found on sourceforge, under lightning (https://sourceforge.net/project/showfiles.php?group_id=125834). Also, to quote from a previous message by Kirby Urner: "Python needs a more developed interactive teaching module: show some stuff, give students a command line, show more stuff, and so on." While Lightning compiler is different from the specific example Kirby gave (about the J language environment), I think it can be very useful tool in that kind of context. @Kirby: I'd be very curious to get your opinion of LC. Lightning Compiler (LC) is a wxPython based app. LC's purpose is to provide a friendlier environment to tests Python code snippets than the Python interpreter. It does include an interpreter (pyShell) but it is most likely to be used for its editor. You can execute the code that appears in the editing window and the output is redirected to an output window. raw_input() and input() are handled via dialogs. The basic layout (output window to the side or below the editor window) is customisable. Also, every command can be executed either by pressing a button or through a keyboard shortcut. You can also select part of the text (code) that appears on the editor window and execute it. If some text is selected, LC automatically uses it to be executed; otherwise it execute the entire window content. You can also ask LC to treat the code as a module and tests it with doctest by pressing a button (or keyboard shortcut). LC creates a module with the content of the editing window (or the selected part of it) and appends the lines: # import doctest doctest.testmod() # before running it. It can also use tests appearing in an external file, automatically adding the required commands, something like: # import doctest doctest.testmod() import unittest suite = doctest.DocFileSuite('some_file_queried_via_a_dialog') unittest.TextTestRunner("some verbosity level").run(suite) # You can "drag and drop" a python script into the editing window, instead of having to go through the open dialog. LC comes in a zip file with a sample app, showing how it can be embedded in other applications, as well as a sample script with doctests and a text file containing additional doctest based tests. For those that have tried LC before, a major change (in addition to the doctest feature) is the possibility to have more than one editing tab (as many as you want :-). Since LC uses wxPython, it can not be run with a basic Python installation. If there is some interest, I might try and adapt it so that it could use Tkinter instead as an option. This would probably be required if one wanted to use it with VPython for example. However, I have no experience with Tkinter. Any help would, of course, be appreciated :-) Thinking further about what Jeffrey suggested (having a collection of doctests online), I have been thinking about adding an option where one could fetch a code snippet (doctest) from a url. This would be fairly easy to implement. However, until there exists a significant collection of such code snippets, there is little need to consider adding this feature. As it is, one can always do a "cut-and-paste" from a browser to the editing window and work from there. Finally, as usual, I welcome any comments about this little app. Note that it is not intended as a complete IDE. Andr? From pdfernhout at kurtz-fernhout.com Fri Apr 28 15:17:20 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Fri, 28 Apr 2006 09:17:20 -0400 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <200604271248.k3RCmUhW000481@theraft.strakt.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> Message-ID: <445215E0.1060607@kurtz-fernhout.com> Laura Creighton wrote: >>So, if you are going to a computer lab with network access >> to the outside world (is this taken for granted these days in the USA?) > > > I'm in Sweden. I wouldn't know what is available in the USA. Sorry to be so USA-centric with that remark (I was thinking mainly in contrast with SA). By the way, as a tribute to Swedish engineers and their educators, we drive a 20 year old Swedish car (1986 Volvo 240 DL) as our sole car and we still love it (though, sadly, we are finally losing the struggle to rust, in part from these heavily salted northern USA roads). http://www.sgu.se/sgu/en/service/nyheter/nyheter-2005/vagsalt-indikatorer_e.html --Paul Fernhout From kirby.urner at gmail.com Fri Apr 28 16:17:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 28 Apr 2006 07:17:39 -0700 Subject: [Edu-sig] Fractals In-Reply-To: <1146221904.14136.172.camel@localhost.localdomain> References: <1146221904.14136.172.camel@localhost.localdomain> Message-ID: > For kids who do not know about complex numbers, it might be easier > to introduce fractals in the xy plane. It is also a good idea to > make a graph instead of looking a the numerical sequence; that will > be more exciting. We can use a simple graphic format: PBM. That was coming. The c in z**2 + c ranges over a patch of the complex plane, with the colored dot measuring the convergence/divergence at that point. Fractals are a vehicle for understanding complex numbers in my book -- to avoid them is to miss an opportunity. http://www.4dsolutions.net/ocn/fractals.html I like that you're working from the prompt, interactively. > P.S. another fun and easy way to introduce fractals is with the "chaos > game". I also use Wolfram's stuff in Tk to introduce unpredictable complexity from simple (perhaps unknown) rules. Deja vu. Haven't we had this discussion before? Kirby From kirby.urner at gmail.com Fri Apr 28 19:53:52 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 28 Apr 2006 10:53:52 -0700 Subject: [Edu-sig] Fwd: Fractals In-Reply-To: References: <1146221904.14136.172.camel@localhost.localdomain> <1146237626.14136.189.camel@localhost.localdomain> Message-ID: ---------- Forwarded message ---------- From: kirby urner Date: Apr 28, 2006 10:53 AM Subject: Re: [Edu-sig] Fractals To: "Jaime E. Villate" On 4/28/06, Jaime E. Villate wrote: > On Fri, 2006-04-28 at 07:17 -0700, kirby urner wrote: > > I also use Wolfram's stuff in Tk to introduce unpredictable complexity > > from simple (perhaps unknown) rules. > Can you give me a URL? I've done my own stuff in Tk/Maxima and I'm > interested to see what Wolfram has done. Slide 17 in this PDF, for what it looks like: http://www.4dsolutions.net/presentations/pythonicmath.pdf Here's a thread about source code: http://mail.python.org/pipermail/edu-sig/2004-May/003857.html Kirby From kirby.urner at gmail.com Sat Apr 29 00:58:08 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 28 Apr 2006 15:58:08 -0700 Subject: [Edu-sig] Phasing in Chaos Message-ID: One of the big challenges facing Pythonic Mathematics is how to successfully incorporate the whole topic of chaos mathematics, of which fractal geometry forms a part. This thread over on math-teach suggests one approach (i.e. mine). http://mathforum.org/kb/thread.jspa?threadID=1369616 This is the kind of stuff I link from my South Africa facing writings, as a guide to future archivists wanting to continue in this lineage I call Pythonic Mathematics. I think it's a very promising approach and look forward to more collaborations. Kirby From winstonw at stratolab.com Sat Apr 29 05:21:48 2006 From: winstonw at stratolab.com (Winston Wolff) Date: Fri, 28 Apr 2006 23:21:48 -0400 Subject: [Edu-sig] One list or two? In-Reply-To: References: Message-ID: Mr. Tobis- I applaud your goal to start a list to promote Python projects for education. But I wonder, wouldn't any such projects have their own dedicated mailing lists? I fear slightly that two lists would dilute the attendance, and risk falling below a critical mass of people. As Kirby says, though, by all means give it a go, and we'll see what happens. Perhaps a different venue will start something new and vibrant. -Winston On Apr 27, 2006, at 12:54 PM, kirby urner wrote: >> There was general agreement among the attendees at the education BOF >> meeting at PyCon that a new list was necessary, so although my own >> presence is recent, my assertion was not unsupported. There has also >> been some discussion of dissatisfaction with the breadth of >> discussion >> here expressed since I have been following the list, notably >> including >> some strongly worded advice from Guido van Rossum recently. > > Guido was upset that we were straying into education philosophy, > understandable given the just-ended Shuttleworth Summit, where such > philosophical questions came up repeatedly. I am in full agreement > that education philosophy *should* be on the table, but *not* here on > edu-sig, where we'll just bog down in endless citations of an alien > literature (i.e. by writers who know nothing of Python or our work > together). > > As to a BOF wanting to start a new list, I don't see a problem, > although it seems unnecessary to cast it as a fork or breakaway from > edu-sig. Just propose a new group with a mission statement or focus, > other than what's already covered here, why not? > >> It happens that in response to this general agreement at PyCon, I set >> up such a list on Google Groups, with myself and Vern Ceder as owners >> and potential moderators, and there has been some traffic moving >> there. >> >> http://groups.google.com/group/edupython?lnk=oa > > Sounds good to me. Good luck with that. I'm staying with edu-sig > myself and haven't time for two Python in education groups. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig ______________________________________________________ winston wolff - (646) 827-2242 - http://www.stratolab.com learning by creating - video game courses for kids in new york From winstonw at stratolab.com Sat Apr 29 05:26:36 2006 From: winstonw at stratolab.com (Winston Wolff) Date: Fri, 28 Apr 2006 23:26:36 -0400 Subject: [Edu-sig] Shuttleworth Summit In-Reply-To: References: Message-ID: <1D15C9D5-1B74-4C29-A364-AFB2A8E443F9@stratolab.com> This is a very good point. I should add to my list after piquing a student's interested, you need to keep them interested. And that is accomplished if the student reaches many little milestones successfully. When a student has trouble, struggles to overcome it, and succeeds--that is a huge motivator, not to mention an excellent lesson in it's own right about the importance of determination. -Winston On Apr 25, 2006, at 7:35 PM, Radenski, Atanas wrote: > 2. Even when students study because they are required to, students are > still *willing and ready to learn*. Getting them excited about the > subject matter helps. However, what is crucial to keep them going is > *success in what they are doing*. Who likes to fail? Normally > nobody. We > all like to succeed in what we are doing, no matter what we are doing. > Thus, our students need to be given a chance to succeed. > > Making it through and succeeding is what really makes people > excited. "I > made it! I made it!" What can be more motivational than this > feeling? It > does not matter that much what exactly you are doing, what matters is > that you succeed rather than fail. Do you like failing? Most people > hate > to fail. Students hate to fail - not necessarily in terms of grades > (in > a narrow sense) but in managing required activities in general. ______________________________________________________ winston wolff - (646) 827-2242 - http://www.stratolab.com learning by creating - video game courses for kids in new york From villate at gnu.org Fri Apr 28 10:40:25 2006 From: villate at gnu.org (Jaime E. Villate) Date: Fri, 28 Apr 2006 09:40:25 +0100 Subject: [Edu-sig] Bootable Python CDs? In-Reply-To: <4450E783.70401@colorstudy.com> References: <444FBA2B.2090203@colorstudy.com> <444FEB56.8050402@kurtz-fernhout.com> <444FFCB0.7080003@kurtz-fernhout.com> <200604271012.k3RACoSe025920@theraft.strakt.com> <4450B6A9.6080907@kurtz-fernhout.com> <200604271248.k3RCmUhW000481@theraft.strakt.com> <4450E783.70401@colorstudy.com> Message-ID: <1146213625.14136.140.camel@localhost.localdomain> On Thu, 2006-04-27 at 10:47 -0500, Ian Bicking wrote: > Anyway, a network syncing seems pretty reasonable. That could be as > simple as zipping up the work and uploading it to a class site, and > then > downloading it later (from any machine); you could put the code to do > this on the CD. Moodle lets you do that easily. My students zip their source code for each class and submit it in our Moodle server (the source code is actually Maxima, but Python would work in the same way). Moodle is also used to publish the work-plan for each class, send e-mail announcements to all students, discussion forums, wikis, etc. The Moodle server is synchronized to our University database via LDAP, so I do not have to worry about giving permissions to my students: those enrolled in the course can automatically upload files. Moodle does not use SVN version control, but you can easily add that with a module (we've done that). I have also written a Moodle module that will take the source code file submitted by each student, run it in the server (in our case the source code is Scheme), and compare the result with the program submitted by the teacher. That way we can automatically grade student's programs in a weekly basis. You can see a few more details and links in: http://fisica.fe.up.pt/pub/villate/workshop-up/eic2107.pdf Cheers, Jaime University of Porto, Portugal From andre.roberge at gmail.com Sat Apr 29 10:03:20 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 29 Apr 2006 05:03:20 -0300 Subject: [Edu-sig] DocTest Quiz: working local solution! Message-ID: <7528bcdd0604290103s64932f12vd8e3d7b1d1689924@mail.gmail.com> On 4/23/06, Jeffrey Elkner wrote: > On Sat, 22 Apr 2006 18:00:27 -0500, Michael Tobis wrote: > >I think I've got a realistic design for a doctest-driven beginners' > >programming courseware suitable for presenting HHTLCSpy - type > >materials that can be put together in a week or so with my level of > >skill. (Or a half-day if I let Ian B in on it... ) That week probably > >won't happen before early June, but I think I'll have something of > >immediate interest to you early enough in the summer that we can > >develop real curriculum in time for next fall. > > Thanks, Michael! I've written up a brief description of the tool I'm looking for here: > > http://dc.ubuntu-us.org/projects/doctest-quiz.php > > and a briefer launchpad spec here: > > https://launchpad.net/products/cando/+spec/doctest-quiz For those interested, you will find attached a simple app that essentially does what Jeff described, albeit entirely on a single computer. (Thus, if you can run Python on that machine, you can run it via a web browser without sandboxing). It requires CherryPy. Here's what is required: 1. Download and install CherryPy. http://www.cherrypy.org/ 2. Save doctestquiz.py in the tutorial directory that comes with cherrypy (so you can use the default configuration file). 3. Run doctestquiz 4. Point your browser to http://localhost:8080/index 5. Have fun! -------------- next part -------------- A non-text attachment was scrubbed... Name: doctestquiz.py Type: text/x-python Size: 3115 bytes Desc: not available Url : http://mail.python.org/pipermail/edu-sig/attachments/20060429/21fb0e53/attachment.py From villate at gnu.org Fri Apr 28 17:20:26 2006 From: villate at gnu.org (Jaime E. Villate) Date: Fri, 28 Apr 2006 16:20:26 +0100 Subject: [Edu-sig] Fractals In-Reply-To: References: <1146221904.14136.172.camel@localhost.localdomain> Message-ID: <1146237626.14136.189.camel@localhost.localdomain> On Fri, 2006-04-28 at 07:17 -0700, kirby urner wrote: > I also use Wolfram's stuff in Tk to introduce unpredictable complexity > from simple (perhaps unknown) rules. Can you give me a URL? I've done my own stuff in Tk/Maxima and I'm interested to see what Wolfram has done. > Deja vu. Haven't we had this discussion before? Perhaps. Sorry, I have not followed the list very closely. Jaime From villate at gnu.org Fri Apr 28 12:58:24 2006 From: villate at gnu.org (Jaime E. Villate) Date: Fri, 28 Apr 2006 11:58:24 +0100 Subject: [Edu-sig] Fractals In-Reply-To: References: Message-ID: <1146221904.14136.172.camel@localhost.localdomain> On Thu, 2006-04-27 at 17:59 -0700, kirby urner wrote: > So then as an example of chaotic, we should import from cmath and > simply explore the feedback loop z = z**2 + c for convergence or > divergence. Actually, we don't really need cmath For kids who do not know about complex numbers, it might be easier to introduce fractals in the xy plane. It is also a good idea to make a graph instead of looking a the numerical sequence; that will be more exciting. We can use a simple graphic format: PBM. Here is an example: We first define two functions on the xy plane >>> def f(x,y): return 0.6*x*(1+2*x)+0.8*y*(x-1)-y**2-0.9 >>> def g(x,y): return 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4 we also need to define the domain we are going to look at >>> xmin, ymin, xmax, ymax = -1.1, -0.9, 0.3, 0.2 initial values for x and y and the number of iterations >>> x, y = -0.5, 0 >>> num = 50000 the resolution of the graph will be 480 by 480 pixels, but since the pixels are grouped into bytes, we then use: >>> resx, resy = 60, 480 to transform eight pixel values into a byte, we will use this >>> mask = [128,64,32,16,8,4,2,1] the pixel values will be saved into an array of binary numbers, initialized to zero >>> from array import array >>> pixels = array('B') >>> for i in range(resx*resy): pixels.append(0) Before we start with the iterations we will also need a couple of functions to transform our (x,y) coordinates into an (i,j) pixel position on the screen: >>> def screenx(xmin,xmax,resx,x): return int((resx*8-1)*(x-xmin)/(xmax-xmin) + 0.5) >>> def screeny(ymin,ymax,resy,y): return int(resy - 0.5 - (resy-1)*(y-ymin)/(ymax-ymin)) Finally, we are ready to do the iterations. We need a couple of additional operators (modulus and exclusive or): >>> from operator import mod, or_ >>> for j in range(num): aux = x x = f(x,y) y = g(aux,y) if x>=xmin and x<=xmax and y>=ymin and y<=ymax: xi = screenx(xmin,xmax,resx,x) yi = screeny(ymin,ymax,resy,y) n = resx*yi + xi/8 pixels[n] = or_(pixels[n], mask[mod(xi,8)]) We now create the PBM file: >>> pbmfile = open('fractal1.pbm','w') The file should start with a "magic number" P4, followed by the x and y resolutions, in pixels: >>> pbmfile.write('P4\n%s %s\n' % (8*resx, resy)) we now transfer the array of pixels to the file, and close it >>> pixels.tofile(pbmfile) >>> pbmfile.close() The file fractal1.pbm shows the fractal. The concept of fractal is explained by zooming into the fractal. We need a bigger number of iterations to get a sharper image: >>> xmin, ymin, xmax, ymax = -0.8, -0.4, -0.6, -0.2 >>> x, y = -0.5, 0 >>> num = 500000 >>> pixels = array('B') >>> for i in range(resx*resy): pixels.append(0) >>> for j in range(num): aux = x x = f(x,y) y = g(aux,y) if x>=xmin and x<=xmax and y>=ymin and y<=ymax: xi = screenx(xmin,xmax,resx,x) yi = screeny(ymin,ymax,resy,y) n = resx*yi + xi/8 pixels[n] = or_(pixels[n], mask[mod(xi,8)]) >>> pbmfile = open('fractal2.pbm','w') >>> pbmfile.write('P4\n%s %s\n' % (8*resx, resy)) >>> pixels.tofile(pbmfile) >>> pbmfile.close() File fractal2.pbm is the enlargement of a small part of the fractal. Regards, Jaime P.S. another fun and easy way to introduce fractals is with the "chaos game". From pdfernhout at kurtz-fernhout.com Sat Apr 29 13:58:08 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Sat, 29 Apr 2006 07:58:08 -0400 Subject: [Edu-sig] Slashdot article: Do Kids Still Program? Message-ID: <445354D0.9050806@kurtz-fernhout.com> From: http://ask.slashdot.org/article.pl?sid=06/04/28/2236239&threshold=2 "From his journal, hogghogg asks: "I keep finding myself in conversations with tertiary educators in the hard sciences (Physics, Astronomy, Chemistry, etc.) who note that even the geeks?those who voluntarily choose to major in hard sciences?enter university never having programmed a computer. When I was in grade six, the Commodore PET came out, and I jumped at the opportunity to learn how to program it. Now, evidently, most high school computer classes are about Word (tm) and Excel (tm). Is this a bad thing? Should we care?" Do you think the desire to program computers has declined in the younger generations? If so, what reasons might you cite as the cause?" Lots of discusssion related to the themes of edusig and CP4E. --Paul Fernhout From andre.roberge at gmail.com Sat Apr 29 15:24:32 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 29 Apr 2006 10:24:32 -0300 Subject: [Edu-sig] DocTest Quiz: working local solution! In-Reply-To: <7528bcdd0604290103s64932f12vd8e3d7b1d1689924@mail.gmail.com> References: <7528bcdd0604290103s64932f12vd8e3d7b1d1689924@mail.gmail.com> Message-ID: <7528bcdd0604290624g2e05b772v22c9cadf67cfde79@mail.gmail.com> On 4/29/06, Andre Roberge wrote: > On 4/23/06, Jeffrey Elkner wrote: > > On Sat, 22 Apr 2006 18:00:27 -0500, Michael Tobis wrote: > > >I think I've got a realistic design for a doctest-driven beginners' > > >programming courseware suitable for presenting HHTLCSpy - type > > >materials that can be put together in a week or so with my level of > > >skill. (Or a half-day if I let Ian B in on it... ) That week probably > > >won't happen before early June, but I think I'll have something of > > >immediate interest to you early enough in the summer that we can > > >develop real curriculum in time for next fall. > > > > Thanks, Michael! I've written up a brief description of the tool I'm looking for here: > > > > http://dc.ubuntu-us.org/projects/doctest-quiz.php > > > > and a briefer launchpad spec here: > > > > https://launchpad.net/products/cando/+spec/doctest-quiz > > For those interested, you will find attached a simple app that > essentially does what Jeff described, albeit entirely on a single > computer. (Thus, if you can run Python on that machine, you can run it > via a web browser without sandboxing). > > It requires CherryPy. > > Here's what is required: > 1. Download and install CherryPy. http://www.cherrypy.org/ > 2. Save doctestquiz.py in the tutorial directory that comes with > cherrypy (so you can use the default configuration file). > 3. Run doctestquiz > 4. Point your browser to http://localhost:8080/index > 5. Have fun! > > Apparently the attachment was removed and can be found here: http://mail.python.org/pipermail/edu-sig/attachments/20060429/21fb0e53/attachment.py > From kirby.urner at gmail.com Sat Apr 29 16:42:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 29 Apr 2006 07:42:25 -0700 Subject: [Edu-sig] Slashdot article: Do Kids Still Program? In-Reply-To: <445354D0.9050806@kurtz-fernhout.com> References: <445354D0.9050806@kurtz-fernhout.com> Message-ID: > Lots of discusssion related to the themes of edusig and CP4E. > > --Paul Fernhout > Very apropos, thank you. And yes, making "computers" just be about Word and Excel is a terrible development. We need to make it clear to math teachers that just using calculators is to rip students off. One way to do this is to barrel ahead with math curricula that are, need I say it, invested in Python. Kirby From chuck at freshsources.com Sat Apr 29 18:41:05 2006 From: chuck at freshsources.com (Chuck Allison) Date: Sat, 29 Apr 2006 10:41:05 -0600 Subject: [Edu-sig] Slashdot article: Do Kids Still Program? In-Reply-To: References: <445354D0.9050806@kurtz-fernhout.com> Message-ID: <1738415943.20060429104105@freshsources.com> Hello kirby, ku> Very apropos, thank you. ku> And yes, making "computers" just be about Word and Excel is a terrible ku> development. We need to make it clear to math teachers that just ku> using calculators is to rip students off. One way to do this is to ku> barrel ahead with math curricula that are, need I say it, invested in ku> Python. I sent the following email out to our Math Task FOrce at Utah Valley State College this week (we do math the old-fashioned way and are taking a lot of heat for begin too hard). The quotes are from a local newspaper article interviewing high-tech businesses: === "And what's really staggering is that people who have some of the two-year degrees cannot do basic math. They rely on a calculator--garbage in, garbage out, and they don't realize it's wrong. And that's a big problem." They were quoting Dave Baglee, co-executive officer of IM Flash Technologies, LLC in Lehi. He also said that when you hire a two-year degree recipient, you're not "hiring a problem solver." The technology programs in the state were seen as a farce by some of the employers. "They're enrolling haircutters, and we have people fixing hair and cutting meat, not fixing engines and building engines and running injection moulding and doing technology types of things, which is where I want my tax dollars to go." That was Fred Lampropoulos. This is where our mishandling of K-12 math statewide and nationwide has gotten us. So we'll be cutting hair and meat while India and China lead in technology. Not a pretty sight. They also mention the home influence: "In this state ... we have an awful lot of moms and dads working and everybody trying to keep up, and the highest bankruptcy rate. Everybody has to have their flat screens and stuff like this... I think a lot of it goes goes right back to the home, and are we going to invest in things or are we going to invest in our children?" The rubber hits the road in business - it has to - and business leaders seem to know what the problems are. Is anyone listening? === But none of our math folks program or know Python! Ideas? I'd be happy to teach them if I could get them interested. Kirby, I think I need an immersion into your stuff somehow. (In my copious spare time, of course, which I have a negative amount of :-). -- Best regards, Chuck From kirby.urner at gmail.com Sat Apr 29 22:52:30 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 29 Apr 2006 13:52:30 -0700 Subject: [Edu-sig] Slashdot article: Do Kids Still Program? In-Reply-To: <1738415943.20060429104105@freshsources.com> References: <445354D0.9050806@kurtz-fernhout.com> <1738415943.20060429104105@freshsources.com> Message-ID: > But none of our math folks program or know Python! Ideas? I'd be > happy to teach them if I could get them interested. Kirby, I think I > need an immersion into your stuff somehow. (In my copious spare time, > of course, which I have a negative amount of :-). > > -- > Best regards, > Chuck I think it's a question of whether we're in the middle of a cultural shift wherein adults accept the need for life long learning more realistically, and don't worry too much about "starting over". I see two positive indications that this is the case: (1) with increasing life spans and more health to look foward to after 50, more adults are willing to start new careers even into their 40s and beyond. It's no longer unrealistic to consider medical school in one's 30s, as there's still ample time for a productive career, even after several years retraining (my friend Henry is going that route, and thriving). (2) all the 'for dummies' and 'complete idiot' titles out there. People are less afraid to admit they don't know, because the technical fields are so obviously vast that it has become apparent that *nobody* knows it all (in the old days, ignorant peasants used to think the King maybe knew everything). Trying to reach a set of goals involving math comprehension by means of steeping oneself in a computer language would be a definite "starting over" for a lot of teachers. The kids I'm teaching these days (today in fact) think this is simply a sensible and intelligent approach (they love my classes), but the adults are more in wonderment, as this really does seem like an alien curriculum to them. But I think we're probably entering an era when "trying new things" will be in vogue again. In the meantime, nations which have already declared emergencies around math teaching (e.g. South Africa) *are* ready to start over and try new things, so the math-through-programming approach *is* set to take off in some places, if not everywhere. Those sitting it out, on the sidelines for this round, will be in a position to learn from our mistakes, as we barrel ahead. That's the good news. The bad news is they may never catch up, if they wait too long. Kirby From inxdr at yahoo.com.au Sun Apr 30 12:32:33 2006 From: inxdr at yahoo.com.au (Darren Payne) Date: Sun, 30 Apr 2006 20:32:33 +1000 (EST) Subject: [Edu-sig] Don't kids program anymore? In-Reply-To: Message-ID: <20060430103233.63800.qmail@web54602.mail.yahoo.com> note that even the geeks?those > who voluntarily choose > to major in hard sciences?enter university never > having programmed a > computer. When I was in grade six, the Commodore PET > came out, and I > jumped at the opportunity to learn how to program > it. Now, evidently, most > high school computer classes are about Word (tm) and > Excel (tm). Is this a > bad thing? Should we care?" Do you think the desire > to program computers > has declined in the younger generations? If so, what > reasons might you > cite as the cause?" I am not surpised at this. I have noticed this trend for at least three years now. Kids (in Australia at least) are into multimedia and GAMES. They can see the importance of being a competent user of technology - hence the growth in more general ICT (information & communications technology) elements in all subject areas. THis should not be denigrated - it is a simple fact of life in our modern information age. Re programming - kids want to PLAY GAMES most of all! Many would like to program their own games ... but do not wish to put in the time/ effort neccessary to develop the level of skill required. In addition, programming ... as many of us in this list know it ... is primarily CONSOLE BASED - by this I mean you spend alot of time entering text on a screen to run the thing to get more text on the screen - BORING BORING BORING ... FOR MODERN KIDS! THis is why so many schools (once again in Australia) teach VB. THe VB GUI is sooo good and allows students to create REAL LIVE Windows programs with pull down menus, dialogue boxes etc with very little effort (and no understanding). But even this is putting many kids off know - a - days - the kids don't like the "business world" feel of it all or the preponderance of business problems that many teachers tend to favour (yes me too :)). Like I said at the start kids want games, fun and multimedia - colour, music and animation / video. I tried to get a class into PyGame two years ago - but even this requires such a large amount of background skill and knowledge. Since then I have moved to GameMaker (take a look and you will see why kids love it! gamemaker.nl). I said on this list about two or three years ago - Python (and all "fringe" languages) need to become like VB in terms of the IDE - if it doesn't it simply will not be taken up in schools. On a separate tack - I have TWO students in the whole school of 960, who are now in yr12, who just love to program and want to learn everything they possibly can about programming. I can show these kids any language and they go for it wholeheartedly simply because they have a passsion for this area of human endeavour. In yr7 they were into basic, blitzbasic and darkbasic - over the years I have encouraged their development in Python, Haskel and Prolog ... and in every one of these they know far far more than I ever will. regards ----------------------------------------------------------------------------------- regards Darren Payne Hurlstone Agricultural High School Ph: 9829 9222 Fax: 98292026 ____________________________________________________ On Yahoo!7 360?: Your own space to share what you want with who you want! http://www.yahoo7.com.au/360 From kirby.urner at gmail.com Sun Apr 30 17:11:04 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 30 Apr 2006 08:11:04 -0700 Subject: [Edu-sig] Don't kids program anymore? In-Reply-To: <20060430103233.63800.qmail@web54602.mail.yahoo.com> References: <20060430103233.63800.qmail@web54602.mail.yahoo.com> Message-ID: > I said on this list about two or three years ago - > Python (and all "fringe" languages) need to become > like VB in terms of the IDE - if it doesn't it simply > will not be taken up in schools. > Although I think this is one approach, I do not buy that it's the only option. VPython is far easier to use API-wise, than PyGame, plus provides a spatial geometry experience (difficult in PyGame). POV-Ray is another way to go (I've used both). Basically, math class is already boring (to many), and required, and becomes more relevant and exciting as computer technology is phased in -- with an intelligently designed, Python-aware curriculum. The Shuttleworth approach in other words. Showcasing a more meaningful math, richer in spatial geometry, more invested in programming right from the start, is, I think, a far more effective recruiting vehicle than trying to compete with some elective "computer programming" option focusing on cobbling together phony business apps in a VB-like setting (not that I have anything against Python being added to a Visual Studio type IDE -- a possible outcome for IronPython I should think). I speak from experience here. Saturday Academy, for which I teach, has a strong steady enrollment, has been going for 23 years. The high tech industries of Silicon Valley are behind it. We use SA to showcase how computers *could* be phased in to regular schooling. My students love it, and their parents do to. *Finally* something technical and difficult that excites a student -- something very hard to achieve in ordinary math class. Granted, my students are already somewhat self selected. But if we disappointed them, they wouldn't keep coming back. Also: check out Gamemaker for another useful approach. SA basis some of its more popular offerings on that tool (the free version is sufficiently powerful -- kids can buy a personal copy of the more feature-rich one, if they want to explore outside of class). Kirby From kirby.urner at gmail.com Sun Apr 30 17:55:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 30 Apr 2006 08:55:13 -0700 Subject: [Edu-sig] Pythonic Mathematics (session 2) Message-ID: CLASS: Saturday Academy: Pythonic Mathematics LOCATION: Portland State University, Neuberger Hall TIME: 10 AM - 12:30 PM While I'm at it, and while the memories are still fresh, I'll chronicle what happened in class yesterday. First, parking was difficult. PSU has two parking structures but I picked the wrong one, and wasted 15 minutes finding it was full, plus got caught going the wrong way in a narrow driveway and so on. Finally found meter parking with but minutes to spare. Broadway door to Neuberger was locked, had to go around. Elevator. Math computer lab. On time, believe it or not. Student peers, being dropped off by their parents, had similar problems, but all arrived, to find fractals being projected out of video.google.com, followed by a short explanation of same, with emphasis on the simplicity of the rule behind Mandelbrot's set: z = z*z + c. One of the fractal students took that on in IDLE later, preassigning c, setting z at 0+0j, and running forward, time and again, each time with a different c. Then I showed Warriors of the Net, which got quite a few laughs, but also respect for its close dissection of TCP/IP. Router, router switch, proxy server, firewall, ports... all in the form of an easy-to-parse cartoon. After it was over, I switched off the projector (means house lights down, as the infrared remote can't cut through flouresence), rolled up the screen, and discussed the difference between two flavors of IP: TCP versus UDP. I also talked about SMTP, FTP, NNTP and HTTP as examples of port-associated services. We dissected a packet, in theory at least. Then I forget the exact transition, but my next topic involved my longstanding augmentation of spatial geometry with a Fuller hierarchy based, sphere packing approach. That led us to Encyclopedia of Integer Sequences, with the link being cuboctahedral numbers (this probably makes little sense if you haven't gone through my orientation, or one like it). Then it was dive into IDLE, import sys and sys.path.append('long string into My Documents') and a snack break. The rest of the class was spent by Pythonic Maths students exploring topics of their own choosing, picking from the list below (this is a verbatim transcript of what I typed out in IDLE during the break, and projected): """ Kirby Urner Projects: ==== Number sequences: triangular, square, cuboctahedral numbers Write short functions (or generators to be fancy) that return sequences, such as the triangular numbers: 0, 1, 3, 6, 10... ==== Rational Number class: start work on a rational number with a numerator and denominator, that will add and multipy fractions e.g.: >>> myrat = Rat(2,3) >>> myrat (2/3) >>> myrat * myrat (4,9) === Fractal Geometry. Compile bookmarks for "Argand Diagram" and "multiplying complex numbers". Figure out how to implement z = z**2 + c in Python, where z starts as (0,0) and c can be any complex number. === Volunteer to help with someone with any of these. """ Most of the peers chose the number sequences, as this was the easiest on ramp to beginning Python (writing a few functions, getting the hang of the editor versus shell experience, import and reload). Here's sort of what their polys.py would look like by the end of the day (they just copied the generator, while a talked about what they were good for, and tri was our first example, jumping off from the aforementioned Encyclopedia). def tri(n): return n * (n + 1) / 2 def square(n): pass # most of 'em had a working version def cubocta(n): """ 1,12,42,92,162... """ if n == 0: return 1 else: return 10 * n * n + 2 def fib(a,b): while True: yield a a,b = b,a+b One advanced student started whipping out Rational Number code, consulting the internet, fingers flying. I showed him Guido's GCD around the time he was wrestling the prime factors, trying to think how to reduce after two rationals __add__. And one fractals-loving guy dove into z = z*z + c, as recounted above (I drew and Argand Diagram and suggested he develop a visual sense of how two complexes multiply -- a self-study topic). I'd do lower voiced lectures with a corner, rove between stations. But the main thing was to get students alone with the snake, working their charms. This is more likely to lead to home experimentation, i.e. there's no sense that a teacher must be present. Learn on your own, teach yourself. That's not a burden, but a freedom and a right. Then parents started showing up, some clearly already pleased with the results of session one. One parent expressed gratitude that the high tech sector is behind an education initiative for this age group. Twenty three years and counting. I'm a latecomer of course, and a proud standard bearer already. Per thread here, I encouraged kids to email their .py files to themselves over a web account, so even if the local hard drives got wiped (as sometimes happens in computer labs), we'd be set to go forward. I told one parent my parking woes and she advised me of the two garage situation, plus hoped I'd in future take full advantage of PSU faculty parking privileges. Kirby From radenski at chapman.edu Sun Apr 30 19:09:54 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Sun, 30 Apr 2006 10:09:54 -0700 Subject: [Edu-sig] Don't kids program anymore? Message-ID: Darren Payne wrote: > Re programming - kids want to PLAY GAMES most of all! > Many would like to program their own games ... but do > not wish to put in the time/ effort neccessary to > develop the level of skill required. It takes between one and three years to develop a commercial game. Students who take on game programming can be soon disappointed because they are likely to produce games that look really primitive in comparison to their favorite commercial games. Many students who thought that they may create real games are eventually destined to be disappointed with the actual products of their game programming experience. > In addition, programming ... as many of us in this > list know it ... is primarily CONSOLE BASED - by this > I mean you spend alot of time entering text on a > screen to run the thing to get more text on the screen >- BORING BORING BORING ... FOR MODERN KIDS! I disagree, particularly when it comes to college/university level students. Text based programming (meaning no GUIs, no graphics) can be very satisfying and rewarding with contemporary college/university students. First, the instructor needs to pick up interesting problems that make sense on their own. Forget about 'write a program to calculate this meaningless expression, because it is a good learning exercise'. Have students do something that they can understand and that makes some sense to them (such as money-related calculations, for example, or a text-based game). It must be something students can manage within a reasonable time interval (such as one class period). The most important features of text-based programs are (1) that students can succeed with them after having applied a reasonable effort and (2) that students can understand then (i.e., be in control while succeeding). This is what motivates everyone best: (1) succeeding - while doing something that makes some sense - and (2) being in control while succeeding. Text-based programs in Python are good to start this process. Such programs prepare well students for GUIs and graphics. In my Python First courses (http://studypack.com) students start with meaningful and manageable text-based labs and end with some GUIs and graphics. Almost all succeed in their labs and understand what they are doing in the process. One Python First student (in a class taught by a colleague) told me recently that such text-based Python programs actually are helping him understand and manage mathematics better. This statement came to me as a very pleasant surprise. > Like I said at the start kids want games, fun and > multimedia - colour, music and animation / video We should not underestimate our students (particularly at the college/university level) by thinking that only color, music, animation/video, and games can attract them to programming and computer science. This would be wrong. The vast majority of students are willing to learn and understand programming and computing. Really, they are. They are NOT some lazy folks who would not come to class if we do not try to entertain them with multimedia and games. They will come to class if we entertain them with (1) a chance to really *succeed* in meaningful and manageable class activities and (2) a chance to *be in control* and understand while succeeding. GUIs and graphical games are probably not such activities in entry-level studies. Text based programming in Python (which reduces the syntax clutter to a minimum) can serve this purpose really well. > regards > Darren Payne Great post, Daren. Thank you. I understand you share experience with HS students. I wrote of my college/university experience - thing can be somewhat different at HS, I do not know. Atanas Atanas Radenski radenski at chapman.edu http://www.chapman.edu/~radenski http://studypack.com Digital courses for the net generation From giandomenico.sica at polimetrica.com Sun Apr 30 19:15:48 2006 From: giandomenico.sica at polimetrica.com (giandomenico.sica at polimetrica.com) Date: Sun, 30 Apr 2006 19:15:48 +0200 Subject: [Edu-sig] CFC: An Atlas of Linguistic Graphs Message-ID: <20060430191548.byyizj7k7wkgokc4@webmail.polimetrica.com> Call for Cooperation An Atlas of Linguistic Graphs I'm a researcher in graph theory and networks. I'm working about a project connected with the theory and the applications of linguistic graphs, which are mathematical structures useful to represent languages and consequently to manage the organization of data in different kinds of scientific fields. At the present I'm developing an application of these graphs to medicine, specifically related to the ontology of clinical diseases. And now to the purpose of this message, which is to ask if someone in this list can be interested in collaborating with me about the construction of an open source software useful to represent, to analyse and to compare linguistic graphs. I've developed the project but don't have the necessary programming skills to proceed with the creation of the code. The software would be distributed in public domain and the collaboration is free and voluntary. I really hope that someone can be interested. In the case, please feel free to contact me by using my private e-mail address. I'll be pleased to send the complete documentation related to the project. Really many thanks. All the best, Giandomenico Sica Faculty of Philosophy Leiden University giandomenico.sica at polimetrica.com Publications http://www.polimetrica.com/polimetrica/view/people/Sica,_Giandomenico.html 1st World Congress and School on Universal Logic http://www.uni-log.org From kirby.urner at gmail.com Sun Apr 30 21:21:56 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 30 Apr 2006 12:21:56 -0700 Subject: [Edu-sig] Don't kids program anymore? In-Reply-To: References: Message-ID: On 4/30/06, Radenski, Atanas wrote: > > It takes between one and three years to develop a commercial game. Students who > take on game programming can be soon disappointed because they are likely to > produce games that look really primitive in comparison to their favorite commercial > games. Exactly. This continues a thread from 2004: http://mail.python.org/pipermail/edu-sig/2004-December/004187.html Programs like Gamemaker, which provide a sophisticated graphics engine and not so difficult API are the way to go. Per email from Jason (Tue 4/25/2006 3:50 AM), TSF is already looking at this version of Logo as suggestive of a look and feel: > http://www.elica.net/index.html And of course we're not just talking about games per say, but of simulations based in game theory. Kirby From mtobis at gmail.com Sun Apr 30 21:26:48 2006 From: mtobis at gmail.com (Michael Tobis) Date: Sun, 30 Apr 2006 14:26:48 -0500 Subject: [Edu-sig] Don't kids program anymore? In-Reply-To: References: Message-ID: There is a profound relationship between gaming and education, one which is not primarily about sounds and graphics, but about goals, rewards, and sequencing. A very simple example of what I mean is at pythonchallenge.com . There is some effort not to expose the nth problem to you until you have demonstrated mastery of problem n-1. The experience is then of the next problem being the REWARD for solving the previous problem, with mastery as a side effect. Most kids, most humans in general, will voluntarily spend many hours in such environments. The game industry proves this. That the graphics are amusing is secondary to the design of interesting vs dull games. What keeps games interesting is that they stay near the optimum flow point between triviality and frustration. This impulse can and should be channelled toward useful skills. mt From kirby.urner at gmail.com Sun Apr 30 21:47:00 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 30 Apr 2006 12:47:00 -0700 Subject: [Edu-sig] Don't kids program anymore? In-Reply-To: References: Message-ID: On 4/30/06, Michael Tobis wrote: > Most kids, most humans in general, will voluntarily spend many hours > in such environments. The game industry proves this. That the graphics > are amusing is secondary to the design of interesting vs dull games. > What keeps games interesting is that they stay near the optimum flow > point between triviality and frustration. This impulse can and should > be channelled toward useful skills. > > mt I'm glad you mention REWARD. Many of us share this vision: find a way to disburse credits via distance education circuits such that those putting in the hard work of actually learning this stuff actually get rewarded, and not just in heaven, but on this very Earth as well. You'd think it wouldn't be so hard, given ample precedents, including clippable coupons or ID specific promotionals (e.g. use this code for a free subscription to...). As soon as you start making a return (maybe not in terms of cash, but in terms of barter, which eCommerce makes easier), the "school space" gives way to the "work place" i.e. they're paying you instead of you're paying them -- or at least it's more of a 2-way street. Relevant: http://worldgame.blogspot.com/2006/04/computer-lab-as-playground.html Kirby From francois.schnell at gmail.com Sun Apr 30 22:18:43 2006 From: francois.schnell at gmail.com (francois schnell) Date: Sun, 30 Apr 2006 22:18:43 +0200 Subject: [Edu-sig] Don't kids program anymore? In-Reply-To: References: Message-ID: <13a83ca10604301318g49691c70g87b6d81d65c0a795@mail.gmail.com> On 30/04/06, Radenski, Atanas wrote: > > Darren Payne wrote: > > > Like I said at the start kids want games, fun and > > multimedia - colour, music and animation / video I tend to disagree about the "fun" need. Kids are not interested for long about video games (or educational activity) which are just "fun". The game has to be difficult enough to challenge them and when they master a level they have no envy to do it again just because it's colorful, multimedia, violent, sexy, etc. As Seymor Papert explains I believe the real challenge is to make education *hard-fun* for each pupil (which is very different of making it "fun"): http://www.papert.org/articles/HardFun.html francois -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060430/281377a0/attachment.htm