From kirby.urner at gmail.com Sun Jul 1 09:17:17 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 1 Jul 2007 00:17:17 -0700 Subject: [Edu-sig] More OLPC chatter In-Reply-To: <552E9E91-250A-41B9-9961-881A1B70C106@solarsail.hcs.harvard.edu> References: <552E9E91-250A-41B9-9961-881A1B70C106@solarsail.hcs.harvard.edu> Message-ID: On 6/30/07, Ivan Krsti? wrote: > On Jun 29, 2007, at 6:29 PM, kirby urner wrote: > > One way around this shortcoming of Sugar's is to suggest that once > > kids are mature enough to eyeball the kind of convoluted source > > code > > Yes, and we tend to think that's not the right way. > I'm interested to learn more about what the right way might be. Will the source code for Sugar itself be exposed? Or are we talking about an immersive environment where some kinds of code are designated "safe" for playful experimentation? I'm presuming we need the effects of these changes in real time, with no stopping to reload or recompile something? Python's usual design time versus runtime modalities would become more blurred? > Is there a reason you think you can't happily run a normal editor, > compiler and shell on an XO? You seem to be strangely conflating > software that's shipped with the XO by default with both its hardware > and the limits of purposes for which it can be used. I'm just trying to get a handle on what's being anticipated in these words I didn't write: >>context-sensitive spirit of "view source" into all Activities is >>another area where we lag. Bolstering these efforts is second only to >>stabilizing the current system. We look forward to the possibility of >>Guido van Rossum, Python's creator, leading these efforts in the fall. You likely have a far clearer idea, given your closeness to the project. I'm just an interested party. Clearly someone thinks it's a high priority to develop source viewing features that don't currently exist on the XO -- source viewing features adult laptops don't have. I was thinking maybe instead of overhauling Python, just wait until they're old enough to use Python in the usual way. Kirby > -- > Ivan Krsti? | GPG: 0x147C722D > > From pdfernhout at kurtz-fernhout.com Sun Jul 1 15:27:04 2007 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Sun, 01 Jul 2007 09:27:04 -0400 Subject: [Edu-sig] More OLPC chatter (PataPata; Edit&Continue) In-Reply-To: References: Message-ID: <4687ABA8.2080404@kurtz-fernhout.com> First, to emphasize a key idea below, everyone here should see for a six minute video walkthrough example: "A nice demo of Smalltalk development in the debugger by David Buck." http://motionobj.com/article/demo-of-smalltalk-visualworks http://www.simberon.com/smalltalkdemo.avi That's what OLPC should ideally be able to do with a "View Source" key IMHO. ==== Well, we've been round this before, obviously: http://www.mail-archive.com/pypy-dev at codespeak.net/msg02442.html Developing a more dynamic way to view and edit source on running systems built on Python was, of course, the main point of the PataPata experiments. :-) http://patapata.sourceforge.net/ Here is Francois Schnells' related demo video: http://showmedo.com/videos/video?name=patapata_tkinter1_fSchnell The phrase that now seems to be in vogue to describe such capabilities is "Edit and Continue". Not quite entirely the same, but it covers enough to be really useful as a search term. This feature is of great value to beginners when it is integrated into an IDE well, as it helps them immediately focus on broken pieces of code rather than finding them by more indirect means. In hindsight, I wish I had focused more on getting plain Python and Jython to be more friendly in terms of "Edit and Continue": http://www.google.com/search?hl=en&q=edit+and+continue like by hacking the core C and Java code, and perhaps IDLE and PyDev, rather than focusing on using plain-vanilla Python to support prototypes, to add properties, or wrapping various widget libraries. After all, Smalltalk (Squeak or VisualWorks or several others) all allow "edit and continue" even though they are, like Python, mostly class based. In the end your (Kirby's) points have proven all too valid -- it's hard to get a new paradigm accepted, especially when it goes against the grain of how underlying libraries are written, all the books out there, and so on. The path of least resistance really would have been to add an "edit and continue" patch to C-Python (or Jython), perhaps centered around a PEP. It's not what I wanted -- since I wanted backward compatibility with older Python versions -- but in the end it I feel it would have been more effective, and likely a better payback for the person-months of effort that went into the PataPata experiment. Still, that's why people do experiments, to learn, and I learned. :-) Hopefully others can benefit from what I learned too. I still feel one thing PataPata got right (as a technical advance, inspired by Self) was showing how you could save and restore the state of a world of Python objects (and their behaviors) just by writing a plain text (and highly readable) Python program which reconstructed that world of objects (with that made slicker by using Ian Bicking's suggestions for meta class uspport). See my "postmortem" self-critique (for more information: "PataPata critique: the good, the bad, the ugly" http://patapata.sourceforge.net/critique.html I feel that's a good idea to keep in the back of your mind when thinking about OLPC applications and "view source". And it's so much nicer to do things that way than via pickle which produces an almost unreadable (and so effectively unmodifiable) output of a live set of Python objects. On "edit and continue", from Microsoft's web site: http://msdn2.microsoft.com/en-us/library/bcew296c.aspx "Edit and Continue is a time-saving feature that enables you to make changes to your source code while your program is in break mode. When you resume execution of the program by choosing an execution command like Continue or Step, Edit and Continue automatically applies the code changes with some limitations. This allows you to make changes to your code during a debugging session, instead of having to stop, recompile your entire program, and restart the debugging session." I pick Microsoft's definition even though they were late to the party (compared to Lisp and Smalltalk doing this decades ago) just to show how mainstream such technology has become. Isn't this omission just a glaring embarrassment for Python at this point? And no, module reloading doesn't cut it, as it entails building your own hooks into your application as well as thinking through a lot of implications of what that means -- definitely not something for Python newbies to consider doing. I myself add limited support for module reloading in a commercial application while developing and it makes a lot of difference when developing an application which has long load times or long processing times -- but it's not a trivial thing to manage, nor is it the same as "Edit and continue". So I think another attempt towards PataPata's ideals, but not emphasizing prototypes, and considering changes to the Python and Jython cores (C and Java), might be worth trying from a Python community point of view -- or even as Python3000 feature. Sadly, I'm now wrapped up in other things and can't devote even a few weeks (or more) to realizing this right now; plus I do think it is so central to the system it would take a while (for me) to get up to speed on C-Python internals and probably even longer to get such potentially radical changes accepted if submitted from someone as a first patch to C-Python. I know everyone tries to get Guido to add his or her own pet feature to Python, and so am I, :-) but look, if this was a fairly straightforward independent change like a bug fix or just a library add-on, anyone could do it; even though the code involved is small, this takes a true snake wrangler to get sure this is done right, and an overall commitment by the Python leadership to make sure it keeps working right as other changes are made to Python in the future. There are several issues, but the most important ones probably revolve around better support within the Python library for linking code to a place in a file (some parts of that are broken, like for one liner functions), within an IDE like IDLE building on that to allow fine-grained browsing of changes to just a single function in version control, and within the Python core dealing with issues with more easily allowing functions to be modified without producing new function pointers. Restartable exceptions would be ideal for this, but even without them, this could be doable -- just have the system break on creating certain specified exceptions before throwing them. I think it's a shame that Python can't more easily support this sort of "edit and continue" development; it already has most of the hooks. Just a few specific almost trivial things it lacks -- and I think it lacks them more from a conservative mindset than anything else -- an emphasis that restarting a program when you make a small change or hacking each one individually to reload modules is somehow still OK in the 21st century. :-) I'd simply hate to think this related comment by someone else was true: http://www.mail-archive.com/pypy-dev at codespeak.net/msg02446.html "you stand a better chance of doing this in pypy than the python developers do. they consider it "impossible", because it's too radical a rethink, because they have been trapped, by design, in c-code." Anyway, Smalltalk, Lisp, and other languages (including now Visual Basic and most languages from that vendor) have been doing this for decades. I hope OLPC can be the impetus to overcome this glaring omission with Python; otherwise, the OLPC group may find their entire approach to using Python instead of, say, Lisp or Smalltalk or Ruby or several other languages for the core was a mistake. Still, I'm sure at this point it would be much easier for the OLPC project to fix Python than to switch. Well, I guess OLPC could stick with Python as is, but the View Source key will always be a bit of a disappointment, as it won't be an "Edit and Continue" style "View the source you you can edit the running program like Squeak does and see your changes work immediately" sort-of key, but more a "View the source and that's it for now, maybe you can restart later" kind of key. This issue is painted by you (Kirby's) as "maturity" -- that kids are someday mature enough to use something like, say, Microsoft VisualStudio. I think that, while true in general that programmers need to learn to use a variety of tools as they mature, it is misleading in this particular situation -- considering how other systems like Lisp or Smalltalk have been doing "edit and continue" for decades -- allowing you to *easily* modify a running program and continue. The obvious issue IMHO is "immaturity" -- there is a piece of Python or its community culture which is lacking. And once Python gets that feature as part of its continuing maturation process, watch out, because after adding easy "Edit & Continue" internal support, and then using that support from an IDE like IDLE or PyDev, then Python will grow overnight to 10X the creature it is already! :-) Not to bash Python too much here; I use Python despite its glaring shortcoming in this area because it is so wonderful in many other important ways (licensing, libraries, readable syntax, helpful community, cross-platform support, namespaces, etc.) which in practice often outweigh this lack of "edit and continue". I mainly just want to see Python get even better -- especially considering the time and learning and code investment I have in it. Rather than agree with the comment above about being locked into a corner by using C, I could speculate there is too much of a C developer "culture" holding out there somehow (which is perfectly fine most of the time as Python is written in C, and C can be a great language if used well. It's just that thinking in C culture terms (C culture --> edit, compile, start, run, crash, debug, stop, edit, compile, restart, repeat) just hurts a lot in this one particular area (where Smalltalk culture -> start, crash, debug, crash, debug, crash, etc. when you edit code in the debugger). Somehow I feel if Guido could just see, say, VisualWorks (or ideally VisualWorks+ENVY) in action for an hour by an expert (not Squeak, which has too many other ideas overloaded on it), he'd see what was really possible and desirable with dynamic objects. Gee, maybe I should Google that? Hmmm... Well what do you know! :-) Here is a six minute example: "A nice demo of Smalltalk development in the debugger by David Buck." http://motionobj.com/article/demo-of-smalltalk-visualworks Links to: http://www.simberon.com/smalltalkdemo.avi The video above shows the cycle of "Debug, Crash, Debug, Crash, etc." while incrementally developing a Solitaire-style card game, except a crash is really just an exception thrown and launches the debugger, where the problem is fixed, and you're able to continue. How can anyone watch this six-minute video of VisualWorks and not want Python (and OLPC) to be able to do the same thing and just as easily? (Note the debugger, browser, inspector, and selected code evaluation all being used together -- that's really what it takes to do good incremental coding -- but it is also almost all it takes. :-) Still, I do think there is a fundamental issue when thinking about "view source" key in interaction with a GUI, since many GUIs are generated by a function, so it is always potentially unclear whether you are modifying the instance of the GUI you are looking at or are modifying the method which generates that GUI. I think that issue is approachable, but it does add layers of conceptual complexity. Prototypes in PataPata resolved some of that conceptual complexity (as live prototypes could defined the interface), but at a cost of adding complexity to Python in terms of support libraries and using Python in a non-standard way which made problems harder to debug. So, by moving away from prototypes and back to classes (including using the PythonCard-like approach for building GUIs hung off a central class holding all the behavior of individual widgets instead of a PataPata approach where widgets had significant behavior stuck in them), one needs to rethink how to handle that approach. One generic thought for the far future I had on that was that each pixel on the screen should be tried to a stack trace as the code was when that pixel was written, however, even that might miss the link to where the objects performing the behaviors in question were initialized. In that sense, I think Smalltalk's approach of supplying a code browser, inspector, and debugger, and with a developer typically using all three at the same time as a team to figure out where objects of interest were initialized, is really the way to go (and also evaluating snippets of code from any handy text pane). Still, I think you (Kirby) are right in general on the issue of a multiplicity of editors for various situations. And I think that is a good thing for people to eventually learn. However, specifically, the reality is that most behavior of interest (in terms of changing) on something like the OLPC (especially to novices) is likely to be coded in Python. This also shows the value of Jython and Java for Python development on other systems, as it would be easy to make a system that lets you tinker with both levels (Python=slow but smart code, Java=fast but dumb code) since Java has better reflective capabilities than C; still C could be compiled in debug mode to make such information more available, and even run-time modifiable by invoking the compiler and some sort of linker for modified functions. Though also, in the VisualWorks case, most Smalltalk code typically runs about 6X slower than the speed of C or so, which is generally good enough (rather than Python sometimes approaching 100X slower for loops and motivating more C coding, and thus better C tool integration). And your (Kirby's) emphasis on multiple editors suggest this idea: one way to approach the "View Source" key on the OLPC project that might be to treat "view source" as a "meta key" and perhaps press other keys at the same time to get at various aspects of the running program -- P=process list, G=GUI widgets, M=underlying modules, I=initialization code, L=command line, T=current thread, S=source code manager, B=breakpoints (including on certain E=exceptions), B=loaded binary modules (and associated source and editors like if in C), and so on. --Paul Fernhout kirby urner wrote: > Here's a floating email fragment > >> Date: Thu, 28 Jun 2007 20:54:09 -0400 >> From: "Walter Bender" >> Subject: OLPC software: our first release and beyond. >> To: "OLPC Devel" , sugar at ... > >> One important feature where we have made little progress is the View >> Source key. We decided to build the user experience?and the core >> Activity base?in Python, in large part, to facilitate the children's >> direct access to modifiable code. We are moving to the latest stable >> version of Python as part of our Fedora Core 7 migration; however, we >> have yet to put enough resources into building a suitable development >> environment for children. This remains an important goal, but not one >> we can reasonably meet for our first release. The incorporation of the >> context-sensitive spirit of "view source" into all Activities is >> another area where we lag. Bolstering these efforts is second only to >> stabilizing the current system. We look forward to the possibility of >> Guido van Rossum, Python's creator, leading these efforts in the fall. > > Always interesting to see where some people are hoping to invest > some of our BDFL's precious clock cycles... > > Stepping back for a moment, one has to realize this is a different > shop talk, as we typically look at source code as text files, modifiable > yes, but not while running as binaries, which are different files entirely, > derived from said text files by various processes. > > Some of this text is expressed in pure Python, but a lot of what > *runs* under Python in modular form is actually written in something > else, as is Python itself. A whole different text editor might be more > appropriate in that case, or at least different plug-ins (the Eclipse model). > > The trend is to target a shared VM and play freely with other language > communities, swapping whatever works in inter-pluggable arrangements. > > One way around this shortcoming of Sugar's is to suggest that once > kids are mature enough to eyeball the kind of convoluted source > code required to keep the likes of Sugar alive, it might be time to > transition to a more standard model laptop that doesn't push the > bleeding edge so hard. > > Adults need to focus on stable developer environments like Wing's > or whatever (or like IDLE for starters). So at your bat mitzvah or > other ceremony, you maybe trade in your much loved OLPC XO > (and your teddy bear), and move up to something more expensive, > with a more traditional source code treatment (anyone ready for > C yet?). > > Or just start using more of those legacy TuxLab desktops, running > a variety of distros (Ubuntu Studio might draw some kids, more > because they want to study graphical arts than they want to do > lexical programming). > > Basically, I'm somewhat Kusasian in outlook: go with immersive up > to a point, then take a break and study some classic combos e.g. > emacs + bash + gcc. Drop all the way down to machine language > even, coming up through MMIX enroute to Python Part Deux (or > "snake guts revisited").[1] At some Coming of Age level, we no longer > want to shield kids from the messy reality of *no* single governing > paradigm at all levels and the old immersive environment turns out > to be one fish tank among many. > > In retrospect, those early experiences with special namespaces > for children will remain a comfort (we hope), and some will elect > to professionally teach them to a next generation, and/or invent > new ones (already the case, so a next iteration). > > Kirby > > [1] http://worldgame.blogspot.com/2007/06/techie-chatter.html From kirby.urner at gmail.com Sun Jul 1 18:53:17 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 1 Jul 2007 09:53:17 -0700 Subject: [Edu-sig] More OLPC chatter (PataPata; Edit&Continue) In-Reply-To: <4687ABA8.2080404@kurtz-fernhout.com> References: <4687ABA8.2080404@kurtz-fernhout.com> Message-ID: On 7/1/07, Paul D. Fernhout wrote: > First, to emphasize a key idea below, everyone here should see for a six > minute video walkthrough example; Thanks Paul. Given the ballyhoo around a fall release date for the XOs (not sure what means "release date"), it's obviously too late to add edit/continue to the current feature-frozen edition, which I hope is stable, because that's what ministers of education are being asked to buy in bulk and "try before you buy" is the name of the game, including in mesh networks (so no squid?). But I assume all this is true, because of the many pilot demos we've been reading about and seen on TV. First edition XOs are ready to ship in vast quantities right now, nothing waiting on Guido doing something to Python. Coming from a Kusasa angle, Squeak fizzles as a draw right about the time kids are ready for a TuxLab, either thin client or fat (like at HPD, all Fedora and Gnome). Dive in to the creaky adult world, nothing like SmallTalk, and see how the poor people live, with their primitive emacs, vi and gcc, a graphical shell IF you're lucky. This is Python's native habitat. Dirt poor, dirt cheap (free -- unlike Visualworks) yet powerful enough to drive an XO on the fly. So it all looks promising. South African kids in Cape Town get some XOs late this year, early next. We develop the eToyz, flesh out the modeling in a Squeaky clean environment. Then we move on to later phases of pipeline, where the messy adult world obtrudes, and workstations get specialized. This one does web serving to the outside world, that one does nothing but database. That's what a TuxLab is good for (simulating real world businesses), and that's where Python shines as a glue language (SQLAlchemy, TurboGears or whatever -- stuff the village elders might use to organize a local co-op). Kirby From kirby.urner at gmail.com Mon Jul 2 10:15:33 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 2 Jul 2007 01:15:33 -0700 Subject: [Edu-sig] More OLPC chatter In-Reply-To: References: <552E9E91-250A-41B9-9961-881A1B70C106@solarsail.hcs.harvard.edu> Message-ID: If I were lucky enough to be in a TuxLab or some other Linux-based workshop, as a student with time to explore, I might check: http://www.donhopkins.com/drupal/node/128 of some 14+ weeks ago (by now). You'll find a link to Pie Menus, kind of like iPod wheels in that you think in terms of circular "clock like" motions. Indeed, one of the examples is a clock menu. http://www.donhopkins.com/home/piemenu.py Why this is so good in a Linux context is import gtk, cairo, pango just works, whereas I can see working for hours to do anything on Windows with this code -- a fancy way of saying this Python code is somewhat platform specific. But where OLPC is concerned that's not a problem, cuz it's all GNU & Linux under the hood. Kirby From andre.roberge at gmail.com Thu Jul 5 03:52:43 2007 From: andre.roberge at gmail.com (Andre Roberge) Date: Wed, 4 Jul 2007 22:52:43 -0300 Subject: [Edu-sig] New Crunchy release: 0.9beta1 Message-ID: <7528bcdd0707041852q70a708e4xae30476ebbe699cc@mail.gmail.com> Hi Everyone, The first beta release of the new Crunchy is available on http://code.google.com/p/crunchy. (For those that have downloaded some "alpha" version, I must apologize as the wrong versions were uploaded by mistake by yours truly.) Crunchy has been rewritten from the ground up since version 0.8.2. This has allowed us to add *many* new capabilities. Among the most interesting: * You can use Crunchy to interact with _ordinary_ Python tutorials written in html. That's right, they do not need to have any special "Crunchy markup" to work with Crunchy. So, you can now use Crunchy to browse the official Python tutorial on www.python.org, and try out the examples using the interpreter inside your browser! Of course, adding special Crunchy markup is possible - and, in fact, desirable, to craft a better learning tutorial. Thanks to BeautifulSoup, Crunchy can process almost any web page (except those including frames) - although the final result, while functional, can leave to be desired esthetically speaking. * Crunchy now uses threads so that long-running processes can occur simultaneously, without interfering with your browsing experience. * Simple animations are now possible to do within the graphics environment. * Crunchy can now work with programs that generate images (thanks Edin!), and display them on the page. A very simple example using matplotlib is available in the test section. (it has a minor bug, as images need to be generated twice before they can be displayed) * A better help feature (thanks Bryan!) [type help(str) in an interpreter to see it in action] * etc. It still has a few rough edges and a few quirks but the new Crunchy promises to provide a much better learning environment than before. As usual, feedback would be most welcome. Andr?, for the team P.S. What's lacking for the 0.9 final release is added documentation. However, interested people on the two lists where this message is posted, should be familiar enough with Crunchy that they would not need the documentation to try it out. From ajudkis at verizon.net Fri Jul 6 00:48:49 2007 From: ajudkis at verizon.net (Andy Judkis) Date: Thu, 05 Jul 2007 18:48:49 -0400 Subject: [Edu-sig] a non-rhetorical question References: Message-ID: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> I've just completed my 6th semester as a teacher, teaching 2 sections per semester of a 10th grade course that includes a 4 week introduction to programming in Python. Here's a question from one of my exams: Write Python code that will ask the user how who is the best looking teacher in the school. The program must loop until the user responds either "Mrs. McGrath" or "Mr. Judkis". If the use responds "Mr. Judkis", the program must print out "Excellent choice." If the user responds "Mrs. McGrath", the program must print out "Also a fine choice." If the user responds with anything else, the program must print out "Wrong, sorry." and ask again. Rather than catalog my frustrations, let me just pose a question to you all -- how much Python exposure do you think it should take before a student should be able to answer this question? If a student can't even answer this, is it reasonable to say that they have learned any programming at all? (I know that they might have learned something -about- programming, but that is not the same thing.) Thanks, Andy Judkis (By the way, anybody out there going to be at CS4HS next week at CMU? If so I'd love to get together with you . . ) From vceder at canterburyschool.org Fri Jul 6 01:44:36 2007 From: vceder at canterburyschool.org (Vern Ceder) Date: Thu, 05 Jul 2007 19:44:36 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> Message-ID: <468D8264.6020203@canterburyschool.org> Hi, We do brief surveys with 8th and 9th graders, so I'm somewhat familiar with the age and skill level. I would say that *most* students should be able to answer this question after 4 weeks (depending on how much looping they've done, of course). By "answer" I don't mean necessarily get full credit, but at least get the basic idea right - setting up a while loop and prompting for user input. The tricky part is the compound nature of the test - if they haven't done that much with boolean expressions, it might be beyond them, while looking just for "Mr. Judkis" it wouldn't be. So if they had everything else right, but couldn't get the boolean expression right (or figure out some work-around with an extra "if" or two[1]), I wouldn't count that as a complete failure. Finally, in answer to your last question, I would say that they hadn't learned *much* programming *yet*. ;-) Seriously, that may not be a good question - presumably they've learnd to sequence instructions, to handle some expressions, basic input/output, some looping, etc, so it depends on how you set the standard. HTH, Vern Ceder [1] There will always be one wise-guy who will do an endless "while true:" loop with at least 3 "breaks", or some such... ;-) Andy Judkis wrote: > I've just completed my 6th semester as a teacher, teaching 2 sections per > semester of a 10th grade course that includes a 4 week introduction to > programming in Python. Here's a question from one of my exams: > > > > Write Python code that will ask the user how who is the best looking > teacher in the school. The program must loop until the user responds either > "Mrs. McGrath" or "Mr. Judkis". If the use responds "Mr. Judkis", the > program must print out "Excellent choice." If the user responds "Mrs. > McGrath", the program must print out "Also a fine choice." If the user > responds with anything else, the program must print out "Wrong, sorry." and > ask again. > > > > Rather than catalog my frustrations, let me just pose a question to you > all -- how much Python exposure do you think it should take before a student > should be able to answer this question? If a student can't even answer > this, is it reasonable to say that they have learned any programming at all? > (I know that they might have learned something -about- programming, but that > is not the same thing.) > > > > Thanks, > > > > Andy Judkis > > > > (By the way, anybody out there going to be at CS4HS next week at CMU? If so > I'd love to get together with you . . ) > > _______________________________________________ > 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 heistooheavy at yahoo.com Fri Jul 6 04:53:10 2007 From: heistooheavy at yahoo.com (Richard Guenther) Date: Thu, 5 Jul 2007 19:53:10 -0700 (PDT) Subject: [Edu-sig] a non-rhetorical question Message-ID: <95648.52879.qm@web63301.mail.re1.yahoo.com> Hi Vern and Andy, I just joined this list and this is exactly the kinds of discussions I'm looking for. I too am a teacher and will be teaching Python, although this next semester I will not have an official class, just a python programming club (at the high school level). In the past I have done BASIC programming clubs with middle school students but have moved on to Python instead. The great part about clubs is that they are voluntary, and students tend to be more motivated than they are in a class. In these clubs, students often go far beyond where I would expect them to in a structured class. Andy, your question is deceptively tough, and I agree with Vern that I would expect them to get the general idea. I would expect them to have to "mess around" with Python a bit, though, to get it to work correctly. At any rate, I've learned in years of teaching to scaffold greatly, even when to me it would seem like an easy assignment. Perhaps breaking the task up into preliminary, simpler, versions would be helpful. Here are some of ideas for assignments that I wrote down on a legal pad recently, when I was looking forward to teaching Python. Some of these may seem easy, but they do give a good idea of where a student is at. 1. Write a program that asks students for their two favorite foods and have it suggest a (concatenation) combination food for them to try (from Michael Dawson's Python Programming 2nd ed.). 2. Write a program that asks the user for two numbers and then adds them for the user. [Actually, number two can lead to many variations, using multiplication, etc. This would make a great project to show how software can evolve, with the final version greeting the user, asking what operation to perform and on how many numbers, etc. This assignment would start out very simple in version 1.0, but could someday turn into something that would contain a variety of function calls for factoring numbers, finding the square root, and so on.] 3. Write a program that asks the user for a sentence and then prints it back in reverse. [Again, this one could lead to many variations: "now have it print the sentence back with all the "a" characters changed to "4"s, all the "e"s changed to "3"s, and so on (leetkey)"] 4. Write a program that asks the user for a number. If the number is odd, multiply it by three and add one, if it's even, divide by two. Now do the same with the answer.... 5. Write an area-finding program. It asks what shape the user has (square, rectangle or triangle) and the computes the area depending on what measurements the user enters. These are my notes, not the final versions I would present to students, but you get the idea of how things can go from really simple ("write a program that asks the user's name and then says hi to him/her by name"), to quite complicated. Keep working with your students! Richard ----- Original Message ---- From: Vern Ceder To: Andy Judkis Cc: "edu-sig at python.org" Sent: Thursday, July 5, 2007 5:44:36 PM Subject: Re: [Edu-sig] a non-rhetorical question Hi, We do brief surveys with 8th and 9th graders, so I'm somewhat familiar with the age and skill level. I would say that *most* students should be able to answer this question after 4 weeks (depending on how much looping they've done, of course). By "answer" I don't mean necessarily get full credit, but at least get the basic idea right - setting up a while loop and prompting for user input...... ____________________________________________________________________________________ Get the Yahoo! toolbar and be alerted to new email wherever you're surfing. http://new.toolbar.yahoo.com/toolbar/features/mail/index.php -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070705/10df2eb2/attachment.htm From mtobis at gmail.com Fri Jul 6 06:24:12 2007 From: mtobis at gmail.com (Michael Tobis) Date: Thu, 5 Jul 2007 23:24:12 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <95648.52879.qm@web63301.mail.re1.yahoo.com> References: <95648.52879.qm@web63301.mail.re1.yahoo.com> Message-ID: Sorry, but I don't think you've successfully motivated your students if that is all they can do in a month. Let me hazard a suggestion. Rather than being too mabitious you are not being ambitious enough. Scripting languages have batteries included. Doing the stuff you would have done with BASIC in 1980 is not necessary and not sufficient. I imagine few tenth graders can connect printing sentences backwards and such with anything they care about. see http://hacketyhack.net I'd rather kids learned Python than Ruby or PHP or ActionScript, but I'd *much* rather they learned one of those than nothing at all. mt From jeff at taupro.com Fri Jul 6 09:40:04 2007 From: jeff at taupro.com (Jeff Rush) Date: Fri, 06 Jul 2007 02:40:04 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> Message-ID: <468DF1D4.9020208@taupro.com> Andy Judkis wrote: > I've just completed my 6th semester as a teacher, teaching 2 sections per > semester of a 10th grade course that includes a 4 week introduction to > programming in Python. Here's a question from one of my exams: > > Write Python code that will ask the user how who is the best looking > teacher in the school. The program must loop until the user responds either > "Mrs. McGrath" or "Mr. Judkis". If the use responds "Mr. Judkis", the > program must print out "Excellent choice." If the user responds "Mrs. > McGrath", the program must print out "Also a fine choice." If the user > responds with anything else, the program must print out "Wrong, sorry." and > ask again. The first sentence of this question is awkwardly worded, "ask the user how who is" -- did you mean "ask the user who is"? > Rather than catalog my frustrations, let me just pose a question to you > all -- how much Python exposure do you think it should take before a student > should be able to answer this question? If a student can't even answer > this, is it reasonable to say that they have learned any programming at all? > (I know that they might have learned something -about- programming, but that > is not the same thing.) No, if they cannot answer this then they have NOT learned any programming at all. It requires them to demonstrate the four very basic programming concepts of input, output, conditional branching and operand comparison. I would expect a student to grasp those in the first afternoon of the course, or perhaps two afternoons. I would not expect them to understand formatted I/O or container types like lists/tuples or even modules, but the act of writing a string, reading a string, comparing two strings and printing a string, yes, they should have those down pat very quickly. So what were your frustrations? I'm really curious. I don't have the opportunity to ever speak with a teacher of formal education, so I don't know what their world is like. -Jeff From andre.roberge at gmail.com Fri Jul 6 12:05:30 2007 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 6 Jul 2007 07:05:30 -0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <95648.52879.qm@web63301.mail.re1.yahoo.com> Message-ID: <7528bcdd0707060305x2b94bbban9ec927cdf999394c@mail.gmail.com> On 7/6/07, Michael Tobis wrote: > Sorry, but I don't think you've successfully motivated your students > if that is all they can do in a month. Let me hazard a suggestion. > Rather than being too mabitious you are not being ambitious enough. For having exchanged a few emails with Andy over the years, I feel I have to come to his defense and disagree with this statement. (more below) > > Scripting languages have batteries included. Doing the stuff you would > have done with BASIC in 1980 is not necessary and not sufficient. I > imagine few tenth graders can connect printing sentences backwards and > such with anything they care about. > The following is a quote from an old message from Andy on this very list: ======== I've found RUR-PLE to be a very constructive way to approach programming. I use it to teach the basics of looping and branching and defining subroutines, and we do about 6 of Andre's exercises. (We spend about 4 1/2 hours of class time on it before moving on to Python, using modified versions of the LiveWires and a little bit from How To Think Like a Computer Scientist.) ======== These are all modern resources targeted to kids. ---- As for Andy's original query.... I have no answer to provide. Andr? From lac at openend.se Fri Jul 6 12:48:10 2007 From: lac at openend.se (Laura Creighton) Date: Fri, 06 Jul 2007 12:48:10 +0200 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: Message from "Andy Judkis" of "Thu, 05 Jul 2007 18:48:49 EDT." <004e01c7bf56$a8210f20$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> Message-ID: <200707061048.l66AmAaK019167@theraft.openend.se> In a message of Thu, 05 Jul 2007 18:48:49 EDT, "Andy Judkis" writes: >I've just completed my 6th semester as a teacher, teaching 2 sections per > >semester of a 10th grade course that includes a 4 week introduction to >programming in Python. Here's a question from one of my exams: > > > > Write Python code that will ask the user how who is the best looking >teacher in the school. The program must loop until the user responds eit >her >"Mrs. McGrath" or "Mr. Judkis". If the use responds "Mr. Judkis", the >program must print out "Excellent choice." If the user responds "Mrs. >McGrath", the program must print out "Also a fine choice." If the user >responds with anything else, the program must print out "Wrong, sorry." a >nd >ask again. > > > >Rather than catalog my frustrations, let me just pose a question to you >all -- how much Python exposure do you think it should take before a stud >ent >should be able to answer this question? If a student can't even answer >this, is it reasonable to say that they have learned any programming at a >ll? >(I know that they might have learned something -about- programming, but t >hat >is not the same thing.) > > > >Thanks, > > > >Andy Judkis One way to know a lot about programming, but to be unable to solve this exam question is to not know how to accept input from a terminal. Could they have read teacher names from a file and solved the question? from a command line? From a gui toolkit? Personally, I almost never need to use input or raw_input in real life, so I always have to look it up whenever I do find I need it. I suspect that I might fail your exam if you don't allow me to browse python docs while writing it. Laura From john.zelle at wartburg.edu Fri Jul 6 16:29:31 2007 From: john.zelle at wartburg.edu (John Zelle) Date: Fri, 6 Jul 2007 09:29:31 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <95648.52879.qm@web63301.mail.re1.yahoo.com> Message-ID: <200707060929.31347.john.zelle@wartburg.edu> Hi All, I am very interested in responses to Andy's question because it was just this sort of frustration with students' inability to write simple programs that led me to using Python (as opposed to C++ or Java) in CS1. After my switch to Python and "back to basics" CS1 back in 1999, my results dramatically improved. However, I've noticed lately that an increasing share of my (college-level) students are beginning to struggle. It's not like the C++ days, but enough to be concerned. So I ask myself again "What has changed about the course?" If anything, what has changed is that I am adding more "bells and whistles" to try to make the course enticing. Doing projects like HTML screen scrapers, image processing, and animations. However, even though the students like these projects, I'm feeling that they may actually detract from learning fundamental concepts like how to design sentinel loops and simple decisions. Let's face it, every API you introduce is extra detail for the students to master, no matter how "fun" it is. Plain old text processing programs can be fun too if: 1) The instructor provides the proper setup/explanation/motivation. 2) Students have opportunity to master them. Students enjoy what they feel they understand and can do. On Thursday 05 July 2007 11:24 pm, Michael Tobis wrote: > Sorry, but I don't think you've successfully motivated your students > if that is all they can do in a month. Let me hazard a suggestion. > Rather than being too mabitious you are not being ambitious enough. > > Scripting languages have batteries included. Doing the stuff you would > have done with BASIC in 1980 is not necessary and not sufficient. I > imagine few tenth graders can connect printing sentences backwards and > such with anything they care about. > > see http://hacketyhack.net I've looked at hacetyhack.net. As others have pointed out, it looks like lots of fun for certain well-motivated students. Those with a strong inner-geek can go to a site like this and actually learn something. But there is a ton of mystery lurking behind this API, and it's not clear to me that this is the quickest way for the average student to really learn the universals of programming. > I'd rather kids learned Python than Ruby or PHP or ActionScript, but > I'd *much* rather they learned one of those than nothing at all. I'd much rather that they learned the power and limitations of computing in general. Learning the details of any particular specialized API does not seem all that valuable (or important or useful) to me. Of course, your mileage may vary. I'm dealing with older and presumeably more mature students. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From mtobis at gmail.com Fri Jul 6 18:34:05 2007 From: mtobis at gmail.com (Michael Tobis) Date: Fri, 6 Jul 2007 11:34:05 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <200707060929.31347.john.zelle@wartburg.edu> References: <95648.52879.qm@web63301.mail.re1.yahoo.com> <200707060929.31347.john.zelle@wartburg.edu> Message-ID: I am not totally sold on hackety; not having had access to MS Windows of late I haven't played with it. I am saying that the whole business is great fun if approached right, and there at least hackety has much to teach us. I have had great success starting with ascii art, drawing boxes and triangles out of blanks and punctuation characters. By the time the kite figure is drawn, the utility of input() is obvious. I think you and Guzdial (and Andy Harrington who uses your book) are right to proceed to graphics fairly quickly. Guzdial and hackety also stress music. It's necessary to demonstrate the power and joy of the tool to get people interested. As a Python loyalist I see Python instruction as a way to strengthen the language and the community, but I'm getting the impression that the community won't be able to manage it. I agree in the long run that which language wins is relatively unimportant compared to the benefit of widespread programming competence, from the point of view of society or the individual student. >From the point of view of the specific language community it's another matter. Python has enough momentum in the areas where I work that I have no hesitation in sticking to it, but that being the case, I would rather that Ruby not be the language of the future. mt From ajudkis at verizon.net Fri Jul 6 19:41:45 2007 From: ajudkis at verizon.net (Andy Judkis) Date: Fri, 06 Jul 2007 13:41:45 -0400 Subject: [Edu-sig] a non-rhetorical question References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> Message-ID: <006201c7bff4$ecef9c40$0601a8c0@Gandalf> Vern, Richard, Your comments were very helpful -- it's sometimes hard for me to see the question as a student would. They can imitate nicely, but asking them to analyze and synthesize (as this question does, at a very superficial level) seems to be asking a lot -- yet it's the essence of programming. Reading between the lines of Vern's message, I wonder how he would want students to answer the question. What I was looking for was more or less what he considered the wise-guy answer: while True: resp = raw_input("Who is hottest teacher?") if resp == "Mr. Judkis": print "Excellent choice!" break elif resp == "Mrs. McGrath": print "Also a fine choice." break else: print "Wrong, sorry. . ." I would have expected this question to be easy after 4 weeks of this stuff. They have certainly done things a lot like it quite a few times. I had given out the questions ahead of time and encouraged the kids to work together on them, yet the day before the test, everyone seemed stumped. I went over it in class in detail, and yet when they took the test, some kids still missed critical things -- they put the raw_input outside the loop, they left out the breaks, they left out the while altogether -- suggesting to me that they're trying to use recall and imitation, and don't really "get it" in a useful way. I'm coming to the conclusion that either: 1) my expectations are unreasonable, or 2) my approach to the material is completely wrong -- at this point, after 6 laps around the track, it isn't just a matter of tweaking something. 3) or perhaps some of both. I should add that we start out with a week of RUR-PLE, learning about loops and branches and subroutines, and that seems to go quite well -- it's only when we move to IDLE that things start to go out of focus. Thanks, Andy From lac at openend.se Fri Jul 6 20:03:30 2007 From: lac at openend.se (Laura Creighton) Date: Fri, 06 Jul 2007 20:03:30 +0200 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: Message from "Michael Tobis" of "Fri, 06 Jul 2007 11:34:05 CDT." References: <95648.52879.qm@web63301.mail.re1.yahoo.com> <200707060929.31347.john.zelle@wartburg.edu> Message-ID: <200707061803.l66I3U1d030328@theraft.openend.se> I've been thinking about your students and what possibly might be going on -- aside from their not learning anything, which unfortunately is possible. I think that you are better off trying to teach programming in conjunction with trying to teach test driven design, and unit tests. A large problem I see with people learning to program is that they try to do too much at once. As soon as they think of a a corner case, they rush off to write code about it, while it is fresh in theie mind. Quite often they end up with things that never quite work. And when they show you things, you can see 2 or 3 obvious bugs in the same code. Often they interact. So the poor student is busy trying to fix part A of his code when it is part B, or both part A and part B together that is the problem. What this student needs, more than anything else, is an ability to think in smaller chunks. Test driven design can really teach you to decompose your problem into tinier pieces. And, when you have a brilliant idea: -- Hey, this program should work when I type 'Mr. Andy Judkis' -- you can just stick this idea into a test, which will fail, but will make sure that you don't forget it for later -- but not get in the way of writing the basic program in the first place. and unittests teach you to write things in small chunks. unittests are nice for the teacher, as well, because you can assign 'write code that passes all these unit tests' and then write them in an orderly fashion, which will tend to influence how the students write their code -- starting small and then growing the problem -- much better than just telling them things. Plus you can sit down and run the test suite and have a pretty good idea how things are going before you start helping any student. But this doesn't sit all that well with your 'interactice loop' exercise. I wonder if it is the interactive loop part that is the problem. After all, if you cannot get that part going, it will be very hard to write the other bits. The last time I had students, and these were rather young ones -- I taught them first how to write programs that absolutely did something -- like print a list of the first 10, then 15, then 200 factorials. This lead to -- functions, and why we want them. Then it was time for test driven design, and how to run tests with our framework. We did a bunch of lessons like that before we got around to learning how to input things, and even then it was much more common for students to just have a running python interpreter, import their code, and pass arguments to functions rather than have a proper main loop. How to write functions, how to use them, how to use functions in the standard library. How to find out what the heck there _is_ in the standard library. How to use each other's functions, and a favourite, how to report a bug in your friend's function, complete with a unit test that demonstrates the bug. Despite all this experience, they found the actual getting and parsing of text from a user, _really_ _really_ _hard_. Much harder than anything else I had taught them before. And it was only when I did a fast-forward to 'Exceptions', which I had started out believing should be taught after classes, but now think should be taught as soon as you start doing input, and 'never mind the funny syntax that uses bits of the language we haven't learned about yet' that some of them caught onto what was going on. As your exercise stands, students who would not select yourself or 'Mrs. McGrath' would have a program that never terminated. I had several students who were really, really, uncomfortable with the idea, to the point of not being able to write code about it. They were waiting to think of the way to do it which didn't have this property. 'Real programs wouldn't work like that' they quite rightly complained. It was only after I had taught them about try: and except KeyboardInterrupt: that they were able to get down to write things. Before their minds were wrapped around what for them was the most interesting part of the problem, whcih wasn't the exercise. I guess the only way to find out is to ask your students. Good luck. [I should revise this, but I must pack for Europython. If I don't reply to replies to this, its not that I don't care, but that I expect to be completely swamped with running the conference for the next few days. In the words of Blaise Pascal -- sorry that this is so long, I do not have time to make it shorter.] Laura Creighton From ajudkis at verizon.net Fri Jul 6 20:07:20 2007 From: ajudkis at verizon.net (Andy Judkis) Date: Fri, 06 Jul 2007 14:07:20 -0400 Subject: [Edu-sig] a non-rhetorical question References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> Message-ID: <006801c7bff8$7fb0b430$0601a8c0@Gandalf> >> Rather than catalog my frustrations, let me just pose a question to you >> all -- how much Python exposure do you think it should take before a >> student should be able to answer this question? If a student can't even >> answer this, is it reasonable to say that they have learned any >> programming at all? (I know that they might have learned >> something -about- programming, but that is not the same thing.) > > No, if they cannot answer this then they have NOT learned any programming > at all. It requires them to demonstrate the four very basic programming > concepts of input, output, conditional branching and operand comparison. > I would expect a student to grasp those in the first afternoon of the > course, or perhaps two afternoons. I would not expect them to understand > formatted I/O or container types like lists/tuples or even modules, but > the act of writing a string, reading a string, comparing two strings and > printing a string, yes, they should have those down pat very quickly. > > So what were your frustrations? I'm really curious. I don't have the > opportunity to ever speak with a teacher of formal education, so I don't > know what their world is like. > > -Jeff Jeff, Your thoughts are very much like mine were -- the problem is so trivial and obvious that anyone who's spent a little time with the material should see the solution immediately. But my experience shows that that's simply not true. This stuff is just hard for most kids, even bright ones. When I was in college in the late 70s, I worked as a research assistant at Pitt, working with people studying expert/novice differences in Physics problem solving. (http://www.garfield.library.upenn.edu/classics1993/A1993LZ47400001.pdf) The outcome of the study (which seemed pretty predictable to me) was that experts used concepts like momentum and energy to approach the problems, while novices used cues like "spring" and "inclined plane" to figure out what to do. I think something similar happens with programming. Most programming instruction that I've seen starts off by having the kids copy programs and make changes to them, and over time the ones that stick with it build up some conceptual understanding of what's going on. It just seems to take longer than I would expect. Thanks, Andy From vceder at canterburyschool.org Fri Jul 6 20:09:48 2007 From: vceder at canterburyschool.org (Vern Ceder) Date: Fri, 06 Jul 2007 14:09:48 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <006201c7bff4$ecef9c40$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> Message-ID: <468E856C.4080405@canterburyschool.org> Andy, I certainly didn't mean to imply that you were a wise-guy! And if you've been teaching them that sort of structure, it would definitely NOT be the wise-guy answer. I have to admit to not particularly liking (and not teaching) the while True: approach myself, simply because it separates the conditions for ending the loop from the top of the loop where one tends to look for such things. In more complex code this can lead to bugs. Not to say it can't be made to work brilliantly, mind you, but it can also lead to spaghetti like code if you're not careful. Off the top of my head, I would be looking for something like this ... resp = raw_input("Who is hottest teacher?") while resp != "Mr. Judkis" and resp != "Mrs. McGrath": print "Wrong, sorry..." resp = raw_input("Who is hottest teacher?") # must be one of the two if you make it here if resp == "Mr. Judkis": print "Excellent choice!" else: print "Also a fine choice." I completely agree that getting them to synthesize is the hard thing, and in my experience it gets MUCH harder in a test situation. Your description of their behavior suggests to me that they had already written the problem off as "impossible" before they even got to the review session. I wouldn't pretend to guess why that is, having suffered through similar experiences myself. As I was finishing this Laura's post came in, she makes some very good points, but I want to strongly second this: > I guess the only way to find out is to ask your students. When I started giving students little surveys to fill out at the end of each programming unit I found it very helpful in deciding what worked and why. Cheers, Vern Andy Judkis wrote: > Vern, Richard, > > Your comments were very helpful -- it's sometimes hard for me to see the > question as a student would. They can imitate nicely, but asking them to > analyze and synthesize (as this question does, at a very superficial > level) seems to be asking a lot -- yet it's the essence of programming. > > Reading between the lines of Vern's message, I wonder how he would want > students to answer the question. What I was looking for was more or > less what he considered the wise-guy answer: > > while True: > resp = raw_input("Who is hottest teacher?") > if resp == "Mr. Judkis": > print "Excellent choice!" > break > elif resp == "Mrs. McGrath": > print "Also a fine choice." > break > else: > print "Wrong, sorry. . ." > > I would have expected this question to be easy after 4 weeks of this > stuff. They have certainly done things a lot like it quite a few times. > I had given out the questions ahead of time and encouraged the kids to > work together on them, yet the day before the test, everyone seemed > stumped. I went over it in class in detail, and yet when they took the > test, some kids still missed critical things -- they put the raw_input > outside the loop, they left out the breaks, they left out the while > altogether -- suggesting to me that they're trying to use recall and > imitation, and don't really "get it" in a useful way. I'm coming to the > conclusion that either: > 1) my expectations are unreasonable, or > 2) my approach to the material is completely wrong -- at this point, > after 6 laps around the track, it isn't just a matter of tweaking > something. > 3) or perhaps some of both. > > I should add that we start out with a week of RUR-PLE, learning about > loops and branches and subroutines, and that seems to go quite well -- > it's only when we move to IDLE that things start to go out of focus. > > Thanks, > Andy > > -- 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 tom.hoffman at gmail.com Fri Jul 6 20:03:14 2007 From: tom.hoffman at gmail.com (Tom Hoffman) Date: Fri, 6 Jul 2007 14:03:14 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <006201c7bff4$ecef9c40$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> Message-ID: <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> On 7/6/07, Andy Judkis wrote: > Vern, Richard, > > Your comments were very helpful -- it's sometimes hard for me to see the > question as a student would. They can imitate nicely, but asking them to > analyze and synthesize (as this question does, at a very superficial level) > seems to be asking a lot -- yet it's the essence of programming. > > Reading between the lines of Vern's message, I wonder how he would want > students to answer the question. What I was looking for was more or less > what he considered the wise-guy answer: > > while True: > resp = raw_input("Who is hottest teacher?") > if resp == "Mr. Judkis": > print "Excellent choice!" > break > elif resp == "Mrs. McGrath": > print "Also a fine choice." > break > else: > print "Wrong, sorry. . ." Here's the most elegant solution I could come up with: teachers = {'Mr. Judkis':'Excellent Choice', 'Mrs. McGrath':'Also a fine choice.'} name = raw_input() while name not in teachers.keys(): print 'Wrong, sorry.' name = raw_input() print teachers[name] --Tom From vceder at canterburyschool.org Fri Jul 6 20:22:30 2007 From: vceder at canterburyschool.org (Vern Ceder) Date: Fri, 06 Jul 2007 14:22:30 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> Message-ID: <468E8866.80904@canterburyschool.org> Tom, Yeah, if they've got dictionaries, then your way is both elegant and "Pythonic" ;-) Cheers, Vern Tom Hoffman wrote: > On 7/6/07, Andy Judkis wrote: >> Vern, Richard, >> >> Your comments were very helpful -- it's sometimes hard for me to see the >> question as a student would. They can imitate nicely, but asking them to >> analyze and synthesize (as this question does, at a very superficial level) >> seems to be asking a lot -- yet it's the essence of programming. >> >> Reading between the lines of Vern's message, I wonder how he would want >> students to answer the question. What I was looking for was more or less >> what he considered the wise-guy answer: >> >> while True: >> resp = raw_input("Who is hottest teacher?") >> if resp == "Mr. Judkis": >> print "Excellent choice!" >> break >> elif resp == "Mrs. McGrath": >> print "Also a fine choice." >> break >> else: >> print "Wrong, sorry. . ." > > Here's the most elegant solution I could come up with: > > teachers = {'Mr. Judkis':'Excellent Choice', > 'Mrs. McGrath':'Also a fine choice.'} > name = raw_input() > while name not in teachers.keys(): > print 'Wrong, sorry.' > name = raw_input() > print teachers[name] > > --Tom > _______________________________________________ > 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 andre.roberge at gmail.com Fri Jul 6 20:29:06 2007 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 6 Jul 2007 15:29:06 -0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <468E8866.80904@canterburyschool.org> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> <468E8866.80904@canterburyschool.org> Message-ID: <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> On 7/6/07, Vern Ceder wrote: > Tom, > > Yeah, if they've got dictionaries, then your way is both elegant and > "Pythonic" ;-) > Except that ".keys()" is not needed in a truly Pythonic program ;-) But, this is straying far from the original question. These are kids that have had a few weeks of instruction (with probably less than 6 hour of class time per week). What can be reasonably expected of them? Does anyone on this list (other than Vern) who has taught high school kids an intro to programming for just a few weeks can answer Andy's question? Note that non-classroom teaching (like Kirby does for motivated kids) does not count! Where is Jeff Elkner when we need him?.... ;-) Andr? > Cheers, > Vern > > Tom Hoffman wrote: > > On 7/6/07, Andy Judkis wrote: > >> Vern, Richard, > >> > >> Your comments were very helpful -- it's sometimes hard for me to see the > >> question as a student would. They can imitate nicely, but asking them to > >> analyze and synthesize (as this question does, at a very superficial level) > >> seems to be asking a lot -- yet it's the essence of programming. > >> > >> Reading between the lines of Vern's message, I wonder how he would want > >> students to answer the question. What I was looking for was more or less > >> what he considered the wise-guy answer: > >> > >> while True: > >> resp = raw_input("Who is hottest teacher?") > >> if resp == "Mr. Judkis": > >> print "Excellent choice!" > >> break > >> elif resp == "Mrs. McGrath": > >> print "Also a fine choice." > >> break > >> else: > >> print "Wrong, sorry. . ." > > > > Here's the most elegant solution I could come up with: > > > > teachers = {'Mr. Judkis':'Excellent Choice', > > 'Mrs. McGrath':'Also a fine choice.'} > > name = raw_input() > > while name not in teachers.keys(): > > print 'Wrong, sorry.' > > name = raw_input() > > print teachers[name] > > > > --Tom > > _______________________________________________ > > 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 > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From heistooheavy at yahoo.com Fri Jul 6 20:39:19 2007 From: heistooheavy at yahoo.com (Richard Guenther) Date: Fri, 6 Jul 2007 11:39:19 -0700 (PDT) Subject: [Edu-sig] a non-rhetorical question Message-ID: <163646.35045.qm@web63307.mail.re1.yahoo.com> Andy, Thanks for that pdf. I'm currently writing some research on teaching programming languages to English Language Learners and will probably include it in my paper. Here's the sad part for me: in all my years of teaching science and math (and a little programming), it seems to come down to this: some just "have it" and the rest have to work really hard just to "get it". Obviously that won't be my thesis, but that's how I often feel! Whether it be math, science, programming, or even acquiring a second language--some just seem hard-wired and much more capable. In education, we've had to go by the exact opposite philosophy ("ALL children can learn"). Still, whenever I'm involved in a discussion on programming or teaching pre-calculus or genetic drift--I can't help but think that those doing the discussion are those that simply "got it". Two things help, in my teaching, and they come from opposite approaches: 1. Scaffolding the problem into much easier steps (having them start with the "hello world" and next move on to "hello [username]"...). 2. Trying to involve the learning in really interesting and meaningful activities in a constructivist approach ("Hey, wouldn't it be cool to be able to put those youtube videos on an ipod--I wonder how we could figure out how to do that..."). I see the hackety site as more of a #2 approach, which is great. Sometimes, however, students need to realize that unless they take the #1 approach on some topics, they will never be efficient. If they come to that conclusion on their own, teaching #1 is MUCH easier :-). Richard ----- Original Message ---- From: Andy Judkis [When I was in college in the late 70s, I worked as a research assistant at Pitt, working with people studying expert/novice differences in Physics problem solving. (http://www.garfield.library.upenn.edu/classics1993/A1993LZ47400001.pdf) The outcome of the study (which seemed pretty predictable to me) was that experts used concepts like momentum and energy to approach the problems, while novices used cues like "spring" and "inclined plane" to figure out what to do.] ____________________________________________________________________________________ Sick sense of humor? Visit Yahoo! TV's Comedy with an Edge to see what's on, when. http://tv.yahoo.com/collections/222 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070706/4087e7f3/attachment.htm From kirby.urner at gmail.com Fri Jul 6 21:12:40 2007 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 6 Jul 2007 22:12:40 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> <468E8866.80904@canterburyschool.org> <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> Message-ID: On 7/6/07, Andre Roberge wrote: > > > Note that non-classroom teaching (like Kirby does for > motivated kids) does not count! > > Where is Jeff Elkner when we need him?.... ;-) > > Andr? Well boo hoo, why doesn't my stuff count? It's a real classroom with real computers and real middle to early high schoolers, plus I did two sets of eight weeks (once per week) with two sets of 8th graders at a public school, meaning all the 8th graders in the place, "motivated" or not. Admittedly, that's not my regular gig. Mostly my students sign up and participate voluntarily. But then, most schools teach computer programming as an elective, unlike the way I suggest, as integral with regular mathematics (teach functions interactively in the shell, later saving and importing, like Laura said, instead of using a stupid calculator). Plus some years back I was hired to teach home schoolers, average age 13, at Free Geek... As I mention in my slides for EuroPython (looking forward to meeting Laura again tomorrow), Madlibs proved appealing to most students, little stories where they have to prompt themselves (since raw_input seems to be a theme here, though interacting with the shell and having no main loop at all is just as possible, I'd say better at first...) Possible to use %s substitution but string module has these nifty Template as in: sillystory = string.Template(""" There once was a certain $persons_name from $city who had a pet $animal. One day, the $animal ate all the food in the house and $persons_name was very angry. """ # let's fill a dictionary! thedict = {"persons_name":"", -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070706/89dbe59b/attachment-0001.htm From lac at openend.se Fri Jul 6 21:24:05 2007 From: lac at openend.se (Laura Creighton) Date: Fri, 06 Jul 2007 21:24:05 +0200 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: Message from "kirby urner" of "Fri, 06 Jul 2007 22:12:40 +0300." References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> <468E8866.80904@canterburyschool.org> <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> Message-ID: <200707061924.l66JO5D8012159@theraft.openend.se> Now it is sounding to me as if it is possible that your students are at the 'i understrand it when you say it, but not well enough to do it myself' stage. Which means they need more homework. Basic drilling stuff. One odd thing I found was that students are really unhappy with * as multiply and ** as exponentation -- those that even knew what exponentation was. I thought 5 exercises using the notation would be enough. Wasn't. 10 was, though. Laura From kirby.urner at gmail.com Fri Jul 6 21:36:30 2007 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 6 Jul 2007 22:36:30 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> <468E8866.80904@canterburyschool.org> <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> Message-ID: Sorry, that post got away from me when I started hitting tab keys 'n stuff. Blaming jet lag. Trying again... Saved module (sillystory.py): ====== import string def test(): thestory = string.Template( """ There once was a certain $persons_name from $city who had a pet $animal. One day, the $animal ate all the food in the house and $persons_name was very angry. """) # sneaking in a little HTML (looking ahead) print thestory # just an object in memory # let's fill a dictionary! thedict = {"persons_name" : "", "animal" : "", "city" : "" } for thekey in thedict: answer = raw_input("Please enter " + thekey + "> ") thedict[thekey] = answer print thestory.substitute(thedict) ====== >>> import sillystory >>> sillystory.test() Please enter persons_name> Kirby Please enter city> Vilnius Please enter animal> Snake There once was a certain Kirby from Vilnius who had a pet Snake. One day, the Snake ate all the food in the house and Kirby was very angry. So then they get to experiment with this framework, changing the story and the matching dictionary keys, reloading, debugging, and, we hope, getting some positive results. Many kids are familiar with the Mad Libs genre (anyway it's easy to explain). A teacher might have 'em focus on the dictionary, probably the most important data structure. More on the Mad Lib approach in my EuroPython slides: http://www.4dsolutions.net/presentations/connectingthedots.pdf Kirby From john.zelle at wartburg.edu Fri Jul 6 21:48:22 2007 From: john.zelle at wartburg.edu (John Zelle) Date: Fri, 6 Jul 2007 14:48:22 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> Message-ID: <200707061448.22333.john.zelle@wartburg.edu> I agree with Kirby that madlibs are a fun example. On Friday 06 July 2007 2:12 pm, kirby urner wrote: .... > As I mention in my slides for EuroPython (looking forward to > meeting Laura again tomorrow), Madlibs proved appealing > to most students, little stories where they have to prompt > themselves (since raw_input seems to be a theme here, > though interacting with the shell and having no main loop > at all is just as possible, I'd say better at first...) > > Possible to use %s substitution but string module has these > nifty Template as in: > > sillystory = string.Template(""" > There once was a certain $persons_name from $city > who had a pet $animal. One day, the $animal ate all > the food in the house and $persons_name was very > angry. > """ > One note (I meant to post this in the discussion of string.Template before): You can do this same thing just as simply w/o using the string library. Plain old string formatting works with dictionaries as well. You can just do this: sillystory = """ There once was a certain %(persons_name)s from %(city)s who had a pet %(animal)s. One day, the %(animal)s ate all the food in the house and %(persons_name)s was very angry. """ fillins = dict(persons_name="Jack", city="Timbuktu", animal="lemur") print sillystory % fillins I also like the string library for certain pedagogical reasons, but I don't think the Templates are compelling when you can do essentially the same thing with string formatting. Is the $ notation that much of a "win?" --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From kirby.urner at gmail.com Fri Jul 6 22:03:55 2007 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 6 Jul 2007 23:03:55 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <200707061448.22333.john.zelle@wartburg.edu> References: <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> <200707061448.22333.john.zelle@wartburg.edu> Message-ID: > I also like the string library for certain pedagogical reasons, but I don't > think the Templates are compelling when you can do essentially the same thing > with string formatting. Is the $ notation that much of a "win?" > > --John > Yeah I've asked myself the same question. It's a little less syntax, plus I just like talking about this "Template object" as a "thing". I compare it to the legal concept of "boilerplate" and all the fill-in-the-blanks stuff they get to do in school (kids are used to boilerplates -- what most tests are no? -- certainly we adults face templates a lot, try to squeeze into 'em). Template = Form. Backend = database (more like what goes in the dictionary -- used to populate the fields/columns as rows/records). I talk a lot about real world stuff like that. The lesson is a "cave painting" i.e. a primitive yet faithful rendition of something more complicated (perhaps unnecessarily complicated for our purposes). But I could see switching to %(dict_key)s syntax somewhere along the way. I like Template though and don't think the string module should go away. Rather it should fill with non- redundant basic utilities (like Template). Kirby From kirby.urner at gmail.com Sat Jul 7 09:58:56 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 7 Jul 2007 10:58:56 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> Message-ID: > Here's the most elegant solution I could come up with: > > teachers = {'Mr. Judkis':'Excellent Choice', > 'Mrs. McGrath':'Also a fine choice.'} > name = raw_input() > while name not in teachers.keys(): > print 'Wrong, sorry.' > name = raw_input() > print teachers[name] > > --Tom Here's another solution incorporating Laura's suggestion that we introduce exception handling earlier rather than later. It also emphasizes the imprisoning nature of the while loop, plus reminds students about the continue statement: def pickone(rightanswer): inprison = True while inprison: # ask answer = raw_input("Who's the fairest of them all?: ") try: assert answer.upper() == rightanswer.upper() except AssertionError: # no good! continue # loop again inprison = False print "You got it right!" >>> reload(sillystory) >>> sillystory.pickone("Evil Queen") Who's the fairest of them all?: Snow White Who's the fairest of them all?: President Bush Who's the fairest of them all?: Obama? Who's the fairest of them all?: Evil Queen You got it right! Good thing to toss in that upper() stuff so a user doesn't get penalized for capitalizing incorrectly. As far as testing goes, I think the realistic thing is to let students write and debug. Having to write out code longhand in pencil, with no ability to check the code is very *not* a simulation of real programming conditions, where we rely on the interpreter to close the feedback loop. This is akin to Laura's suggestion of focusing on unit testing, except we're just letting the interpreter play that role for these simple constructions. So a testing environment should give free reign to the docs, as well as to the interpreter. Then cut and paste the finished code to a static text box, if that's what's required. Any handwriting should count as marks off the teacher's grade. Given the above, other questions for the student might be: modify the above code to give the user a hint after 3 false tries, with the hint passed as a parameter. Now modify the code further to cause it to exit, with a failure message, after ten false guesses. Kirby From krstic at solarsail.hcs.harvard.edu Sat Jul 7 11:13:58 2007 From: krstic at solarsail.hcs.harvard.edu (=?UTF-8?Q?Ivan_Krsti=C4=87?=) Date: Sat, 7 Jul 2007 05:13:58 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> <468E8866.80904@canterburyschool.org> <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> Message-ID: On Jul 6, 2007, at 2:29 PM, Andre Roberge wrote: > Does anyone on this list (other than Vern) who has taught high school > kids an intro to programming for just a few weeks can answer Andy's > question? I'm not a teacher, but perhaps you'll indulge a slight tangent. I have taught intro CS to 8th graders for a year in the late 90s, and more recently, some pretty hardcore CS during a 10-day course (http:// www.astro.hr/s3/2005/project4.php) for advanced high schoolers who didn't come in with a strong programming background. The former course used BASIC and a couple of more obscure languages, and the latter used a specialized dialect of C. The two environments were almost incomparable, but I did walk away with one shared observation both times: trying to explain difficult CS concepts to kids without a proper math background is next to impossible. Both times, I eventually reverted to teaching the missing math before diving into the CS, and even during the CS bits liberally jumped into mathematical analogies to explain various concepts and approaches. Some of my friends expressed unease with my happiness (comfort, really) to use mathematics as a tool for teaching CS, citing math's awful reputation as something that would get in the way. Unfortunately, there's a perverse and pervasive myth today that CS *isn't* math. Incoming CS freshmen at the better universities are quickly disillusioned about this; a non-trivial proportion of them picked CS as a major since they were "pretty good with computers in high school". For these folks, algorithms and Lisp tend to cause convulsive culture shock, and they often move to less demanding majors. Some schools have responded by introducing software engineering as a separate course of study. Bottom line: terminology matters. I think it's impossible to teach CS to kids who are afraid of math. Teaching *programming* is something else entirely. I'd submit that what Andy can expect from his students depends largely on which of the two he's trying to teach. Cheers, -- Ivan Krsti? | GPG: 0x147C722D From kirby.urner at gmail.com Sat Jul 7 11:52:08 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 7 Jul 2007 12:52:08 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> <468E8866.80904@canterburyschool.org> <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> Message-ID: On 7/7/07, Ivan Krsti? wrote: ... > Bottom line: terminology matters. I think it's impossible to teach CS > to kids who are afraid of math. Teaching *programming* is something > else entirely. I'd submit that what Andy can expect from his students > depends largely on which of the two he's trying to teach. > > Cheers, > > -- > Ivan Krsti? | GPG: 0x147C722D You're correct that math has a terrible reputation in many corners. As mathematician Keith Devlin puts it, math is about making the invisible visible -- a meme he invented to try countering the negative perceptions people have about math. http://www.maa.org/features/invisible.html On the other hand, if you're sitting in front of a computer, connected to the Internet especially, there's a sense of possibility, as well as of community. Technology has "sex appeal" including the allure of a more positive future (a meaning captured by the South African word 'kusasa'). Bridging the digital divide is another way of saying we're working to spread analytical skills to those who could use them. So a question confronting a lot of us is how to "rescue" mathematics by means of technology, which in part means restoring a sense of fun (Papert: "hard fun") and play. In the 1980s, it seemed K-12 math curricula were on the verge of incorporating more technology in the form of BASIC and Logo, but here we are in 2007 and most high school math classes are stuck in the calculator era. What happened? I think what a lot of kids find accessible and meaningful is a "how things work" approach (which connects to Keith Devlin's meme). We want to explain real stuff in the real world, and that takes mathematical concepts, analytical thinking and the like. Little things like indexing, data structures like trees (document object model, xml) make a huge difference. Databases are behind the scenes in so many walks of life. In the traditional curriculum, that means branching off from Venn Diagrams, plus talking about data in tabular formats. When we talk about Venn Diagrams would be a good place to put some intro to SQL. A problem in the mathematics culture is there's a lot of pride at having made it through certain "filters" and a wish to impose those filters on newcomers, to see who "makes it" through these difficult obstacle courses. Whereas I recognize every profession has standards, and not everyone is cut out to be just anything, I think math's poor reputation is in many ways a result of too much pride among the math savvy. There's a lot of protectionism, not to mention overspecialization that goes on. I see the infusion of computer savvy as helping to break up some of the old patterns of specialization. Restoring the reputation of mathematics does not have to mean returning to some past status quo. Kirby From jeff at taupro.com Sat Jul 7 16:20:10 2007 From: jeff at taupro.com (Jeff Rush) Date: Sat, 07 Jul 2007 09:20:10 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <006801c7bff8$7fb0b430$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> <006801c7bff8$7fb0b430$0601a8c0@Gandalf> Message-ID: <468FA11A.3080707@taupro.com> Andy Judkis wrote: > > Jeff, > > Your thoughts are very much like mine were -- the problem is so trivial > and obvious that anyone who's spent a little time with the material > should see the solution immediately. But my experience shows that > that's simply not true. This stuff is just hard for most kids, even > bright ones. > > When I was in college in the late 70s, I worked as a research assistant > at Pitt, working with people studying expert/novice differences in > Physics problem solving. > (http://www.garfield.library.upenn.edu/classics1993/A1993LZ47400001.pdf) > The outcome of the study (which seemed pretty predictable to me) was > that experts used concepts like momentum and energy to approach the > problems, while novices used cues like "spring" and "inclined plane" to > figure out what to do. I think something similar happens with > programming. Most programming instruction that I've seen starts off by > having the kids copy programs and make changes to them, and over time > the ones that stick with it build up some conceptual understanding of > what's going on. It just seems to take longer than I would expect. Taken for what its worth as an outsider to the educational system, I've never seen much focus on teaching people "*how* to learn" an arbitrary topic. It so often seems to be trickery (not in a malicious sense) and indirection, to reach that ah-ha moment. Learning is about recognizing patterns in the world around you and relating them to an internal map of concepts - once you get that, you can learn anything. Of course some form of guidance in adding unfamiliar concepts to your map is necessary, but by their nature those concepts are highly reusable from one field of study to another, And the so often stated idea of "you have to keep learning all your life these days" really means to actively seek out and internalize new concepts in advance so you are prepared to relate your experiences to them. The details don't matter so much as your brain will pick them up as needed. That may make no sense - it is 9am on a Saturday morning - not my usual time to be up at all (being a night person). Here in the Dallas Python usersgroup, we've been talking about running full-day classes to teach new people to program in Python. We get a mix of attendees, those who know it and want to talk about cool modules, and those who come out of curiosity and wonder if this is the place to learn programming. They don't mix well, and we lose those who are new to programming (we don't have enough people to split into two groups). So we're considering every quarter reserving one meeting for a full-day basics course. If we do this, we'll have to locate/polish up suitable courseware, and perhaps in the process we'll gain a better appreciation of the challenges people face in learning how to program. -Jeff From jeff at taupro.com Sat Jul 7 16:31:26 2007 From: jeff at taupro.com (Jeff Rush) Date: Sat, 07 Jul 2007 09:31:26 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <95648.52879.qm@web63301.mail.re1.yahoo.com> <200707060929.31347.john.zelle@wartburg.edu> Message-ID: <468FA3BE.7090309@taupro.com> Michael Tobis wrote: > > I have had great success starting with ascii art, drawing boxes and > triangles out of blanks and punctuation characters. By the time the > kite figure is drawn, the utility of input() is obvious. I think you > and Guzdial (and Andy Harrington who uses your book) are right to > proceed to graphics fairly quickly. Guzdial and hackety also stress > music. > > It's necessary to demonstrate the power and joy of the tool to get > people interested. An interesting idea - teaching with ascii art. Some teach with pixel art and some with games. You know, it'd be useful to have a wiki page on www.python.org under the educational section that collected the various educational ideas for a teacher to consider when designing a new course. Another cool thing would be if some of the instructors could record some screencasts for www.showmedo.com where they demonstrated their approach on-screen, and talked over explaining why and what they were trying to achieve and what results they've seen with it. I'm curious to see how ascii art can be applied here, and such screencasts would let other instructors get involved and encourage discussion. Classrooms so often seem like little islands, with only messages-in-a-bottle between them. > As a Python loyalist I see Python instruction as a way to strengthen > the language and the community, but I'm getting the impression that > the community won't be able to manage it. Could you expand on your phase "the community won't be able to manage it"? Do you mean people won't come forward with instructional materials, or that they won't offer the classes, or that certain features are missing in the language? Basically are you saying it is a lack of will or a lack of collective ability or community size/maturity? I'd like to help, as advocacy coordinator, if we can identify problem areas. -Jeff From kirby.urner at gmail.com Sat Jul 7 16:41:54 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 7 Jul 2007 17:41:54 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <468FA11A.3080707@taupro.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> <006801c7bff8$7fb0b430$0601a8c0@Gandalf> <468FA11A.3080707@taupro.com> Message-ID: On 7/7/07, Jeff Rush wrote: > Taken for what its worth as an outsider to the educational system, I've never > seen much focus on teaching people "*how* to learn" an arbitrary topic. It so > often seems to be trickery (not in a malicious sense) and indirection, to > reach that ah-ha moment. This is what I like about the O'Reilly 'Head First' series, which pays a lot of conscious attention to "metacognition". http://safari.oreilly.com/0596008678/hfobjects-preface-2-sect-4?imagepage=xxv Some of the pedagogical principles (spelled out in each book): Make it visual (words within or near graphics) Conversational and personalized style (what math books often avoid -- too proud) Keep it weird (unusual, surprising) Related: http://worldgame.blogspot.com/2005/01/brainstorming-about-pedagogy.html http://mail.python.org/pipermail/edu-sig/2003-October/003204.html http://mail.python.org/pipermail/edu-sig/2007-February/007740.html http://www.mail-archive.com/edu-sig at python.org/msg03821.html Kirby From vceder at canterburyschool.org Sat Jul 7 17:32:00 2007 From: vceder at canterburyschool.org (Vern Ceder) Date: Sat, 07 Jul 2007 11:32:00 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> <006801c7bff8$7fb0b430$0601a8c0@Gandalf> <468FA11A.3080707@taupro.com> Message-ID: <468FB1F0.9070200@canterburyschool.org> To capitalize on the reference to the Head First series, let me add my own somewhat self-serving plug. Right now I'm laboring away on storyboards for Head First Programming with Python, which is intended for first time programmers, people who've MAYBE looked at HTML, but nothing more. Somewhat the same space as Zelle's book, but from the Head First perspective. (Should be out in about a year, give or take, all support appreciated, etc...) In going through the whole Head First process - initial interview, audition, proposal, production - I've never met a group of people quite so obsessed with the details of how people learn stuff. That's saying something, since I've spent 20 years in schools filled with great teachers. So if you find yourself looking for new approaches to your material, I would also really recommend taking some time to look at Head First Design Patterns and Head First HTML and CSS (or any of the series) to see how they work through some very tricky concepts with graphics and humor. Cheers, Vern kirby urner wrote: > On 7/7/07, Jeff Rush wrote: > >> Taken for what its worth as an outsider to the educational system, I've never >> seen much focus on teaching people "*how* to learn" an arbitrary topic. It so >> often seems to be trickery (not in a malicious sense) and indirection, to >> reach that ah-ha moment. > > This is what I like about the O'Reilly 'Head First' series, which pays a lot of > conscious attention to "metacognition". > > http://safari.oreilly.com/0596008678/hfobjects-preface-2-sect-4?imagepage=xxv > > Some of the pedagogical principles (spelled out in each book): > > Make it visual (words within or near graphics) > Conversational and personalized style (what math books often avoid -- too proud) > Keep it weird (unusual, surprising) > > Related: > > http://worldgame.blogspot.com/2005/01/brainstorming-about-pedagogy.html > http://mail.python.org/pipermail/edu-sig/2003-October/003204.html > http://mail.python.org/pipermail/edu-sig/2007-February/007740.html > http://www.mail-archive.com/edu-sig at python.org/msg03821.html > > > Kirby > _______________________________________________ > 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 kirby.urner at gmail.com Sat Jul 7 19:23:15 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 7 Jul 2007 20:23:15 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <468FB1F0.9070200@canterburyschool.org> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> <006801c7bff8$7fb0b430$0601a8c0@Gandalf> <468FA11A.3080707@taupro.com> <468FB1F0.9070200@canterburyschool.org> Message-ID: > Right now I'm laboring away on storyboards for Head First Programming > with Python, which is intended for first time programmers, people who've > MAYBE looked at HTML, but nothing more. Somewhat the same space as > Zelle's book, but from the Head First perspective. (Should be out in > about a year, give or take, all support appreciated, etc...) > Hey Vern, I'm glad someone's doing this! There's been some hope about getting Python into the Head First pipeline. A couple years ago O'Reilly was skeptical there was a big enough market (they track this stuff pretty closely, as we've learned at various OSCONs). So your landing this fish is also indicative of Python's continued expansion. I hope edu-sig proves a relevant source of ideas. Probably you won't be using the __ribs__ idea (snakes have lots of 'em), but if you don't know what I mean, I'll plug my Europython slides again (I'm spreading the __rib__ idea in Vilnius). http://www.4dsolutions.net/presentations/connectingthedots.pdf Wondering if you're playing up the Monty Python angle much either. I think that too is highly reflective of Python's (and Guido's) playful side. > -- > This time for sure! > -Bullwinkle J. Moose So maybe this was your secret (cartoon allusions). Kirby > ----------------------------- > 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 vceder at canterburyschool.org Sat Jul 7 19:35:54 2007 From: vceder at canterburyschool.org (Vern Ceder) Date: Sat, 07 Jul 2007 13:35:54 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> <006801c7bff8$7fb0b430$0601a8c0@Gandalf> <468FA11A.3080707@taupro.com> <468FB1F0.9070200@canterburyschool.org> Message-ID: <468FCEFA.4060603@canterburyschool.org> Thanks Kirby, Of course this is Programming *with* Python, i.e., programming is the primary focus, and we'll be staying away from purely python idioms for the most part, but I too am glad that O'Reilly's beginner's book is *not* Head First Programming with Ruby, say... ;-) As to __ribs__, I've been on edu-sig long enough to know what you mean. I haven't yet figured out what the approach will be with objects, which will be introduced toward the end. The animal idea you've mentioned is attractive, though. The rules (formal and informal) of Head First land mean that there probably won't be much direct reference to the Pythons (Monty), which I sort of regret... after all, I've spent a lifetime memorizing those skits... ;-) But yeah, I'm hopeful that a HF beginners book using Python will mean a full-blown Python book is next in the works. Cheers, Vern kirby urner wrote: >> Right now I'm laboring away on storyboards for Head First Programming >> with Python, which is intended for first time programmers, people who've >> MAYBE looked at HTML, but nothing more. Somewhat the same space as >> Zelle's book, but from the Head First perspective. (Should be out in >> about a year, give or take, all support appreciated, etc...) >> > > Hey Vern, I'm glad someone's doing this! > > There's been some hope about getting Python into the Head First > pipeline. A couple years ago O'Reilly was skeptical there was a > big enough market (they track this stuff pretty closely, as we've > learned at various OSCONs). So your landing this fish is also > indicative of Python's continued expansion. > > I hope edu-sig proves a relevant source of ideas. Probably you > won't be using the __ribs__ idea (snakes have lots of 'em), but > if you don't know what I mean, I'll plug my Europython slides > again (I'm spreading the __rib__ idea in Vilnius). > > http://www.4dsolutions.net/presentations/connectingthedots.pdf > > Wondering if you're playing up the Monty Python angle much > either. I think that too is highly reflective of Python's (and > Guido's) playful side. > >> -- >> This time for sure! >> -Bullwinkle J. Moose > > So maybe this was your secret (cartoon allusions). > > Kirby > >> ----------------------------- >> 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 >> > _______________________________________________ > 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 mpaul at bhusd.k12.ca.us Sat Jul 7 19:49:58 2007 From: mpaul at bhusd.k12.ca.us (Michel Paul) Date: Sat, 7 Jul 2007 10:49:58 -0700 Subject: [Edu-sig] a non-rhetorical question References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf><468D8264.6020203@canterburyschool.org><006201c7bff4$ecef9c40$0601a8c0@Gandalf><92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com><468E8866.80904@canterburyschool.org><7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> Message-ID: <3D142BFDEDAC8D46A40F4EA0B36D1F351D70E7@MAIL.bhusd.k12.ca.us> I was very happy to see this book come out recently: "Mathematics for the Digital Age" http://www.skylit.com/mathandpython.html This is still in its preliminary stages, finished version will appear in February. The preface is delightful - they explain there how Donald Knuth realized that the mathematics he needed in computer science was not quite what he had studied in the traditional math major. This led him to create "Concrete Mathematics" (CONtinous + disCRETE). >I think it's impossible to teach CS to kids who are afraid of math. More and more I believe high school math teachers have a responsibility to emphasize to students that computers only exist BECAUSE of mathematics. What makes something a computer is not the material from which it is constructed - that material could even be plumbing - what makes something a computer is its organization. When a student asks, "When am I ever going to use this stuff?" the answer is - "Every friggin time you use your computer!" Many math students are actually surprised to hear that - it's weird, but they just do NOT realize that computers have their roots in mathematics! I really believe that has to change - the whole math curriculum needs to be upgraded for the 21st century. >here we are in 2007 and most high school >math classes are stuck in the calculator era. What happened? Marketing. Cleverly appropriating teachers to perform free advertising and sell product by calling them 'leaders'. Getting textbook publishers to feature calculator sections in each chapter, thereby creating a status quo where technological integration has "already been handled". Also, I believe part of the problem is the perceived division between CS and mathematics. CS has grown to become its own discipline and its own department at the university level, so when we talk about integrating CS into math classes, people are apprehensive, thinking we're adding some "other subject", some "additional layer", to the math curriculum. The difficulty is getting people to realize that it's really the other way around. When you introduce gadgets - calculators, software "packages", etc. that students then have to learn to use - THAT'S where you get additional layers to the already-existing curriculum. When you use a high-level computational language, like Python, to express algebraic concepts, the algebra and the technology can be presented as ONE THING. For example: >>> for x in domain: x, f(x) There's actually LESS layering going on there. There's actually an interesting contrast here between emphasizing the unity of CS/mathematics and getting kids to program in "fun" (i.e. "non-mathematical") ways. It does make sense in our math-phobic educational climate to show beginning programming students how they can do fun things without having to worry about the algebra, and quite a lot of good effort has gone into this. But simultaneously, I think it makes tremendous sense to show students how a kind of algebraic thinking is fundamental to our technology and to weave this into math classes. - Michel ================================================== "Shall I tell you what it is to know? To say you know when you know, and to say you do not when you do not, that is knowledge." - Confucius ================================================== -----Original Message----- From: edu-sig-bounces at python.org on behalf of kirby urner Sent: Sat 07/07/07 02:52 AM To: Ivan Krstic Cc: edu-sig at python.org Subject: Re: [Edu-sig] a non-rhetorical question On 7/7/07, Ivan Krstic wrote: ... > Bottom line: terminology matters. I think it's impossible to teach CS > to kids who are afraid of math. Teaching *programming* is something > else entirely. I'd submit that what Andy can expect from his students > depends largely on which of the two he's trying to teach. > > Cheers, > > -- > Ivan Krstic | GPG: 0x147C722D You're correct that math has a terrible reputation in many corners. As mathematician Keith Devlin puts it, math is about making the invisible visible -- a meme he invented to try countering the negative perceptions people have about math. http://www.maa.org/features/invisible.html On the other hand, if you're sitting in front of a computer, connected to the Internet especially, there's a sense of possibility, as well as of community. Technology has "sex appeal" including the allure of a more positive future (a meaning captured by the South African word 'kusasa'). Bridging the digital divide is another way of saying we're working to spread analytical skills to those who could use them. So a question confronting a lot of us is how to "rescue" mathematics by means of technology, which in part means restoring a sense of fun (Papert: "hard fun") and play. In the 1980s, it seemed K-12 math curricula were on the verge of incorporating more technology in the form of BASIC and Logo, but here we are in 2007 and most high school math classes are stuck in the calculator era. What happened? I think what a lot of kids find accessible and meaningful is a "how things work" approach (which connects to Keith Devlin's meme). We want to explain real stuff in the real world, and that takes mathematical concepts, analytical thinking and the like. Little things like indexing, data structures like trees (document object model, xml) make a huge difference. Databases are behind the scenes in so many walks of life. In the traditional curriculum, that means branching off from Venn Diagrams, plus talking about data in tabular formats. When we talk about Venn Diagrams would be a good place to put some intro to SQL. A problem in the mathematics culture is there's a lot of pride at having made it through certain "filters" and a wish to impose those filters on newcomers, to see who "makes it" through these difficult obstacle courses. Whereas I recognize every profession has standards, and not everyone is cut out to be just anything, I think math's poor reputation is in many ways a result of too much pride among the math savvy. There's a lot of protectionism, not to mention overspecialization that goes on. I see the infusion of computer savvy as helping to break up some of the old patterns of specialization. Restoring the reputation of mathematics does not have to mean returning to some past status quo. 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 Jul 7 20:52:58 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 7 Jul 2007 21:52:58 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <3D142BFDEDAC8D46A40F4EA0B36D1F351D70E7@MAIL.bhusd.k12.ca.us> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468D8264.6020203@canterburyschool.org> <006201c7bff4$ecef9c40$0601a8c0@Gandalf> <92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com> <468E8866.80904@canterburyschool.org> <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com> <3D142BFDEDAC8D46A40F4EA0B36D1F351D70E7@MAIL.bhusd.k12.ca.us> Message-ID: On 7/7/07, Michel Paul wrote: > I was very happy to see this book come out recently: > > "Mathematics for the Digital Age" > http://www.skylit.com/mathandpython.html > Hey thanks for sharing that. I wasn't aware of this resource. They give a succinct summation of the "math through programming" approach: """ We believe that starting in college is too late. Many concepts are completely accessible to middle and high school students. And there is also another side to the relationship: just as mathematics helps achieve a deeper understanding of computer programs, some hands-on experience with computer programming helps make mathematics more tangible, familiar, and easier to grasp. """ > >here we are in 2007 and most high school > >math classes are stuck in the calculator era. What happened? > > Marketing. Cleverly appropriating teachers to perform free advertising > and sell product by calling them 'leaders'. Getting textbook publishers > to feature calculator sections in each chapter, thereby creating a > status quo where technological integration has "already been handled". Well, we're going to be using marketing too. I'm eager to compete, as I think math through Python has way more integrity and relevance than all this crappy TI stuff they dish out. Tiny screens, very black boxy, all the algorithms hidden from view. Programming a rational number class is way more likely to produce insights than just going (1/3) + (1/8) on a calculator (presuming it has a rational numbers feature). Plus the job-relevant skills you pick up doing real programming... CP4E is just a better way to go. > Also, I believe part of the problem is the perceived division between > CS and mathematics. CS has grown to become its own discipline and > its own department at the university level, so when we talk about > integrating CS into math classes, people are apprehensive, thinking > we're adding some "other subject", some "additional layer", to the > math curriculum. Yeah, that's the overspecialization I was talking about (Knuth talks about it too, and Bucky of course). Good thing we have the philosophy department as a kind of switchboard between these disciplines (meant semi-sarcastically with regard to most of today's academic philosophy, but earnestly too, as philosophy remains a great source of overview and perspective). > For example: >>> for x in domain: x, f(x) There's actually LESS layering > going on there. Right. > It does make sense in our math-phobic educational climate to show beginning > programming students how they can do fun things without having to worry > about the algebra, and quite a lot of good effort has gone into this. > > But simultaneously, I think it makes tremendous sense to show students how > a kind of algebraic thinking is fundamental to our technology and to weave > this into math classes. > > - Michel And here is where Polyhedra come in, as mathematical, visual *and* very amenable to an OO approach. Yep, philosophy is where it's at (echoes of Plato). Kirby From aharrin at luc.edu Sun Jul 8 01:20:36 2007 From: aharrin at luc.edu (Andrew Harrington) Date: Sat, 07 Jul 2007 18:20:36 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> Message-ID: <46901FC4.5060406@luc.edu> Dear Andy, I have been away and came late to this excellent discussion. I personally would have only taught the loop constructs without break at this level, and then it is true that the problem 'only' needs the basic syntactic components of loops, decisions, and compound logical expressions. I have found that students pick up ability with decisions very easily (often written in a non-optimal but successful fashion if there are multiple choices) and loops are a lot harder, even basic loops. What is left out is what is takes for the creative or logical steps to compose the pieces in previously unused ways. This is the major challenge, and I think Andy underestimated the amount of creativity required. One can scaffold, giving a student some ownership of a more complicated combination, but the scaffolding does exactly what the name suggests, providing a pre-supplied framework into which you can supply smaller pieces. It gives the illusion of completing more than you have, because a large part of the creative process is hidden in the pre-supplied framework. If you give another problem that needs the same framework, then you are fine. For instance, I have taught as a specific pattern loops with two possible end conditions, with the compound condition and decision after the loop. (Actually I taught it in the more complicated situation where the short-circuit order was important -- a linear sentinel search., where a very subtle bug is caused by the wrong order.) Without having specifically taught such a pattern before giving Andy's problem, I agree with Ivan, that a good logical/mathematical background is likely to make it much easier. Without either, it is a considerable creative process to put the syntax pieces together in the right combination. It would have been a lot easier if 'Mr. Judkis' were the only allowed answer. The idea of deferring the final response until after a conditional outside the loop is subtle for beginners. (I certainly use the scaffolding approach often, though I an still not sure how to use it most effectively to help students gain creative abilities to solve from scratch a problem with a completely *different unknown* pattern.) For me, teaching syntax is boring and straight-forward. Syntax and basic examples using one syntax element at a time do not take your students very far. It is a creative process to get a complicated problem and decide how to combine the basic syntax elements. Teaching the creative process is exciting and challenging, and often frustrating. Different students seem to need such different buildup and guidance. As far as I am concerned, teaching introductory programming is mostly about this creative process. Andy Harrington Andy Judkis wrote: > I've just completed my 6th semester as a teacher, teaching 2 sections per > semester of a 10th grade course that includes a 4 week introduction to > programming in Python. Here's a question from one of my exams: > > Write Python code that will ask the user how who is the best looking > teacher in the school. The program must loop until the user responds either > "Mrs. McGrath" or "Mr. Judkis". If the use responds "Mr. Judkis", the > program must print out "Excellent choice." If the user responds "Mrs. > McGrath", the program must print out "Also a fine choice." If the user > responds with anything else, the program must print out "Wrong, sorry." and > ask again. > > Rather than catalog my frustrations, let me just pose a question to you > all -- how much Python exposure do you think it should take before a student > should be able to answer this question? If a student can't even answer > this, is it reasonable to say that they have learned any programming at all? > (I know that they might have learned something -about- programming, but that > is not the same thing.) > > Thanks, > > Andy Judkis > > (By the way, anybody out there going to be at CS4HS next week at CMU? If so > I'd love to get together with you . . ) > -- Andrew N. Harrington Computer Science Department Director of Academic Programs Loyola University Chicago http://www.cs.luc.edu/~anh 512B Lewis Towers (office) Phone: 312-915-7999 Snail mail to Lewis Towers 416 Fax: 312-915-7998 820 North Michigan Avenue gdp at cs.luc.edu for graduate admin Chicago, Illinois 60611 upd at cs.luc.edu for undergrad admin aharrin at luc.edu as professor From ajudkis at verizon.net Sun Jul 8 06:04:14 2007 From: ajudkis at verizon.net (Andy Judkis) Date: Sun, 08 Jul 2007 00:04:14 -0400 Subject: [Edu-sig] a non-rhetorical question References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> Message-ID: <003901c7c115$0d69f3f0$0601a8c0@Gandalf> I've been out painting my house, so I have some catching up to do as well. First, to respond to the post from Michael Tobis: > Sorry, but I don't think you've successfully motivated your students > if that is all they can do in a month. Let me hazard a suggestion. > Rather than being too mabitious you are not being ambitious enough. I thank Andre for coming to my defense, but I think Michael's on the right track. The problem is that I haven't found something sufficiently motivating to get these kids to climb the hill. It's not that I haven't tried, but it hasn't worked out very well. I too try to get to graphics stuff as quickly as possible, but I think it isn't very meaningful without some control structure around it. I use the livewires API because it's the simplest I've found, requiring the least foundation, but it still takes a while to get to where you can do much. I've tried showing the kids VPython in the first week or two, and they think it's cool and can type stuff in but they have -no idea- what any of it means. I have not thought of a way to use it as anything other than entertainment. I would love to hear from someone who feels that they have a fairly successful high-school programming class. Specifically, I'd love to know in some detail what you cover in the first month. To respond to Vern's post about the Head First book - that is outstanding! I will be first in line to buy it. I love the idea of Head First-style books in high schools, someday I'd like to write one myself :-) To the extent that you're willing/permitted to talk about it, I'd be very interested in hearing about how you are presenting the material. And if you need a class of guinea pigs, I can probably deliver. To respond to Andrew Harrington's post: It's very humbling to me to see how much thought people put into breaking the concepts down into pieces, and thinking about how to present them. I thought I did a lot but this discussion has helped me to see how much I've overlooked. My background is in engineering, not education, and I started teaching after 20 or so years in various aspects of industry, including quite a few years programming in C and Java. Things that are intuitive are invisible -- it's hard for me to see what I'm really asking of the kids. I'm learning, but not quickly enough. To respond to John Zelle's post from a while back, about the complexity of some APIs interfering with kids learning the basics: yeah, that's the problem -- keeping kids motivated while laying the foundation. The parts that are necessary to provide the cool factor can obscure the real heart of the lesson. I'm seriously thinking about using Scratch rather than Python, for just that reason -- the cool factor is built-in, it's as accessible as "if" or "while". Thanks, Andy From kirby.urner at gmail.com Sun Jul 8 06:34:22 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 8 Jul 2007 07:34:22 +0300 Subject: [Edu-sig] Scaffolding Message-ID: So I've learned a new term from ya'll: scaffolding. Of course I knew it from the namespace of construction, but here it means a framework or prewritten code or auxiliary aids such as diagrams. Anyone want to elaborate? I see links between "scaffolding" and the concept of "immersion", already well established in the language learning community -- human languages that is. The ideal is to immerse oneself in a culture or community that uses the language expertly, natively, in its full-blown form, while at the same time struggling with exercises, tutorials, working to get up to speed. This is how we learn our first language, usually. Sure, we have picture books and a huge amount of literature, gradated in terms of difficulty, but the importance of all that background scaffolding i.e. mature adults speaking and writing the language to each other, kids listening in, reading, shouldn't be underestimated. When that background is missing, one often sees the debilitating effects. In today's world, television is an important part of immersion and language learning. What would Python look like on TV? That's more my focus than traditional book publishing, though I in no way dismiss or denigrate the importance of the latter. I just think that domain is already being rather competently handled by others (I'm even more convinced of that since reading recent posts to this list), whereas we have zero "Python cartoons" on TV (showmedo and such screencasting archives are a first step -- I have some pilots in the queue there as well). Regarding mathematics, I think we should recognize that we teach it with a lot of scaffolding as well. True, constructivism (and constructionism) advocate lots of exploration and self-motivated play (becoming self motivated is almost a prerequisite for eventually getting expert at something, no?), but there's really no way a single person, nor even a single generation, is going to reinvent all those wheels from scratch. Take vectors for example. They actually derive in some degree from complex numbers, which come from polynomials (getting generalized solutions). People were having trouble wrapping their minds around these critters until the Argand Diagram came along (another guy had it even earlier) and showed a + bi as (a,b) on a plane of two axes: real (x) and imaginary (y). That set the stage for integrating with trig's unit circle, Euler's identities, plus showed how two complex numbers multiply in the complex plane (enter fractals, Mandelbrot set, at a later date). Hamilton wanted something similar in 3 dimensions and Quaternions were born. But they were difficult, especially pre-computer, and that's where Gibbs and Heaviside enter the picture, using some of these same concepts to create a rather simpler vector arithmetic, wherein addition and subtraction are defined, along with scalar multiplication, plus these two other operations, dot product and cross product. This marks the beginning of today's linear algebra, with its matrix transformations, eigenvectors etc. (still with links to polynomials though e.g. per the Cayley-Hamilton theorem). That's a *lot* of scaffolding, and it took many many decades to get us to where we are today (not a static picture -- lots of momentum towards Clifford algebra ala Hestenes, exploring other forks in the road ala Grassmann et al -- names mentioned in passing on one of my Europython slides (slide #22)). So let's remember, when we teach Python, that we're always relying on lots and lots of scaffolding, even in the case of "blank canvas" programming (it took a lot of evolution and engineering to give as that deceptively blank screen in the first place (I say "deceptively blank" because Python on bootup is already a richly populated environment, as dir(__buitlins__) reveals)). We're born into the midst of things, a world already highly sophisticated and technological. There's no going back to primitive origins except mythologically. In practice, the status quo is immersion, and there's really nothing we can do about that. So why resist? That being said, I agree that blank canvas or blank screen programming has its place. But maybe not without access to documentation. It's not about memorizing everything and moving to some deserted island, asked to code in Python. There's no need to presume such a deserted island model. It's a very busy planet that we need to emulate and synch with. OK, OK, so maybe I'm putting my own spin on "scaffolding" a little, incorporating it into my namespace in a slightly different way. Consider me a visitor to CS from the neighboring philosophy department, where we twist things a bit, but not so much we're indecipherable (at least some of the time). Kirby References: Good history of the evolution of these linear algebra concepts, with lots of links to recent thinking: http://calclab.math.tamu.edu/~fulling/m629/f03/linalg.pdf Linear algebra still very tied to Polynomials of the Italian Renaissance: http://en.wikipedia.org/wiki/Cayley-Hamilton_theorem Typical use of "scaffolding" in the CS namespace: M. Z. Numan, S. Ali, and J. Giniewicz, "Effective Scaffolding for Problem Solving and Higher Order Cognitive Skills", presented at the Annual Conference for the Advancement of College Teaching and Learning, Harrisburg, Pennsylvania (2002). From kirby.urner at gmail.com Sun Jul 8 06:49:01 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 8 Jul 2007 07:49:01 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <003901c7c115$0d69f3f0$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> Message-ID: > I've tried showing the kids VPython in the first week or two, and they think > it's cool and can type stuff in but they have -no idea- what any of it > means. I have not thought of a way to use it as anything other than > entertainment. > > I would love to hear from someone who feels that they have a fairly > successful high-school programming class. Specifically, I'd love to know in > some detail what you cover in the first month. I know some say "Kirby's stuff doesn't count" because high schoolers pay money to take my class and are hence "motivated" (not fair!), but I do consider my classes somewhat successful, in terms of high marks for the teacher (they grade me, but not vice versa, confidentially but I'm told I do well). The very day I get back from Lithuania, I start another class. 3.5 hours a day for four days. Rather intensive (especially with jet lag). Lots of VPython, POV-Ray, and maybe some X3D. I've written up my classes, blow by blow, in my blog a few times, plus have this whole CP4E page with a lot of writings. But maybe none of that counts. http://www.4dsolutions.net/ocn/pymath.html Plus I did a class for Portland Public Schools (all 8th graders @ Winterhaven). I was asked by the administration to make it more geographical in nature, and that's what I did. I'd like to explore this approach again sometime soon. http://www.4dsolutions.net/ocn/winterhaven/ > I'm seriously thinking about using Scratch rather than Python, for just that > reason -- the cool factor is built-in, it's as accessible as "if" or > "while". > Why think either/or? Use Scratch *and* Python. > Thanks, > Andy > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Sun Jul 8 06:54:17 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 8 Jul 2007 07:54:17 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> Message-ID: > The very day I get back from Lithuania, I start another class. 3.5 hours > a day for four days. Rather intensive (especially with jet lag). Lots > of VPython, POV-Ray, and maybe some X3D. > Actually I guess it's only 2.5 hours a day, 10 hours total. Do they come out completely proficient in Python? No, of course not. Have I whet their appetites, are they more motivated than coming in? I think in most cases yes. There's no rush, in any case. Most of them are at the beginning of their high school careers. This is like previewing and overview, with a lot of encouragement to study on one's own (like we adults do). Speaking of jet lag, I've been up since 4:30 AM, after going to bet at 2 AM, after pizza with the Europython conference organizers, who flew in from Oslo late last night, after taking a train from Gothenberg. Now it's time for breakfast (yay). Hi Laura. Kirby From delza at livingcode.org Sun Jul 8 07:14:24 2007 From: delza at livingcode.org (Dethe Elza) Date: Sat, 7 Jul 2007 22:14:24 -0700 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <003901c7c115$0d69f3f0$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> Message-ID: On 7-Jul-07, at 9:04 PM, Andy Judkis wrote: > I'm seriously thinking about using Scratch rather than Python, for > just that > reason -- the cool factor is built-in, it's as accessible as "if" or > "while". I haven't been actively trying to teach my kids to program, but they know that's a big part of what I do (both for work and for fun), and they like computers a lot. I've attempted to put together an environment to teach them Python a few times, but got bogged down each time (too many projects). On the other hand, they both (my daughter is 10 and my son is 6) picked up Scratch right away and have been coming up with interesting ideas and uses for it ever since. They give up their (very limited, we have strict limits for all electronic media) time on the Nintendo DS in order to write Scratch code. Now my daughter is running into the limits of Scratch and her ambitions are exceeding those limits (and where she goes, my son soon tries to follow). I'm beginning to show her the ropes with PyGame and she is watching over my shoulder. When a sprite moved down instead of up when we pressed the up arrow, she said, "Let me fix it!" I handed my laptop over to her, she found the right spot, flipped the minus sign, and we tested it. So now she's fixed her first bug in Python code, I figure she's hooked. I've also got an order at Amazon for "Squeak: Learn Programming with Robots" that Ted Leung talks about (comparing Squeak to Python for his three daughters learning to use computers) here: http:// www.sauria.com/blog/education/1457. Julie Leung has her own perspective on it here: http://www.julieleung.com/archives/ 002073.html. This book has probably been mentioned here before, given that Andre has the first comment on Ted's blog. I don't yet know whether Squeak or Python will win my kids hearts and minds (maybe both?), but I do know Python and PyGame run on my new Nokia N800. All of this is anecdotal and non-academic. Just wanted to contribute my data point to the discussion. --Dethe "The good thing about reinventing the wheel is that you can get a round one." --Douglas Crockford From jeff at taupro.com Sun Jul 8 08:58:05 2007 From: jeff at taupro.com (Jeff Rush) Date: Sun, 08 Jul 2007 01:58:05 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> <006801c7bff8$7fb0b430$0601a8c0@Gandalf> <468FA11A.3080707@taupro.com> <468FB1F0.9070200@canterburyschool.org> Message-ID: <46908AFD.7040901@taupro.com> kirby urner wrote: > > I hope edu-sig proves a relevant source of ideas. Probably you > won't be using the __ribs__ idea (snakes have lots of 'em), but > if you don't know what I mean, I'll plug my Europython slides > again (I'm spreading the __rib__ idea in Vilnius). > > http://www.4dsolutions.net/presentations/connectingthedots.pdf Kirby, those slides are interesting, but having a voiceover explaining them would be great. With the work you've put into them, you should consider screencasting -- just flip the slides and talk into a microphone for us. For how to do this, and an example, check out my screencast series on "Casting Your Knowledge, With Style" at: http://www.showmedo.com/videos/series?name=bETR23HwS Getting some of your talks into the can and onto showmedo.com would really be useful. -Jeff From kirby.urner at gmail.com Sun Jul 8 09:53:04 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 8 Jul 2007 10:53:04 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <46908AFD.7040901@taupro.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <468DF1D4.9020208@taupro.com> <006801c7bff8$7fb0b430$0601a8c0@Gandalf> <468FA11A.3080707@taupro.com> <468FB1F0.9070200@canterburyschool.org> <46908AFD.7040901@taupro.com> Message-ID: > Kirby, those slides are interesting, but having a voiceover explaining them > would be great. With the work you've put into them, you should consider > screencasting -- just flip the slides and talk into a microphone for us. > Yes, I have Camtasia Studio, did a recap of my OSCON 2005 presentation using that technique: http://worldgame.blogspot.com/2007/01/reviewing-my-oscon-2005-talk.html > For how to do this, and an example, check out my screencast series on "Casting > Your Knowledge, With Style" at: > > http://www.showmedo.com/videos/series?name=bETR23HwS > > Getting some of your talks into the can and onto showmedo.com would really be > useful. > > -Jeff Yes, I'd like to. I've been talking to Ian about getting five screencasts uploaded (doesn't include the above). He's got the videos, says they meet standards, is just waiting for me to write the descriptions -- while I wait for him to give me author status so I can do that. Showmedo uses higher resolution than Google Video, on which squinting at source code is rather painful. The five in the queue include these three: http://controlroom.blogspot.com/2007/01/python-for-math-teachers.html (the low rez versions -- require squinting). One problem of late is Camtasia doesn't work well with my integrated sound card in my main machine (especially since the last upgrade, which was supposed to *fix* sound problems but made mine more broken). They're aware of the problem and are working on it, but suggested I slip into something more Soundblaster compatible in the meantime. I haven't done that yet. http://controlroom.blogspot.com/2007/06/computer-anatomy.html Kirby From lac at openend.se Sun Jul 8 12:33:07 2007 From: lac at openend.se (Laura Creighton) Date: Sun, 08 Jul 2007 12:33:07 +0200 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: Message from "Andy Judkis" of "Sun, 08 Jul 2007 00:04:14 EDT." <003901c7c115$0d69f3f0$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> Message-ID: <200707081033.l68AX7Oo016828@theraft.openend.se> In a message of Sun, 08 Jul 2007 00:04:14 EDT, "Andy Judkis" writes: >I've been out painting my house, so I have some catching up to do as well >. >I thank Andre for coming to my defense, but I think Michael's on the righ >t >track. The problem is that I haven't found something sufficiently motivat >ing >to get these kids to climb the hill. It's not that I haven't tried, but >it >hasn't worked out very well. I too try to get to graphics stuff as quickl >y >as possible, but I think it isn't very meaningful without some control >structure around it. I use the livewires API because it's the simplest I >'ve >found, requiring the least foundation, but it still takes a while to get >to >where you can do much. It is easier if you let the kids find what they want to do, rather than having to read their minds, and find something that you think they ought to want to do. The kids I was teaching were a fair bit younger, but when I asked them 'what do you use the intenet for now' the answers clustered around 'finding out when some favourite web page changed' 'getting tickets for the Spice Girls concert' and 'playing computer games'. So we ended up doing a lot of screen scraping, and collaboratively writing a small text based game. Of course the kids that I were teaching were all volunteers. If your class is mandatory, you may get kids who don't use computers and don't want to use them for anything. They will be a much harder problem then I had. Laura From varmaa at gmail.com Sun Jul 8 17:29:24 2007 From: varmaa at gmail.com (Atul Varma) Date: Sun, 8 Jul 2007 10:29:24 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <200707081033.l68AX7Oo016828@theraft.openend.se> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <200707081033.l68AX7Oo016828@theraft.openend.se> Message-ID: <361b27370707080829t3d5e4d88ia9f9e1dea5186b7a@mail.gmail.com> Has anyone ever explored the idea of using a collaborative virtual community for teaching programming? I'm thinking about something along the lines of Amy Bruckman's MOOSE Crossing: http://www.cc.gatech.edu/elc/moose-crossing/ http://www.cc.gatech.edu/~asb/thesis/ As Laura was saying, having the students create something that's meaningful to them and their peers can be enormously motivating. One of the advantages of any virtual community that supports third-party coding, from World of Warcraft to Second Life to text-based MOOs, is that they provide an excellent social context for computer programming. What if, for instance, rather than creating an isolated program that repeatedly asks questions about who the most attractive teacher is--a program that no one would ostensibly use--the goal was to create a simple robot in a text-based virtual world that anyone else could interact with? Or a virtual dog that would eat people's virtual homework, or a hot potato that exploded after 5 minutes and covered its holder in goo? Creating such things could potentially involve just as many CS concepts as standalone programs, but they'd have a social context that would make them more meaningful and interesting for everyone involved; rather than being throwaway exercises, even the simplest of projects could be something that is lasting, has a strong creative component, and could even be constructed collaboratively. And while I'm not sure how useful it would be in a CS course, another advantage of such an environment is that it's multidisciplinary--even if someone doesn't "get" computer programming or simply isn't interested in it at all, they can still contribute through writing, art, management/coordination, and at least learn something useful about teamwork and collaboration. If Second Life's interface weren't so mind-bogglingly complex [1], I'd actually like to see it used for introductory programming classes. But barring that, I'm curious as to whether any work has been done in teaching Python like this. - Atul [1] http://www.humanized.com/weblog/2007/05/01/mixed_thoughts_on_the_metaverse On 7/8/07, Laura Creighton wrote: > In a message of Sun, 08 Jul 2007 00:04:14 EDT, "Andy Judkis" writes: > >I've been out painting my house, so I have some catching up to do as well > >. > >I thank Andre for coming to my defense, but I think Michael's on the righ > >t > >track. The problem is that I haven't found something sufficiently motivat > >ing > >to get these kids to climb the hill. It's not that I haven't tried, but > >it > >hasn't worked out very well. I too try to get to graphics stuff as quickl > >y > >as possible, but I think it isn't very meaningful without some control > >structure around it. I use the livewires API because it's the simplest I > >'ve > >found, requiring the least foundation, but it still takes a while to get > >to > >where you can do much. > > > > It is easier if you let the kids find what they want to do, rather than > having to read their minds, and find something that you think they > ought to want to do. The kids I was teaching were a fair bit > younger, but when I asked them 'what do you use the intenet for now' > the answers clustered around 'finding out when some favourite web > page changed' 'getting tickets for the Spice Girls concert' and > 'playing computer games'. So we ended up doing a lot of screen > scraping, and collaboratively writing a small text based game. Of > course the kids that I were teaching were all volunteers. If your > class is mandatory, you may get kids who don't use computers and > don't want to use them for anything. They will be a much harder > problem then I had. > > Laura > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ajudkis at verizon.net Sun Jul 8 17:42:47 2007 From: ajudkis at verizon.net (Andy Judkis) Date: Sun, 08 Jul 2007 11:42:47 -0400 Subject: [Edu-sig] a non-rhetorical question References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> Message-ID: <000801c7c176$a3599fd0$0601a8c0@Gandalf> > I know some say "Kirby's stuff doesn't count" because high schoolers > pay money to take my class and are hence "motivated" (not fair!), > but I do consider my classes somewhat successful, in terms of high > marks for the teacher (they grade me, but not vice versa, confidentially > but I'm told I do well). Your circumstances are somewhat different but I don't feel like "your stuff doesn't count". It would be extremely interesting to hear how your kids approach the test question I presented that started this thing. You wanna pose it to them and see what happens? From lac at openend.se Sun Jul 8 18:29:47 2007 From: lac at openend.se (Laura Creighton) Date: Sun, 08 Jul 2007 18:29:47 +0200 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: Message from "Atul Varma" of "Sun, 08 Jul 2007 10:29:24 CDT." <361b27370707080829t3d5e4d88ia9f9e1dea5186b7a@mail.gmail.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <200707081033.l68AX7Oo016828@theraft.openend.se> <361b27370707080829t3d5e4d88ia9f9e1dea5186b7a@mail.gmail.com> Message-ID: <200707081629.l68GTlIt011188@theraft.openend.se> In a message of Sun, 08 Jul 2007 10:29:24 CDT, "Atul Varma" writes: >Has anyone ever explored the idea of using a collaborative virtual >community for teaching programming? I'm thinking about something >along the lines of Amy Bruckman's MOOSE Crossing: > > http://www.cc.gatech.edu/elc/moose-crossing/ > http://www.cc.gatech.edu/~asb/thesis/ > >As Laura was saying, having the students create something that's >meaningful to them and their peers can be enormously motivating. One >of the advantages of any virtual community that supports third-party >coding, from World of Warcraft to Second Life to text-based MOOs, is >that they provide an excellent social context for computer >programming. I haven't taught python this way. But I have taught a whole lot of people how to program in LPC that was. see: http://www.genesismud.org/students/index Most of the people at Open End (our company, whom Atul has visited) all come from this background. Genesis is still thriving, if nowhere near as popular as it was in its hayday, when people queued to get on. We often talk about writing a python version. But there are never enough hours in the day. However, using pypy to make an LPC front end becomes a more attractive proposition all the time. Should we ever get around to doing that, we can move to teaching people python, which would be a lot of fun. Laura (Hazelnut on Genesis, who is rarely seen there these days). From tom.hoffman at gmail.com Sun Jul 8 21:12:35 2007 From: tom.hoffman at gmail.com (Tom Hoffman) Date: Sun, 8 Jul 2007 15:12:35 -0400 Subject: [Edu-sig] Scaffolding In-Reply-To: References: Message-ID: <92de6c880707081212p635ce107ja214f8a20d227421@mail.gmail.com> On 7/8/07, kirby urner wrote: > So I've learned a new term from ya'll: scaffolding. Of course I knew it > from the namespace of construction, but here it means a framework > or prewritten code or auxiliary aids such as diagrams. Anyone want to > elaborate? > > I see links between "scaffolding" and the concept of "immersion", already > well established in the language learning community -- human languages > that is. I think of "scaffolding" as the difference between "exploration" and "guided exploration." To flesh out the architectural analogy, it is as if the teacher builds a scaffold around empty space & provides an array of tools and materials. It is clear that the objective is to build within the space provided, and more or less direct instruction may be given on the tools provided, but within this context the students have freedom to create and explore. But in particular, an emphasis is made on making sure kids have access to the intermediate skills necessary to complete the task. How much scaffolding to do is a central issue in constructivist education. I've read studies that indicates there was a huge difference between the amount of scaffolding done in a classroom by Papert (a lot! but mostly informal), how he described the process (downplaying his role), and what happened when people tried to replicate his process without the scaffolding he provided (didn't work well). --Tom From jbloodworth at sc.rr.com Sun Jul 8 21:37:24 2007 From: jbloodworth at sc.rr.com (Jay Bloodworth) Date: Sun, 08 Jul 2007 15:37:24 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <000801c7c176$a3599fd0$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <000801c7c176$a3599fd0$0601a8c0@Gandalf> Message-ID: <1183923444.3369.89.camel@localhost.localdomain> I'm joining the discussion late; I'm going to respond on a couple of points that resonated with me, but forgive me for neglecting a few attributions. Also, I'm going to ramble a bit through some of the things I think about as a math educator. Hopefully I can make it work the trip for you to follow along. I don't teach programming. I teach math in a public school - algebra and geometry to 7th and 8th graders. While certainly there are differences, I think the core issues in teaching the style of analytical thinking are the same for programming and formal math. I've been teaching math for 8 years. I'm department head, National Board certified, my test scores are pretty good, the high school teachers generally say my students know their stuff. That being said, I honestly have no idea how to teach algebra. I'm not positive anyone does. I present the algorithms correctly. I give mnemonics, organizers, and shortcuts wherever I can. I show numerous examples, give the students plenty of practice, accurately diagnose (at least the proximate cause) and correct mistakes when students make them. Plenty of students are very successful. But some aren't, despite their and my (apparent) best efforts. In the more extreme of these cases, I tell the student and parents that he or she is simply not ready for algebra, that they can repeat the course next year and with a year of brain growth under their caps they will probably be very successful. And they almost always are. So at one level "not ready for algebra" is an entirely correct diagnosis. But then the question becomes: What's going on in the brain of the "ready" student that is different from the "not ready" student? Call that question A. Once we've answered questioned A, question B is obviously: Is there a different way to teach the "not ready" student so he/she can be successful earlier? Important question, but I don't think we have much chance of answering it until we make some progress on A, and from where I am in the trenches, I don't even see any work being done on it. Bit of an aside: The hip thing in education now is "brain research". Some consulting firm sells the school 200 copies of their book and charges us beaucoups of money for a three day inservice to tell us things like the average human brain can hold 3-10 "chunks" of data at a time; the amygdila is the part of the brain that controls attention and that we need to engage the amydilas of students if we wish to teach them; that students learn better when they're happy than when they are sad or mad. I'm quoting selectively only because my brain (amygdila and all) shuts down when I have to sit through this garbage. It's frustrating not because the notion of brain research in the service of is a bad idea, but because the brain research we need is the kind that answers question A, not the kind that tells us that students learn better if the walls are blue. Now, getting back to Andy's question. My first response to this was that as a teacher he should have had a pretty good idea of how students would do on this assignment because they should have been assessed informally on assignments like this one before. But as I thought about it before, I realized that there is a lot of room to debate what is meant by "assignments like this one". Does that mean an assignment with precisely the same logical structure but just different strings? Another "loop until" with slightly different conditions? Loops, input, and conditions separately? Or pairwise, but never all three? I constantly see example of students who are fluent with two skills individually but flail wildly when asked to compose them (e.g. they can do 2x+3x and 2/5+3/4 but not 2/5x+3/4x). Why some students fail at these composed tasks even when the interface between the modules is very clean is a big part of the answer to my "question A", and as I've said I don't think we're very far along in terms of answering it. As a practical matter, Andy, I think my answer to your question is that you need to give your students a lot more practice that is a lot more similar to what you plan to assess them on than your gut tells you you need. Whew. Sorry for the brain dump. My thought were a lot more focused in my head. The upshot is I don't think there is an easy answer. Programming computers is easy. Programming brains to program (or to combine like terms, or to solve systems, or whatever) is hard, particularly since a good portion of the brains at large seem to implement the algorithms according to different semantics than than the ones we intend. Hopefully one day we can reverse engineer these brains enough that we can program them effectively as well. Jay From lac at openend.se Sun Jul 8 21:50:22 2007 From: lac at openend.se (Laura Creighton) Date: Sun, 08 Jul 2007 21:50:22 +0200 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: Message from Jay Bloodworth of "Sun, 08 Jul 2007 15:37:24 EDT." <1183923444.3369.89.camel@localhost.localdomain> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <000801c7c176$a3599fd0$0601a8c0@Gandalf> <1183923444.3369.89.camel@localhost.localdomain> Message-ID: <200707081950.l68JoMXj013388@theraft.openend.se> There is a small fraction of students I get who cannot learn algebra, ever, no matter what I or anybody else does. I don't know why that is. But there is a larger number which I could not teach algebra until after I had taught them geometry. So we fixed things by requiring them to take geometry before algebra. Now you have got me wondering if the difference wasn't the geometry, but simply that they were one year older, which has never occurred to me before. (So thank you.) Do you have many students who are good at geometry and still rotten at algebra? Also what do they say when you ask them 'what don't you understand here?' thanks very much, Laura From heistooheavy at yahoo.com Sun Jul 8 22:08:08 2007 From: heistooheavy at yahoo.com (Richard Guenther) Date: Sun, 8 Jul 2007 13:08:08 -0700 (PDT) Subject: [Edu-sig] Scaffolding Message-ID: <712369.92635.qm@web63309.mail.re1.yahoo.com> Looking back, I was the one who used "scaffolding" first in this thread--so I apologize for that :-). To give a simple example of how I would use what I consider to be scaffolding, consider this real-life example from my teaching the IMP math curriculum: When in the "Solve It" unit, some of the problems quicly go from this problem: 1) 7t-5=10t+8-4t to this one: 2) 6(x-2)=4(x+3)-32 (p.70 IMP Year Two). Now I'm pretty entrenched in the constructivist approach, but when people have studied my teaching style, they have pointed out how much "scaffolding" I do. That was the first time I heard the term, so I went and looked it up. For me, though, it's basically seeing that students may not be able to make the leap in front of them, but they can make smaller leaps leading up to that. Thus, I may put a problem like this one between #1 and #2 above: 1.5) 8(x-4)=64 That way, I'm able to tell if they even understand that distribution withough having two cases of distribution and some simplifying coming at them all at once. This may sound like "dumbing it down", but somehow I have to know where and why students are tripping up. Your term "guided exploration" seems right to me. Richard ----- Original Message ---- From: Tom Hoffman To: kirby urner Cc: "edu-sig at python.org" Sent: Sunday, July 8, 2007 1:12:35 PM Subject: Re: [Edu-sig] Scaffolding On 7/8/07, kirby urner wrote: > So I've learned a new term from ya'll: scaffolding. Of course I knew it > from the namespace of construction, but here it means a framework > or prewritten code or auxiliary aids such as diagrams. Anyone want to > elaborate? > > I see links between "scaffolding" and the concept of "immersion", already > well established in the language learning community -- human languages > that is. I think of "scaffolding" as the difference between "exploration" and "guided exploration." To flesh out the architectural analogy, it is as if the teacher builds a scaffold around empty space & provides an array of tools and materials. It is clear that the objective is to build within the space provided, and more or less direct instruction may be given on the tools provided, but within this context the students have freedom to create and explore. But in particular, an emphasis is made on making sure kids have access to the intermediate skills necessary to complete the task. How much scaffolding to do is a central issue in constructivist education. I've read studies that indicates there was a huge difference between the amount of scaffolding done in a classroom by Papert (a lot! but mostly informal), how he described the process (downplaying his role), and what happened when people tried to replicate his process without the scaffolding he provided (didn't work well). --Tom _______________________________________________ Edu-sig mailing list Edu-sig at python.org http://mail.python.org/mailman/listinfo/edu-sig ____________________________________________________________________________________ Park yourself in front of a world of choices in alternative vehicles. Visit the Yahoo! Auto Green Center. http://autos.yahoo.com/green_center/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070708/ffde1524/attachment-0001.html From heistooheavy at yahoo.com Sun Jul 8 22:34:05 2007 From: heistooheavy at yahoo.com (Richard Guenther) Date: Sun, 8 Jul 2007 13:34:05 -0700 (PDT) Subject: [Edu-sig] a non-rhetorical question Message-ID: <456515.75444.qm@web63305.mail.re1.yahoo.com> Jay, 1. I agree the core issues in teaching programming and teaching formal math are the same core issues. 2. I'm glad you admit, as I do, that you're not really sure how kids learn algebra. Certainly we could teach the same way teachers have for the last 50 years and we would get the same results: some get it and most don't. Teaching in public education in the US now, though, we are pushed constantly to ensure that all students get it. I'm a pretty successful teacher at a challenging school. Why am I successful? I'm not sure. I have pretty good report with students and I'm by nature always wanting to learn more in life. I think that gets me as far as any specific techniques I've tried through the years. 3. I had to laugh when I read what you wrote about educational consulting firms. They drive me nuts! The latest one my district paid beaucoup money for had to do with "tactile organization", so now teachers all over here are making sure they have their students folding bright colored paper into "magic books" to try to bring those test scores up! 4. Finally, I think your point about kids taking a year of "brain growth "and trying again is a good one. We call that a "circular curriculum" in IMP math. Often if you just move on, even though you feel some of your students are not getting it, when you next come back to that topic you find that more of them have mysteriously become more capable at that skill. This happens a lot in math and I think the same happens in learning programming. Kind of like how Ron Stephens, on the Python 411 Podcasts described his learning of Python by jumping from one tutorial to the next and seeing the same topic in several different ways and finally "getting it". Richard ----- Original Message ---- From: Jay Bloodworth To: edu-sig at python.org Sent: Sunday, July 8, 2007 1:37:24 PM Subject: Re: [Edu-sig] a non-rhetorical question I'm joining the discussion late; I'm going to respond on a couple of points that resonated with me, but forgive me for neglecting a few attributions. Also, I'm going to ramble a bit through some of the things I think about as a math educator. Hopefully I can make it work the trip for you to follow along. I don't teach programming. I teach math in a public school - algebra and geometry to 7th and 8th graders. While certainly there are differences, I think the core issues in teaching the style of analytical thinking are the same for programming and formal math. I've been teaching math for 8 years. I'm department head, National Board certified, my test scores are pretty good, the high school teachers generally say my students know their stuff. That being said, I honestly have no idea how to teach algebra. I'm not positive anyone does. I present the algorithms correctly. I give mnemonics, organizers, and shortcuts wherever I can. I show numerous examples, give the students plenty of practice, accurately diagnose (at least the proximate cause) and correct mistakes when students make them. Plenty of students are very successful. But some aren't, despite their and my (apparent) best efforts. In the more extreme of these cases, I tell the student and parents that he or she is simply not ready for algebra, that they can repeat the course next year and with a year of brain growth under their caps they will probably be very successful. And they almost always are. So at one level "not ready for algebra" is an entirely correct diagnosis. But then the question becomes: What's going on in the brain of the "ready" student that is different from the "not ready" student? Call that question A. Once we've answered questioned A, question B is obviously: Is there a different way to teach the "not ready" student so he/she can be successful earlier? Important question, but I don't think we have much chance of answering it until we make some progress on A, and from where I am in the trenches, I don't even see any work being done on it. Bit of an aside: The hip thing in education now is "brain research". Some consulting firm sells the school 200 copies of their book and charges us beaucoups of money for a three day inservice to tell us things like the average human brain can hold 3-10 "chunks" of data at a time; the amygdila is the part of the brain that controls attention and that we need to engage the amydilas of students if we wish to teach them; that students learn better when they're happy than when they are sad or mad. I'm quoting selectively only because my brain (amygdila and all) shuts down when I have to sit through this garbage. It's frustrating not because the notion of brain research in the service of is a bad idea, but because the brain research we need is the kind that answers question A, not the kind that tells us that students learn better if the walls are blue. Now, getting back to Andy's question. My first response to this was that as a teacher he should have had a pretty good idea of how students would do on this assignment because they should have been assessed informally on assignments like this one before. But as I thought about it before, I realized that there is a lot of room to debate what is meant by "assignments like this one". Does that mean an assignment with precisely the same logical structure but just different strings? Another "loop until" with slightly different conditions? Loops, input, and conditions separately? Or pairwise, but never all three? I constantly see example of students who are fluent with two skills individually but flail wildly when asked to compose them (e.g. they can do 2x+3x and 2/5+3/4 but not 2/5x+3/4x). Why some students fail at these composed tasks even when the interface between the modules is very clean is a big part of the answer to my "question A", and as I've said I don't think we're very far along in terms of answering it. As a practical matter, Andy, I think my answer to your question is that you need to give your students a lot more practice that is a lot more similar to what you plan to assess them on than your gut tells you you need. Whew. Sorry for the brain dump. My thought were a lot more focused in my head. The upshot is I don't think there is an easy answer. Programming computers is easy. Programming brains to program (or to combine like terms, or to solve systems, or whatever) is hard, particularly since a good portion of the brains at large seem to implement the algorithms according to different semantics than than the ones we intend. Hopefully one day we can reverse engineer these brains enough that we can program them effectively as well. Jay _______________________________________________ Edu-sig mailing list Edu-sig at python.org http://mail.python.org/mailman/listinfo/edu-sig ____________________________________________________________________________________ Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070708/a05c6fc3/attachment.htm From jbloodworth at sc.rr.com Sun Jul 8 22:35:17 2007 From: jbloodworth at sc.rr.com (Jay Bloodworth) Date: Sun, 08 Jul 2007 16:35:17 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <200707081946.l68Jknuj012600@theraft.openend.se> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <000801c7c176$a3599fd0$0601a8c0@Gandalf> <1183923444.3369.89.camel@localhost.localdomain> <200707081946.l68Jknuj012600@theraft.openend.se> Message-ID: <1183926917.3369.137.camel@localhost.localdomain> On Sun, 2007-07-08 at 21:46 +0200, Laura Creighton wrote: > > Do you have many students who are good at geometry and still rotten > at algebra? Also what do they say when you ask them 'what don't > you understand here?' I wouldn't say rotten, but it's not unusual to have students who do significantly better in geometry than algebra. Again, it could just be a year of brain maturity that makes that so. "What don't you understand?" Usually if a kid can answer that they don't have a problem: Ex: 2x + 3y + 5x = 7x + 3y Kid 1: "Why don't you understand?" "Where did the 7x come from?" "From combining like terms. I added 2x and 5x." "What are like terms?" "Terms with the same variables to the same powers. 2x and 5x both have x to the first power and no other variables." versus Kid 2: "Why don't you understand?" "I just don't get it." Not a great example, because most students can do a little better with like terms than Kid 2. But the point is that the "don't get it" kids I'm talking about can't really tell you what they don't get. They see a string of symbols on line one and another on line two and claim to see no connection between them. And though I can often ask a series of questions to determine what they don't get and to explain it - "Do you see where the 3y comes from? Good. How about the 7x? Okay, do you see the 2x and 5x? etc." - they'll still say they don't get it. That was probably a longer yet less complete answer than you were looking for. Nonetheless, I hope it helps. Jay From winstonw at stratolab.com Sun Jul 8 21:12:47 2007 From: winstonw at stratolab.com (Winston Wolff) Date: Sun, 8 Jul 2007 15:12:47 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <361b27370707080829t3d5e4d88ia9f9e1dea5186b7a@mail.gmail.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <200707081033.l68AX7Oo016828@theraft.openend.se> <361b27370707080829t3d5e4d88ia9f9e1dea5186b7a@mail.gmail.com> Message-ID: <51963F41-6E43-4520-8CE1-8259B616CC6C@stratolab.com> I have thought a lot about this. I teach kids (aged 10-14 mostly) to write video games using Scratch and Python. They love it, but I'd like to promote more community and make the classes a little more "game like". I've been thinking about old programming games like Core Wars and Robot Wars and would like to make some newer version like that. Networked game play is an obvious improvement. An easier learning curve is important too. I made a little prototype where students could write code to control a robot in a field of robots that would show up on the projector. But the paradigm shift of programming simple graphics to an event-based search and attach program was too confusing for them. I think a Scratch type programming interface though would help things along beautifully. Of course I'd like to have a lower level Python interface too. -Winston ------------------------------------------------------------------------ -- Stratolab - video game courses for kids in new york - http:// stratolab.com On Jul 8, 2007, at 11:29 AM, Atul Varma wrote: > Has anyone ever explored the idea of using a collaborative virtual > community for teaching programming? I'm thinking about something > along the lines of Amy Bruckman's MOOSE Crossing: > > http://www.cc.gatech.edu/elc/moose-crossing/ > http://www.cc.gatech.edu/~asb/thesis/ > > As Laura was saying, having the students create something that's > meaningful to them and their peers can be enormously motivating. One > of the advantages of any virtual community that supports third-party > coding, from World of Warcraft to Second Life to text-based MOOs, is > that they provide an excellent social context for computer > programming. > > What if, for instance, rather than creating an isolated program that > repeatedly asks questions about who the most attractive teacher is--a > program that no one would ostensibly use--the goal was to create a > simple robot in a text-based virtual world that anyone else could > interact with? Or a virtual dog that would eat people's virtual > homework, or a hot potato that exploded after 5 minutes and covered > its holder in goo? From kirby.urner at gmail.com Sun Jul 8 22:55:25 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 8 Jul 2007 23:55:25 +0300 Subject: [Edu-sig] Scaffolding In-Reply-To: <92de6c880707081212p635ce107ja214f8a20d227421@mail.gmail.com> References: <92de6c880707081212p635ce107ja214f8a20d227421@mail.gmail.com> Message-ID: On 7/8/07, Tom Hoffman wrote: > How much scaffolding to do is a central issue in constructivist > education. I've read studies that indicates there was a huge > difference between the amount of scaffolding done in a classroom by > Papert (a lot! but mostly informal), how he described the process > (downplaying his role), and what happened when people tried to > replicate his process without the scaffolding he provided (didn't work > well). > > --Tom Interesting. Didn't know that re Papert's teaching. I should be honest that I use a lot of scaffolding in my classes -- especially given you're sitting 8 feet from me and I couldn't look you in the eye if I didn't tell it like it is. Kirby From kirby.urner at gmail.com Sun Jul 8 23:13:25 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 9 Jul 2007 00:13:25 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <000801c7c176$a3599fd0$0601a8c0@Gandalf> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <000801c7c176$a3599fd0$0601a8c0@Gandalf> Message-ID: On 7/8/07, Andy Judkis wrote: > > Your circumstances are somewhat different but I don't feel like "your stuff > doesn't count". It would be extremely interesting to hear how your kids > approach the test question I presented that started this thing. You wanna > pose it to them and see what happens? > The question being who's the best teacher, you or that other person? ;-D I'm realizing my approach is to use a lot of scaffolding. That version of the Q&A I posted earlier in this thread, using assert/except, might figure in upcoming courses, with the challenges I mentioned. Showing multiple solutions to the same challenge, in advance of asking students to role their own, has a lot of appeal. I welcome this thread for having stimulated more than the usual number of brain cells (8? 10?). It was my good fortune to hobnob with Guido for a couple hours this evening, in this hotel lobby in Vilnius (where I am still to this late hour, jet lag be damned, chatting with my fellow geeks -- learning a lot). Hey thanks Guido, for being such a Benevolent DFL. And my thanks to Aiste, Laura et al, for putting your talents to good use in creating this Europython. Y'all're awesome. http://mybizmo.blogspot.com/2007/07/europython-hqs.html Kirby From krstic at solarsail.hcs.harvard.edu Mon Jul 9 11:34:44 2007 From: krstic at solarsail.hcs.harvard.edu (=?UTF-8?Q?Ivan_Krsti=C4=87?=) Date: Mon, 9 Jul 2007 05:34:44 -0400 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <51963F41-6E43-4520-8CE1-8259B616CC6C@stratolab.com> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <200707081033.l68AX7Oo016828@theraft.openend.se> <361b27370707080829t3d5e4d88ia9f9e1dea5186b7a@mail.gmail.com> <51963F41-6E43-4520-8CE1-8259B616CC6C@stratolab.com> Message-ID: <2837BBA5-F831-4820-A8D9-0CB74BD1115F@solarsail.hcs.harvard.edu> On Jul 8, 2007, at 3:12 PM, Winston Wolff wrote: > I've been thinking about old programming games like > Core Wars and Robot Wars and would like to make some newer version > like that. I've been encouraging this from the OLPC angle, since games like these would work very well in our mesh environment. I got my eight-graders some years ago hooked on Cybugs (now called AI Wars, http://www.tacticalneuronics.com/content/aiw3dnew.asp) before teaching "real" programming in BASIC. By the time we got to BASIC, many concepts were familiar because the kids had looked at dozens of Cybugs they could find online and that they made among themselves. They were quite competitive about the whole thing, which drove their curiosity, which in turn got them looking at hundreds and hundreds of lines of code printouts -- in their own time, and of their own volition. I have yet to find another approach to teaching programming that manages to do the same :) Cheers, -- Ivan Krsti? | http://radian.org From aharrin at luc.edu Mon Jul 9 20:55:26 2007 From: aharrin at luc.edu (Andrew Harrington) Date: Mon, 09 Jul 2007 13:55:26 -0500 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <1183926917.3369.137.camel@localhost.localdomain> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <000801c7c176$a3599fd0$0601a8c0@Gandalf> <1183923444.3369.89.camel@localhost.localdomain> <200707081946.l68Jknuj012600@theraft.openend.se> <1183926917.3369.137.camel@localhost.localdomain> Message-ID: <4692849E.9060609@luc.edu> On the algebra/geometry questions: As a longtime math professor in a past life, it is my observation of students going forward from high school, and of students long ago when I was in high school myself, and tutored a lot of peers, that there are several effects in the algebra/geometry discussion. It seems to me that there are many students who process visual and spatial information very well, who just 'get' geometry, and may have a very hard time with the pure symbol manipulation in algebra. Of course constructing a geometric proof does involve getting into symbolism, and some who learn to get motivation for that from the spatial images in geometry, then have an easier time with algebra. I have no hard data, but only a great deal of examples. I also hypothesize that some students who are capable of learning symbol manipulation, but need practice, do well getting that experience in algebra, and then are less overwhelmed taking geometry later by the added requirement to have spatial intuition. As to the natural order of brain maturation for processing symbols vs spatial relationships, I leave that to others. Andy Harrington Jay Bloodworth wrote: > On Sun, 2007-07-08 at 21:46 +0200, Laura Creighton wrote: > >> Do you have many students who are good at geometry and still rotten >> at algebra? Also what do they say when you ask them 'what don't >> you understand here?' >> > > > I wouldn't say rotten, but it's not unusual to have students who do > significantly better in geometry than algebra. Again, it could just be > a year of brain maturity that makes that so. > > "What don't you understand?" Usually if a kid can answer that they > don't have a problem: > > Ex: 2x + 3y + 5x = 7x + 3y > > Kid 1: > "Why don't you understand?" > "Where did the 7x come from?" > "From combining like terms. I added 2x and 5x." > "What are like terms?" > "Terms with the same variables to the same powers. 2x and 5x both have > x to the first power and no other variables." > > versus > > Kid 2: > "Why don't you understand?" > "I just don't get it." > > Not a great example, because most students can do a little better with > like terms than Kid 2. But the point is that the "don't get it" kids > I'm talking about can't really tell you what they don't get. They see a > string of symbols on line one and another on line two and claim to see > no connection between them. And though I can often ask a series of > questions to determine what they don't get and to explain it - "Do you > see where the 3y comes from? Good. How about the 7x? Okay, do you see > the 2x and 5x? etc." - they'll still say they don't get it. > > That was probably a longer yet less complete answer than you were > looking for. Nonetheless, I hope it helps. > > Jay > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Andrew N. Harrington Computer Science Department Director of Academic Programs Loyola University Chicago http://www.cs.luc.edu/~anh 512B Lewis Towers (office) Phone: 312-915-7999 Snail mail to Lewis Towers 416 Fax: 312-915-7998 820 North Michigan Avenue gdp at cs.luc.edu for graduate admin Chicago, Illinois 60611 upd at cs.luc.edu for undergrad admin aharrin at luc.edu as professor From kirby.urner at gmail.com Tue Jul 10 00:22:33 2007 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 10 Jul 2007 01:22:33 +0300 Subject: [Edu-sig] a non-rhetorical question In-Reply-To: <4692849E.9060609@luc.edu> References: <004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf> <000801c7c176$a3599fd0$0601a8c0@Gandalf> <1183923444.3369.89.camel@localhost.localdomain> <200707081946.l68Jknuj012600@theraft.openend.se> <1183926917.3369.137.camel@localhost.localdomain> <4692849E.9060609@luc.edu> Message-ID: On 7/9/07, Andrew Harrington wrote: <> > I also hypothesize that some students who are capable of learning symbol > manipulation, but need practice, do well getting that experience in > algebra, and then are less overwhelmed taking geometry later by the > added requirement to have spatial intuition. > > As to the natural order of brain maturation for processing symbols vs > spatial relationships, I leave that to others. > > Andy Harrington Yes indeed. And I think many of us are making the point that students develop differently, such that they might use their strengths to address their weaknesses (with guidance from a teacher/mentor should they be lucky enough to have one). Lexical: algebra, computer programming, models, controllers Graphical: geometry, (interactive) views of models Going back and forth between the two, seeing how intensively lexical expressions, of polyhedra in terms of edge-connected vectors say, relate to purely geometric views of same (in a ray tracer, game engine or VRML viewer), is a way to help the brain mature I'd say. We're connecting the dots across the lexical and the graphical, building a bridge strongly anchored on both sides. This was a major theme in my presentation at Europython in Lithuania yesterday: http://controlroom.blogspot.com/2007/07/connecting-dots.html Kirby From andre.roberge at gmail.com Tue Jul 10 01:35:48 2007 From: andre.roberge at gmail.com (Andre Roberge) Date: Mon, 9 Jul 2007 20:35:48 -0300 Subject: [Edu-sig] New release: Crunchy 0.9 Message-ID: <7528bcdd0707091635x29762cb5s4a323bbfd864ffed@mail.gmail.com> Crunchy 0.9 has been released. It is available at http://code.google.com/p/crunchy What is Crunchy? Crunchy is a an application that transforms html Python tutorials into interactive session viewed within a browser. We are not aware of any other application (in any language) similar to Crunchy. Currently Crunchy has only been fully tested with Firefox; we know that some browsers simply don't work with it. Crunchy should work with all operating systems - it has been tested fairly extensively on Linux, Windows and Mac OS. What is new in this release? Crunchy has been rewritten from scratch from the previous version (0.8.2), to use a custom plugin architecture. This makes easier to extend and add new functionality. Rather than list the differences with the old release, it is easier to list the essential features of this new version. 1. Crunchy can work best with specially marked-up html tutorials. However, it can now work with any html tutorials - including the official Python tutorial on the python.org site. Html pages can be loaded locally or remotely from anywhere on the Internet. Crunchy uses a combination of Elementtree and BeautifulSoup to process html pages. Non W3C-compliant pages can be handled, but the visual appearance is not guaranteed to reproduce that normally seen using a browser. 2. Crunchy can insert a number of Python interpreters inside a web page. In the default mode, it does that whenever it encounters an html
 element which is assumed to contain some Python code.
These interpreters can either share a common environment (e.g. modules
imported in one of them are known in the other) or be isolated one
from another.

3. Crunchy adds automatic css styling to the Python code -  you can
look at the official Python tutorial using your browser (all Python
code in blue) and compare with what Crunchy displays to give you a
good idea.

4. Instead of inserting an interpreter, Crunchy can insert a code
editor that can be used to modify the Python code on the page and
execute it.  The editor can be toggled to become a fairly decent
syntax aware editor that can save and load files.

5. Crunchy has a "doctest" feature where the code inside the 
 is
taken to be the result
of an interpreter session and the user has to write the code so as to
make the interpreter session valid; this is useful in a teaching
environment. Messages from the Crunchy's doctest are "friendlier" for
Python beginners than the usual tracebacks.

6. Crunchy has a small graphics library that can be imported, either
inside an editor or an interpreter, to produce simple graphics (even
animations!) inside the browser.

7. For the user that needs better quality graphics, Crunchy supports
programs (such as matplotlib) that can create image files; by
executing the code, the image produced is loaded inside the browser
window.  In this capacity, Crunchy could be used as a front end for
libraries such as matplotlib.

8. Crunchy supports code execution of files as separate processes,
making it suitable to launch gui based application from the browser
window.

9. Crunchy's interpreter has an interactive "help" feature like many
python-aware IDEs.

10. Crunchy includes a fairly comprehensive tutorial on its own use,
as well as a reference for tutorial writers that want to make their
tutorials "crunchy-friendlier".

11. As a security feature, crunchy strips all pre-existing javascript
code from an html page before displaying it inside the browser window.

Bug reports, comments and suggestions are always welcome.

Andr? Roberge, for the Crunchy team.

From jbloodworth at sc.rr.com  Tue Jul 10 15:20:15 2007
From: jbloodworth at sc.rr.com (Jay Bloodworth)
Date: Tue, 10 Jul 2007 09:20:15 -0400
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: 
References: 
	<004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu>
	<003901c7c115$0d69f3f0$0601a8c0@Gandalf>
	
	<000801c7c176$a3599fd0$0601a8c0@Gandalf>
	<1183923444.3369.89.camel@localhost.localdomain>
	<200707081946.l68Jknuj012600@theraft.openend.se>
	<1183926917.3369.137.camel@localhost.localdomain>
	<4692849E.9060609@luc.edu>
	
Message-ID: <1184073615.3307.64.camel@localhost.localdomain>

On Tue, 2007-07-10 at 01:22 +0300, kirby urner wrote:

> 
> Yes indeed.  And I think many of us are making the point that
> students develop differently, such that they might use their
> strengths to address their weaknesses (with guidance from a
> teacher/mentor should they be lucky enough to have one).
> 

I agree with what you're saying in principle.  I'm just not sure that
talents in one area are always infinitely marshalable to the service of
other tasks.  For example, I'm good at math but suck at basketball.  But
I doubt that even the genetically engineered lovechild of Jaime
Escalante and Phil Jackson could turn my mathematics talent into success
on the basketball court to any significant extent.

So maybe basketball and math is too big a gap to bridge.  But surely
algebra and geometry is doable, right?  Certainly, there are numberless
fascinating connections that might be productively studied in either
course.  I'm just not sure that geometric models are likely to help with
the difficulties struggling students often have.  Two examples:

* It's like pulling teeth to get students to respect order of operations
and remember consistently that -3^2 = -9.  Where's the geometric model
for that?

* (a + b)^2 = a^2 + 2ab + b^2, not a^2 + b^2.  Here there is the
standard geometric area model for multiplication.  Sometimes I present
multiplication with the model, sometimes not.  It doesn't seem to change
the error rate.

There are certainly many beautiful connections among the branches of
math and computer science, and I agree that mathematics curricula should
include some of them.  I'm just skeptical that these connections are the
golden door to learning formal math.  Information and computational
theory teaches us that data and algorithms have a certain irreducible
complexity.  If your Turing machine doesn't have enough states or enough
tape, there are things it just can't do.  I don't think in undamaged
human brains difficulties in learning algebra can be traced to such
gross level deficiencies in computational power, but I do think computer
science may have something to say here.  Not every Turing machine is a
universal Turing machine.  If your algebra machine is working, I believe
it's doubtful your geometry machine will work in the pinch.

Kirby, I have skimmingly followed your work the past couple of years,
and I don't mean for any of this to be a criticism of what you're doing
in particular, just the general notion that models and applications are
the answer to everything in education.

Jay


From clare at girlstart.org  Tue Jul 10 18:35:31 2007
From: clare at girlstart.org (Clare Richardson)
Date: Tue, 10 Jul 2007 11:35:31 -0500
Subject: [Edu-sig] Looking for Python curriculum developer to help us!
Message-ID: <2768575AE4BD2740AFC4798322F0C1B0C213EF@pandora.girlstart.org>

Hello all,
I recently joined this list, and I'm very excited to be a part of such a
great resource.  I'm working on a high school program at Girlstart to
prepare and encourage girls for technical majors and careers.  Girlstart
is a non-profit in Austin, TX, committed to engaging girls in math,
science, and technology.  Next school year, we will introduce our high
school girls to programming through creating educational games and
activities with Python and Pygame.  I will definitely be pinging this
list for advice in the future!

Girlstart is looking to contract out a curriculum developer position for
July and August to work on Python/Pygame lessons for our high school
program, Project IT Girl.  See the job ad below.  Applicants need not be
in the Austin area.

Thanks!
Clare Richardson
Technology and Program Coordinator
Girlstart
www.girlstart.org

-----------------------------------------------------------------------

Wanted: Contract Curriculum Developer to create lessons for Girlstart's
Project IT Girl program to introduce high school girls to programming
through Python and Pygame. Ideal candidate must have a strong background
in computer science and programming, and the ability to explain
programming concepts to novices in innovative and exciting ways. Ability
to adhere to a tight timeline is a must. For a full job description go
http://www.girlstart.org/jobs.asp. To apply, please submit a cover
letter, references, resume, and hourly rates to Zakiyyah at
Zakiyyah at girlstart.org. No Phone Calls.

From heistooheavy at yahoo.com  Tue Jul 10 19:22:44 2007
From: heistooheavy at yahoo.com (Richard Guenther)
Date: Tue, 10 Jul 2007 10:22:44 -0700 (PDT)
Subject: [Edu-sig] a non-rhetorical question
Message-ID: <100070.21436.qm@web63306.mail.re1.yahoo.com>

One thing that always comes up when our math department discusses non-standard algorithms is long division of polynomials.  Doesn't seem like any non-standard algorithm is easily applied there.

Changing the focus a little: I've been thinking of the importance of student motivation in learning a programming language.  I've always found The Python Challenge to be quite motivating to get me writing code and learning more about Python.  I don't know how it could be done, but could a similar approach be used to supplement a middle or high school programming class?  Any ideas?

Richard

----- Original Message ----
From: Jay Bloodworth 
....

* (a + b)^2 = a^2 + 2ab + b^2, not a^2 + b^2.  Here there is the
standard geometric area model for multiplication.  Sometimes I present
multiplication with the model, sometimes not.  It doesn't seem to change
the error rate.....








       
____________________________________________________________________________________
Choose the right car based on your needs.  Check out Yahoo! Autos new Car Finder tool.
http://autos.yahoo.com/carfinder/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070710/1094348e/attachment.html 

From kirby.urner at gmail.com  Wed Jul 11 13:37:23 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 11 Jul 2007 14:37:23 +0300
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: <100070.21436.qm@web63306.mail.re1.yahoo.com>
References: <100070.21436.qm@web63306.mail.re1.yahoo.com>
Message-ID: 

Check this out!

http://codegolf.com/polynomial-division

Kirby


On 7/10/07, Richard Guenther  wrote:
>
> One thing that always comes up when our math department discusses
> non-standard algorithms is long division of polynomials.  Doesn't seem like
> any non-standard algorithm is easily applied there.
>
> Changing the focus a little: I've been thinking of the importance of student
> motivation in learning a programming language.  I've always found The Python
> Challenge to be quite motivating to get me writing code and learning more
> about Python.  I don't know how it could be done, but could a similar
> approach be used to supplement a middle or high school programming class?
> Any ideas?
>
> Richard
>
> ----- Original Message ----
> From: Jay Bloodworth 
> ....
>
> * (a + b)^2 = a^2 + 2ab + b^2, not a^2 + b^2.  Here there is the
> standard geometric area model for multiplication.  Sometimes I present
> multiplication with the model, sometimes not.  It doesn't seem to change
> the error rate.....
>
>
>
>  ________________________________
> Get the Yahoo! toolbar and be alerted to new email wherever you're surfing.

From driscollkevin at gmail.com  Wed Jul 11 19:04:59 2007
From: driscollkevin at gmail.com (Kevin Driscoll)
Date: Wed, 11 Jul 2007 13:04:59 -0400
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: <7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com>
References: 
	<004e01c7bf56$a8210f20$0601a8c0@Gandalf>
	<468D8264.6020203@canterburyschool.org>
	<006201c7bff4$ecef9c40$0601a8c0@Gandalf>
	<92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com>
	<468E8866.80904@canterburyschool.org>
	<7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com>
Message-ID: <87a8578e0707111004p7c44ca7chbf851b5dd3aba247@mail.gmail.com>

On 7/6/07, Andre Roberge  wrote:
> But, this is straying far from the original question.  These are kids
> that have had a few weeks of instruction (with probably less than 6
> hour of class time per week).  What can be reasonably expected of
> them?


High school CS teacher (at least until very recently) here!

Of course, it's impossible to speculate the progress a student should
make in 6 hours of class time but it is interesting to consider the
vast number of approaches to teaching those first 6 hours of
programming that are developing.

Three years ago, I was definitely on the lexical path and would have
expected students to be able to answer Andy's question after a couple
class meetings.  However, in my most recent course, I used PyGame and
exposed students to object-oriented data structures first and logic /
algorithms second.

This was a sweeping change from early courses in which we talked a
little about "variables", then looked at operators and control
structures, before returning to more complex data structures.

Especially for the student with weaknesses (or simply a lack of
confidence) in mathematics, building meaningful data structures was be
a great way to make them feel successful in those first few class
meetings.

And, finally, to reinforce this point: it is my experience that if
students taste success early in a new subject, they are far more
willing to take on challenging work down the line.

Great thread so far!  Thanks, everyone!

Kevin


-- 
http://kevindriscoll.info/

From heistooheavy at yahoo.com  Wed Jul 11 20:45:04 2007
From: heistooheavy at yahoo.com (Richard Guenther)
Date: Wed, 11 Jul 2007 11:45:04 -0700 (PDT)
Subject: [Edu-sig] a non-rhetorical question
Message-ID: <394729.66862.qm@web63306.mail.re1.yahoo.com>

Thanks Kirby, what a link!  I think taking on a project like that with a group of my brightest students would be a great alternative to going through a more traditional curriculum.  I have the luxury of working with a club of voluntary membership, so I don't have to "play" by the traditional rules.

Guiding them through an extended activity like that would be great for having them think through 1) "what do we need to do next?", and 2) "how can we get Python to do that for us?"

Richard

----- Original Message ----
From: kirby urner 
To: Richard Guenther 
Cc: Jay Bloodworth ; "edu-sig at python.org" 
Sent: Wednesday, July 11, 2007 5:37:23 AM
Subject: Re: [Edu-sig] a non-rhetorical question

Check this out!

http://codegolf.com/polynomial-division

Kirby


On 7/10/07, Richard Guenther  wrote:
>
> One thing that always comes up when our math department discusses
> non-standard algorithms is long division of polynomials.  Doesn't seem like
> any non-standard algorithm is easily applied there.
>
> Changing the focus a little: I've been thinking of the importance of student
> motivation in learning a programming language.  I've always found The Python
> Challenge to be quite motivating to get me writing code and learning more
> about Python.  I don't know how it could be done, but could a similar
> approach be used to supplement a middle or high school programming class?
> Any ideas?
>
> Richard
>
> ----- Original Message ----
> From: Jay Bloodworth 
> ....
>
> * (a + b)^2 = a^2 + 2ab + b^2, not a^2 + b^2.  Here there is the
> standard geometric area model for multiplication.  Sometimes I present
> multiplication with the model, sometimes not.  It doesn't seem to change
> the error rate.....
>
>
>
>  ________________________________
> Get the Yahoo! toolbar and be alerted to new email wherever you're surfing.







       
____________________________________________________________________________________
Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out.
http://answers.yahoo.com/dir/?link=list&sid=396545469
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070711/d0f9c154/attachment.htm 

From kirby.urner at gmail.com  Thu Jul 12 05:49:33 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 12 Jul 2007 06:49:33 +0300
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: <87a8578e0707111004p7c44ca7chbf851b5dd3aba247@mail.gmail.com>
References: 
	<004e01c7bf56$a8210f20$0601a8c0@Gandalf>
	<468D8264.6020203@canterburyschool.org>
	<006201c7bff4$ecef9c40$0601a8c0@Gandalf>
	<92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com>
	<468E8866.80904@canterburyschool.org>
	<7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com>
	<87a8578e0707111004p7c44ca7chbf851b5dd3aba247@mail.gmail.com>
Message-ID: 

On 7/11/07, Kevin Driscoll  wrote:

> Three years ago, I was definitely on the lexical path and would have
> expected students to be able to answer Andy's question after a couple
> class meetings.  However, in my most recent course, I used PyGame and
> exposed students to object-oriented data structures first and logic /
> algorithms second.

Hi Kevin --

You latter approach sounds more similar to mine.

On the subject of data structures, I also recommend providing them
with some large pre-populated ones to play with i.e. already filled with
substantial "real world" content.

One might think it makes no difference just going {'foo':'bar'} all
the time i.e. using little "meaningless" constructs so we can just
study the object's API.

But especially for newbies we're trying to recruit for the longer haul,
I think it adds another dimension to get to play with something like this:

cities = {
 'Albany, N.Y.': [(42, 40, 'N'), (73, 45, 'W')],
 'Albuquerque, N.M.': [(35, 5, 'N'), (106, 39, 'W')],
 'Amarillo, Tex.': [(35, 11, 'N'), (101, 50, 'W')],
 'Anchorage, Alaska': [(61, 13, 'N'), (149, 54, 'W')],
 'Atlanta, Ga.': [(33, 45, 'N'), (84, 23, 'W')],
 'Austin, Tex.': [(30, 16, 'N'), (97, 44, 'W')],
 'Baker, Ore.': [(44, 47, 'N'), (117, 50, 'W')],
 'Baltimore, Md.': [(39, 18, 'N'), (76, 38, 'W')],
 'Bangor, Maine': [(44, 48, 'N'), (68, 47, 'W')],
 'Birmingham, Ala.': [(33, 30, 'N'), (86, 50, 'W')],
 'Bismarck, N.D.': [(46, 48, 'N'), (100, 47, 'W')],
 'Boise, Idaho': [(43, 36, 'N'), (116, 13, 'W')],
 'Boston, Mass.': [(42, 21, 'N'), (71, 5, 'W')],
 'Buffalo, N.Y.': [(42, 55, 'N'), (78, 50, 'W')],
 'Calgary, Alba., Can.': [(51, 1, 'N'), (114, 1, 'W')],
 'Carlsbad, N.M.': [(32, 26, 'N'), (104, 15, 'W')],
 'Charleston, S.C.': [(32, 47, 'N'), (79, 56, 'W')],
 'Charleston, W. Va.': [(38, 21, 'N'), (81, 38, 'W')],
 'Charlotte, N.C.': [(35, 14, 'N'), (80, 50, 'W')],
 'Cheyenne, Wyo.': [(41, 9, 'N'), (104, 52, 'W')],
 'Chicago, Ill.': [(41, 50, 'N'), (87, 37, 'W')],
 'Cincinnati, Ohio': [(39, 8, 'N'), (84, 30, 'W')],
 'Cleveland, Ohio': [(41, 28, 'N'), (81, 37, 'W')],
 'Columbia, S.C.': [(34, 0, 'N'), (81, 2, 'W')],
 'Columbus, Ohio': [(40, 0, 'N'), (83, 1, 'W')],
 'Dallas, Tex.': [(32, 46, 'N'), (96, 46, 'W')],
 'Denver, Colo.': [(39, 45, 'N'), (105, 0, 'W')],
 'Des Moines, Iowa': [(41, 35, 'N'), (93, 37, 'W')],
 'Detroit, Mich.': [(42, 20, 'N'), (83, 3, 'W')],
 'Dubuque, Iowa': [(42, 31, 'N'), (90, 40, 'W')],
 'Duluth, Minn.': [(46, 49, 'N'), (92, 5, 'W')],
 'Eastport, Maine': [(44, 54, 'N'), (67, 0, 'W')],
 'Edmonton, Alb., Can.': [(53, 34, 'N'), (113, 28, 'W')],
 'El Centro, Calif.': [(32, 38, 'N'), (115, 33, 'W')],
 'El Paso, Tex.': [(31, 46, 'N'), (106, 29, 'W')],
 'Eugene, Ore.': [(44, 3, 'N'), (123, 5, 'W')],
 'Fargo, N.D.': [(46, 52, 'N'), (96, 48, 'W')],
 'Flagstaff, Ariz.': [(35, 13, 'N'), (111, 41, 'W')],
 'Fort Worth, Tex.': [(32, 43, 'N'), (97, 19, 'W')],
 'Fresno, Calif.': [(36, 44, 'N'), (119, 48, 'W')],
 'Grand Junction, Colo.': [(39, 5, 'N'), (108, 33, 'W')],
 'Grand Rapids, Mich.': [(42, 58, 'N'), (85, 40, 'W')],
 'Havre, Mont.': [(48, 33, 'N'), (109, 43, 'W')],
 'Helena, Mont.': [(46, 35, 'N'), (112, 2, 'W')],
 'Honolulu, Hawaii': [(21, 18, 'N'), (157, 50, 'W')],
 'Hot Springs, Ark.': [(34, 31, 'N'), (93, 3, 'W')],
 'Houston, Tex.': [(29, 45, 'N'), (95, 21, 'W')],
 'Idaho Falls, Idaho': [(43, 30, 'N'), (112, 1, 'W')],
 'Indianapolis, Ind.': [(39, 46, 'N'), (86, 10, 'W')],
 'Jackson, Miss.': [(32, 20, 'N'), (90, 12, 'W')],
 'Jacksonville, Fla.': [(30, 22, 'N'), (81, 40, 'W')],
 'Juneau, Alaska': [(58, 18, 'N'), (134, 24, 'W')],
 'Kansas City, Mo.': [(39, 6, 'N'), (94, 35, 'W')],
 'Key West, Fla.': [(24, 33, 'N'), (81, 48, 'W')],
 'Kingston, Ont., Can.': [(44, 15, 'N'), (76, 30, 'W')],
 'Klamath Falls, Ore.': [(42, 10, 'N'), (121, 44, 'W')],
 'Knoxville, Tenn.': [(35, 57, 'N'), (83, 56, 'W')],
 'Las Vegas, Nev.': [(36, 10, 'N'), (115, 12, 'W')],
 'Lewiston, Idaho': [(46, 24, 'N'), (117, 2, 'W')],
 'Lincoln, Neb.': [(40, 50, 'N'), (96, 40, 'W')],
 'London, Ont., Can.': [(43, 2, 'N'), (81, 34, 'W')],
 'Long Beach, Calif.': [(33, 46, 'N'), (118, 11, 'W')],
 'Los Angeles, Calif.': [(34, 3, 'N'), (118, 15, 'W')],
 'Louisville, Ky.': [(38, 15, 'N'), (85, 46, 'W')],
 'Manchester, N.H.': [(43, 0, 'N'), (71, 30, 'W')],
 'Memphis, Tenn.': [(35, 9, 'N'), (90, 3, 'W')],
 'Miami, Fla.': [(25, 46, 'N'), (80, 12, 'W')],
 'Milwaukee, Wis.': [(43, 2, 'N'), (87, 55, 'W')],
 'Minneapolis, Minn.': [(44, 59, 'N'), (93, 14, 'W')],
 'Mobile, Ala.': [(30, 42, 'N'), (88, 3, 'W')],
 'Montgomery, Ala.': [(32, 21, 'N'), (86, 18, 'W')],
 'Montpelier, Vt.': [(44, 15, 'N'), (72, 32, 'W')],
 'Montreal, Que., Can.': [(45, 30, 'N'), (73, 35, 'W')],
 'Moose Jaw, Sask., Can.': [(50, 37, 'N'), (105, 31, 'W')],
 'Nashville, Tenn.': [(36, 10, 'N'), (86, 47, 'W')],
 'Nelson, B.C., Can.': [(49, 30, 'N'), (117, 17, 'W')],
 'New Haven, Conn.': [(41, 19, 'N'), (72, 55, 'W')],
 'New Orleans, La.': [(29, 57, 'N'), (90, 4, 'W')],
 'New York, N.Y.': [(40, 47, 'N'), (73, 58, 'W')],
 'Newark, N.J.': [(40, 44, 'N'), (74, 10, 'W')],
 'Nome, Alaska': [(64, 25, 'N'), (165, 30, 'W')],
 'Oakland, Calif.': [(37, 48, 'N'), (122, 16, 'W')],
 'Oklahoma City, Okla.': [(35, 26, 'N'), (97, 28, 'W')],
 'Omaha, Neb.': [(41, 15, 'N'), (95, 56, 'W')],
 'Ottawa, Ont., Can.': [(45, 24, 'N'), (75, 43, 'W')],
 'Philadelphia, Pa.': [(39, 57, 'N'), (75, 10, 'W')],
 'Phoenix, Ariz.': [(33, 29, 'N'), (112, 4, 'W')],
 'Pierre, S.D.': [(44, 22, 'N'), (100, 21, 'W')],
 'Pittsburgh, Pa.': [(40, 27, 'N'), (79, 57, 'W')],
 'Portland, Maine': [(43, 40, 'N'), (70, 15, 'W')],
 'Portland, Ore.': [(45, 31, 'N'), (122, 41, 'W')],
 'Providence, R.I.': [(41, 50, 'N'), (71, 24, 'W')],
 'Quebec, Que., Can.': [(46, 49, 'N'), (71, 11, 'W')],
 'Raleigh, N.C.': [(35, 46, 'N'), (78, 39, 'W')],
 'Reno, Nev.': [(39, 30, 'N'), (119, 49, 'W')],
 'Richfield, Utah': [(38, 46, 'N'), (112, 5, 'W')],
 'Richmond, Va.': [(37, 33, 'N'), (77, 29, 'W')],
 'Roanoke, Va.': [(37, 17, 'N'), (79, 57, 'W')],
 'Sacramento, Calif.': [(38, 35, 'N'), (121, 30, 'W')],
 'Salt Lake City, Utah': [(40, 46, 'N'), (111, 54, 'W')],
 'San Antonio, Tex.': [(29, 23, 'N'), (98, 33, 'W')],
 'San Diego, Calif.': [(32, 42, 'N'), (117, 10, 'W')],
 'San Francisco, Calif.': [(37, 47, 'N'), (122, 26, 'W')],
 'San Jose, Calif.': [(37, 20, 'N'), (121, 53, 'W')],
 'San Juan, P.R.': [(18, 30, 'N'), (66, 10, 'W')],
 'Santa Fe, N.M.': [(35, 41, 'N'), (105, 57, 'W')],
 'Savannah, Ga.': [(32, 5, 'N'), (81, 5, 'W')],
 'Seattle, Wash.': [(47, 37, 'N'), (122, 20, 'W')],
 'Shreveport, La.': [(32, 28, 'N'), (93, 42, 'W')],
 'Sioux Falls, S.D.': [(43, 33, 'N'), (96, 44, 'W')],
 'Sitka, Alaska': [(57, 10, 'N'), (135, 15, 'W')],
 'Spokane, Wash.': [(47, 40, 'N'), (117, 26, 'W')],
 'Springfield, Ill.': [(39, 48, 'N'), (89, 38, 'W')],
 'Springfield, Mass.': [(42, 6, 'N'), (72, 34, 'W')],
 'Springfield, Mo.': [(37, 13, 'N'), (93, 17, 'W')],
 'St. John, N.B., Can.': [(45, 18, 'N'), (66, 10, 'W')],
 'St. Louis, Mo.': [(38, 35, 'N'), (90, 12, 'W')],
 'Syracuse, N.Y.': [(43, 2, 'N'), (76, 8, 'W')],
 'Tampa, Fla.': [(27, 57, 'N'), (82, 27, 'W')],
 'Toledo, Ohio': [(41, 39, 'N'), (83, 33, 'W')],
 'Toronto, Ont., Can.': [(43, 40, 'N'), (79, 24, 'W')],
 'Tulsa, Okla.': [(36, 9, 'N'), (95, 59, 'W')],
 'Vancouver, B.C., Can.': [(49, 13, 'N'), (123, 6, 'W')],
 'Victoria, B.C., Can.': [(48, 25, 'N'), (123, 21, 'W')],
 'Virginia Beach, Va.': [(36, 51, 'N'), (75, 58, 'W')],
 'Washington, D.C.': [(38, 53, 'N'), (77, 2, 'W')],
 'Wichita, Kan.': [(37, 43, 'N'), (97, 17, 'W')],
 'Wilmington, N.C.': [(34, 14, 'N'), (77, 57, 'W')],
 'Winnipeg, Man., Can.': [(49, 54, 'N'), (97, 7, 'W')]}

Feel free to use it.  It'd be cool to have a large repository
of pre-filled data structures e.g. every bone in the body,
animals paired with their latin names, whatever.

Some could be simple lists, others more nested like above,
which contains lists of tuples in a dictionary with strings
for keys.

One thing I did almost on the first day with the above
structure is convert it to XML, not because I wanted them
to understand the code (even though it's short) but
because I wanted them to start eyeballing XML as yet
another way to store structured data.

Kirby

From driscollkevin at gmail.com  Thu Jul 12 06:25:59 2007
From: driscollkevin at gmail.com (Kevin Driscoll)
Date: Thu, 12 Jul 2007 00:25:59 -0400
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: 
References: 
	<004e01c7bf56$a8210f20$0601a8c0@Gandalf>
	<468D8264.6020203@canterburyschool.org>
	<006201c7bff4$ecef9c40$0601a8c0@Gandalf>
	<92de6c880707061103x7ac24ccdndb6c9a380d440382@mail.gmail.com>
	<468E8866.80904@canterburyschool.org>
	<7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com>
	<87a8578e0707111004p7c44ca7chbf851b5dd3aba247@mail.gmail.com>
	
Message-ID: <87a8578e0707112125i107c7b89sec3824318987bfd2@mail.gmail.com>

Yes!  Like a rapper, you must have REALNESS to get over!

A helpful recurring activity was asking kids to google image search a
background for simple 2-D games and demos.  This way, they get some
random, yet real, data to use: the width, height, filename, URL, etc.

bgsize = width, height = (800, 600)


Kevin


On 7/11/07, kirby urner  wrote:
> On 7/11/07, Kevin Driscoll  wrote:
>
> > Three years ago, I was definitely on the lexical path and would have
> > expected students to be able to answer Andy's question after a couple
> > class meetings.  However, in my most recent course, I used PyGame and
> > exposed students to object-oriented data structures first and logic /
> > algorithms second.
>
> Hi Kevin --
>
> You latter approach sounds more similar to mine.
>
> On the subject of data structures, I also recommend providing them
> with some large pre-populated ones to play with i.e. already filled with
> substantial "real world" content.
>
> One might think it makes no difference just going {'foo':'bar'} all
> the time i.e. using little "meaningless" constructs so we can just
> study the object's API.
>
> But especially for newbies we're trying to recruit for the longer haul,
> I think it adds another dimension to get to play with something like this:
>
> cities = {
>  'Albany, N.Y.': [(42, 40, 'N'), (73, 45, 'W')],
>  'Albuquerque, N.M.': [(35, 5, 'N'), (106, 39, 'W')],
>  'Amarillo, Tex.': [(35, 11, 'N'), (101, 50, 'W')],
>  'Anchorage, Alaska': [(61, 13, 'N'), (149, 54, 'W')],
>  'Atlanta, Ga.': [(33, 45, 'N'), (84, 23, 'W')],
>  'Austin, Tex.': [(30, 16, 'N'), (97, 44, 'W')],
>  'Baker, Ore.': [(44, 47, 'N'), (117, 50, 'W')],
>  'Baltimore, Md.': [(39, 18, 'N'), (76, 38, 'W')],
>  'Bangor, Maine': [(44, 48, 'N'), (68, 47, 'W')],
>  'Birmingham, Ala.': [(33, 30, 'N'), (86, 50, 'W')],
>  'Bismarck, N.D.': [(46, 48, 'N'), (100, 47, 'W')],
>  'Boise, Idaho': [(43, 36, 'N'), (116, 13, 'W')],
>  'Boston, Mass.': [(42, 21, 'N'), (71, 5, 'W')],
>  'Buffalo, N.Y.': [(42, 55, 'N'), (78, 50, 'W')],
>  'Calgary, Alba., Can.': [(51, 1, 'N'), (114, 1, 'W')],
>  'Carlsbad, N.M.': [(32, 26, 'N'), (104, 15, 'W')],
>  'Charleston, S.C.': [(32, 47, 'N'), (79, 56, 'W')],
>  'Charleston, W. Va.': [(38, 21, 'N'), (81, 38, 'W')],
>  'Charlotte, N.C.': [(35, 14, 'N'), (80, 50, 'W')],
>  'Cheyenne, Wyo.': [(41, 9, 'N'), (104, 52, 'W')],
>  'Chicago, Ill.': [(41, 50, 'N'), (87, 37, 'W')],
>  'Cincinnati, Ohio': [(39, 8, 'N'), (84, 30, 'W')],
>  'Cleveland, Ohio': [(41, 28, 'N'), (81, 37, 'W')],
>  'Columbia, S.C.': [(34, 0, 'N'), (81, 2, 'W')],
>  'Columbus, Ohio': [(40, 0, 'N'), (83, 1, 'W')],
>  'Dallas, Tex.': [(32, 46, 'N'), (96, 46, 'W')],
>  'Denver, Colo.': [(39, 45, 'N'), (105, 0, 'W')],
>  'Des Moines, Iowa': [(41, 35, 'N'), (93, 37, 'W')],
>  'Detroit, Mich.': [(42, 20, 'N'), (83, 3, 'W')],
>  'Dubuque, Iowa': [(42, 31, 'N'), (90, 40, 'W')],
>  'Duluth, Minn.': [(46, 49, 'N'), (92, 5, 'W')],
>  'Eastport, Maine': [(44, 54, 'N'), (67, 0, 'W')],
>  'Edmonton, Alb., Can.': [(53, 34, 'N'), (113, 28, 'W')],
>  'El Centro, Calif.': [(32, 38, 'N'), (115, 33, 'W')],
>  'El Paso, Tex.': [(31, 46, 'N'), (106, 29, 'W')],
>  'Eugene, Ore.': [(44, 3, 'N'), (123, 5, 'W')],
>  'Fargo, N.D.': [(46, 52, 'N'), (96, 48, 'W')],
>  'Flagstaff, Ariz.': [(35, 13, 'N'), (111, 41, 'W')],
>  'Fort Worth, Tex.': [(32, 43, 'N'), (97, 19, 'W')],
>  'Fresno, Calif.': [(36, 44, 'N'), (119, 48, 'W')],
>  'Grand Junction, Colo.': [(39, 5, 'N'), (108, 33, 'W')],
>  'Grand Rapids, Mich.': [(42, 58, 'N'), (85, 40, 'W')],
>  'Havre, Mont.': [(48, 33, 'N'), (109, 43, 'W')],
>  'Helena, Mont.': [(46, 35, 'N'), (112, 2, 'W')],
>  'Honolulu, Hawaii': [(21, 18, 'N'), (157, 50, 'W')],
>  'Hot Springs, Ark.': [(34, 31, 'N'), (93, 3, 'W')],
>  'Houston, Tex.': [(29, 45, 'N'), (95, 21, 'W')],
>  'Idaho Falls, Idaho': [(43, 30, 'N'), (112, 1, 'W')],
>  'Indianapolis, Ind.': [(39, 46, 'N'), (86, 10, 'W')],
>  'Jackson, Miss.': [(32, 20, 'N'), (90, 12, 'W')],
>  'Jacksonville, Fla.': [(30, 22, 'N'), (81, 40, 'W')],
>  'Juneau, Alaska': [(58, 18, 'N'), (134, 24, 'W')],
>  'Kansas City, Mo.': [(39, 6, 'N'), (94, 35, 'W')],
>  'Key West, Fla.': [(24, 33, 'N'), (81, 48, 'W')],
>  'Kingston, Ont., Can.': [(44, 15, 'N'), (76, 30, 'W')],
>  'Klamath Falls, Ore.': [(42, 10, 'N'), (121, 44, 'W')],
>  'Knoxville, Tenn.': [(35, 57, 'N'), (83, 56, 'W')],
>  'Las Vegas, Nev.': [(36, 10, 'N'), (115, 12, 'W')],
>  'Lewiston, Idaho': [(46, 24, 'N'), (117, 2, 'W')],
>  'Lincoln, Neb.': [(40, 50, 'N'), (96, 40, 'W')],
>  'London, Ont., Can.': [(43, 2, 'N'), (81, 34, 'W')],
>  'Long Beach, Calif.': [(33, 46, 'N'), (118, 11, 'W')],
>  'Los Angeles, Calif.': [(34, 3, 'N'), (118, 15, 'W')],
>  'Louisville, Ky.': [(38, 15, 'N'), (85, 46, 'W')],
>  'Manchester, N.H.': [(43, 0, 'N'), (71, 30, 'W')],
>  'Memphis, Tenn.': [(35, 9, 'N'), (90, 3, 'W')],
>  'Miami, Fla.': [(25, 46, 'N'), (80, 12, 'W')],
>  'Milwaukee, Wis.': [(43, 2, 'N'), (87, 55, 'W')],
>  'Minneapolis, Minn.': [(44, 59, 'N'), (93, 14, 'W')],
>  'Mobile, Ala.': [(30, 42, 'N'), (88, 3, 'W')],
>  'Montgomery, Ala.': [(32, 21, 'N'), (86, 18, 'W')],
>  'Montpelier, Vt.': [(44, 15, 'N'), (72, 32, 'W')],
>  'Montreal, Que., Can.': [(45, 30, 'N'), (73, 35, 'W')],
>  'Moose Jaw, Sask., Can.': [(50, 37, 'N'), (105, 31, 'W')],
>  'Nashville, Tenn.': [(36, 10, 'N'), (86, 47, 'W')],
>  'Nelson, B.C., Can.': [(49, 30, 'N'), (117, 17, 'W')],
>  'New Haven, Conn.': [(41, 19, 'N'), (72, 55, 'W')],
>  'New Orleans, La.': [(29, 57, 'N'), (90, 4, 'W')],
>  'New York, N.Y.': [(40, 47, 'N'), (73, 58, 'W')],
>  'Newark, N.J.': [(40, 44, 'N'), (74, 10, 'W')],
>  'Nome, Alaska': [(64, 25, 'N'), (165, 30, 'W')],
>  'Oakland, Calif.': [(37, 48, 'N'), (122, 16, 'W')],
>  'Oklahoma City, Okla.': [(35, 26, 'N'), (97, 28, 'W')],
>  'Omaha, Neb.': [(41, 15, 'N'), (95, 56, 'W')],
>  'Ottawa, Ont., Can.': [(45, 24, 'N'), (75, 43, 'W')],
>  'Philadelphia, Pa.': [(39, 57, 'N'), (75, 10, 'W')],
>  'Phoenix, Ariz.': [(33, 29, 'N'), (112, 4, 'W')],
>  'Pierre, S.D.': [(44, 22, 'N'), (100, 21, 'W')],
>  'Pittsburgh, Pa.': [(40, 27, 'N'), (79, 57, 'W')],
>  'Portland, Maine': [(43, 40, 'N'), (70, 15, 'W')],
>  'Portland, Ore.': [(45, 31, 'N'), (122, 41, 'W')],
>  'Providence, R.I.': [(41, 50, 'N'), (71, 24, 'W')],
>  'Quebec, Que., Can.': [(46, 49, 'N'), (71, 11, 'W')],
>  'Raleigh, N.C.': [(35, 46, 'N'), (78, 39, 'W')],
>  'Reno, Nev.': [(39, 30, 'N'), (119, 49, 'W')],
>  'Richfield, Utah': [(38, 46, 'N'), (112, 5, 'W')],
>  'Richmond, Va.': [(37, 33, 'N'), (77, 29, 'W')],
>  'Roanoke, Va.': [(37, 17, 'N'), (79, 57, 'W')],
>  'Sacramento, Calif.': [(38, 35, 'N'), (121, 30, 'W')],
>  'Salt Lake City, Utah': [(40, 46, 'N'), (111, 54, 'W')],
>  'San Antonio, Tex.': [(29, 23, 'N'), (98, 33, 'W')],
>  'San Diego, Calif.': [(32, 42, 'N'), (117, 10, 'W')],
>  'San Francisco, Calif.': [(37, 47, 'N'), (122, 26, 'W')],
>  'San Jose, Calif.': [(37, 20, 'N'), (121, 53, 'W')],
>  'San Juan, P.R.': [(18, 30, 'N'), (66, 10, 'W')],
>  'Santa Fe, N.M.': [(35, 41, 'N'), (105, 57, 'W')],
>  'Savannah, Ga.': [(32, 5, 'N'), (81, 5, 'W')],
>  'Seattle, Wash.': [(47, 37, 'N'), (122, 20, 'W')],
>  'Shreveport, La.': [(32, 28, 'N'), (93, 42, 'W')],
>  'Sioux Falls, S.D.': [(43, 33, 'N'), (96, 44, 'W')],
>  'Sitka, Alaska': [(57, 10, 'N'), (135, 15, 'W')],
>  'Spokane, Wash.': [(47, 40, 'N'), (117, 26, 'W')],
>  'Springfield, Ill.': [(39, 48, 'N'), (89, 38, 'W')],
>  'Springfield, Mass.': [(42, 6, 'N'), (72, 34, 'W')],
>  'Springfield, Mo.': [(37, 13, 'N'), (93, 17, 'W')],
>  'St. John, N.B., Can.': [(45, 18, 'N'), (66, 10, 'W')],
>  'St. Louis, Mo.': [(38, 35, 'N'), (90, 12, 'W')],
>  'Syracuse, N.Y.': [(43, 2, 'N'), (76, 8, 'W')],
>  'Tampa, Fla.': [(27, 57, 'N'), (82, 27, 'W')],
>  'Toledo, Ohio': [(41, 39, 'N'), (83, 33, 'W')],
>  'Toronto, Ont., Can.': [(43, 40, 'N'), (79, 24, 'W')],
>  'Tulsa, Okla.': [(36, 9, 'N'), (95, 59, 'W')],
>  'Vancouver, B.C., Can.': [(49, 13, 'N'), (123, 6, 'W')],
>  'Victoria, B.C., Can.': [(48, 25, 'N'), (123, 21, 'W')],
>  'Virginia Beach, Va.': [(36, 51, 'N'), (75, 58, 'W')],
>  'Washington, D.C.': [(38, 53, 'N'), (77, 2, 'W')],
>  'Wichita, Kan.': [(37, 43, 'N'), (97, 17, 'W')],
>  'Wilmington, N.C.': [(34, 14, 'N'), (77, 57, 'W')],
>  'Winnipeg, Man., Can.': [(49, 54, 'N'), (97, 7, 'W')]}
>
> Feel free to use it.  It'd be cool to have a large repository
> of pre-filled data structures e.g. every bone in the body,
> animals paired with their latin names, whatever.
>
> Some could be simple lists, others more nested like above,
> which contains lists of tuples in a dictionary with strings
> for keys.
>
> One thing I did almost on the first day with the above
> structure is convert it to XML, not because I wanted them
> to understand the code (even though it's short) but
> because I wanted them to start eyeballing XML as yet
> another way to store structured data.
>
> Kirby
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>


-- 
http://kevindriscoll.info/

From svenforum at gmail.com  Fri Jul 13 04:21:39 2007
From: svenforum at gmail.com (Sven Forum)
Date: Fri, 13 Jul 2007 04:21:39 +0200
Subject: [Edu-sig] Python in Secondary Schools
Message-ID: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>

Yup,

I'm a student at the Erasmus High School in Brussels.
In about 1 year I'm going to graduate as a teacher in mathematics, history
and informatics.
I 'll give math and history to children between 12 and 15 years old and
informatics to those between 14 and 18(+) years old.

This is the Belgian model ... informatics just starts in the third year of
secondary schools. It's a course of 1 or 2 hours (~50 minutes) a week. The
emphasis is on Microsoft office packets Word, some Excel and a little
Access, ... programming happens in Pascal (most of the times), a language I
personally despise, and the pupils need to know a little about networking,
the www (some html), new thingy 's, ... and some other bits.
#Q1: What model does your country use?

Before I graduate, I, of course, have to write a graduation paper (~correct
term?).
Now, I fell madly in love with Python. So I want to write my paper about
teaching Python in secondary schools ... I'm thinking about a textbook from
the third year up until the last year, teaching basic concepts using this
beautiful language. On top of that I'm also a great fan of Free Software and
Open Source ...

My favorite sources for Python are:
* How to Think Like a Computer Scientist, Learning in Python
* Dive Into Python
* The Livewires Python Course

#Q2: What should a graduated student (18y) need to know or, perhaps better,
where should I stop?
Which books are recommended?
--- Values, Types, Expressions, Statements, Operations, Procedures,
Functions
--- Strings, Lists, Dictionaries, Tuples
--- Logics and Conditionals
--- Loops, Recursion, Iteration
--- Classes and Objects, methods and attributes, Inheritance, Overloading
--- ADT: Stacks and Queues, Trees, Linked lists
Getting blurry now ...
--- Files, Pickle, Error Handling
--- Sockets, Server, Client
--- ???
--- Using a database
--- CGI
--- HTTP, html, xml handling
--- GUI programming
--- ???

#Q3: If I copy-paste the GPL and GFDL into (respectively) the examples and
my textbook, is that enough to make it Free (as in Freedom)? Or do I have to
register somewhere?

Motivation is important. The students need to see and feel the use of
programming.
For instance, making a pacman-game (Livewires) will give students enough
motivation.
Or making a little script to rename all photos from some holiday ...
Or making a small and raw server-client chat program ...
Or a simple webserver in Python and then go from there to set up your own
WAMP/LAMP.

#Q4: What little chores did you solve using Python?
What would interest you as a 14-18 year old?
When did you think like "Man, if I only knew how to start solving this
problem... how does this works?"

I know these are some big questions, but I hope you can help me out of your
own experiences ...

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070713/0dcc2589/attachment.html 

From andre.roberge at gmail.com  Fri Jul 13 05:05:26 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Fri, 13 Jul 2007 00:05:26 -0300
Subject: [Edu-sig] Crunchy release 0.9.1
Message-ID: <7528bcdd0707122005j78a63e96t22c893b19bdf40ab@mail.gmail.com>

Crunchy 0.9.1 has been released.  It is available at
http://code.google.com/p/crunchy


Note that, if you have downloaded version 0.9 or version 0.9.0.1
you likely will not need to download this latest version....
Then again, for people on this list, there is a significant new addition.

What is new since version 0.9?

* Possibility to log selectively part of a session (as instructed by a
tutorial *writer* such as a teacher who may want to evaluate students).
This experimental feature is the main reason to have a new release.
It should be of particular interest for people on edu-sig.

* Bug fix (0.9.0.1):  Output containing <....> was not displayed in version 0.9

* Support for generation of image files is now done through threads
(rather than subprocess) and addition of a "load image" button, which
prevents from having to generate the image twice.

* A windows installer version is available.

* Minor experimental cosmetic additions.

* Improved "readme" file.

Bug reports, comments and suggestions are always welcome.

Andr?, for the Crunchy team.

======================

What is Crunchy?

Crunchy is a an application that transforms html Python tutorials into
interactive session viewed within a browser.  We are not aware of any
other application (in any language) similar to Crunchy.   Currently
Crunchy has only been fully tested with Firefox; we know that some
browsers simply don't work with it.  Crunchy should work with all
operating systems - it has been tested fairly extensively on Linux,
Windows and Mac OS.

What is new since a few months ago?

Crunchy has been rewritten from scratch from the previous version
(0.8.2), to use a custom plugin architecture.  This makes easier to
extend and add new functionality.  Rather than list the differences
with the old release, it is easier to list the essential features of
this new version.

1. Crunchy can work best with specially marked-up html tutorials.
However, it can now work with any html tutorials - including the
official Python tutorial on the python.org site.  Html pages can be
loaded locally or remotely from anywhere on the Internet.  Crunchy
uses a combination of Elementtree and BeautifulSoup to process html
pages.  Non W3C-compliant pages can be handled, but the visual
appearance is not guaranteed to reproduce that normally seen using a
browser.

2. Crunchy can insert a number of Python interpreters inside a web
page.  In the default mode, it does that whenever it encounters an
html 
 element which is assumed to contain some Python code.
These interpreters can either share a common environment (e.g. modules
imported in one of them are known in the other) or be isolated one
from another.

3. Crunchy adds automatic css styling to the Python code -  you can
look at the official Python tutorial using your browser (all Python
code in blue) and compare with what Crunchy displays to give you a
good idea.

4. Instead of inserting an interpreter, Crunchy can insert a code
editor that can be used to modify the Python code on the page and
execute it.  The editor can be toggled to become a fairly decent
syntax aware editor that can save and load files.

5. Crunchy has a "doctest" feature where the code inside the 
 is
taken to be the result
of an interpreter session and the user has to write the code so as to
make the interpreter session valid; this is useful in a teaching
environment. Messages from the Crunchy's doctest are "friendlier" for
Python beginners than the usual tracebacks.

6. Crunchy has a small graphics library that can be imported, either
inside an editor or an interpreter, to produce simple graphics (even
animations!) inside the browser.

7. For the user that needs better quality graphics, Crunchy supports
programs (such as matplotlib) that can create image files; by
executing the code, the image produced is loaded inside the browser
window.  In this capacity, Crunchy could be used as a front end for
libraries such as matplotlib.

8. Crunchy supports code execution of files as separate processes,
making it suitable to launch gui based application from the browser
window.

9. Crunchy's interpreter has an interactive "help" feature like many
python-aware IDEs.

10. Crunchy includes a fairly comprehensive tutorial on its own use,
as well as a reference for tutorial writers that want to make their
tutorials "crunchy-friendlier".

11. As a security feature, crunchy strips all pre-existing javascript
code from an html page before displaying it inside the browser window.

From kirby.urner at gmail.com  Fri Jul 13 08:07:59 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Fri, 13 Jul 2007 09:07:59 +0300
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
Message-ID: 

On 7/13/07, Sven Forum  wrote:
> Yup,
>
> I'm a student at the Erasmus High School in Brussels.
> In about 1 year I'm going to graduate as a teacher in mathematics, history
> and informatics.
> I 'll give math and history to children between 12 and 15 years old and
> informatics to those between 14 and 18(+) years old.

Hi Sven --

Greetings from Vilnius, Lithuania, from where I am currently following
edu-sig from my hotel room.

I hope as you cast about for interesting content for your informatics
students, you will keep in mind the plight of your math students,
already faced with plenty of content, but without Python to help
them master it.

In the USA, most schools erect an artificial wall between mathematics
and any discipline involving computer programming.  To question this
wall is considered heresy.  One is branded a radical for even calling
attention to its existence.

Instead of using the Python or any other kid-friendly language to
develop ideas about rational and complex numbers, vectors,
sets, primes versus composites, important algorithms of mathematics,
our children are enslaved to a dark ages regime that permits only
calculators, probably by Texas Instruments.

Programming is considered irrelevant to mathematics learning.
Open source software is scarcely whispered about.

The use of Python or other programming languages is either strictly
forbidden or strongly discouraged within primary and secondary
school mathematics classes.

In contrast, many of the state mandated text books devote page
after page to the skill of calculator use.  Free languages are not
mentioned  (someday, I hope these will be exhibited in a museum,
as testament to the thralldom and intellectual squalor we endured,
even into the 21st century).

Yes, this is a cruel and repressive system and is retarding the USA's
future economic viability and lowering our living standards across the
board.

An alien and anti-democratic spirit has infected our land.  Its agenda
is to dumb us down, keep us compliant and manipulable, because
our people will not be empowered to use the technologies that
surround them.

Rather, they are to remain passive consumers, dependent on others,
obese inhabitants of a Fast Food Nation (not at all like the "land of
the brave, home of the free"), like those pathetic Eloi in 'The Time
Machine' by H.G. Wells.

See the movie 'Idiocracy' if you want a glimpse of our likely future
under this dark ages dictatorship of the so-called "doctors of
philosophy" (an ironic joke I realize).

May you have better luck in Belgium fighting the entrenched monied
interests that repress children and keep our culture relatively
computer illiterate.

Kirby
from Vilnius
(just a few blocks from the "KGB museum")

From lac at openend.se  Fri Jul 13 12:15:24 2007
From: lac at openend.se (Laura Creighton)
Date: Fri, 13 Jul 2007 12:15:24 +0200
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: Message from Jay Bloodworth  of "Tue,
	10 Jul 2007 09:20:15 EDT."
	<1184073615.3307.64.camel@localhost.localdomain> 
References: 
	<004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu>
	<003901c7c115$0d69f3f0$0601a8c0@Gandalf>
	
	<000801c7c176$a3599fd0$0601a8c0@Gandalf>
	<1183923444.3369.89.camel@localhost.localdomain>
	<200707081946.l68Jknuj012600@theraft.openend.se>
	<1183926917.3369.137.camel@localhost.localdomain>
	<4692849E.9060609@luc.edu>
	
	<1184073615.3307.64.camel@localhost.localdomain> 
Message-ID: <200707131015.l6DAFONj017303@theraft.openend.se>

In a message of Tue, 10 Jul 2007 09:20:15 EDT, Jay Bloodworth writes:



>I'm just not sure that geometric models are likely to help with
>the difficulties struggling students often have.  Two examples:
>
>* It's like pulling teeth to get students to respect order of operations
>and remember consistently that -3^2 = -9.  Where's the geometric model
>for that?
>
>* (a + b)^2 = a^2 + 2ab + b^2, not a^2 + b^2.  Here there is the
>standard geometric area model for multiplication.  Sometimes I present
>multiplication with the model, sometimes not.  It doesn't seem to change
>the error rate.



>Jay

Something I have had success with is dividing what I am teaching into

a) universal truths about the way the universe works

vs

b) notational conventions which are true because we all agreed on it.

using '+' for add instead of '!' is notation.
using ( ) to group things and not {} is notation.

but given that we have agreement, the reason that

(a + b)^2 = a^2 + 2ab + b^2

is because that is _really the way the world works_.  Having a computer
helps.  You write code and try it yourself for a lot of values of
a and b, and can really prove that (a + b)^2 != a^2 + b^2 to your
own personal satisfaction.

Which is why I want geometry first, to give students a whole lot of
exposure to geometric proofs of geometric truths.

Laura


From kirby.urner at gmail.com  Sat Jul 14 14:54:31 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Sat, 14 Jul 2007 15:54:31 +0300
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: <200707061448.22333.john.zelle@wartburg.edu>
References: 
	<7528bcdd0707061129g64cd4bdwc5f812122dc69e57@mail.gmail.com>
	
	<200707061448.22333.john.zelle@wartburg.edu>
Message-ID: 

On 7/6/07, John Zelle  wrote:

> I also like the string library for certain pedagogical reasons, but I don't
> think the Templates are compelling when you can do essentially the same thing
> with string formatting. Is the $ notation that much of a "win?"
>
> --John

Another reason to stick with string.Template for now might be that
string formatting with percent syntax is going away?

After all, Python 3000 is only about a year away, in alpha anyway,
with Python 2.6 containing a back port of many features.

Unless the whole string module is going away that is, but Guido
didn't say anything about that.

Googling just now leads me to think it'll stick around, but become
more unicode-savvy -- like the rest of the language.

Kirby

From kirby.urner at gmail.com  Mon Jul 16 05:23:16 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Mon, 16 Jul 2007 06:23:16 +0300
Subject: [Edu-sig] New: 'Python for Math Teachers' on showmedo (series of 5
	so far)
Message-ID: 

In line with Jeff's suggestion, I've got some new screencasts at
showmedo.com.

My 'Python for Math Teachers' series.  They're far from perfect,
my first experience making such screencasts.

In one of them I say "curly braces" when talking about parens.

But I'm getting some positive feedback from viewers.  Plan to
add more down the road.

Packing my suitcase to head home from Vilnius now.  S'been a
really good time in beautiful Lithuania.

Gotta get back to Portland to actually start teaching my
sa: Pythonic Math class.

Then Ubuntu conference followed by OSCON.  Very busy July!

Stuff about EuroPython in my blogs FYI, e.g:

http://worldgame.blogspot.com/2007/07/europython-day-1.html
http://controlroom.blogspot.com/2007/07/connecting-dots.html (my talk)
http://mybizmo.blogspot.com/2007/07/few-photos.html  (more in Flickr **)
http://mybizmo.blogspot.com/2007/07/version-control.html
http://controlroom.blogspot.com/2007/07/python-in-control-room.html
http://worldgame.blogspot.com/2007/07/concluding-europython.html

Kirby

** mostly just Vilnius itself (still adding to this set):
http://www.flickr.com/photos/17157315 at N00/sets/72157600695798539/

From mtobis at gmail.com  Mon Jul 16 23:55:19 2007
From: mtobis at gmail.com (Michael Tobis)
Date: Mon, 16 Jul 2007 16:55:19 -0500
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
Message-ID: 

I consider Kirby's a grossly inappropriate response to Sven's query.

While I respect Kirby for his contributions I wish he would put a tiny
fraction of his attention into which of his posts were helpful to the
community and which not.

Michael Tobis

From driscollkevin at gmail.com  Tue Jul 17 00:21:04 2007
From: driscollkevin at gmail.com (Kevin Driscoll)
Date: Mon, 16 Jul 2007 18:21:04 -0400
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
Message-ID: <87a8578e0707161521u5e91443dj37add88374d1345@mail.gmail.com>

Hi Sven,

Hopefully, I can help answer some of your questions.

> #Q1: What model does your country use?

In the US, we also suffer an overbearing emphasis on Office tools.  I
have found that by age 14, students are more than proficient with
these tools.  While an occasion project using presentation software
(Powerpoint) or spreadsheets (Excel) is helpful, it is probably not
best as a focus of your coursework.

Programming in the US usually leads students to Java because the
"Advanced Placement" (AP) test is in Java.  Similarly, many colleges
and universities use Java in the introductory CS course.  If students
can earn a high mark on this exam, it may allow them to skip a
university course - a reward with high monetary value here!

However, as few of my students would be taking this exam, my
programming curriculum focused on almost exclusively on Python (with a
little diversion into PHP and Javascript.)  In my opinion, students
who are strongly motivated to learn Java will have a much easier time
after learning Python.

> Before I graduate, I, of course, have to write a graduation paper (~correct
> term?).

In the US, people might call this a "thesis paper" or "final paper".


> #Q2: What should a graduated student (18y) need to know or, perhaps better,
> where should I stop?
> Which books are recommended?

My favorite book recently is Why's (Poignant) Guide to Ruby:
http://poignantguide.net/ruby/

It is a superb tool for self-motivated learners and while the code
examples are in Ruby, you will find it easy to translate into Python.

While this text is a great tool (for English speakers), it isn't a
great reference.  For that, I often used "How to Think Like a Computer
Scientist". ( http://www.ibiblio.org/obp/thinkCSpy/ )

Rather than give out the entire text, I photocopy passages and require
students keep a binder of their materials.


> Motivation is important. The students need to see and feel the use of
> programming.

I agree! For this reason, I suggest that you think of some projects
you would like students to be able to complete.  (You have already
listed a few great ones).  Next, make a list of the skills / knowledge
a student would need to complete each project.  This will make the
process of planning your course much easier.

I have had great fun using PyGame and teaching programming through
basic game design.  http://pygame.org


> #Q3: If I copy-paste the GPL and GFDL into (respectively) the examples and
> my textbook, is that enough to make it Free (as in Freedom)? Or do I have to
> register somewhere?

No need to register!  You may find that a Creative Commons license
works just as well as GFDL.  Take a look at CC-BY-SA for a copyleft
license: http://creativecommons.org/licenses/by-sa/3.0/


Best of luck with your studies, Sven!  Please keep us posted and feel
free to email me off-list anytime!

Kevin Driscoll
-- 
http://kevindriscoll.info/

From nicolas.pettiaux at ael.be  Tue Jul 17 07:42:44 2007
From: nicolas.pettiaux at ael.be (Nicolas Pettiaux)
Date: Tue, 17 Jul 2007 07:42:44 +0200
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <87a8578e0707161521u5e91443dj37add88374d1345@mail.gmail.com>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	<87a8578e0707161521u5e91443dj37add88374d1345@mail.gmail.com>
Message-ID: 

2007/7/17, Kevin Driscoll :
> My favorite book recently is Why's (Poignant) Guide to Ruby:
> http://poignantguide.net/ruby/
>
> It is a superb tool for self-motivated learners and while the code
> examples are in Ruby, you will find it easy to translate into Python.

As the book is under a free licence ( Attribution-ShareAlike ) it
could make sens to adapt it indeed to python (with the consent of the
author and probably his support)

> While this text is a great tool (for English speakers), it isn't a
> great reference.  For that, I often used "How to Think Like a Computer
> Scientist". ( http://www.ibiblio.org/obp/thinkCSpy/ )

In Belgium too, I do use the "French"   (adapted) version by Gerard Swinnen :
http://www.cifen.ulg.ac.be/inforef/swi/python.htm that is freely
available on the web for printing or also as a published book from
O'Reilly (or myself as I printed come copies)

> I agree! For this reason, I suggest that you think of some projects
> you would like students to be able to complete.  (You have already
> listed a few great ones).  Next, make a list of the skills / knowledge
> a student would need to complete each project.  This will make the
> process of planning your course much easier.
>
> I have had great fun using PyGame and teaching programming through
> basic game design.  http://pygame.org

another way to go is add activities to gcompris (see gcompris.net) the
well know activity program (with about 80 activities today) for youngs
from 3 till 12, translated in many languages, that is also no wbeing
adapted to go on the OLPC laptop.

This could be a good motivation to write complements.

I put the main author of gcompris (Bruno Coudoin) in cc. as he may be
interested to help with suggestions.

There are special examples in gcompris for the ones who want to start
with a few simple and easy contributions.

Regards,

Nicolas
-- 
Nicolas Pettiaux - email: nicolas.pettiaux at ael.be
Utiliser des formats ouverts et des logiciels libres -
http://www.passeralinux.org.
Pour la bureautique, les seuls formats ISO sont ceux de http://fr.openoffice.org

From kirby.urner at gmail.com  Tue Jul 17 08:17:01 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 17 Jul 2007 09:17:01 +0300
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
Message-ID: 

Yet I got fan mail as well.

I trust others on this list to give Sven the sound sober advice
he's looking for.   I specialize in various brands of polemics --
not to the exclusion of technical content though.

Kirby
newly back from Vilnius
start teaching a new Pythonic Math class tomorrow morning

On 7/17/07, Michael Tobis  wrote:
> I consider Kirby's a grossly inappropriate response to Sven's query.
>
> While I respect Kirby for his contributions I wish he would put a tiny
> fraction of his attention into which of his posts were helpful to the
> community and which not.
>
> Michael Tobis

From guido at python.org  Tue Jul 17 16:20:09 2007
From: guido at python.org (Guido van Rossum)
Date: Tue, 17 Jul 2007 07:20:09 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
Message-ID: 

On 7/16/07, kirby urner  wrote:
> Yet I got fan mail as well.
>
> I trust others on this list to give Sven the sound sober advice
> he's looking for.   I specialize in various brands of polemics --
> not to the exclusion of technical content though.

But do polemics have a place on a list dedicated to promoting *Python*
in education? The list name is meant to be edu-sig at python.org, not
mere edu-sig -- it's not about education(al politics) in general.

I am seeing signals that there's been too much politics and not enough
Python or education on this list. While discussion of educational
politics is a worthy cause, I want to present a strawman that excludes
its discussion on this list. I have seem more than one mailing list go
up in flames over education politics -- understandably a touchy issue
so perhaps best discussed elsewhere. I have also seen lists saved by a
strict rule forbidding such destructive topics (enforced by a
moderator reminding posters and readers of this rule when the topic is
accidentally brought up again).

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)

From andre.roberge at gmail.com  Tue Jul 17 16:46:35 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Tue, 17 Jul 2007 11:46:35 -0300
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
Message-ID: <7528bcdd0707170746j1b56bd62x32bf15881c7de64d@mail.gmail.com>

On 7/17/07, Guido van Rossum  wrote:
[snip]
>
> But do polemics have a place on a list dedicated to promoting *Python*
> in education? The list name is meant to be edu-sig at python.org, not
> mere edu-sig -- it's not about education(al politics) in general.
>
> I am seeing signals that there's been too much politics and not enough
> Python or education on this list.

I concur.

> While discussion of educational
> politics is a worthy cause, I want to present a strawman that excludes
> its discussion on this list.

I would totally support this. I always thought it was the purpose of this list.

In fact, from the edu-sig description on python.org:
===
Edu-sig provides an informal venue for comparing notes and discussing
future possibilities for Python in education. ...  Discussion focuses
on Python use at all levels, from beginning to advanced applications.
===

If we could focus on Python in education (including neat ways to use
Python to teach math), rather than divert discussions to talk about
squeak, home schooling, etc., I, for one, would be very much in
favour.

> I have seem more than one mailing list go
> up in flames over education politics -- understandably a touchy issue
> so perhaps best discussed elsewhere. I have also seen lists saved by a
> strict rule forbidding such destructive topics (enforced by a
> moderator reminding posters and readers of this rule when the topic is
> accidentally brought up again).
>
Are you suggesting that this list should become moderated?

Andr? (Roberge)

> --
> --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 vceder at canterburyschool.org  Tue Jul 17 16:54:30 2007
From: vceder at canterburyschool.org (Vern Ceder)
Date: Tue, 17 Jul 2007 10:54:30 -0400
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>			
	
Message-ID: <469CD826.6000508@canterburyschool.org>

Guido van Rossum wrote:
> But do polemics have a place on a list dedicated to promoting *Python*
> in education? The list name is meant to be edu-sig at python.org, not
> mere edu-sig -- it's not about education(al politics) in general.

+1

> I am seeing signals that there's been too much politics and not enough
> Python or education on this list... 

I have had off-list exchanges with people who were reluctant to post to 
edu-sig, mainly because they didn't have the time, inclination, or (in 
some cases) the fluency in English to become embroiled in political debates.

If you ask me (and as I recall, nobody did ;-) ) the great thing about 
the tutor list is the way they rigorously (and gently) stick to the 
topic of helping people learn Python. So, yeah...

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 mtobis at gmail.com  Tue Jul 17 17:35:35 2007
From: mtobis at gmail.com (Michael Tobis)
Date: Tue, 17 Jul 2007 10:35:35 -0500
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
Message-ID: 

On 7/17/07, Guido van Rossum  wrote:

> I am seeing signals that there's been too much politics and not enough
> Python or education on this list. While discussion of educational
> politics is a worthy cause, I want to present a strawman that excludes
> its discussion on this list.

+1

mt

From guido at python.org  Tue Jul 17 18:44:10 2007
From: guido at python.org (Guido van Rossum)
Date: Tue, 17 Jul 2007 09:44:10 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <7528bcdd0707170746j1b56bd62x32bf15881c7de64d@mail.gmail.com>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
	<7528bcdd0707170746j1b56bd62x32bf15881c7de64d@mail.gmail.com>
Message-ID: 

On 7/17/07, Andre Roberge  wrote:
> On 7/17/07, Guido van Rossum  wrote:
> > I have seem more than one mailing list go
> > up in flames over education politics -- understandably a touchy issue
> > so perhaps best discussed elsewhere. I have also seen lists saved by a
> > strict rule forbidding such destructive topics (enforced by a
> > moderator reminding posters and readers of this rule when the topic is
> > accidentally brought up again).
> >
> Are you suggesting that this list should become moderated?

Not in the sense of someone approving individual posts. Yes in the
other sense of the word "moderation", meaning "avoiding excesses". :-)
A "moderator" can simply be anyone who reads the lists frequently and
can send off a list response reminding folks to refrain from
discussing a contentious topic.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)

From delza at livingcode.org  Tue Jul 17 19:22:27 2007
From: delza at livingcode.org (Dethe Elza)
Date: Tue, 17 Jul 2007 10:22:27 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
Message-ID: 

On 17-Jul-07, at 7:20 AM, Guido van Rossum wrote:

> I am seeing signals that there's been too much politics and not enough
> Python or education on this list. While discussion of educational
> politics is a worthy cause, I want to present a strawman that excludes
> its discussion on this list.

Hear hear!

--Dethe




From annaraven at gmail.com  Tue Jul 17 19:24:18 2007
From: annaraven at gmail.com (Anna Ravenscroft)
Date: Tue, 17 Jul 2007 10:24:18 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
Message-ID: 

On 7/16/07, kirby urner  wrote:
> Yet I got fan mail as well.
>
> I trust others on this list to give Sven the sound sober advice
> he's looking for.   I specialize in various brands of polemics --
> not to the exclusion of technical content though.
>
> Kirby
> newly back from Vilnius
> start teaching a new Pythonic Math class tomorrow morning
>
> On 7/17/07, Michael Tobis  wrote:
> > I consider Kirby's a grossly inappropriate response to Sven's query.
> >
> > While I respect Kirby for his contributions I wish he would put a tiny
> > fraction of his attention into which of his posts were helpful to the
> > community and which not.
> >
> > Michael Tobis
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>


Kirby and Michael,

as a parent, I agree with Kirby about the education system in this
country. Kirby, I suggest you join one of the many lists/groups on the
topic, including mathematicallycorrect.org and others. Save your
polemics for that community.

Michael, as a pythonista who is passionate about teaching all kids
about programming, I agree with you. This list needs to refocus on
Python in education. Posts that are about other, even related, topics,
need to be elsewhere.

Guido - thanks for posting the straw poll. (Note: a strawman is a
rhetorical device to distract a person from a logical argument...;-)
In response to your straw poll: +1


I look forward to having some time to actually participate in
discussions about Python in education.
-- 
cordially,
Anna
--
It is fate, but call it Italy if it pleases you, Vicar!

From francois.schnell at gmail.com  Tue Jul 17 19:40:32 2007
From: francois.schnell at gmail.com (francois schnell)
Date: Tue, 17 Jul 2007 19:40:32 +0200
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <469CD826.6000508@canterburyschool.org>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
	<469CD826.6000508@canterburyschool.org>
Message-ID: <13a83ca10707171040m66114038nf7cf34046f979fc2@mail.gmail.com>

On 7/17/07, Vern Ceder  wrote:
> Guido van Rossum wrote:
> > But do polemics have a place on a list dedicated to promoting *Python*
> > in education? The list name is meant to be edu-sig at python.org, not
> > mere edu-sig -- it's not about education(al politics) in general.
>
> +1
>

+ 1

> > I am seeing signals that there's been too much politics and not enough
> > Python or education on this list...
>
> I have had off-list exchanges with people who were reluctant to post to
> edu-sig, mainly because they didn't have the time, inclination, or (in
> some cases) the fluency in English to become embroiled in political debates.
>

+ 1

> If you ask me (and as I recall, nobody did ;-) ) the great thing about
> the tutor list is the way they rigorously (and gently) stick to the
> topic of helping people learn Python.

+ 1

francois

> So, yeah...
>
> 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
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>

From aharrin at luc.edu  Tue Jul 17 21:10:49 2007
From: aharrin at luc.edu (Andrew Harrington)
Date: Tue, 17 Jul 2007 14:10:49 -0500
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <469CD826.6000508@canterburyschool.org>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>				
	<469CD826.6000508@canterburyschool.org>
Message-ID: <469D1439.2090003@luc.edu>

On the focus of this list:  certainly Python education (even if it does 
get contentious -- there are strong opinions on all sorts of things).
Certainly I am not looking for big large educational politics centered 
discussions, but I am a bit concerned about the strength of the reaction 
and going too far.

Politics do influence people's mindsets, and hence what they suggest 
specifically about teaching Python.  People make suggests about teaching 
Python that I take with more or less of a grain of salt depending on 
where I judge they are coming from.  I would not like to lose the 
context from which people speak.  There is always a matter of degree.  
Explicitly self-identified influences, with links to a site that would 
give more information to the interested about the influence certainly 
sound fine and useful to me.  This extends to one-line links to most 
anything that might be tangentially of interest to our audience, not 
just politics.  Producing a whole page in our list that could better 
appear on a politics site is completely different and I would prefer not 
to be skimming over it, trying to find the end of the theme.

Andy

Vern Ceder wrote:
> Guido van Rossum wrote:
>   
>> But do polemics have a place on a list dedicated to promoting *Python*
>> in education? The list name is meant to be edu-sig at python.org, not
>> mere edu-sig -- it's not about education(al politics) in general.
>>     
>
> +1
>
>   
>> I am seeing signals that there's been too much politics and not enough
>> Python or education on this list... 
>>     
>
> I have had off-list exchanges with people who were reluctant to post to 
> edu-sig, mainly because they didn't have the time, inclination, or (in 
> some cases) the fluency in English to become embroiled in political debates.
>
> If you ask me (and as I recall, nobody did ;-) ) the great thing about 
> the tutor list is the way they rigorously (and gently) stick to the 
> topic of helping people learn Python. So, yeah...
>
> Vern
>
>   


-- 
  Andrew N. Harrington
  Computer Science Department      Director of Academic Programs
  Loyola University Chicago        http://www.cs.luc.edu/~anh
  512B Lewis Towers (office)       Phone: 312-915-7999
  Snail mail to Lewis Towers 416   Fax:    312-915-7998
  820 North Michigan Avenue        gdp at cs.luc.edu for graduate admin
  Chicago, Illinois 60611          upd at cs.luc.edu for undergrad admin
                                   aharrin at luc.edu as professor


From pdfernhout at kurtz-fernhout.com  Tue Jul 17 22:41:24 2007
From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout)
Date: Tue, 17 Jul 2007 16:41:24 -0400
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <469D1439.2090003@luc.edu>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>					<469CD826.6000508@canterburyschool.org>
	<469D1439.2090003@luc.edu>
Message-ID: <469D2974.3070408@kurtz-fernhout.com>

I mostly agree with Andrew.

And, further, as is made clear in the book _Disciplined Minds: A
Critical Look at Salaried Professionals and the Soul-Battering System
That Shapes Their Lives_
  http://disciplinedminds.tripod.com/
http://www.amazon.com/Disciplined-Minds-Critical-Professionals-Soul-Battering/dp/0742516857
you can't separate politics from the educational process. In many ways,
politics is about the control of the educational process. You can
pretend to separate them -- by adopting a supposedly "objective" and
"professional" viewpoint --  but in the end, when you do that, you just
have made a vote to uphold the status quo, which is obviously and
clearly failing the next generation (at least, in the USA). See also for
example:
  "why education technology has failed schools"
http://billkerr2.blogspot.com/2007/01/why-education-technology-has-failed.html
(which links to an essay of mine).

>From there: "Ultimately, educational technology's greatest value is in
supporting "learning on demand" based on interest or need which is at
the opposite end of the spectrum compared to "learning just in case"
based on someone else's demand. ... Compulsory schools don't usually
traffic in "learning on demand", for the most part leaving that kind of
activity to libraries or museums or the home or business or the "real
world". In order for compulsory schools to make use of the best of
educational technology and what is has to offer, schools themselves must
change... So, there is more to the story of technology than it failing
in schools. Modern information and manufacturing technology itself is
giving compulsory schools a failing grade. Compulsory schools do not
pass in the information age. They are no longer needed. What remains is
just to watch this all play out, and hopefully guide the collapse of
compulsory schooling so that the fewest people get hurt in the process."

I think Kirby's original post was completely on topic and illustrating
why Python (and other programming languages) has not made the progress
one might expect in expanding into broad areas of education. He uses
math as an example, but one could just as well find similar issues in
why computers (and Python driven software) are not used in teaching
social studies or science via having kids build their own simulations or
do detailed analysis of various issues from a critical and quantitative
perspective. These political issues of constructing "disciplined minds"
remain the elephant in the living room of any discussion of educational
technology IMHO.

However, as the recent discussion of "scaffolding" and Papert shows,
there remains a lot of value in having another human being around to
provide scaffolding and mentoring (even if it happens indirectly or
subtly). And people on this list have made clear how writing a good
tutorial requires special skill and much effort, and that is independent
of whether you force people to use that tutorial at any point in time.
So, both those things suggest the value of the *educator* even if one
can (and I think should) have disagreements with the authoritarian
*process* most educators in our society find themselves embedded if they
are in a school environment or supporting one somehow.

Basically, as I see it, there is a (peaceful) educational revolution
going on right now around the world, see for example:
  http://www.educationrevolution.org/
http://www.greenmoneyjournal.com/article.mpl?newsletterid=21&articleid=195
related to "learner-centered approaches to education". It is difficult
to discuss "Python in education" or "Computer programing for everyone"
in any *meaningful* terms without the context of this ongoing
educational revolution towards learned-centered solutions. Those ideals
in turn guide the development of related techniques -- supporting
learning on demand, learning by playing with a simulation, or learning
by doing or construction or programming. This change in many is just a
return to how learning used to be done hundreds of years ago either in a
neighborhood or apprenticeship context.

Essentially, what seems to me to be proposed here is making edusig a
discussion group for "How or why to use Python (as is) for use in the
standard K-12 classroom to meet narrowly defined instructional
objectives?". The short answer to that implicit question is, as Kirby
implies, that there is essentially no role for Python in the standard
mainstream K-12 classroom (I'd frame it as it's simply too dangerous a
concept :-). Or, as someone else suggests, the other answer to that
implicit question is, learn "Java" if you want a strategic plan because
you can use it to get A.P. credit and save money in college. But those
are not good answers for people who want kids to be empowered, since the
mainstream classroom is mostly not about empowering kids, just like Java
(unlike Python or other dynamic languages like Smalltalk or Lisp or
Ruby) is mostly not about empowering programmers.

Still, I could essentially see Guido's point, because some conventional
school staff who otherwise like Python may face issues posting to a list
talking about the future of education (which may appear to threaten
their job), so perhaps ultimately a solution would be to have one list
for "python in mainstream education" and another list for "python for
alternative or future education".

--Paul Fernhout
"There is a time and place for dissent, but the time is never now, and
the place is never here."

Andrew Harrington wrote:
> On the focus of this list:  certainly Python education (even if it does 
> get contentious -- there are strong opinions on all sorts of things).
> Certainly I am not looking for big large educational politics centered 
> discussions, but I am a bit concerned about the strength of the reaction 
> and going too far.
> 
> Politics do influence people's mindsets, and hence what they suggest 
> specifically about teaching Python.  People make suggests about teaching 
> Python that I take with more or less of a grain of salt depending on 
> where I judge they are coming from.  I would not like to lose the 
> context from which people speak.  There is always a matter of degree.  
> Explicitly self-identified influences, with links to a site that would 
> give more information to the interested about the influence certainly 
> sound fine and useful to me.  This extends to one-line links to most 
> anything that might be tangentially of interest to our audience, not 
> just politics.  Producing a whole page in our list that could better 
> appear on a politics site is completely different and I would prefer not 
> to be skimming over it, trying to find the end of the theme.

From annaraven at gmail.com  Tue Jul 17 23:25:10 2007
From: annaraven at gmail.com (Anna Ravenscroft)
Date: Tue, 17 Jul 2007 14:25:10 -0700
Subject: [Edu-sig] Politics and Python in Education (was Re: Python in
	Secondary Schools)
Message-ID: 

On 7/17/07, Paul D. Fernhout  wrote:

> Essentially, what seems to me to be proposed here is making edusig a
> discussion group for "How or why to use Python (as is) for use in the
> standard K-12 classroom to meet narrowly defined instructional
> objectives?".

I'd expand that to: "how or why to use Python in standard k-12 and
college classrooms"

> The short answer to that implicit question is, as Kirby
> implies, that there is essentially no role for Python in the standard
> mainstream K-12 classroom (I'd frame it as it's simply too dangerous a
> concept :-). Or, as someone else suggests, the other answer to that
> implicit question is, learn "Java" if you want a strategic plan because
> you can use it to get A.P. credit and save money in college. But those
> are not good answers for people who want kids to be empowered, since the
> mainstream classroom is mostly not about empowering kids, just like Java
> (unlike Python or other dynamic languages like Smalltalk or Lisp or
> Ruby) is mostly not about empowering programmers.

Kirby has one answer to whether it's possible. Other people have other
answers. This isn't the place to get long discussions about it over
and over and over and over again. Some of us are tired of hearing
about it in nearly every thread. (It's one of the reasons I've not
bothered reading edu-sig in months - I don't have time for the
extraneous stuph.)

I loved the recent threads on scaffolding and on what are appropriate
questions and expectations for students who've had a certain amount of
python. I would have hated to see them hijacked into political
threads.

> Still, I could essentially see Guido's point, because some conventional
> school staff who otherwise like Python may face issues posting to a list
> talking about the future of education (which may appear to threaten
> their job), so perhaps ultimately a solution would be to have one list
> for "python in mainstream education" and another list for "python for
> alternative or future education".

Or how about one list on "educational politics" and one on python in
education. Oh wait - there ARE already lists on educational
politics... how about those who want to discuss that, go to those
lists and discuss it there?! And use this list to specifically discuss
python in education?

At least could we agree to properly lable/relable any threads or
tangents as [POLITICS] so those who want to discuss the nittygritty
how-to can filter out the political stuph? And those interested in the
political stuff can agree to NOT interpose it into threads that aren't
about that?

-- 
cordially,
Anna
--
It is fate, but call it Italy if it pleases you, Vicar!

From andre.roberge at gmail.com  Tue Jul 17 23:29:21 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Tue, 17 Jul 2007 18:29:21 -0300
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <469D2974.3070408@kurtz-fernhout.com>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
	<469CD826.6000508@canterburyschool.org> <469D1439.2090003@luc.edu>
	<469D2974.3070408@kurtz-fernhout.com>
Message-ID: <7528bcdd0707171429p5647da2bga50c18dafb6355e3@mail.gmail.com>

On 7/17/07, Paul D. Fernhout  wrote:
> I mostly agree with Andrew.
>

Interesting, seeing that, as I can understand it, Andrew was
mentioning how it was important that context from which people speak
be present in their discussion about "teaching Python."

So, if I can extract from what you wrote what seems to be the link
about "teaching Python" in your post (excluding the reference to
Kirby's teaching - he can describe it better than anyone else).

> It is difficult
> to discuss "Python in education" or "Computer programing for everyone"
> in any *meaningful* terms without the context of this ongoing
> educational revolution towards learned-centered solutions.

Really? Well, the question I have then is: "what proportion of the
discussion(s) should be devoted to Python in education and what
proportion to this education revolution?".

For my preference, on edu-sig ... I'd say at least 80% to the former.
I'm sure there are plenty of discussion forums where the latter could
be given a much greater emphasis.

>
> Essentially, what seems to me to be proposed here is making edusig a
> discussion group for "How or why to use Python (as is) for use in the
> standard K-12 classroom to meet narrowly defined instructional
> objectives?".

That's not how I see it.  It could be at the University level, or in a
home schooling environment, or in country with poorly developed
educational system - with the possibilities afforded by the olpc
project.   However, the focus imo should not be on the environment in
which Python is taught but on what is being taught, the approach and
examples being used, the software tools demonstrated, the hardware
used, etc.

Give us concrete examples of approaches that follows modern learner
centered teaching approaches if you wish, not simply links to papers
unrelated to Python about such approaches.

>
> Still, I could essentially see Guido's point, because some conventional
> school staff who otherwise like Python may face issues posting to a list
> talking about the future of education (which may appear to threaten
> their job)

The future of education in *your* country is not necessarily the same
in all countries. I'm interested in tools and approaches for teaching
Python.  This is why I read this list - and occasionally post to it.

Andr?

From guido at python.org  Tue Jul 17 23:36:32 2007
From: guido at python.org (Guido van Rossum)
Date: Tue, 17 Jul 2007 14:36:32 -0700
Subject: [Edu-sig] Politics and Python in Education (was Re: Python in
	Secondary Schools)
In-Reply-To: 
References: 
Message-ID: 

On 7/17/07, Anna Ravenscroft  wrote:
> At least could we agree to properly lable/relable any threads or
> tangents as [POLITICS] so those who want to discuss the nittygritty
> how-to can filter out the political stuph? And those interested in the
> political stuff can agree to NOT interpose it into threads that aren't
> about that?

That won't help enough. There are plenty of other places where you can
post political opinions. There's only one place to discuss the
teaching of Python. Please keep the politics out.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)

From guido at python.org  Tue Jul 17 23:38:15 2007
From: guido at python.org (Guido van Rossum)
Date: Tue, 17 Jul 2007 14:38:15 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: <7528bcdd0707171429p5647da2bga50c18dafb6355e3@mail.gmail.com>
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
	<469CD826.6000508@canterburyschool.org> <469D1439.2090003@luc.edu>
	<469D2974.3070408@kurtz-fernhout.com>
	<7528bcdd0707171429p5647da2bga50c18dafb6355e3@mail.gmail.com>
Message-ID: 

And here we go again with the political discussions. Regardless of
whether we agree or disagree on politics, lets agree on its
definition, and on keeping it out of the list altogether.

--Guido

On 7/17/07, Andre Roberge  wrote:
> On 7/17/07, Paul D. Fernhout  wrote:
> > I mostly agree with Andrew.
> >
>
> Interesting, seeing that, as I can understand it, Andrew was
> mentioning how it was important that context from which people speak
> be present in their discussion about "teaching Python."
>
> So, if I can extract from what you wrote what seems to be the link
> about "teaching Python" in your post (excluding the reference to
> Kirby's teaching - he can describe it better than anyone else).
>
> > It is difficult
> > to discuss "Python in education" or "Computer programing for everyone"
> > in any *meaningful* terms without the context of this ongoing
> > educational revolution towards learned-centered solutions.
>
> Really? Well, the question I have then is: "what proportion of the
> discussion(s) should be devoted to Python in education and what
> proportion to this education revolution?".
>
> For my preference, on edu-sig ... I'd say at least 80% to the former.
> I'm sure there are plenty of discussion forums where the latter could
> be given a much greater emphasis.
>
> >
> > Essentially, what seems to me to be proposed here is making edusig a
> > discussion group for "How or why to use Python (as is) for use in the
> > standard K-12 classroom to meet narrowly defined instructional
> > objectives?".
>
> That's not how I see it.  It could be at the University level, or in a
> home schooling environment, or in country with poorly developed
> educational system - with the possibilities afforded by the olpc
> project.   However, the focus imo should not be on the environment in
> which Python is taught but on what is being taught, the approach and
> examples being used, the software tools demonstrated, the hardware
> used, etc.
>
> Give us concrete examples of approaches that follows modern learner
> centered teaching approaches if you wish, not simply links to papers
> unrelated to Python about such approaches.
>
> >
> > Still, I could essentially see Guido's point, because some conventional
> > school staff who otherwise like Python may face issues posting to a list
> > talking about the future of education (which may appear to threaten
> > their job)
>
> The future of education in *your* country is not necessarily the same
> in all countries. I'm interested in tools and approaches for teaching
> Python.  This is why I read this list - and occasionally post to it.
>
> 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 andre.roberge at gmail.com  Wed Jul 18 00:08:42 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Tue, 17 Jul 2007 19:08:42 -0300
Subject: [Edu-sig] Simple example involving threads and infinite loops.
Message-ID: <7528bcdd0707171508o255c659ap1a4a810078b60de5@mail.gmail.com>

For those that happen to have downloaded Crunchy (version 0.9x), I
have posted a very simple example[1] that illustrate some properties
of threads, and possible interactions between them.

http://crunchypython.blogspot.com/2007/07/unending-loops-and-magic-of-threads.html

The idea of threads is something that should be accessible to anyone
familiar with using a computer.  However, I can not think of a simpler
example in any Python environment to demonstrate
1. How threads can allow different parts of a program to work
independently - in this case, two different Python interpreters.
2. How interactions between threads make certain things (like breaking
of an infinite loop) possible which would not be using a single
thread.

Of course, the user has to take the teacher's word (or mine) for it
when it is stated that the two Python interpreters are running in
separate threads.

Andr?

[1]... and, as is often the case, this example has uncovered a "small"
bug with Crunchy which you might get to see...

From andre.roberge at gmail.com  Wed Jul 18 00:13:59 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Tue, 17 Jul 2007 19:13:59 -0300
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
	<469CD826.6000508@canterburyschool.org> <469D1439.2090003@luc.edu>
	<469D2974.3070408@kurtz-fernhout.com>
	<7528bcdd0707171429p5647da2bga50c18dafb6355e3@mail.gmail.com>
	
Message-ID: <7528bcdd0707171513j500ee1bapf60572c504bea9a4@mail.gmail.com>

On 7/17/07, Guido van Rossum  wrote:
> And here we go again with the political discussions. Regardless of
> whether we agree or disagree on politics, lets agree on its
> definition, and on keeping it out of the list altogether.
>
> --Guido
>
My apology.  I wanted to mention explicitly that concrete examples
were what I thought this list should be in large parts about, before
starting a new thread (no pun intended) with such an example - however
weak.

Andr?

From kirby.urner at gmail.com  Wed Jul 18 00:48:27 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 17 Jul 2007 15:48:27 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
Message-ID: 

On 7/17/07, Guido van Rossum  wrote:
> On 7/16/07, kirby urner  wrote:
> > Yet I got fan mail as well.
> >
> > I trust others on this list to give Sven the sound sober advice
> > he's looking for.   I specialize in various brands of polemics --
> > not to the exclusion of technical content though.
>
> But do polemics have a place on a list dedicated to promoting *Python*
> in education? The list name is meant to be edu-sig at python.org, not
> mere edu-sig -- it's not about education(al politics) in general.

Understood.

That same posting went to the Math Forum (Sven's email redacted,
but edu-sig is world-readable), where it received some sober replies
(a subscriber in Alaska dove head first into Python).

That's where more hard work of the Math Wars is really going on (I kept
trying to recruit Arthur, we could have used his insightfulness).

So here's this guy in Belgium teaching informatics and math, and
racking his brains for informatics examples that *aren't* at all that
math flavored.  Sounds all too familiar, no?

When I look back from CP4E being a success, I have to ask:  how did
we get here?  Obvious answer:  we didn't simply surrender to champions
of the status quo curricula.  We needed (and presumably got) some new
flavors.

Plus, if history is any guide, new flavors will arise.  The question is not
"will change occur?" but "which changes will the Python community
champion?"

Just OLPC?  But what about the E in CP4E?

I see that E as making OLPC a *subset* (albiet an important one) of
a much bigger effort (one that joins energies with other open source
communities in a positive, constructive way (not:  we are the only best
first language, we will kill you)).

Anyway, for the next weeks, I'll will go back to simply describing how
I teach Python in the field, which is what I did today, and about OSCON,
where CP4E is my topic (and the Ubuntu conference, if there's much
Pythonic and educationally significant that I learn).

And as usual, I'll do more in my blogs than here, to spell it all out in great
detail.

Anyway, let's see what others bring up, in terms of how CP4E became a
reality. I'm not the only talented spin doctor among us.

Kirby

>
> I am seeing signals that there's been too much politics and not enough
> Python or education on this list. While discussion of educational
> politics is a worthy cause, I want to present a strawman that excludes
> its discussion on this list. I have seem more than one mailing list go
> up in flames over education politics -- understandably a touchy issue
> so perhaps best discussed elsewhere. I have also seen lists saved by a
> strict rule forbidding such destructive topics (enforced by a
> moderator reminding posters and readers of this rule when the topic is
> accidentally brought up again).
>
> --
> --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  Wed Jul 18 00:58:22 2007
From: guido at python.org (Guido van Rossum)
Date: Tue, 17 Jul 2007 15:58:22 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
	
Message-ID: 

On 7/17/07, kirby urner  wrote:
> The question is not
> "will change occur?" but "which changes will the Python community
> champion?"

Why does the Python community need to champion anything? Let
individuals champion what they want. The Python community as a whole
is way too diverse to champion any particular thing. While Python is
open source, Python doesn't take a position on the superiority of open
source. Open source happens to have been expedient for Python's
proliferation. Your mileage may vary. We're not the FSF.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)

From kirby.urner at gmail.com  Wed Jul 18 01:18:47 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 17 Jul 2007 16:18:47 -0700
Subject: [Edu-sig] Session One: Pythonic Math sa: 8144
Message-ID: 

So this was the first of four sessions, each 3.5 hours long.

This is the curriculum module for "algebra only" kids I summarize in my
CP4E slides for Vilnius:  MVC paradigm, using string.Template, with
two maybe three Views out the back (Python the Controller, standard
vector math for the Model):  POV-Ray and VPython, with X3D if we have
time.

Since I'd just returned from Vilnius, I spent some time briefing 'em on
the conference itself, with Saturday Academy's blessings and
encouragement.

That meant showing Flickr slides of the venue, as well as my CP4E talk
itself, with much of the time on the __rib__ syntax slides, as we'd already
started our Tk-based Python shell session as follows (after the intial
history lecture):

(1)  first ** for exponentiation, explaining how ^ is what many languages
use (kudos to the student who guessed we'd use ^ -- I constantly poll
the class with questions, elicit lots of participation).

Then:  2**100000.  Not every calculator can do that!

(2)  then, after a little dinking with "Python the calculator on steroids",
we go:

>>> dir(__builtins__)  #   car engine, but how does it work, what does it do?

 [discussion]

>>> dir(1)  # any integer -- it's the *type* that matters

 [more discussion]

>>> dir('cat')  # str type
>>> dir([])  # getting in to more data structures
>>> dir({})  # one of the most important ones

Pause for them just to play around in discovery learning mode, with
lists and dictionaries, while I struggled to solve the projector puzzle
(it's another new room, lots of good equipment, but no remote for
the ceiling mounted projector -- solution:  stand on a chair).

Now, with Ubuntu running (Beryl for session manager -- a student
clued me how to boot Beryl, after the boot process decided not to,
given feedback from the projector (the one other Ubuntu user in
the room, far as I could discern)).

I then reviewed:

(a) interactively reconfiguring IDLE (we'd done alittle already,
converting to shell mode boot up vs. the text editor default
set by the Vpython installer),

(b) then played and projected in earnest re those data structures,
talking most especially about lists today, as in mylist.append,
mylist.pop and indexing (zero-based).

Then, in response to a student question, I did a somewhat
detailed account of:

(c) import random and using randint as an example of what's
going to be central in Python:  importing, from the Standard
Library, from 3rd parties with different release cycles.

More on lists and dictionaries tomorrow, and probably every day
(I talked a lot about the difference between recall and recognition
learning, which they well understood).

Finally, after all this hard work, it was time to reiterate the overall
structure of the class (MVC with various Views), then kick back to
watch 'Code Guardian' (about 10 minutes?) by Marco Spitoni (c) 2007.

We'll do 'Warriors of the Net' tomorrow.

One point of showing 'Code Guardian' is it's an example of render-time
movie making, versus runtime game making (the latter a big focus at
Europython I discovered, somewhat to my surprise -- Argentina stands
out in this regard).

RenderTime versus RunTime is a big theme of this course.

See Aug 2006 SciAm for more on their possible future convergence
(with RPUs instead of just GPUs for hardware).

I had them test boot POV-Ray in anticipation of tomorrow, close
everything, logout.

Class dismissed!

Looks like we're ready to roll.  More tomorrow then.

Kirby

From kirby.urner at gmail.com  Wed Jul 18 01:39:11 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 17 Jul 2007 16:39:11 -0700
Subject: [Edu-sig] Simple example involving threads and infinite loops.
In-Reply-To: <7528bcdd0707171508o255c659ap1a4a810078b60de5@mail.gmail.com>
References: <7528bcdd0707171508o255c659ap1a4a810078b60de5@mail.gmail.com>
Message-ID: 

> 2. How interactions between threads make certain things (like breaking
> of an infinite loop) possible which would not be using a single
> thread.

This reminds me to add that we looked at the infinite loop in my
Python slides regarding icosahedral numbers.

I reinforce how the "while True" construct, with no opportunities
for breaking out, might be an OK construct where *generators*
are concerned.

As teachers, we need to dilute some of that prejudice against
'while true' loops, lest we unwittingly pass it on to new talent.

Kirby

From kirby.urner at gmail.com  Wed Jul 18 01:47:14 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 17 Jul 2007 16:47:14 -0700
Subject: [Edu-sig] Politics and Python in Education (was Re: Python in
	Secondary Schools)
In-Reply-To: 
References: 
	
Message-ID: 

> That won't help enough. There are plenty of other places where you can
> post political opinions. There's only one place to discuss the
> teaching of Python. Please keep the politics out.
>
> --
> --Guido van Rossum (home page: http://www.python.org/~guido/)

I've promised Guido to reserve my more philosophical content for
other venues at least for awhile (no fair if others keep it political but
say I can't play too!).

I will filter my edu-sig content to be less philosophical.  Maybe other
of my channels will need to become more load-bearing (like my blogs,
as Guido suggested), but that's not of core concern to this list.

Kirby

From andre.roberge at gmail.com  Wed Jul 18 01:48:25 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Tue, 17 Jul 2007 20:48:25 -0300
Subject: [Edu-sig] Simple example involving threads and infinite loops.
In-Reply-To: 
References: <7528bcdd0707171508o255c659ap1a4a810078b60de5@mail.gmail.com>
	
Message-ID: <7528bcdd0707171648m14fbf415ybb136e1a80957d15@mail.gmail.com>

On 7/17/07, kirby urner  wrote:
> > 2. How interactions between threads make certain things (like breaking
> > of an infinite loop) possible which would not be using a single
> > thread.
>
> This reminds me to add that we looked at the infinite loop in my
> Python slides regarding icosahedral numbers.
>
> I reinforce how the "while True" construct, with no opportunities
> for breaking out, might be an OK construct where *generators*
> are concerned.

Or web servers! ;-)

(Then again, it's always useful to think of having the possibility of
ending a program gracefully, rather than having to use the power off
button...)

Andr?

>
> As teachers, we need to dilute some of that prejudice against
> 'while true' loops, lest we unwittingly pass it on to new talent.
>
> Kirby
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>

From kirby.urner at gmail.com  Wed Jul 18 01:52:35 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 17 Jul 2007 16:52:35 -0700
Subject: [Edu-sig] Simple example involving threads and infinite loops.
In-Reply-To: <7528bcdd0707171648m14fbf415ybb136e1a80957d15@mail.gmail.com>
References: <7528bcdd0707171508o255c659ap1a4a810078b60de5@mail.gmail.com>
	
	<7528bcdd0707171648m14fbf415ybb136e1a80957d15@mail.gmail.com>
Message-ID: 

> > I reinforce how the "while True" construct, with no opportunities
> > for breaking out, might be an OK construct where *generators*
> > are concerned.
>
> Or web servers! ;-)
>

Yeah, very true.  Daemons of all kinds are like infinite loops, connected
to Windows TSRs and services in this article:
http://en.wikipedia.org/wiki/Daemon_(computer_software)

> (Then again, it's always useful to think of having the possibility of
> ending a program gracefully, rather than having to use the power off
> button...)
>
> Andr?

What's cool about a generator is it stops execution at the yield, so
there's no penalty for not writing exit code.

A generator gets garbage collected just like any other object, without
needing to be explicitly halted or paused.

Kirby

From kirby.urner at gmail.com  Wed Jul 18 02:00:08 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 17 Jul 2007 17:00:08 -0700
Subject: [Edu-sig] Python in Secondary Schools
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>
	
	
	
	
	
	
Message-ID: 

On 7/17/07, Guido van Rossum  wrote:

> Why does the Python community need to champion anything? Let
> individuals champion what they want. The Python community as a whole
> is way too diverse to champion any particular thing. While Python is
> open source, Python doesn't take a position on the superiority of open
> source. Open source happens to have been expedient for Python's
> proliferation. Your mileage may vary. We're not the FSF.
>



Doesn't need to, but could fly the CP4E and/or OLPC banners
if it wanted.

How exactly that looked on the ground would vary from individual
to individual, but it is possible to get community support for certain
initiatives having to do with the core good or service (in this case
Python) and it's potential role in society (in this case education).

Anyway, possible doesn't mean required, I agree.



I've agreed to keep such meta-discussions off of edu-sig.

That'll have to do as my last such comment for the time being
(in this particular venue).

Kirby

From pdfernhout at kurtz-fernhout.com  Wed Jul 18 03:43:34 2007
From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout)
Date: Tue, 17 Jul 2007 21:43:34 -0400
Subject: [Edu-sig] Python in Secondary Schools (politics of installing
 Python & edit and continue)
In-Reply-To: 
References: <543116060707121921q75c4c820y3aa031fd07944790@mail.gmail.com>			
	
Message-ID: <469D7046.4050301@kurtz-fernhout.com>

For some specific examples of how educational politics are effecting
Python, see below .

Anna Ravenscroft wrote:
> as a parent, I agree with Kirby about the education system in this
> country. Kirby, I suggest you join one of the many lists/groups on the
> topic, including mathematicallycorrect.org and others. Save your
> polemics for that community.

Looks like that site you reference may have disappeared. It now seems to
be a parked site hawking links to conventional mathematics teaching
stuff.  Here is an old version from 2001:
http://web.archive.org/web/20010603024048/http://www.mathematicallycorrect.org/

That old page links to this other site "www.mathematicallysane.com",
which might be of similar interest:
  http://www.mathematicallysane.com
"Join us  to stay current with the latest information about mathematics
education reform. Over 2,000 people have already joined!"

It links to this essay on "The Goals of Mathematical Education" by
George Polya (an expert on methods for solving problems)
  http://en.wikipedia.org/wiki/George_P%C3%B3lya
from around 1969 (so, almost forty years ago):
  http://www.mathematicallysane.com/analysis/polya.asp
"Therefore the schools, especially the primary schools, are today in an
evolution. A sizable fraction, ten to twenty percent, already have the
new method of teaching which can be characterized in the following way
in comparison with the old method of teaching. The old method is
authoritative and teacher-centered. The new method is permissive and
student-centered. In the old time the teacher was in the center of the
class or in front of the class. Everybody looked at him and what he
said. Today the individual students should be in the center of the
class, and they should be allowed to do whatever good idea comes to
their mind. They should be allowed to pursue it in their own way, each
by himself or in small groups. If a student has a good idea in class
discussion then the teacher changes his plans and enters into the good
idea and now the class follows this idea."
Two schools where kids learn like that:
  http://www.albanyfreeschool.com/
  http://www.sudval.org/

There you have the core of what is still the *political* problem posed
by educational technology (including Python in the classroom). Is it to
be "authoritative and teacher-centered" (and to reflect a similar
society) or is it to be "permissive and student-centered" (and also
reflect such an alternative society)? Or is it to be some
hierarchy/meshwork hybrid of both approaches (and reflect a hybrid
society)? From Manuel de Landa's writings:
  http://t0.or.at/delanda/meshwork.htm
"Indeed, one must resist the temptation to make hierarchies into
villains and meshworks into heroes, not only because, as I said, they
are constantly turning into one another, but because in real life we
find only mixtures and hybrids, and the properties of these cannot be
established through theory alone but demand concrete experimentation."

Finding our way to some balance of hierarchy and meshwork is the
political problem of our age, and educators are smack in the middle of
it, even when they choose to do something seemingly innocent like to
install Python on their computer instead of teach AP Java. With all due
respect to Guido for his programming and project management and other
skills, somebody like Kirby lives his professional life in the
educational trenches (or alternatively, now helping people get out of
them for a day or a week at a time). I have a relative who teaches K-12;
her school district made her sign an agreement a few years back
acknowledging that despite her other employment protections she could be
fired if she installed *any* software on her classroom computer. That is
what it is like in those trenches even for many teachers -- it's often
crazy-making. What's the point of having a computer in your classroom if
you can't install free software on it which might be of interest to the
class (like Python itself or even just other Python-based software)?
What does this say about the culture of the classroom or even the
expectations of the community in relation to the legal and technical
literacy of teachers? And then what's the point of even discussing
Python in secondary schools if no one can use it there for short-sighted
legal or doctrinal reasons? Policies like that are one reason the web is
playing such a big role in schools, including Java and Flash applets.
How can one plot out future directions in education for Python unless
one takes stock of where such policies are driving classrooms? Yet does
discussion here of education in the classroom emphasize Jython (which
could produce Java applets and so be usable by my relative)? Or some
sort of platform to produce Flash applets from Python somehow (which
also might be usable by my relative)? Not really. Although "Crunchy Frog"
 http://crunchy.sourceforge.net/
might help in that direction (but ignoring the fact most schools won't
install and maintain their own server for similar reasons to why they
won't install Python as a desktop app).

That's one reason why I think Python at home (in homeschooling or
unschooling) situations is a much more fruitful direction for discussing
Python in education in some ways -- since at least people can install
Python at home on their own computers. One of the problem with mailing
lists is they become self-selecting; one is not going to see people like
my relative or educators like her on this list because what is the point
of talking about Python in school if she would get fired for installing
it? One will mainly see people on this list who have likely never
experienced such situations (and I'd guess that is the minority, but I
am not sure).

On another practical note, here we have the OLPC project saying:
   http://lwn.net/Articles/240536/
"One important feature where we have made little progress is the View
Source key."
My reading between the lines is that essentially Python is failing )OLPC
in some ways because they can't easily make the "view source" key work
right because Python does not support "Edit and continue". Is that an
example of an "authoritative and teacher-centered" bias that has perhaps
crept unnoticed into Python's C code over the years? Or is it just
perhaps from an implicit assumption that software mostly has
authoritative authors and is not malleable by the end user (i.e.
"everybody")? Clearly Python in practice for professional users relying
on open source and free packages and using a good editor is not like
that; Python software is often very open ended and flexible (even if the
lack of easy "Edit and continue" reduces productivity). But likely here
we are perhaps seeing an unrecognized political bias -- a bias of
emphasis or a bias of history, but a bias none-the-less. Squeak, Ruby,
Visual Basic, and many other languages by now can all do this "edit and
continue" thing. Even TCL/TK is getting Smalltalk-like IDE features with
"editing of a running system", see for example:
  "XotclIDE"
  http://wiki.tcl.tk/2131

Python is otherwise a fantastically flexible language, but for some
reason can't do this "edit and continue" thing very well or very easily.
That is extremely surprising, as, say, Smalltalk has indexed instance
variable fields and needs to do all sorts of back flips when you change
some code defining a class, whereas Python essentially has more easily
malleable dictionaries as the common representation for objects
requiring no recompiling when, say, you delete an instance variable.

If we shouldn't talk about a bias like that here, a bias fundamental to
the appropriateness of Python in the "permissive and student-centered"
educational setting of the future (according to a famous mathematician
in the 1960s), then perhaps the word "future" should just be deleted
from Edusig's mission statement:
http://www.python.org/community/sigs/current/edu-sig/
"Edu-sig provides an informal venue for comparing notes and discussing
future possibilities for Python in education."

Of course, even if we were to do that, the future has a way of rapidly
becoming the past, as for example, thousands of OLPC laptops are now
already in people's hands with non-functional view source keys. And the
OLPC project in some ways is driven by a diverse vision of empowering
children worldwide to learn in all sorts of ways, individually, in
meshworks, from the somewhat chaotic web, and also even in
hierarchically organized schools. So, with OLPC, all the issues about
Python empowering kids to construct their own programs and modify
existing ones are current issues -- and rapidly becoming historic
problems worldwide -- but Python is (so far) apparently failing to meet
important parts of that educational challenge.

Politics is ultimately about *priorities* (what they are, who sets them,
who gets the benefits, who pays the costs). The fact that "Edit and
continue" is not standard in Python and IDLE is in that sense a very
*political* decision reflecting priorities of the major players in the
Python community (including the ones in the Python Software Foundation).
And that is always what politics is all about -- different people
clambering for different priorities -- whether it is where a dam gets
built in China, what is on a US state's curriculum for mathematics or
history, or even perhaps what new features get added to Python sooner
rather than later. Perhaps the best one can do sometimes is just keep it
civil. As much as we might like to think playing around writing software
is always positive or at least value neutral, I feel it misleading to
imagine one can have any significant discussion of technological change
(especially in education) without considering political implications:
http://www.google.com/search?hl=en&q=%22political+implications+of+technology%22

Consider, from a review of _Disciplined Minds_, to see where *not*
considering politics of education gets us:
http://www.amazon.com/Disciplined-Minds-Critical-Professionals-Soul-Battering/dp/0742516857
Or from a review of that book:
  http://louisville.edu/journal/workplace/martinreview.html
"There are two key ideological processes in professional education,
according to Schmidt. One is favoring students who pick up the point of
view of their superiors, behavior Schmidt calls "ideological
discipline." The other is favoring students who direct their curiosity
as requested by others, a trait Schmidt delightfully dubs "assignable
curiosity." For example, the teacher sets the class an assignment, say
on symbolism in a novel. It doesn't matter so much whether the novel is
by Austen or Gordimer. The question is whether the students will do as
they are told. "Good" students will undertake the assigned task
conscientiously, perhaps even going beyond what the teacher expected --
but in a way that pleases the teacher. "Difficult" students may do
something different, refusing to accept the task as given. No prizes for
guessing which students get encouragement and rewards. The same dynamic
applies when it comes to qualifying examinations, well known to anyone
undertaking a PhD. To be sure of passing, students knuckle down to learn
what is expected, for example by studying past exam papers and reading
all the assigned books. Any students who instead follow their own
interests by only studying things that intrigue them personally are
risking their professional future. A few of such independently minded
students get through the exams, but most of those who pass have played
it safe. They have learned to acquiesce intellectually. They are ready
for life as a professional who will not step outside the bounds set by
those with power. Schmidt says that "professional education and
employment push people to accept a role in which they do not make a
significant difference, a politically subordinate role." (p. 2). "

I think it critical to use Python (and computers in general) to achieve
other goals than just those same old ones of filtering for "assignable
curiosity" and "ideological discipline". Why bother with new technology
and new ways of doing things otherwise? And further, if that is the way
things are slowly changing since the 1960s (to more permissiveness and
student-centered learning), why not design our software to support more
individualized learning and individualized customization at a rapid pace
(like via "edit and continue")?

I for one would happily make Guido a deal -- if he ensures "edit and
continue" is added to Python plus IDLE in a great way (equivalent to
Ruby or Smalltalk's or even, sadly, just VB's) in the next couple of
months, I for one would be happy to promise never to post anything
remotely "political" to the Edusig list again. (It's apparently not a
trivial add-on, otherwise it would have been done by now, or I'd do it
myself; I have made indirect contributions in those directions.) Not
much of a promise for me as without "Edit and continue", over the long
haul, IMHO, other languages will continue to erode Python's mindshare in
education and other areas as these trends towards "permissive and
student-centered" continue to accelerate in an exponential way (and
otherwise I myself wouldn't be evaluating stuff like XotclIDE for
TCL/TK). Not much of an offer, but maybe something extra to throw into
the pot to perhaps help motivate Guido to make "edit and continue" a
priority. :-)

Of course, I'd abide by any group decision not to do that anyway. And
that seems to be the way things are tending. So be it; I will reassign
edusig in my mind from:
  edusig == "python-as-it-might-be, for education-as-it-is-becoming"
to:
  edusig = "python-as-it-is, for school-as-it-was"
Not really a topic that interests me greatly, since I write new
software, and since I think school-as-it-was is a dinosaur and often
harmful to kids, see for example:
  http://www.newciv.org/whole/schoolteacher.txt
so probably time to move on for now.

--Paul Fernhout

From andre.roberge at gmail.com  Wed Jul 18 14:41:41 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Wed, 18 Jul 2007 09:41:41 -0300
Subject: [Edu-sig] Simple example involving threads and infinite loops.
In-Reply-To: <7528bcdd0707171508o255c659ap1a4a810078b60de5@mail.gmail.com>
References: <7528bcdd0707171508o255c659ap1a4a810078b60de5@mail.gmail.com>
Message-ID: <7528bcdd0707180541w49bbd145h29e030cc63e2cd59@mail.gmail.com>

Following some bug hunting, I have written an update on the blog post
mentioned in my previous message.  I think it shows very clearly how
the borg interpreters do indeed share a common state - and how
unexpected result can happen when working with communicating threads
(even those that were supposed to properly use lock and release...).

I'd be interested in getting comments from those that try it out.

Andr?

On 7/17/07, Andre Roberge  wrote:
> For those that happen to have downloaded Crunchy (version 0.9x), I
> have posted a very simple example[1] that illustrate some properties
> of threads, and possible interactions between them.
>
> http://crunchypython.blogspot.com/2007/07/unending-loops-and-magic-of-threads.html
>
> The idea of threads is something that should be accessible to anyone
> familiar with using a computer.  However, I can not think of a simpler
> example in any Python environment to demonstrate
> 1. How threads can allow different parts of a program to work
> independently - in this case, two different Python interpreters.
> 2. How interactions between threads make certain things (like breaking
> of an infinite loop) possible which would not be using a single
> thread.
>
> Of course, the user has to take the teacher's word (or mine) for it
> when it is stated that the two Python interpreters are running in
> separate threads.
>
> Andr?
>
> [1]... and, as is often the case, this example has uncovered a "small"
> bug with Crunchy which you might get to see...
>

From pdfernhout at kurtz-fernhout.com  Wed Jul 18 15:43:41 2007
From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout)
Date: Wed, 18 Jul 2007 09:43:41 -0400
Subject: [Edu-sig] Politics and Python in Education
In-Reply-To: 
References: 
Message-ID: <469E190D.1030607@kurtz-fernhout.com>

Anna Ravenscroft wrote:
>> Still, I could essentially see Guido's point, because some conventional
>> school staff who otherwise like Python may face issues posting to a list
>> talking about the future of education (which may appear to threaten
>> their job), so perhaps ultimately a solution would be to have one list
>> for "python in mainstream education" and another list for "python for
>> alternative or future education".
> 
> Or how about one list on "educational politics" and one on python in
> education. Oh wait - there ARE already lists on educational
> politics... how about those who want to discuss that, go to those
> lists and discuss it there?! And use this list to specifically discuss
> python in education?

I think your analogy (and by extension Guido's strawman proposal) is
flawed, because a key aspect of *design* is to see how values and
priorities (which is the core of "politics") lead to new and interesting
structures for software and content and hardware. In a Python CP4E
context I see this as including any or all of:
* changes to Python itself (e.g. "edit and continue" support in the core
and in IDLE), or
* new libraries for Python (e.g. PataPata), or
* new application based on Python (e.g. constructivist educational
simulations, including perhaps, though he might have disagreed, the late
Arthur Siegel's PyGeo :-), or
  http://pygeo.sourceforge.net/index.html
* new curricula or other smaller educational materials (e.g. the
Shuttleworth Foundation's steps in that direction), or
* even new hardware which is Python-powered (e.g. OLPC, or even Lego
Mindstorms NXT robotics, which I just got two of and was yesterday
looking up references to using Python to program).

To talk about creating such software or hardware or content without a
sense of priorities and values would be analogous to going to an
architect, asking them to design you a custom house and, and then
saying, "well, you're an architect, just design us something, we are
busy people and have no time to talk about values or priorities".
Although I guess even there a clever architect would learn one thing
about such people's values and priorities. :-)

For a personal example, to show these issues are not just talk, consider
the literally person-months I spent building the PataPata experiment
  http://patapata.sourceforge.net/
to bring some Squeak-like constructivist ideas more directly into a
Python-powered IDE, and which I discussed on this list. Maybe not a huge
success, but a big investment of my limited time in the free Python
realm and I learned a few things from it (including the importance of
naming objects if you wished to share them, a departure from the "Self"
prototype programming ideal using unnamed pointers to parent objects).
  http://patapata.sourceforge.net/critique.html
Ultimately, PataPata was of very marginal interest here. Other people
can talk about how Squeak has ideas that might work in Python, but when
things got going, the talk was just talk. Ideally, from my point of
view, people here would have discussed how these priorities and values
of learned-centered technologies such as PataPata was a step towards
could be translated into even more Python-related software, stuff beyond
PataPata and even better. People could go beyond what I reference, and
go beyond my own self critique, and as experienced educators suggest
even better ideas for new technology related to Python (e.g. "the
students are always saying if only we had X Y or Z for Python they'd be
using it so much more for the things they want to do" -- like the
reasons a homeschooled kid chose "DarkBasic" instead of Python, as
mentioned on the Math Forum Kirby posts to).
  http://mathforum.org/kb/message.jspa?messageID=5812048&tstart=0

But that doesn't happen here much, in large part I'd speculate since
most educators here are teachers, and the authoritarian context most
teachers work in is unfortunately very limiting both as to free time and
as to possible horizons, at least in the USA. Again, for example,
consider my relative who could be fired if she installed Python on her
classroom computer, and who would not have enough free time to go
through the bureaucratic hoops to get Python installed district wide,
let alone then have time to learn how to use it).

That all to me is tremendously disappointing, especially as:
  CP4E != CP4MainstreamSchools
in my thinking (even if mainstream schools are part of "Everyone").

It's no big surprise the US military (of all US institutions including
the Department of Education) initially funded CP4E, because, in the USA,
historically the military has had the most difficulties dealing with
lack of education among recruits, see for example:
  http://www.johntaylorgatto.com/chapters/3b.htm
"""Back in 1952 the Army quietly began hiring hundreds of psychologists
to find out how 600,000 high school graduates had successfully faked
illiteracy. Regna Wood sums up the episode this way: "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.""""

Doesn't that sound a bit like future echoes of "Why Johnny Can't Code"?
  http://www.google.com/search?hl=en&q=Why+Johnny+Can%27t+Code
  http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html
  http://news.com.com/Why+Johnny+cant+code/2010-1071_3-5596882.html
  http://developers.slashdot.org/article.pl?sid=06/09/14/0320238
It is another example of how, ironically, the US military is perhaps the
only well supported large institution in the USA who, as with
illiteracy, needs to wrestle with the consequences of US educational
problems on a large scale. Gatto suggests, unlike the military, most of
the other US institutions actually grow in power the more dysfunctional
citizens are, so educational failure isn't a problem for them;
illiterate graduates are paradoxically a great thing for, say, a
department of education's budget -- justifying, in an unexamined way,
more money to do more of the same.

People on this list (including Guido) sound disappointed in me for
talking educational politics, but as I reflect on it, I am disappointed
with people on this list for not helping more directly translate the
values and priorities I reference into even more Python-related options
for the future of most education. That future will IMHO emphasize
learner-centered and learner-customized on-demand activities which
empower the user to do amazing things either alone or as part of amazing
ad hoc groups like a typical open source or free software projects,
including Python. And that disappointment is even keener because I have
little doubt the educators on the edusig list are generally some of the
most progressive ones around (otherwise, people her would be on a Java
list or teaching about using Visual Basic to script Office).

I can acknowledge that to the extent edusig is about being a teachers'
lounge where teachers compare notes about teaching Python to meet
state-defined objectives to pass standardized tests, such discussions
seem off-topic. But as I said before, if that is the concern, Java is
really the answer (in the USA, based on AP credit as someone else
mentioned; granted other countries will differ). Once we wander off that
path of standardization, then lots of issues relating to values and
priorities show up -- especially if, like me, you are interested in
making new things related to Python and education.

--Paul Fernhout

From kirby.urner at gmail.com  Wed Jul 18 16:09:26 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 18 Jul 2007 07:09:26 -0700
Subject: [Edu-sig] sa: 8144: Day Two
Message-ID: 

[

Pursuant to:
http://mybizmo.blogspot.com/2007/07/sa-8144-day-one.html

]

I thought I'd do this one in a more premeditated style, outlining my
lesson plan for the day, then following up later with a brief report
on how I'd deviated from the script, how it all went.  That won't be
right after class, as I need to report for duty at another job in the
early PM, where I've been nominated within a new grant proposal
that just *might* involve MySQL and Python.  We'll know more in
November.

Aside (recalling EuroPython 2007):

I learned a lot about Pylons from that guy from the Ukraine (the
one who uses Mako, hosts a blog site).  Now they're saying
TurboGears is moving to it, along with SQLAlchemy out the
back end (lots of peak interest in the session on Canonical's
Storm, just why SQLAlchemy wasn't "mature enough" for
Canonical -- I protest "innocent bystander" on that one, not
having used either yet (the MySQL keynoter seemed somewhat
amused we're so in to our object-relational mappers these days)).

My aim is to dive into Python as a language, less context and
history, by means of 2-level scaffolding:  stickworks.py, introduced
in the Showmedo series, and polyhedra.py on top of that.  Both
get imported to menu-driven demo mods, so you *could* say
3-level, but I'm going to start in the IDLE shell importing stuff
just from the first two levels (giving you a capable Vector and
Edge, plus some canned data organizing these into familiar
enough wireframes (we already talked Icosahedra on the first day)).

Get used to low level vector arithmetic & graphics against an XYZ
backdrop, in the opening hours.  Pythonic Math features a one
pass approach, straight to vectors per

http://www.4dsolutions.net/ocn/numeracy1.html

By the time we get to viztoyz, povtoyz and x3dtoyz, they'll already
be fluent readers of basic Python grammar, complete with classes,
functions & generators, and data structures.

And this is only Day Two.

But these aren't your usual students:  a self selecting bunch
willing to do something hard in the summer, in a college context,
with some Silicon Forest weirdo named Kirby Urner, just back
from Vilnius ("where's that again?").

Kirby

PS:  up early, with a living room full of kids sleeping, so off to the local
breakfast nook, but it's closed, because we only *pretend* to be working
class in this neighborhood (Richmonders might straggle in from b'fast
around 7 AM earliest -- about now in fact, so time to return).

From lac at openend.se  Wed Jul 18 17:16:09 2007
From: lac at openend.se (Laura Creighton)
Date: Wed, 18 Jul 2007 17:16:09 +0200
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: Message from Jay Bloodworth  of "Sun,
	08 Jul 2007 16:35:17 EDT."
	<1183926917.3369.137.camel@localhost.localdomain> 
References: 
	<004e01c7bf56$a8210f20$0601a8c0@Gandalf> <46901FC4.5060406@luc.edu>
	<003901c7c115$0d69f3f0$0601a8c0@Gandalf>
	
	<000801c7c176$a3599fd0$0601a8c0@Gandalf>
	<1183923444.3369.89.camel@localhost.localdomain>
	<200707081946.l68Jknuj012600@theraft.openend.se>
	<1183926917.3369.137.camel@localhost.localdomain> 
Message-ID: <200707181516.l6IFG90a004176@theraft.openend.se>


Late: I have been busy with Europthon

In a message of Sun, 08 Jul 2007 16:35:17 EDT, Jay Bloodworth writes:
>On Sun, 2007-07-08 at 21:46 +0200, Laura Creighton wrote:
>> 
>> Do you have many students who are good at geometry and still rotten
>> at algebra?  Also what do they say when you ask them 'what don't
>> you understand here?'
>
>
>I wouldn't say rotten, but it's not unusual to have students who do
>significantly better in geometry than algebra.  Again, it could just be
>a year of brain maturity that makes that so.

I'm curious about this.  I don't think I have ever heard about
'brain maturity' -- except in terms of 'reading readiness'.  So
I have always assumed that if a student was having a really dreadful
time learning something, and if it wasn't as a result of having an
eidic memory, or a learning disability or some other unique way of
experiencing the world, then it was most likely due to lack of
relevant pre-requisite experience.

And in my case, I built up a model where experience in Geometry is
a prerequisite for learning Algebra, which I why I think that one
ought to teach Geometry first.  Of course, other people may have
different ways of teaching Algebra which doesn't depend on a background
in Geometry.  I'd be really interested in seeing such lesson plans.

One hard thing, of course, is to tell whether your students really
have no relevant experience in Geometry -- or whether that is the
sort of stuff that they have picked up, on their own, simply as part
of being in the world.

>"What don't you understand?"  Usually if a kid can answer that they
>don't have a problem:
>
>Ex: 2x + 3y + 5x = 7x + 3y
>
>Kid 1:
>"Why don't you understand?"
>"Where did the 7x come from?"
>"From combining like terms.  I added 2x and 5x."
>"What are like terms?"
>"Terms with the same variables to the same powers.  2x and 5x both have
>x to the first power and no other variables."

Aha.  I go after this differently.

I give you 2 oranges + 3 apples + 7 oranges.
How many oranges do you have?

If that doesn't work, try MONEY.

It is amazing how many children I know who have problems keeping track of
apples and oranges but have no problem with 20, 50, and 100 Kronor notes.

Long before we start talking about 'variables' and 'powers' and the
like -- which is all part of the 'notationally true' world, we need to
nail down the absolute truths about addition that the order in which
you add terms does not matter.  Which we can then formulate as LAWS
about addition.

And we have to show that this is different from subtraction, where
the order matters, very, very much.  

To get _more_ notational truths across, I just have them set the
variables to things that take a lot of writing.

Pretty soon they are sick of writing:
3 refrigerators full of gorrilla food + 12 refrigerators full of
penguin chow + 6 refrigerators full of gorrilla food = 9 refrigerators full
of gorilla food + 12 refrigerators full of penguin chow

and understand perfectly why mathematicians decided they would rather write

3g + 12p + 6g = 9g + 12p

Sometimes python is useful here.  For the die-hards who don't want to
believe that addition is associative:

It works for letters.

>>> 3 * 'g' + 12 * 'p' + 6 * 'g'
'gggppppppppppppgggggg'
>>>

They can go count them.  And then write a program that counts the
number of each letter in a string.

Try it with words:

>>> 3 * 'orange' + 5 * 'apple' + 2 * 'orange'
'orangeorangeorangeappleappleappleappleappleorangeorange'
>>>

Writing that program is more interesting.

>versus
>
>Kid 2:
>"Why don't you understand?"
>"I just don't get it."
>
>Not a great example, because most students can do a little better with
>like terms than Kid 2.  But the point is that the "don't get it" kids
>I'm talking about can't really tell you what they don't get.  They see a
>string of symbols on line one and another on line two and claim to see
>no connection between them.  And though I can often ask a series of
>questions to determine what they don't get and to explain it - "Do you
>see where the 3y comes from? Good.  How about the 7x?  Okay, do you see
>the 2x and 5x?  etc." - they'll still say they don't get it.

Yes.  I know lots of Kid2s.  And they are quite correct.  They don't
get it.  They cannot draw you a picture about it, either.  (But if
you can get them to draw silly pictures, it may help them get it.)
They cannot spot the problem for the notation.  It is an abstract
way of representing .. what? Nothing they can see as a problem.

Most of the Kid2s I have met have a real problem with understanding:

Let X be 'refrigerators full of badger steaks'.
They need the lesson above.

But before I want to do very much more algebra, I want to teach the
kid2s how to get out graph paper and draw

y = 2x + 17 
y = 2x + 4 + 3x and the like:

As part of a geometry course, where you construct things.

Because then, in addition to other things, they will know that
the above are abstract representations of lines.

Will your students already know this before you get to teach them?

>That was probably a longer yet less complete answer than you were
>looking for.  Nonetheless, I hope it helps.

It helps.  Thank you.  Sorry that this is so late.

Laura

>
>Jay

From kirby.urner at gmail.com  Wed Jul 18 18:55:04 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 18 Jul 2007 09:55:04 -0700
Subject: [Edu-sig] a non-rhetorical question
In-Reply-To: <200707181516.l6IFG90a004176@theraft.openend.se>
References: 
	<46901FC4.5060406@luc.edu> <003901c7c115$0d69f3f0$0601a8c0@Gandalf>
	
	<000801c7c176$a3599fd0$0601a8c0@Gandalf>
	<1183923444.3369.89.camel@localhost.localdomain>
	<200707081946.l68Jknuj012600@theraft.openend.se>
	
	<1183926917.3369.137.camel@localhost.localdomain>
	<200707181516.l6IFG90a004176@theraft.openend.se>
Message-ID: 

> Long before we start talking about 'variables' and 'powers' and the
> like -- which is all part of the 'notationally true' world, we need to
> nail down the absolute truths about addition that the order in which
> you add terms does not matter.  Which we can then formulate as LAWS
> about addition.

Yes, I think this is a promising approach.  Traditional Algebra 2 mentions
field properties of say real numbers, but the ties to modulo arithmetic
have been broken.  One hallmark of Pythonic Math is we give the modulo
operator equal time, along with the other basic four.  Division makes more
sense when you have modulo ready at hand, a basic trick in the tool box.
Helps explain / versus // as well.

Only then might we do powering (to show off 2*100000 for example -- for
most calculators simply out of range), then back to modulo arithmetic
for powering modulo a modulus (by overwriting __pow__).

Why all this modulo abracadabra?

Because (a) Python makes it easy, especially to write a P-number that
adds modulo N (P for Permutation) and (b) if you want to explore the LAWS
of algebra, what better way than with (i) totatives of a composite and (ii)
totatives of a prime.  In the former case, we get group properties (laws)
over multiplication, in the latter, a Galois Field.  See my Showmedo series,
Python for Math Teachers.

Too hard for young kids?  I don't think so.  Teaching group theory to children
was always a part of the Alan Kay plan.  Now that OLPC... [ censored ].

Kirby

From guido at python.org  Wed Jul 18 18:56:15 2007
From: guido at python.org (Guido van Rossum)
Date: Wed, 18 Jul 2007 09:56:15 -0700
Subject: [Edu-sig] Politics and Python in Education
In-Reply-To: <469E190D.1030607@kurtz-fernhout.com>
References: 
	<469E190D.1030607@kurtz-fernhout.com>
Message-ID: 

Please stop arguing politics on the list NOW.

I don't want to start actually kicking people or posts off the list,
but I will if it doesn't stop. This is simply not the platform for it.
Find a different platform where this topic are welcome.

--Guido

On 7/18/07, Paul D. Fernhout  wrote:
> Anna Ravenscroft wrote:
> >> Still, I could essentially see Guido's point, because some conventional
> >> school staff who otherwise like Python may face issues posting to a list
> >> talking about the future of education (which may appear to threaten
> >> their job), so perhaps ultimately a solution would be to have one list
> >> for "python in mainstream education" and another list for "python for
> >> alternative or future education".
> >
> > Or how about one list on "educational politics" and one on python in
> > education. Oh wait - there ARE already lists on educational
> > politics... how about those who want to discuss that, go to those
> > lists and discuss it there?! And use this list to specifically discuss
> > python in education?
>
> I think your analogy (and by extension Guido's strawman proposal) is
> flawed, because a key aspect of *design* is to see how values and
> priorities (which is the core of "politics") lead to new and interesting
> structures for software and content and hardware. In a Python CP4E
> context I see this as including any or all of:
> * changes to Python itself (e.g. "edit and continue" support in the core
> and in IDLE), or
> * new libraries for Python (e.g. PataPata), or
> * new application based on Python (e.g. constructivist educational
> simulations, including perhaps, though he might have disagreed, the late
> Arthur Siegel's PyGeo :-), or
>   http://pygeo.sourceforge.net/index.html
> * new curricula or other smaller educational materials (e.g. the
> Shuttleworth Foundation's steps in that direction), or
> * even new hardware which is Python-powered (e.g. OLPC, or even Lego
> Mindstorms NXT robotics, which I just got two of and was yesterday
> looking up references to using Python to program).
>
> To talk about creating such software or hardware or content without a
> sense of priorities and values would be analogous to going to an
> architect, asking them to design you a custom house and, and then
> saying, "well, you're an architect, just design us something, we are
> busy people and have no time to talk about values or priorities".
> Although I guess even there a clever architect would learn one thing
> about such people's values and priorities. :-)
>
> For a personal example, to show these issues are not just talk, consider
> the literally person-months I spent building the PataPata experiment
>   http://patapata.sourceforge.net/
> to bring some Squeak-like constructivist ideas more directly into a
> Python-powered IDE, and which I discussed on this list. Maybe not a huge
> success, but a big investment of my limited time in the free Python
> realm and I learned a few things from it (including the importance of
> naming objects if you wished to share them, a departure from the "Self"
> prototype programming ideal using unnamed pointers to parent objects).
>   http://patapata.sourceforge.net/critique.html
> Ultimately, PataPata was of very marginal interest here. Other people
> can talk about how Squeak has ideas that might work in Python, but when
> things got going, the talk was just talk. Ideally, from my point of
> view, people here would have discussed how these priorities and values
> of learned-centered technologies such as PataPata was a step towards
> could be translated into even more Python-related software, stuff beyond
> PataPata and even better. People could go beyond what I reference, and
> go beyond my own self critique, and as experienced educators suggest
> even better ideas for new technology related to Python (e.g. "the
> students are always saying if only we had X Y or Z for Python they'd be
> using it so much more for the things they want to do" -- like the
> reasons a homeschooled kid chose "DarkBasic" instead of Python, as
> mentioned on the Math Forum Kirby posts to).
>   http://mathforum.org/kb/message.jspa?messageID=5812048&tstart=0
>
> But that doesn't happen here much, in large part I'd speculate since
> most educators here are teachers, and the authoritarian context most
> teachers work in is unfortunately very limiting both as to free time and
> as to possible horizons, at least in the USA. Again, for example,
> consider my relative who could be fired if she installed Python on her
> classroom computer, and who would not have enough free time to go
> through the bureaucratic hoops to get Python installed district wide,
> let alone then have time to learn how to use it).
>
> That all to me is tremendously disappointing, especially as:
>   CP4E != CP4MainstreamSchools
> in my thinking (even if mainstream schools are part of "Everyone").
>
> It's no big surprise the US military (of all US institutions including
> the Department of Education) initially funded CP4E, because, in the USA,
> historically the military has had the most difficulties dealing with
> lack of education among recruits, see for example:
>   http://www.johntaylorgatto.com/chapters/3b.htm
> """Back in 1952 the Army quietly began hiring hundreds of psychologists
> to find out how 600,000 high school graduates had successfully faked
> illiteracy. Regna Wood sums up the episode this way: "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.""""
>
> Doesn't that sound a bit like future echoes of "Why Johnny Can't Code"?
>   http://www.google.com/search?hl=en&q=Why+Johnny+Can%27t+Code
>   http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html
>   http://news.com.com/Why+Johnny+cant+code/2010-1071_3-5596882.html
>   http://developers.slashdot.org/article.pl?sid=06/09/14/0320238
> It is another example of how, ironically, the US military is perhaps the
> only well supported large institution in the USA who, as with
> illiteracy, needs to wrestle with the consequences of US educational
> problems on a large scale. Gatto suggests, unlike the military, most of
> the other US institutions actually grow in power the more dysfunctional
> citizens are, so educational failure isn't a problem for them;
> illiterate graduates are paradoxically a great thing for, say, a
> department of education's budget -- justifying, in an unexamined way,
> more money to do more of the same.
>
> People on this list (including Guido) sound disappointed in me for
> talking educational politics, but as I reflect on it, I am disappointed
> with people on this list for not helping more directly translate the
> values and priorities I reference into even more Python-related options
> for the future of most education. That future will IMHO emphasize
> learner-centered and learner-customized on-demand activities which
> empower the user to do amazing things either alone or as part of amazing
> ad hoc groups like a typical open source or free software projects,
> including Python. And that disappointment is even keener because I have
> little doubt the educators on the edusig list are generally some of the
> most progressive ones around (otherwise, people her would be on a Java
> list or teaching about using Visual Basic to script Office).
>
> I can acknowledge that to the extent edusig is about being a teachers'
> lounge where teachers compare notes about teaching Python to meet
> state-defined objectives to pass standardized tests, such discussions
> seem off-topic. But as I said before, if that is the concern, Java is
> really the answer (in the USA, based on AP credit as someone else
> mentioned; granted other countries will differ). Once we wander off that
> path of standardization, then lots of issues relating to values and
> priorities show up -- especially if, like me, you are interested in
> making new things related to Python and education.
>
> --Paul Fernhout
> _______________________________________________
> 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 ernesto at dei.uc.pt  Wed Jul 18 20:06:22 2007
From: ernesto at dei.uc.pt (Ernesto Costa)
Date: Wed, 18 Jul 2007 19:06:22 +0100
Subject: [Edu-sig] Politics and Python in Education
In-Reply-To: 
References: 
	<469E190D.1030607@kurtz-fernhout.com>
	
Message-ID: <275A248C-3277-45B9-9407-C13CF22384D0@dei.uc.pt>

Hi,

Two years ago I was in a committee in my department where we  
discussed what language and methodology should we use for teaching  
our first course in programming for majors in computer science.

Python was the winner and in 2006/2007 I was the responsible for the  
first edition of the course. I'm more than happy with the decision  
and Python turns out to be a  fantastic language. As I was totally  
ignorant about Python (I was addicted to Lisp) I look around and see  
what other experiences there was related to  using Python for  
teaching programming.

And I subscribe this mailing  list. I learn a lot from  many posts (I  
even participate with a few ones). Unfortunately, since some time  
ago, I stop reading it. It comes to my mail box and goes to the trash  
after skimming  the first lines.

edu-sig at python.org should be what is implied by the name!

I do not have nothing against discussing (educational)  politics but  
please do it elsewhere and let the list be something that those who  
enjoy  Python use  it as way to communicate ideas, projects,  
experiences .... involving Python.

Ernesto Costa

On Jul 18, 2007, at 5:56 PM, Guido van Rossum wrote:

> Please stop arguing politics on the list NOW.
>
> I don't want to start actually kicking people or posts off the list,
> but I will if it doesn't stop. This is simply not the platform for it.
> Find a different platform where this topic are welcome.
>
> --Guido


From kirby.urner at gmail.com  Thu Jul 19 00:07:57 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 18 Jul 2007 15:07:57 -0700
Subject: [Edu-sig] Proposal: CP4E-sig
Message-ID: 

Note:  I think it'll be confusing for newcomers to read the
following, and then encounter a strict "no politics" ban,
only recently instituted and not spelled out on any
python.org web page to date:

===
About Edu-sig   	
English (USA)

This list is the starting point for a community around the
Computer Programming for Everybody (CP4E) project,
and a general meeting place for educators interested in
teaching Python.

Currently the best description of CP4E is in the DARPA
proposal that generated the initial funding.

See also the edu-sig homepage.

To see the collection of prior postings to the list, visit the
Edu-sig Archives.
===

edu-sig has always been political (check the archives)
and as the text above makes clear, has indeed been
focussed on CP4E (I think very productively).

This move to suppress political content and refocus the
list is a departure from the status quo.

I'd like to see this list renamed to cp4e-sig so it might
keep its integrity and focus, while those with no stomach
for politics start their own (possibly heavily moderated)
group.  They could even call it edu-sig.  But we keep the
archives and go forward as cp4e-sig, in alignment with
the original mission statement and focus.

Until such time as we've expunged all mention of CP4E
from the current list's description, I think we should leave
it to the list owner, Timothy Wilson, to perform any
moderating duties, which might included quietly warning
newcomers about the new rules.  That's his job.  Guido
is just another subscriber here and shouldn't be forced
into performing duties he's not signed up for.  That'll just
be confusing to everyone.

Kirby

From guido at python.org  Thu Jul 19 00:55:37 2007
From: guido at python.org (Guido van Rossum)
Date: Wed, 18 Jul 2007 15:55:37 -0700
Subject: [Edu-sig] Proposal: CP4E-sig
In-Reply-To: 
References: 
Message-ID: 

The list description is 7 years out of date, as *my* CP4E project
ended when I left CNRI. And *my* CP4E project was certainly not
intended to be political (in fact, the DARPA politics around funding
made me abandon it).

Feel free to petition the creation of an edu-politics at python.org list.
Further discussion of this topic should be moved to meta-sig, the sig
to discuss lists. (Added to the CC list.)

But please don't steal my CP4E moniker.

FWIW, the no-politics ban was long overdue. The archives show it. And
please show me where the edu-sig homepage (which is much more
informative than the mailman description) mentions politics.

--Guido

On 7/18/07, kirby urner  wrote:
> Note:  I think it'll be confusing for newcomers to read the
> following, and then encounter a strict "no politics" ban,
> only recently instituted and not spelled out on any
> python.org web page to date:
>
> ===
> About Edu-sig
> English (USA)
>
> This list is the starting point for a community around the
> Computer Programming for Everybody (CP4E) project,
> and a general meeting place for educators interested in
> teaching Python.
>
> Currently the best description of CP4E is in the DARPA
> proposal that generated the initial funding.
>
> See also the edu-sig homepage.
>
> To see the collection of prior postings to the list, visit the
> Edu-sig Archives.
> ===
>
> edu-sig has always been political (check the archives)
> and as the text above makes clear, has indeed been
> focussed on CP4E (I think very productively).
>
> This move to suppress political content and refocus the
> list is a departure from the status quo.
>
> I'd like to see this list renamed to cp4e-sig so it might
> keep its integrity and focus, while those with no stomach
> for politics start their own (possibly heavily moderated)
> group.  They could even call it edu-sig.  But we keep the
> archives and go forward as cp4e-sig, in alignment with
> the original mission statement and focus.
>
> Until such time as we've expunged all mention of CP4E
> from the current list's description, I think we should leave
> it to the list owner, Timothy Wilson, to perform any
> moderating duties, which might included quietly warning
> newcomers about the new rules.  That's his job.  Guido
> is just another subscriber here and shouldn't be forced
> into performing duties he's not signed up for.  That'll just
> be confusing to everyone.
>
> Kirby
> _______________________________________________
> 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 pdfernhout at kurtz-fernhout.com  Thu Jul 19 01:17:27 2007
From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout)
Date: Wed, 18 Jul 2007 19:17:27 -0400
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: 
References: 	<469E190D.1030607@kurtz-fernhout.com>
	
Message-ID: <469E9F87.6070401@kurtz-fernhout.com>

Guido-

I've been on this list continuously since about the second day
(2/3/2000) -- a little over seven years. I'll admit I was so turned off
by Kirby's comments after my initial posts (on bringing good ideas from
Squeak into Python, the technical topic I still like the most, and
continue to work towards). I went into lurk mode for about five years,
mostly until the issue of Python drawing from Squeak resurfaced from
others. I've since come to appreciate Kirby's unique charm. :-)

Remember when you sent out this in your email of 2/2/2000 entitled:
"Special Interest Group: Python in Education"? It read in part: "I don't
have a fixed idea about what the charter of the SIG should be; I'd like
to see discussion of CP4E, but also of other issues related to Python
and education, and I'd like to include all levels of education (from
grade school to college level as well as adult education), as long as
people are interested in learning or teaching Python."

That can be read a lot of ways. If you intended something more specific
you should have said so then.

Remember the start of very *first* reply by someone else (to the CCs,
not to the list) and the related thread? The very first reply by someone
else (not me) started with: "the only way you can succeed is to have
choice in education and without competition, the current public
education monopoly will crush you. they are just to paranoid about
virtual classrooms and the nea and aft are like stalin in their efforts
to block every and any attempt to do this in k to 18, ..." And went on
from there.

And then the start of the *second* reply by someone else (also to the
CCs and not to the list): "While I may not be quite as cynical as Mr.
[Name omitted] I must admit that I have seen some of the attitudes that
he describes. While one would think that you would find progressive "out
front" thinkers in the field of education, unfortunately they seem to be
the exception to the rule. Instead they are offen territorial,
"politically" motivated and especially uncomfortable with change of any
kind. They give lip service to "out of the box thinking" but rarely
reward it."

Didn't those two initial replies to the CC list give you some inkling of
what you were getting yourself into with CP4E? Or the whole reason why
DARPA would think it was so essential as to be worth funding your
proposal to solve a serious problem in the USA affecting the entire
nation's security and prosperity? Or perhaps the world's security and
prosperity, for that matter, in the face of a likely technological
singularity?
  http://en.wikipedia.org/wiki/Technological_singularity

Look, if you suddenly pop up after five months of silence on this list
to present an admitted "strawman" proposal (like you did)
 http://mail.python.org/pipermail/edu-sig/2007-July/008073.html
which is to actually *change* the evolved character of the list
(otherwise why the complaints from some who object to it as it is?) --
a strawman which anyone who had taken a course in society and technology
would know takes an either naive or disingenuous position on politics
and educational technology (like the two could ever be separated) --
then don't be surprised when you get replies like mine below which are
responsive to that strawman. As I wrote below: "I think your analogy
(and by extension Guido's strawman proposal) is flawed, because a key
aspect of *design* is to see how values and priorities (which is the
core of "politics") lead to new and interesting structures for software
and content and hardware."

I'll readily agree that part of the tension, as between me and Kirby, is
that I like to talk about (and develop towards) the part of the original
CP4E goals
  http://www.python.org/doc/essays/cp4e.html
related to a better system for programming in Python for novices (and
experts), while a lot of other people here (if not most, including
Kirby) like to talk about another part of those goals of a new
curriculum, in the sense of how to use python-as-is in school-as-is. But
I don't think that divide can be resolved by censorship. If it bothers
people a lot, then there should be two lists (I'm not pushing that
though as I think they cross-pollinate each other). Note that on CP4E
the proposal reads: "These components come together in the scientific
exploration of the role of programming in next generation computing
environments." How can one discuss the role of programming in the future
without talking either about the future or the political and
technological context for such systems?

You've barely posted to this list in the last couple of years -- how
much in touch with the list are you anymore? Is anybody flaming anyone
here? Anyone threatening anyone here? With occasionally fallow periods,
this list seems to keep moving right along -- sometimes great
conversations, sometimes not. Kirby is like its heart beat, and I don't
like seeing him censored. I for one also miss Art's insights; I didn't
always agree with him, but he had many interesting things to say.

I'd like to draw everyone's attention back to the spinoff list which
others started to have a narrower focus:
  http://groups.google.com/group/edupython
Description: "Supporting the development of online resources and
interactive tools to serve high school students, undergraduates, and
hobbyists learning Python, and to assist teachers and instructors in
reaching those audiences."

One comment by Michael T. on that list:
  http://mail.python.org/pipermail/edu-sig/2006-April/006278.html
"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."

Note the words "new list".

It seems to me you are trying to beat edusig into that new list (which
is a bit ironic, as the new narrower list itself seems to be not very
active in the past few months, especially compared to edusig). What's
next, restricting discussion on educational "philosophy" as opposed to
"politics"? That's another thing some people have complained about. And
then after that? References to Squeak or DrScheme? Maybe comments on
constructivism?

If you want a new list with a highly focused charter (can such a thing
even be defined in this context?), with an explicit policy anyone
posting something beyond that narrow charter will be booted from the
list, then by all means, go for it, and give it your blessing. Changing
edusig's policies and culture midstream through censorship threats or
related intimidation seems ultimately counterproductive to me. As you
suggest, your main concern is just on the hypothetical chance a strict
rule might prevent possible future problems like some *unspecified*
lists had in the past and which this one has not had (at least not to
that degree, even if watching Art and Kirby wrestling with each other
could get tiring sometimes. :-)

Having said that, I had pretty much moved back to lurk mode on the list
(my previous last post was in April) before your strawman proposal
anyway; I only started responding on this topic to defend Kirby. If you
want to ban me for responding to a meta-discussion *you* started, then
go ahead. :-) I'm certain we *both* have better things to do.

--Paul Fernhout

Guido van Rossum wrote:
> Please stop arguing politics on the list NOW.
> 
> I don't want to start actually kicking people or posts off the list,
> but I will if it doesn't stop. This is simply not the platform for it.
> Find a different platform where this topic are welcome.
> 
> --Guido
> 
> On 7/18/07, Paul D. Fernhout  wrote:
>> Anna Ravenscroft wrote:
>>>> Still, I could essentially see Guido's point, because some conventional
>>>> school staff who otherwise like Python may face issues posting to a list
>>>> talking about the future of education (which may appear to threaten
>>>> their job), so perhaps ultimately a solution would be to have one list
>>>> for "python in mainstream education" and another list for "python for
>>>> alternative or future education".
>>> Or how about one list on "educational politics" and one on python in
>>> education. Oh wait - there ARE already lists on educational
>>> politics... how about those who want to discuss that, go to those
>>> lists and discuss it there?! And use this list to specifically discuss
>>> python in education?
>> I think your analogy (and by extension Guido's strawman proposal) is
>> flawed, because a key aspect of *design* is to see how values and
>> priorities (which is the core of "politics") lead to new and interesting
>> structures for software and content and hardware. In a Python CP4E
>> context I see this as including any or all of:
>> * changes to Python itself (e.g. "edit and continue" support in the core
>> and in IDLE), or
>> * new libraries for Python (e.g. PataPata), or
>> * new application based on Python (e.g. constructivist educational
>> simulations, including perhaps, though he might have disagreed, the late
>> Arthur Siegel's PyGeo :-), or
>>   http://pygeo.sourceforge.net/index.html
>> * new curricula or other smaller educational materials (e.g. the
>> Shuttleworth Foundation's steps in that direction), or
>> * even new hardware which is Python-powered (e.g. OLPC, or even Lego
>> Mindstorms NXT robotics, which I just got two of and was yesterday
>> looking up references to using Python to program).
>>
>> To talk about creating such software or hardware or content without a
>> sense of priorities and values would be analogous to going to an
>> architect, asking them to design you a custom house and, and then
>> saying, "well, you're an architect, just design us something, we are
>> busy people and have no time to talk about values or priorities".
>> Although I guess even there a clever architect would learn one thing
>> about such people's values and priorities. :-)
>>
>> For a personal example, to show these issues are not just talk, consider
>> the literally person-months I spent building the PataPata experiment
>>   http://patapata.sourceforge.net/
>> to bring some Squeak-like constructivist ideas more directly into a
>> Python-powered IDE, and which I discussed on this list. Maybe not a huge
>> success, but a big investment of my limited time in the free Python
>> realm and I learned a few things from it (including the importance of
>> naming objects if you wished to share them, a departure from the "Self"
>> prototype programming ideal using unnamed pointers to parent objects).
>>   http://patapata.sourceforge.net/critique.html
>> Ultimately, PataPata was of very marginal interest here. Other people
>> can talk about how Squeak has ideas that might work in Python, but when
>> things got going, the talk was just talk. Ideally, from my point of
>> view, people here would have discussed how these priorities and values
>> of learned-centered technologies such as PataPata was a step towards
>> could be translated into even more Python-related software, stuff beyond
>> PataPata and even better. People could go beyond what I reference, and
>> go beyond my own self critique, and as experienced educators suggest
>> even better ideas for new technology related to Python (e.g. "the
>> students are always saying if only we had X Y or Z for Python they'd be
>> using it so much more for the things they want to do" -- like the
>> reasons a homeschooled kid chose "DarkBasic" instead of Python, as
>> mentioned on the Math Forum Kirby posts to).
>>   http://mathforum.org/kb/message.jspa?messageID=5812048&tstart=0
>>
>> But that doesn't happen here much, in large part I'd speculate since
>> most educators here are teachers, and the authoritarian context most
>> teachers work in is unfortunately very limiting both as to free time and
>> as to possible horizons, at least in the USA. Again, for example,
>> consider my relative who could be fired if she installed Python on her
>> classroom computer, and who would not have enough free time to go
>> through the bureaucratic hoops to get Python installed district wide,
>> let alone then have time to learn how to use it).
>>
>> That all to me is tremendously disappointing, especially as:
>>   CP4E != CP4MainstreamSchools
>> in my thinking (even if mainstream schools are part of "Everyone").
>>
>> It's no big surprise the US military (of all US institutions including
>> the Department of Education) initially funded CP4E, because, in the USA,
>> historically the military has had the most difficulties dealing with
>> lack of education among recruits, see for example:
>>   http://www.johntaylorgatto.com/chapters/3b.htm
>> """Back in 1952 the Army quietly began hiring hundreds of psychologists
>> to find out how 600,000 high school graduates had successfully faked
>> illiteracy. Regna Wood sums up the episode this way: "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.""""
>>
>> Doesn't that sound a bit like future echoes of "Why Johnny Can't Code"?
>>   http://www.google.com/search?hl=en&q=Why+Johnny+Can%27t+Code
>>   http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html
>>   http://news.com.com/Why+Johnny+cant+code/2010-1071_3-5596882.html
>>   http://developers.slashdot.org/article.pl?sid=06/09/14/0320238
>> It is another example of how, ironically, the US military is perhaps the
>> only well supported large institution in the USA who, as with
>> illiteracy, needs to wrestle with the consequences of US educational
>> problems on a large scale. Gatto suggests, unlike the military, most of
>> the other US institutions actually grow in power the more dysfunctional
>> citizens are, so educational failure isn't a problem for them;
>> illiterate graduates are paradoxically a great thing for, say, a
>> department of education's budget -- justifying, in an unexamined way,
>> more money to do more of the same.
>>
>> People on this list (including Guido) sound disappointed in me for
>> talking educational politics, but as I reflect on it, I am disappointed
>> with people on this list for not helping more directly translate the
>> values and priorities I reference into even more Python-related options
>> for the future of most education. That future will IMHO emphasize
>> learner-centered and learner-customized on-demand activities which
>> empower the user to do amazing things either alone or as part of amazing
>> ad hoc groups like a typical open source or free software projects,
>> including Python. And that disappointment is even keener because I have
>> little doubt the educators on the edusig list are generally some of the
>> most progressive ones around (otherwise, people her would be on a Java
>> list or teaching about using Visual Basic to script Office).
>>
>> I can acknowledge that to the extent edusig is about being a teachers'
>> lounge where teachers compare notes about teaching Python to meet
>> state-defined objectives to pass standardized tests, such discussions
>> seem off-topic. But as I said before, if that is the concern, Java is
>> really the answer (in the USA, based on AP credit as someone else
>> mentioned; granted other countries will differ). Once we wander off that
>> path of standardization, then lots of issues relating to values and
>> priorities show up -- especially if, like me, you are interested in
>> making new things related to Python and education.
>>
>> --Paul Fernhout


From guido at python.org  Thu Jul 19 01:21:39 2007
From: guido at python.org (Guido van Rossum)
Date: Wed, 18 Jul 2007 16:21:39 -0700
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: <469E9F87.6070401@kurtz-fernhout.com>
References: 
	<469E190D.1030607@kurtz-fernhout.com>
	
	<469E9F87.6070401@kurtz-fernhout.com>
Message-ID: 

I'm just speaking for the majority of list members who are tired of
your and Kirby's (and it the past Arthur's) rants. I really don't care
about arguments "proving" that the list charter is what you want it to
be. Most people want it to be something else. Check the recent
discussions. Almost nobody has spoken in defense of you or Kirby, many
responded with an enthusiastic "+1" to my original proposal to ban
politics.

--Guido

On 7/18/07, Paul D. Fernhout  wrote:
> Guido-
>
> I've been on this list continuously since about the second day
> (2/3/2000) -- a little over seven years. I'll admit I was so turned off
> by Kirby's comments after my initial posts (on bringing good ideas from
> Squeak into Python, the technical topic I still like the most, and
> continue to work towards). I went into lurk mode for about five years,
> mostly until the issue of Python drawing from Squeak resurfaced from
> others. I've since come to appreciate Kirby's unique charm. :-)
>
> Remember when you sent out this in your email of 2/2/2000 entitled:
> "Special Interest Group: Python in Education"? It read in part: "I don't
> have a fixed idea about what the charter of the SIG should be; I'd like
> to see discussion of CP4E, but also of other issues related to Python
> and education, and I'd like to include all levels of education (from
> grade school to college level as well as adult education), as long as
> people are interested in learning or teaching Python."
>
> That can be read a lot of ways. If you intended something more specific
> you should have said so then.
>
> Remember the start of very *first* reply by someone else (to the CCs,
> not to the list) and the related thread? The very first reply by someone
> else (not me) started with: "the only way you can succeed is to have
> choice in education and without competition, the current public
> education monopoly will crush you. they are just to paranoid about
> virtual classrooms and the nea and aft are like stalin in their efforts
> to block every and any attempt to do this in k to 18, ..." And went on
> from there.
>
> And then the start of the *second* reply by someone else (also to the
> CCs and not to the list): "While I may not be quite as cynical as Mr.
> [Name omitted] I must admit that I have seen some of the attitudes that
> he describes. While one would think that you would find progressive "out
> front" thinkers in the field of education, unfortunately they seem to be
> the exception to the rule. Instead they are offen territorial,
> "politically" motivated and especially uncomfortable with change of any
> kind. They give lip service to "out of the box thinking" but rarely
> reward it."
>
> Didn't those two initial replies to the CC list give you some inkling of
> what you were getting yourself into with CP4E? Or the whole reason why
> DARPA would think it was so essential as to be worth funding your
> proposal to solve a serious problem in the USA affecting the entire
> nation's security and prosperity? Or perhaps the world's security and
> prosperity, for that matter, in the face of a likely technological
> singularity?
>   http://en.wikipedia.org/wiki/Technological_singularity
>
> Look, if you suddenly pop up after five months of silence on this list
> to present an admitted "strawman" proposal (like you did)
>  http://mail.python.org/pipermail/edu-sig/2007-July/008073.html
> which is to actually *change* the evolved character of the list
> (otherwise why the complaints from some who object to it as it is?) --
> a strawman which anyone who had taken a course in society and technology
> would know takes an either naive or disingenuous position on politics
> and educational technology (like the two could ever be separated) --
> then don't be surprised when you get replies like mine below which are
> responsive to that strawman. As I wrote below: "I think your analogy
> (and by extension Guido's strawman proposal) is flawed, because a key
> aspect of *design* is to see how values and priorities (which is the
> core of "politics") lead to new and interesting structures for software
> and content and hardware."
>
> I'll readily agree that part of the tension, as between me and Kirby, is
> that I like to talk about (and develop towards) the part of the original
> CP4E goals
>   http://www.python.org/doc/essays/cp4e.html
> related to a better system for programming in Python for novices (and
> experts), while a lot of other people here (if not most, including
> Kirby) like to talk about another part of those goals of a new
> curriculum, in the sense of how to use python-as-is in school-as-is. But
> I don't think that divide can be resolved by censorship. If it bothers
> people a lot, then there should be two lists (I'm not pushing that
> though as I think they cross-pollinate each other). Note that on CP4E
> the proposal reads: "These components come together in the scientific
> exploration of the role of programming in next generation computing
> environments." How can one discuss the role of programming in the future
> without talking either about the future or the political and
> technological context for such systems?
>
> You've barely posted to this list in the last couple of years -- how
> much in touch with the list are you anymore? Is anybody flaming anyone
> here? Anyone threatening anyone here? With occasionally fallow periods,
> this list seems to keep moving right along -- sometimes great
> conversations, sometimes not. Kirby is like its heart beat, and I don't
> like seeing him censored. I for one also miss Art's insights; I didn't
> always agree with him, but he had many interesting things to say.
>
> I'd like to draw everyone's attention back to the spinoff list which
> others started to have a narrower focus:
>   http://groups.google.com/group/edupython
> Description: "Supporting the development of online resources and
> interactive tools to serve high school students, undergraduates, and
> hobbyists learning Python, and to assist teachers and instructors in
> reaching those audiences."
>
> One comment by Michael T. on that list:
>   http://mail.python.org/pipermail/edu-sig/2006-April/006278.html
> "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."
>
> Note the words "new list".
>
> It seems to me you are trying to beat edusig into that new list (which
> is a bit ironic, as the new narrower list itself seems to be not very
> active in the past few months, especially compared to edusig). What's
> next, restricting discussion on educational "philosophy" as opposed to
> "politics"? That's another thing some people have complained about. And
> then after that? References to Squeak or DrScheme? Maybe comments on
> constructivism?
>
> If you want a new list with a highly focused charter (can such a thing
> even be defined in this context?), with an explicit policy anyone
> posting something beyond that narrow charter will be booted from the
> list, then by all means, go for it, and give it your blessing. Changing
> edusig's policies and culture midstream through censorship threats or
> related intimidation seems ultimately counterproductive to me. As you
> suggest, your main concern is just on the hypothetical chance a strict
> rule might prevent possible future problems like some *unspecified*
> lists had in the past and which this one has not had (at least not to
> that degree, even if watching Art and Kirby wrestling with each other
> could get tiring sometimes. :-)
>
> Having said that, I had pretty much moved back to lurk mode on the list
> (my previous last post was in April) before your strawman proposal
> anyway; I only started responding on this topic to defend Kirby. If you
> want to ban me for responding to a meta-discussion *you* started, then
> go ahead. :-) I'm certain we *both* have better things to do.
>
> --Paul Fernhout
>
> Guido van Rossum wrote:
> > Please stop arguing politics on the list NOW.
> >
> > I don't want to start actually kicking people or posts off the list,
> > but I will if it doesn't stop. This is simply not the platform for it.
> > Find a different platform where this topic are welcome.
> >
> > --Guido
> >
> > On 7/18/07, Paul D. Fernhout  wrote:
> >> Anna Ravenscroft wrote:
> >>>> Still, I could essentially see Guido's point, because some conventional
> >>>> school staff who otherwise like Python may face issues posting to a list
> >>>> talking about the future of education (which may appear to threaten
> >>>> their job), so perhaps ultimately a solution would be to have one list
> >>>> for "python in mainstream education" and another list for "python for
> >>>> alternative or future education".
> >>> Or how about one list on "educational politics" and one on python in
> >>> education. Oh wait - there ARE already lists on educational
> >>> politics... how about those who want to discuss that, go to those
> >>> lists and discuss it there?! And use this list to specifically discuss
> >>> python in education?
> >> I think your analogy (and by extension Guido's strawman proposal) is
> >> flawed, because a key aspect of *design* is to see how values and
> >> priorities (which is the core of "politics") lead to new and interesting
> >> structures for software and content and hardware. In a Python CP4E
> >> context I see this as including any or all of:
> >> * changes to Python itself (e.g. "edit and continue" support in the core
> >> and in IDLE), or
> >> * new libraries for Python (e.g. PataPata), or
> >> * new application based on Python (e.g. constructivist educational
> >> simulations, including perhaps, though he might have disagreed, the late
> >> Arthur Siegel's PyGeo :-), or
> >>   http://pygeo.sourceforge.net/index.html
> >> * new curricula or other smaller educational materials (e.g. the
> >> Shuttleworth Foundation's steps in that direction), or
> >> * even new hardware which is Python-powered (e.g. OLPC, or even Lego
> >> Mindstorms NXT robotics, which I just got two of and was yesterday
> >> looking up references to using Python to program).
> >>
> >> To talk about creating such software or hardware or content without a
> >> sense of priorities and values would be analogous to going to an
> >> architect, asking them to design you a custom house and, and then
> >> saying, "well, you're an architect, just design us something, we are
> >> busy people and have no time to talk about values or priorities".
> >> Although I guess even there a clever architect would learn one thing
> >> about such people's values and priorities. :-)
> >>
> >> For a personal example, to show these issues are not just talk, consider
> >> the literally person-months I spent building the PataPata experiment
> >>   http://patapata.sourceforge.net/
> >> to bring some Squeak-like constructivist ideas more directly into a
> >> Python-powered IDE, and which I discussed on this list. Maybe not a huge
> >> success, but a big investment of my limited time in the free Python
> >> realm and I learned a few things from it (including the importance of
> >> naming objects if you wished to share them, a departure from the "Self"
> >> prototype programming ideal using unnamed pointers to parent objects).
> >>   http://patapata.sourceforge.net/critique.html
> >> Ultimately, PataPata was of very marginal interest here. Other people
> >> can talk about how Squeak has ideas that might work in Python, but when
> >> things got going, the talk was just talk. Ideally, from my point of
> >> view, people here would have discussed how these priorities and values
> >> of learned-centered technologies such as PataPata was a step towards
> >> could be translated into even more Python-related software, stuff beyond
> >> PataPata and even better. People could go beyond what I reference, and
> >> go beyond my own self critique, and as experienced educators suggest
> >> even better ideas for new technology related to Python (e.g. "the
> >> students are always saying if only we had X Y or Z for Python they'd be
> >> using it so much more for the things they want to do" -- like the
> >> reasons a homeschooled kid chose "DarkBasic" instead of Python, as
> >> mentioned on the Math Forum Kirby posts to).
> >>   http://mathforum.org/kb/message.jspa?messageID=5812048&tstart=0
> >>
> >> But that doesn't happen here much, in large part I'd speculate since
> >> most educators here are teachers, and the authoritarian context most
> >> teachers work in is unfortunately very limiting both as to free time and
> >> as to possible horizons, at least in the USA. Again, for example,
> >> consider my relative who could be fired if she installed Python on her
> >> classroom computer, and who would not have enough free time to go
> >> through the bureaucratic hoops to get Python installed district wide,
> >> let alone then have time to learn how to use it).
> >>
> >> That all to me is tremendously disappointing, especially as:
> >>   CP4E != CP4MainstreamSchools
> >> in my thinking (even if mainstream schools are part of "Everyone").
> >>
> >> It's no big surprise the US military (of all US institutions including
> >> the Department of Education) initially funded CP4E, because, in the USA,
> >> historically the military has had the most difficulties dealing with
> >> lack of education among recruits, see for example:
> >>   http://www.johntaylorgatto.com/chapters/3b.htm
> >> """Back in 1952 the Army quietly began hiring hundreds of psychologists
> >> to find out how 600,000 high school graduates had successfully faked
> >> illiteracy. Regna Wood sums up the episode this way: "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.""""
> >>
> >> Doesn't that sound a bit like future echoes of "Why Johnny Can't Code"?
> >>   http://www.google.com/search?hl=en&q=Why+Johnny+Can%27t+Code
> >>   http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html
> >>   http://news.com.com/Why+Johnny+cant+code/2010-1071_3-5596882.html
> >>   http://developers.slashdot.org/article.pl?sid=06/09/14/0320238
> >> It is another example of how, ironically, the US military is perhaps the
> >> only well supported large institution in the USA who, as with
> >> illiteracy, needs to wrestle with the consequences of US educational
> >> problems on a large scale. Gatto suggests, unlike the military, most of
> >> the other US institutions actually grow in power the more dysfunctional
> >> citizens are, so educational failure isn't a problem for them;
> >> illiterate graduates are paradoxically a great thing for, say, a
> >> department of education's budget -- justifying, in an unexamined way,
> >> more money to do more of the same.
> >>
> >> People on this list (including Guido) sound disappointed in me for
> >> talking educational politics, but as I reflect on it, I am disappointed
> >> with people on this list for not helping more directly translate the
> >> values and priorities I reference into even more Python-related options
> >> for the future of most education. That future will IMHO emphasize
> >> learner-centered and learner-customized on-demand activities which
> >> empower the user to do amazing things either alone or as part of amazing
> >> ad hoc groups like a typical open source or free software projects,
> >> including Python. And that disappointment is even keener because I have
> >> little doubt the educators on the edusig list are generally some of the
> >> most progressive ones around (otherwise, people her would be on a Java
> >> list or teaching about using Visual Basic to script Office).
> >>
> >> I can acknowledge that to the extent edusig is about being a teachers'
> >> lounge where teachers compare notes about teaching Python to meet
> >> state-defined objectives to pass standardized tests, such discussions
> >> seem off-topic. But as I said before, if that is the concern, Java is
> >> really the answer (in the USA, based on AP credit as someone else
> >> mentioned; granted other countries will differ). Once we wander off that
> >> path of standardization, then lots of issues relating to values and
> >> priorities show up -- especially if, like me, you are interested in
> >> making new things related to Python and education.
> >>
> >> --Paul Fernhout
>
> _______________________________________________
> 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 vceder at canterburyschool.org  Thu Jul 19 01:32:32 2007
From: vceder at canterburyschool.org (Vern Ceder)
Date: Wed, 18 Jul 2007 19:32:32 -0400
Subject: [Edu-sig] Politics and Python in Education (meta on
	list	charter)
In-Reply-To: 
References: 	<469E190D.1030607@kurtz-fernhout.com>		<469E9F87.6070401@kurtz-fernhout.com>
	
Message-ID: <469EA310.3020209@canterburyschool.org>

Guido van Rossum wrote:
> I'm just speaking for the majority of list members who are tired of
> your and Kirby's (and it the past Arthur's) rants. I really don't care
> about arguments "proving" that the list charter is what you want it to
> be. Most people want it to be something else. Check the recent
> discussions. Almost nobody has spoken in defense of you or Kirby, many
> responded with an enthusiastic "+1" to my original proposal to ban
> politics.

+1 (one more time... Hmmm... is this a place for a "while True:" loop? ;-) )

-- 
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 delza at livingcode.org  Thu Jul 19 02:04:15 2007
From: delza at livingcode.org (Dethe Elza)
Date: Wed, 18 Jul 2007 17:04:15 -0700
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: 
References: 
	<469E190D.1030607@kurtz-fernhout.com>
	
	<469E9F87.6070401@kurtz-fernhout.com>
	
Message-ID: <48DF0257-A704-4961-880C-697C0D07F7CB@livingcode.org>

On 18-Jul-07, at 4:21 PM, Guido van Rossum wrote:

> I'm just speaking for the majority of list members who are tired of
> your and Kirby's (and it the past Arthur's) rants. I really don't care
> about arguments "proving" that the list charter is what you want it to
> be. Most people want it to be something else. Check the recent
> discussions. Almost nobody has spoken in defense of you or Kirby, many
> responded with an enthusiastic "+1" to my original proposal to ban
> politics.

And while folks are threatening to dive into the archives to find  
justification for their ideological battles, keep an eye out for the  
many, many people who came to the list hoping to find help in using  
Python in their roles as teachers or students, only to get turned off  
by the often ugly tone of the discussions on this list.  I've seen  
many postings of the "I've had enough, unsubscribing" variety over  
the years, and was on the verge of it myself when Guido chipped in  
with the "no more politics" suggestion/rule.

I've tried to mediate between some of the arguments before, only to  
be told to fuck off (in those words) and mind my own business.  So  
I've pretty much gone into lurk mode, because I don't need that kind  
of conflict in my life, thanks anyway.

Even though I agree with most of what Paul F. and Kirby write here,  
and have a strong anti-school bias myself, this has never felt like  
the place for that type of rant.  I don't see it as censorship to be  
asked to keep on topic for the list and not to drive off the very  
people the list is intended to serve.

Back to the archives, could it be that Kirby (and Arthur when he was  
with us) were the engine of edu-sig because others had been driven  
off or into lurk mode?  Not entirely, but I think there was a strong  
element of that.

So, thank you Guido for speaking up.

+1

--Dethe



From mtobis at gmail.com  Thu Jul 19 02:26:37 2007
From: mtobis at gmail.com (Michael Tobis)
Date: Wed, 18 Jul 2007 19:26:37 -0500
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: <469E9F87.6070401@kurtz-fernhout.com>
References: 
	<469E190D.1030607@kurtz-fernhout.com>
	
	<469E9F87.6070401@kurtz-fernhout.com>
Message-ID: 

I am mentioned in Paul Fernhout's posting. Per Guido's request to keep
such matters off-list, my reply is on meta-sig.

mt

From mtobis at gmail.com  Thu Jul 19 02:28:28 2007
From: mtobis at gmail.com (Michael Tobis)
Date: Wed, 18 Jul 2007 19:28:28 -0500
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: 
References: 
	<469E190D.1030607@kurtz-fernhout.com>
	
	<469E9F87.6070401@kurtz-fernhout.com>
	
Message-ID: 

Apparently meta-sig is moderated.

I should say my reply will hopefully appear shortly on meta-sig.

mt

On 7/18/07, Michael Tobis  wrote:
> I am mentioned in Paul Fernhout's posting. Per Guido's request to keep
> such matters off-list, my reply is on meta-sig.
>
> mt
>

From hummingbird at hivemind.net  Thu Jul 19 02:26:53 2007
From: hummingbird at hivemind.net (Antoine van Gelder)
Date: Thu, 19 Jul 2007 02:26:53 +0200
Subject: [Edu-sig] Newbie question
Message-ID: <469EAFCD.5030308@hivemind.net>

Guido wrote:
> Our plan has three components:
> 
>     * Develop a new computing curriculum suitable for high school and college students.
>     * Create better, easier to use tools for program development and analysis.
>     * Build a user community around all of the above, encouraging feedback and self-help.
> 
> These components come together in the scientific exploration of the role of programming in
> next generation computing environments.
> 
> We intend to start with Python, a language designed for rapid development. We believe that 
> Python makes a great first language to learn: Unlike languages designed specifically for 
> beginners, Python is also the choice of many programming professionals. It has an active, 
> growing user community which has already expressed much interest in this proposal, and
> we expect that this will be a fertile first deployment ground for the teaching materials
> and tools we propose to create. During the course of the research we will evaluate Python 
> and propose improvements or alternatives.


Please forgive me.

I know very little about the history of this forum so I have a small 
question:

Which mailing list should I be subscribed to in order to participate in 
discussion regarding the component of the plan:

   "Develop a new computing curriculum suitable for high school and 
college students."

?

There are political considerations which interact with any goals that 
involve the development of high school and college curricula and if 
edu-sig at python.org is not the place to discuss them I fear I may be in 
the wrong place!

Thank you!

:-D

  - antoine


-- 

"Any organization that designs a system (defined broadly) will produce a
  design whose structure is a copy of the organization's communication
  structure."

  - Melvin Conway

From kirby.urner at gmail.com  Thu Jul 19 03:21:37 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 18 Jul 2007 18:21:37 -0700
Subject: [Edu-sig] Proposal: CP4E-sig
In-Reply-To: 
References: 
	
Message-ID: 

On 7/18/07, Guido van Rossum  wrote:
> The list description is 7 years out of date, as *my* CP4E project
> ended when I left CNRI. And *my* CP4E project was certainly not
> intended to be political (in fact, the DARPA politics around funding
> made me abandon it).

Perhaps my joining this list as a newcomer 7 years back was
an unintended effect of letting this page go unmaintained?

Then for 7 years, I believed that edu-sig was intended for those
wishing to push ahead with the CP4E initiative, even absent more
DARPA funding.

> But please don't steal my CP4E moniker.

I've patterned my own quirky HP4E after it (decoded elsewhere -- a
geometric meaning), but hey, now that I better understand the history,
I'll update my narrative accordingly.

Here's what I'd say today:

"""
CP4E as an historical phenomenon was reminiscent of many parallel
agendas set forward by other computer gurus (OLPC another example).

This particular initiative, proposed by Guido then with CNRI, and briefly
funded by DARPA, helped net us the cross-platform Tk-based IDE
known as IDLE, currently shipped with every download of CPython
and used in classrooms around the world to this day (sometimes
to help kids learn math, like in Kirby's classes in Portland).

IDLE continues to improve, having become another actively maintained
community project by this time.
"""

> FWIW, the no-politics ban was long overdue. The archives show it. And
> please show me where the edu-sig homepage (which is much more
> informative than the mailman description) mentions politics.
>
> --Guido

The "no-politics" ban seems somewhat unworkable to me.  The notion
of "politics" is too vague, has this "we'll know it when we see it" flavor.

Will we?  Or will some people just get better at disguising political
content between the lines (e.g.  "I used to like this list but now I think
it's trash..." -- very political, as in "playing to public sentiment").

Some writers are simply better than others at turning bans to their
advantage (sucking up to the censors sometimes helps).

Unmoderated or barely moderated lists (e.g. stripping out the Viagra
spam) help us avoid so many thorny issues of censorship associated
with sweeping topical bans.

Anyway, let's just see how it plays out going forward (assuming the
archive remains a community resource and that this ban remains in
force).

[

I take much of the credit for the edu-sig homepage BTW, though it
perhaps still over-reflects my outdated understanding of the purpose
of edu-sig (I'm still mired).

]

I suggest both the home page and the mailman description get a long
overdue face lift (not by me of course -- I've got enough on my plate for
the time being and others should be given a chance at bat, would no
doubt relish the opportunity).

I will not be proposing edu-politics as a list name (why would we want
"just politics" for a diet?  The point would be to keep looking at the bigger
picture, but without losing sight of nuts and bolts Python (if it's not
at all Pythonic, it doesn't make sense hosting it within the python.org
domain).

edu-stratagems has a ring to it.  Or just stratagems.  I'd still like cp4e-sig,
but only if Guido approves of it.

Anyone else got a proposal?

Kirby

From annaraven at gmail.com  Thu Jul 19 05:35:14 2007
From: annaraven at gmail.com (Anna Ravenscroft)
Date: Wed, 18 Jul 2007 20:35:14 -0700
Subject: [Edu-sig] Newbie question
In-Reply-To: <469EAFCD.5030308@hivemind.net>
References: <469EAFCD.5030308@hivemind.net>
Message-ID: 

On 7/18/07, Antoine van Gelder  wrote:
> Guido wrote:
> > Our plan has three components:
> >
> >     * Develop a new computing curriculum suitable for high school and college students.
> >     * Create better, easier to use tools for program development and analysis.
> >     * Build a user community around all of the above, encouraging feedback and self-help.
> >
> > These components come together in the scientific exploration of the role of programming in
> > next generation computing environments.
> >
> > We intend to start with Python, a language designed for rapid development. We believe that
> > Python makes a great first language to learn: Unlike languages designed specifically for
> > beginners, Python is also the choice of many programming professionals. It has an active,
> > growing user community which has already expressed much interest in this proposal, and
> > we expect that this will be a fertile first deployment ground for the teaching materials
> > and tools we propose to create. During the course of the research we will evaluate Python
> > and propose improvements or alternatives.
>
>
> Please forgive me.
>
> I know very little about the history of this forum so I have a small
> question:
>
> Which mailing list should I be subscribed to in order to participate in
> discussion regarding the component of the plan:
>
>    "Develop a new computing curriculum suitable for high school and
> college students."
>
> ?
>
> There are political considerations which interact with any goals that
> involve the development of high school and college curricula and if
> edu-sig at python.org is not the place to discuss them I fear I may be in
> the wrong place!


In my view, if the political considerations directly and specifically
affect Python curriculum development (or getting a particular
curriculum accepted) in a particular situation, that's one thing.
Going on at great length repeatedly about educational
politics/philosophy in general is another. There are many lists and
fora specifically for those topics.

-- 
cordially,
Anna
--
It is fate, but call it Italy if it pleases you, Vicar!

From heistooheavy at yahoo.com  Thu Jul 19 06:13:27 2007
From: heistooheavy at yahoo.com (Richard Guenther)
Date: Wed, 18 Jul 2007 21:13:27 -0700 (PDT)
Subject: [Edu-sig] Donated computers, Linux, and IDLE problems.
Message-ID: <4633.80632.qm@web63313.mail.re1.yahoo.com>

I'm not sure if this is the best place to post this question, but it certainly fits into the edu-sig realm ;-)

I will be sponsoring a high school computer programming club again this year.  I get older computers donated to me quite often, most in the Pentium3 range.  Often they have a crippled version of Windows on them, but no restore disks, etc.  Also, most of these computers will NOT be hooked up to the internet.

What I'd like to do is put a simpler LINUX distro on them (MepisLite is my current favorite for these situations), and then get Python up and running with IDLE working.

But it's not easy!  I don't know of a distro yet that comes with a working IDLE installed.  Whenever I've done the source file dance ("./configure, make, make install") with newer versions of Python, I get the common PYTHONHOME and PYTHONPATH problems and also can't get IDLE to work.

Any suggestions or advice?

Richard

P.S.  I know this sounds like a technical question for a n00b forum, but the context of this problem (I'm a teacher trying to set up some convenient Python boxes for my students to use) made me think it might be appropriate here.  If not, I apologize in advance.  I am, btw, getting our PCs in the computer lab set up with Python (and IDLE) running on Windows, I just wanted to put these donated comps to good use....





       
____________________________________________________________________________________
Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games.
http://sims.yahoo.com/  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070718/c38dd15f/attachment.htm 

From kirby.urner at gmail.com  Thu Jul 19 06:27:35 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 18 Jul 2007 21:27:35 -0700
Subject: [Edu-sig] sa: 8144: Day Two
In-Reply-To: 
References: 
Message-ID: 

On 7/18/07, kirby urner  wrote:
> [
>
> Pursuant to:
> http://mybizmo.blogspot.com/2007/07/sa-8144-day-one.html
>
> ]
>
> I thought I'd do this one in a more premeditated style, outlining my
> lesson plan for the day, then following up later with a brief report
> on how I'd deviated from the script, how it all went.

I obtained the remote for the projector from the desk clerk this time,
so no standing on Omar's chair.  That victory was more than offset by
the $30 parking ticket (shades of my last gig, back to haunt me).

Immersion (recog) mixed with recall (blank canvas exercises) seems
to be working well enough.

Some students are anxious to show me they're able to write gobs of
code quickly, some of it a little broken, such as one guy using parens
for indexing into a tuple.

Easily fixed.

I think some people's expectation of a "programming class" is they're
going to be staring at long swatches of code.

Any shell intensive approach is discomfiting at first, as it engenders a
"where's the beef?" sort of tension.

Downloading stickworks.py etc. relieves this tension, as in "ah, *there's*
the beef."

Others have no problem just going along at the suggested pace, a guided
downloading of stickworks.py, polyhedra.py and viztoyz.py from the
Internet via a web browser, immediately launching the tests (at the
bottom of each module).

This was immersion phase, with imports coming from all over the map:
visual (= VPython), math, random, plus my own 3rd party modules, e.g.
looking at viztoyz.py:

from visual import sphere, color, display, cylinder  # native VPython
from random import randint               # standard library
from stickworks import Vector, Edge # 3rd party (4dsolutions.net)
from polyhedra import Tetrahedron, Icosahedron # 3rd party (4dsolutions.net)
from math import sqrt                      # standard library

My Vector class wraps visual.cylinder, always pointing from the origin.

Many vectors = sea urchin looking prickly thing.

So if you want Polyhedra, that'll take Edge objects, which connect any
two vector tips as in e0 = Edge(v0, v1).

I often cite a specific Linear Algebra book for laying groundwork for this
approach (Wayne Bishop of Mathematically Correct a co-author of this
text book that used to have BASIC in the back, but not in the later editions).

Some of this stickworks stuff gets spelled out some at showmedo.com
-- we actually watched the projected version (only a few minutes long).

Should any of you wish to take advantage of my scaffolding, you're
more than welcome:

http://www.4dsolutions.net/ocn/python/

Since we're focusing on Polyhedra as Model, real time and rendering Views,
with Python as Controller (MVC), I inserted my little "remedial geometry"
lecture sometime between two play sessions (2.5 hours leaves plenty
of time for both).  Gotta anchor those Polyhedra (not always clear their
regular schools are really doing that).

This is the little talk about the rhombic dodecahedron (not the pentagonal)
having an octahedron and cube (qyoob) embedded as long and short
rhomb-face diagonals respectively, with relative volumes 6:4:3.

I had my plastic box of beans along, stocked with paperboard shapes.
I poured beans from one to the other, highlighting these volume relationships.

A lot of them worked with color tuples during the play/exploration time.

Without having full mastery of the Vpython API (doc address shared), you can
start looking for color-tuples and messing with them.  There's lots to discover
e.g. about a (1,1,1) convention versus a (255, 255, 255) convention.  Ratios
matter in VPython.

One students thought of wiring color tuples to randints (my code hints
at such possibilities), even dividing by 100 to keep the R,G,B values <= 1.

We watched Warriors of the Net (I provide my own more powerful speakers).

Class over.  More tomorrow.

I used the Windows laptop today (vs. Ubuntu yesterday).

Makes no essential difference as far is this particular curriculum is
concerned.  IDLE is much the same either way, thanks to CP4E, as is
VPython, thanks to Bruce Sherwood et al @ Carnegie Mellon.

Kirby

PS from Omar, who wanted to share:

http://uncyclopedia.org/wiki/Monty_Python  (cracks him up)

Example:
"""
John Cleese and Eric Idle created the programming language Python in 91 AD.
The Snakes of America (SoA) strongly approve the language because it makes
snakes more [awesome]. "Python" is a direct rip off of Monty Python and
there are many references to the British humour group in everything about it.
...
"""

From annaraven at gmail.com  Thu Jul 19 06:40:01 2007
From: annaraven at gmail.com (Anna Ravenscroft)
Date: Wed, 18 Jul 2007 21:40:01 -0700
Subject: [Edu-sig] sa: 8144: Day Two
In-Reply-To: 
References: 
	
Message-ID: 

On 7/18/07, kirby urner  wrote:
> On 7/18/07, kirby urner  wrote:
> > [
> >
> > Pursuant to:
> > http://mybizmo.blogspot.com/2007/07/sa-8144-day-one.html
> >
> > ]
> >
> > I thought I'd do this one in a more premeditated style, outlining my
> > lesson plan for the day, then following up later with a brief report
> > on how I'd deviated from the script, how it all went.

Sounds like a great class. I'm envious of your students. ;-)

>
> Downloading stickworks.py etc. relieves this tension, as in "ah, *there's*
> the beef."

I'll have to check that out. Thanks for the info.

-- 
cordially,
Anna
--
It is fate, but call it Italy if it pleases you, Vicar!

From varmaa at gmail.com  Thu Jul 19 13:05:14 2007
From: varmaa at gmail.com (Atul Varma)
Date: Thu, 19 Jul 2007 06:05:14 -0500
Subject: [Edu-sig] Donated computers, Linux, and IDLE problems.
In-Reply-To: <4633.80632.qm@web63313.mail.re1.yahoo.com>
References: <4633.80632.qm@web63313.mail.re1.yahoo.com>
Message-ID: <361b27370707190405v4e013a02i5135dc6e95fc1c6d@mail.gmail.com>

Hi Richard,

Have you considered using Ubuntu?  The latest version of the distro
comes with Python 2.5 installed, and IDLE can be easily installed
using the built-in package management system.  I've also found that
installing Ubuntu is easier than installing Windows, and its base
configuration is reasonably minimalistic.

- Atul

On 7/18/07, Richard Guenther  wrote:
>
> I'm not sure if this is the best place to post this question, but it
> certainly fits into the edu-sig realm ;-)
>
> I will be sponsoring a high school computer programming club again this
> year.  I get older computers donated to me quite often, most in the Pentium3
> range.  Often they have a crippled version of Windows on them, but no
> restore disks, etc.  Also, most of these computers will NOT be hooked up to
> the internet.
>
> What I'd like to do is put a simpler LINUX distro on them (MepisLite is my
> current favorite for these situations), and then get Python up and running
> with IDLE working.
>
> But it's not easy!  I don't know of a distro yet that comes with a working
> IDLE installed.  Whenever I've done the source file dance ("./configure,
> make, make install") with newer versions of Python, I get the common
> PYTHONHOME and PYTHONPATH problems and also can't get IDLE to work.
>
> Any suggestions or advice?
>
> Richard
>
> P.S.  I know this sounds like a technical question for a n00b forum, but the
> context of this problem (I'm a teacher trying to set up some convenient
> Python boxes for my students to use) made me think it might be appropriate
> here.  If not, I apologize in advance.  I am, btw, getting our PCs in the
> computer lab set up with Python (and IDLE) running on Windows, I just wanted
> to put these donated comps to good use....
>
>
>  ________________________________
> Shape Yahoo! in your own image. Join our Network Research Panel today!
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>
>

From kirby.urner at gmail.com  Thu Jul 19 13:26:24 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 19 Jul 2007 04:26:24 -0700
Subject: [Edu-sig] Donated computers, Linux, and IDLE problems.
In-Reply-To: <361b27370707190405v4e013a02i5135dc6e95fc1c6d@mail.gmail.com>
References: <4633.80632.qm@web63313.mail.re1.yahoo.com>
	<361b27370707190405v4e013a02i5135dc6e95fc1c6d@mail.gmail.com>
Message-ID: 

I echo Atul's suggestion.  The Synaptic Package Manager lets you install
IDLE as a separate package, against a pre-existing Python 2.5 (or install
that first if you need to).**

On my version of Ubuntu (7.04) the install process automatically
loaded IDLE into the main Applications menu under a new Programming
item (little trowel icon).

Click trowel, see IDLE on submenu, with new duo-snake logo.

Then go watch the Nelson Mandela video about the spirit of Ubuntu
(comes with the distro: home folder /Examples/Experience ubuntu.ogg).

Kirby

** apt-get install python2.5-minimal

On 7/19/07, Atul Varma  wrote:
> Hi Richard,
>
> Have you considered using Ubuntu?  The latest version of the distro
> comes with Python 2.5 installed, and IDLE can be easily installed
> using the built-in package management system.  I've also found that
> installing Ubuntu is easier than installing Windows, and its base
> configuration is reasonably minimalistic.
>
> - Atul

From chandrakirti at gmail.com  Thu Jul 19 13:28:36 2007
From: chandrakirti at gmail.com (Lloyd Hugh Allen)
Date: Thu, 19 Jul 2007 07:28:36 -0400
Subject: [Edu-sig] Donated computers, Linux, and IDLE problems.
In-Reply-To: <361b27370707190405v4e013a02i5135dc6e95fc1c6d@mail.gmail.com>
References: <4633.80632.qm@web63313.mail.re1.yahoo.com>
	<361b27370707190405v4e013a02i5135dc6e95fc1c6d@mail.gmail.com>
Message-ID: <24d253d90707190428m794c9a15n79a7bfe2ebc6ec8f@mail.gmail.com>

I agree (and this is the time of year that considering how to set up
the lab is particularly relevant, for those people who are able to
control how their lab is set up).

I am using Ubuntu now, and am able to pull up an Idle session by going
to the Applications menu, coming down to programming, and choosing
IDLE. To install IDLE, go to System --> Administration --> Synaptic
Package Manager, search for IDLE, and then go down the alphebetized
list to find IDLE (current version). Check it, "apply", and then
Ubuntu will grab anything that is missing and install IDLE.

There are two drawbacks -- currently my Ubuntu only sees 2.4.3 (I
don't know the process to allow the current version to automatically
be recognized), and Ubuntu get angry at particular graphics cards. Be
very, very careful about updating your video drivers, lest you end up
having to reconfigure them and/or X from the console (doable, but not
"I'm setting up a lab of 30 computers and need to be ready for class
before I go home"able).

The good news is that as soon as 2.5.1 has been blessed by the Ubuntu
gods, an icon will appear on the menu bar suggesting that you
automatically upgrade to it. You can manually update, but then you
don't get automatic updates as they are blessed.

Good luck,
Lloyd Allen

On 7/19/07, Atul Varma  wrote:
> Hi Richard,
>
> Have you considered using Ubuntu?  The latest version of the distro
> comes with Python 2.5 installed, and IDLE can be easily installed
> using the built-in package management system.  I've also found that
> installing Ubuntu is easier than installing Windows, and its base
> configuration is reasonably minimalistic.
>
> - Atul
>
> On 7/18/07, Richard Guenther  wrote:
> >
> > I'm not sure if this is the best place to post this question, but it
> > certainly fits into the edu-sig realm ;-)
> >
> > I will be sponsoring a high school computer programming club again this
> > year.  I get older computers donated to me quite often, most in the Pentium3
> > range.  Often they have a crippled version of Windows on them, but no
> > restore disks, etc.  Also, most of these computers will NOT be hooked up to
> > the internet.
> >
> > What I'd like to do is put a simpler LINUX distro on them (MepisLite is my
> > current favorite for these situations), and then get Python up and running
> > with IDLE working.
> >
> > But it's not easy!  I don't know of a distro yet that comes with a working
> > IDLE installed.  Whenever I've done the source file dance ("./configure,
> > make, make install") with newer versions of Python, I get the common
> > PYTHONHOME and PYTHONPATH problems and also can't get IDLE to work.
> >
> > Any suggestions or advice?
> >
> > Richard
> >
> > P.S.  I know this sounds like a technical question for a n00b forum, but the
> > context of this problem (I'm a teacher trying to set up some convenient
> > Python boxes for my students to use) made me think it might be appropriate
> > here.  If not, I apologize in advance.  I am, btw, getting our PCs in the
> > computer lab set up with Python (and IDLE) running on Windows, I just wanted
> > to put these donated comps to good use....
> >
> >
> >  ________________________________
> > Shape Yahoo! in your own image. Join our Network Research Panel today!
> > _______________________________________________
> > 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 heistooheavy at yahoo.com  Thu Jul 19 15:37:16 2007
From: heistooheavy at yahoo.com (Richard Guenther)
Date: Thu, 19 Jul 2007 06:37:16 -0700 (PDT)
Subject: [Edu-sig] Donated computers, Linux, and IDLE problems.
Message-ID: <301033.13393.qm@web63302.mail.re1.yahoo.com>

Thanks to all the responses.  I have played around with Ubuntu a little in the past, but will try it again.  I'll report back on my progress after much tinkering around, etc. :-)

IDLE is very important to me when it comes to teaching Python....

Richard

----- Original Message ----
From: Lloyd Hugh Allen 
To: Atul Varma 
Cc: Richard Guenther ; "edu-sig at python.org" 
Sent: Thursday, July 19, 2007 5:28:36 AM
Subject: Re: [Edu-sig] Donated computers, Linux, and IDLE problems.

I agree (and this is the time of year that considering how to set up
the lab is particularly relevant, for those people who are able to
control how their lab is set up).

I am using Ubuntu now, and am able to pull up an Idle session by going
to the Applications menu, coming down to programming, and choosing
IDLE. To install IDLE, go to System --> Administration --> Synaptic
Package Manager, search for IDLE, and then go down the alphebetized
list to find IDLE (current version). Check it, "apply", and then
Ubuntu will grab anything that is missing and install IDLE.

There are two drawbacks -- currently my Ubuntu only sees 2.4.3 (I
don't know the process to allow the current version to automatically
be recognized), and Ubuntu get angry at particular graphics cards. Be
very, very careful about updating your video drivers, lest you end up
having to reconfigure them and/or X from the console (doable, but not
"I'm setting up a lab of 30 computers and need to be ready for class
before I go home"able).

The good news is that as soon as 2.5.1 has been blessed by the Ubuntu
gods, an icon will appear on the menu bar suggesting that you
automatically upgrade to it. You can manually update, but then you
don't get automatic updates as they are blessed.

Good luck,
Lloyd Allen

On 7/19/07, Atul Varma  wrote:
> Hi Richard,
>
> Have you considered using Ubuntu?  The latest version of the distro
> comes with Python 2.5 installed, and IDLE can be easily installed
> using the built-in package management system.  I've also found that
> installing Ubuntu is easier than installing Windows, and its base
> configuration is reasonably minimalistic.
>
> - Atul
>
> On 7/18/07, Richard Guenther  wrote:
> >
> > I'm not sure if this is the best place to post this question, but it
> > certainly fits into the edu-sig realm ;-)
> >
> > I will be sponsoring a high school computer programming club again this
> > year.  I get older computers donated to me quite often, most in the Pentium3
> > range.  Often they have a crippled version of Windows on them, but no
> > restore disks, etc.  Also, most of these computers will NOT be hooked up to
> > the internet.
> >
> > What I'd like to do is put a simpler LINUX distro on them (MepisLite is my
> > current favorite for these situations), and then get Python up and running
> > with IDLE working.
> >
> > But it's not easy!  I don't know of a distro yet that comes with a working
> > IDLE installed.  Whenever I've done the source file dance ("./configure,
> > make, make install") with newer versions of Python, I get the common
> > PYTHONHOME and PYTHONPATH problems and also can't get IDLE to work.
> >
> > Any suggestions or advice?
> >
> > Richard
> >
> > P.S.  I know this sounds like a technical question for a n00b forum, but the
> > context of this problem (I'm a teacher trying to set up some convenient
> > Python boxes for my students to use) made me think it might be appropriate
> > here.  If not, I apologize in advance.  I am, btw, getting our PCs in the
> > computer lab set up with Python (and IDLE) running on Windows, I just wanted
> > to put these donated comps to good use....
> >
> >
> >  ________________________________
> > Shape Yahoo! in your own image. Join our Network Research Panel today!
> > _______________________________________________
> > 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
>







       
____________________________________________________________________________________
Yahoo! oneSearch: Finally, mobile search 
that gives answers, not web links. 
http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070719/cfb88f82/attachment.htm 

From kirby.urner at gmail.com  Thu Jul 19 17:06:22 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 19 Jul 2007 08:06:22 -0700
Subject: [Edu-sig] Bionic Snaketalk (proposed metaphorics)
Message-ID: 

So I'm thinking of using this analogy today:

MOLECULES

Data structures, starting from primitive number types, are like
the molecules and macromolecules of life, the beginnings of
organic chemistry.

MICRO-ORGANISMS

Functions, recently augmented with generators, are like the
unicellular organisms on up to quite a few cells, but still quite
simple.

SKELETAL CREATURES

Classes, though potentially very simple, provide the framework
favored by the truly well endowed creatures, like Mammals
(yes I'm applying a bias).

Example application:

In a language like Java, we're always extending the class
framework, extending a tree rooted in the foundation object
(Python has one too), and spreading overhead into the
hugeness of the Java class library (complete with Applet
and Swing branches).

Someone coming from Java, looking at Python, might
exclaim:  wow, how prehistoric!  The mitochondria still have
an independent existence, their own street addresses."

What this means of course, is that in Python we still have
top level life forms of the pre-class variety, just as we suspect
mitochondria used to have independent lives outside the
confines of cells.

http://micro.magnet.fsu.edu/cells/mitochondria/images/mitochondriafigure1.jpg
[ image of a single mitochondrion, matrix exposed ]

Kirby

From hummingbird at hivemind.net  Thu Jul 19 17:24:38 2007
From: hummingbird at hivemind.net (Antoine van Gelder)
Date: Thu, 19 Jul 2007 17:24:38 +0200
Subject: [Edu-sig] Newbie question
In-Reply-To: 
References: <469EAFCD.5030308@hivemind.net>
	
Message-ID: <469F8236.9020408@hivemind.net>

Anna Ravenscroft wrote:
> In my view, if the political considerations directly and specifically
> affect Python curriculum development (or getting a particular
> curriculum accepted) in a particular situation, that's one thing.
> Going on at great length repeatedly about educational
> politics/philosophy in general is another. There are many lists and
> fora specifically for those topics.


Thank you for taking the time to answer one of my questions Anna!

:-)

  - antoine


-- 

"Any organization that designs a system (defined broadly) will produce a
  design whose structure is a copy of the organization's communication
  structure."

  - Melvin Conway

From kirby.urner at gmail.com  Thu Jul 19 17:33:22 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 19 Jul 2007 08:33:22 -0700
Subject: [Edu-sig] Bionic Snaketalk (proposed metaphorics)
In-Reply-To: 
References: 
Message-ID: 

On 7/19/07, kirby urner  wrote:
> So I'm thinking of using this analogy today:
>
> MOLECULES
>
> Data structures, starting from primitive number types, are like
> the molecules and macromolecules of life, the beginnings of
> organic chemistry.

Probably that should be:

data structures + control structures

... considering exceptions a kind of control structure.

These, then, are the primitive amino acid type proteins
necessary for defining low level eat-and-return biota of
the next level (i.e. functions, generators and, higher still,
methods within classes).

What's cool about IDLE is you're free to interact with the
low level components without going to all the work of
writing a structured program.

The immediacy of the shell is what throws students for
a loop sometimes -- they're not used to prodding and
poking at this low a level, still think you "have to write
programs" in order to explore string.Templates for example,
whereas yesterday in class we just went like:

>>> from string import Template

>>> boilerplate = Template("There once was a $person from $city...")

>>> boilerplate  # trigger internal __repr__


>>> formfiller = {"person":"guy", "city":"a strange faraway country"}

>>> boilerplate.substitute(formfiller)
'There once was a guy from a strange faraway country...'

The idea here is to see "boilerplate" as setting up a View, with
our "formfiller" a transport layer  to/from a MySQL data base
on a server somewhere.

We can storytell around these common LAMP-like design
patterns, while messing about in the shell, thereby

(a) cluing students about how things work
(b) giving them practice interacting with objects

all without

(c) needing to write too much code, at least at first
(recall is hard, recog is easier).

Kirby

From heistooheavy at yahoo.com  Thu Jul 19 18:23:24 2007
From: heistooheavy at yahoo.com (Richard Guenther)
Date: Thu, 19 Jul 2007 09:23:24 -0700 (PDT)
Subject: [Edu-sig] Bionic Snaketalk (proposed metaphorics)
Message-ID: <141035.37980.qm@web63311.mail.re1.yahoo.com>

In the same way that Python programmers like to compare python to other languages in sheer line count of code (see the page bottom of this example from Peter Norvig), I like to compare the first three or four chapters of beginning programming books about Python to beginning books for other languages. 

I remember finding a big pile of C++ "introductory" books in our schools storage room.  After asking around I found out the school actually had a programming class in the past that "just didn't catch on".  Looking at those texts, I can see why....

Luckily, enough time has passes that no students now remember that C++ class anymore.  I have more of a "blank slate" to introduce to Python and IDLE.

Richard




----- Original Message ----
From: kirby urner 

========snip snip=====================

What's cool about IDLE is you're free to interact with the
low level components without going to all the work of
writing a structured program.

The immediacy of the shell is what throws students for
a loop sometimes -- they're not used to prodding and
poking at this low a level, still think you "have to write
programs" in order to explore string....

========snip snip==================








       
____________________________________________________________________________________
Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online.
http://smallbusiness.yahoo.com/webhosting 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070719/2746a857/attachment.html 

From pdfernhout at kurtz-fernhout.com  Thu Jul 19 22:26:50 2007
From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout)
Date: Thu, 19 Jul 2007 16:26:50 -0400
Subject: [Edu-sig] Politics and Python in Education (meta on
	list	charter)
In-Reply-To: 
References: 	<469E190D.1030607@kurtz-fernhout.com>		<469E9F87.6070401@kurtz-fernhout.com>
	
Message-ID: <469FC90A.6050900@kurtz-fernhout.com>

Guido-

The change to edusig's charter by you as BDFL seems to be a "fait
accompli", so the redirect to meta-sig seems to be a waste of time, so
I'm going to drop this topic after this last post (I need to get back to
writing software in Python. :-)

As closure, someone with more perspective on this discussion than I told
me offlist they think it is *hilarious* that this sudden ban on
political discussion on edusig has come about in proximal response to
Kirby originally posting (in part):
"In the USA, most schools erect an artificial wall between mathematics
and any discipline involving computer programming.  To question this
wall is considered heresy.  One is branded a radical for even calling
attention to its existence. Instead of using the Python or any other
kid-friendly language to develop ideas about rational and complex
numbers, vectors, sets, primes versus composites, important algorithms
of mathematics, our children are enslaved to a dark ages regime that
permits only calculators, probably by Texas Instruments. Programming is
considered irrelevant to mathematics learning. Open source software is
scarcely whispered about. The use of Python or other programming
languages is either strictly forbidden or strongly discouraged within
primary and secondary school mathematics classes."

We'll see how well censorship works here too.

All the best.

--Paul Fernhout
"I just wake up in the morning and tell myself, 'There's been a military
coup'. And then it all makes sense." -- a US State Department official
   http://www.guardian.co.uk/usa/story/0,12271,1045302,00.html

Guido van Rossum wrote:
> I'm just speaking for the majority of list members who are tired of
> your and Kirby's (and it the past Arthur's) rants. I really don't care
> about arguments "proving" that the list charter is what you want it to
> be. Most people want it to be something else. Check the recent
> discussions. Almost nobody has spoken in defense of you or Kirby, many
> responded with an enthusiastic "+1" to my original proposal to ban
> politics.
> 
> --Guido
> 
> On 7/18/07, Paul D. Fernhout  wrote:
>> Guido-
>>
>> I've been on this list continuously since about the second day
>> (2/3/2000) -- a little over seven years. I'll admit I was so turned off
>> by Kirby's comments after my initial posts (on bringing good ideas from
>> Squeak into Python, the technical topic I still like the most, and
>> continue to work towards). I went into lurk mode for about five years,
>> mostly until the issue of Python drawing from Squeak resurfaced from
>> others. I've since come to appreciate Kirby's unique charm. :-)
>>
>> Remember when you sent out this in your email of 2/2/2000 entitled:
>> "Special Interest Group: Python in Education"? It read in part: "I don't
>> have a fixed idea about what the charter of the SIG should be; I'd like
>> to see discussion of CP4E, but also of other issues related to Python
>> and education, and I'd like to include all levels of education (from
>> grade school to college level as well as adult education), as long as
>> people are interested in learning or teaching Python."
>>
>> That can be read a lot of ways. If you intended something more specific
>> you should have said so then.
>>
>> Remember the start of very *first* reply by someone else (to the CCs,
>> not to the list) and the related thread? The very first reply by someone
>> else (not me) started with: "the only way you can succeed is to have
>> choice in education and without competition, the current public
>> education monopoly will crush you. they are just to paranoid about
>> virtual classrooms and the nea and aft are like stalin in their efforts
>> to block every and any attempt to do this in k to 18, ..." And went on
>> from there.
>>
>> And then the start of the *second* reply by someone else (also to the
>> CCs and not to the list): "While I may not be quite as cynical as Mr.
>> [Name omitted] I must admit that I have seen some of the attitudes that
>> he describes. While one would think that you would find progressive "out
>> front" thinkers in the field of education, unfortunately they seem to be
>> the exception to the rule. Instead they are offen territorial,
>> "politically" motivated and especially uncomfortable with change of any
>> kind. They give lip service to "out of the box thinking" but rarely
>> reward it."
>>
>> Didn't those two initial replies to the CC list give you some inkling of
>> what you were getting yourself into with CP4E? Or the whole reason why
>> DARPA would think it was so essential as to be worth funding your
>> proposal to solve a serious problem in the USA affecting the entire
>> nation's security and prosperity? Or perhaps the world's security and
>> prosperity, for that matter, in the face of a likely technological
>> singularity?
>>   http://en.wikipedia.org/wiki/Technological_singularity
>>
>> Look, if you suddenly pop up after five months of silence on this list
>> to present an admitted "strawman" proposal (like you did)
>>  http://mail.python.org/pipermail/edu-sig/2007-July/008073.html
>> which is to actually *change* the evolved character of the list
>> (otherwise why the complaints from some who object to it as it is?) --
>> a strawman which anyone who had taken a course in society and technology
>> would know takes an either naive or disingenuous position on politics
>> and educational technology (like the two could ever be separated) --
>> then don't be surprised when you get replies like mine below which are
>> responsive to that strawman. As I wrote below: "I think your analogy
>> (and by extension Guido's strawman proposal) is flawed, because a key
>> aspect of *design* is to see how values and priorities (which is the
>> core of "politics") lead to new and interesting structures for software
>> and content and hardware."
>>
>> I'll readily agree that part of the tension, as between me and Kirby, is
>> that I like to talk about (and develop towards) the part of the original
>> CP4E goals
>>   http://www.python.org/doc/essays/cp4e.html
>> related to a better system for programming in Python for novices (and
>> experts), while a lot of other people here (if not most, including
>> Kirby) like to talk about another part of those goals of a new
>> curriculum, in the sense of how to use python-as-is in school-as-is. But
>> I don't think that divide can be resolved by censorship. If it bothers
>> people a lot, then there should be two lists (I'm not pushing that
>> though as I think they cross-pollinate each other). Note that on CP4E
>> the proposal reads: "These components come together in the scientific
>> exploration of the role of programming in next generation computing
>> environments." How can one discuss the role of programming in the future
>> without talking either about the future or the political and
>> technological context for such systems?
>>
>> You've barely posted to this list in the last couple of years -- how
>> much in touch with the list are you anymore? Is anybody flaming anyone
>> here? Anyone threatening anyone here? With occasionally fallow periods,
>> this list seems to keep moving right along -- sometimes great
>> conversations, sometimes not. Kirby is like its heart beat, and I don't
>> like seeing him censored. I for one also miss Art's insights; I didn't
>> always agree with him, but he had many interesting things to say.
>>
>> I'd like to draw everyone's attention back to the spinoff list which
>> others started to have a narrower focus:
>>   http://groups.google.com/group/edupython
>> Description: "Supporting the development of online resources and
>> interactive tools to serve high school students, undergraduates, and
>> hobbyists learning Python, and to assist teachers and instructors in
>> reaching those audiences."
>>
>> One comment by Michael T. on that list:
>>   http://mail.python.org/pipermail/edu-sig/2006-April/006278.html
>> "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."
>>
>> Note the words "new list".
>>
>> It seems to me you are trying to beat edusig into that new list (which
>> is a bit ironic, as the new narrower list itself seems to be not very
>> active in the past few months, especially compared to edusig). What's
>> next, restricting discussion on educational "philosophy" as opposed to
>> "politics"? That's another thing some people have complained about. And
>> then after that? References to Squeak or DrScheme? Maybe comments on
>> constructivism?
>>
>> If you want a new list with a highly focused charter (can such a thing
>> even be defined in this context?), with an explicit policy anyone
>> posting something beyond that narrow charter will be booted from the
>> list, then by all means, go for it, and give it your blessing. Changing
>> edusig's policies and culture midstream through censorship threats or
>> related intimidation seems ultimately counterproductive to me. As you
>> suggest, your main concern is just on the hypothetical chance a strict
>> rule might prevent possible future problems like some *unspecified*
>> lists had in the past and which this one has not had (at least not to
>> that degree, even if watching Art and Kirby wrestling with each other
>> could get tiring sometimes. :-)
>>
>> Having said that, I had pretty much moved back to lurk mode on the list
>> (my previous last post was in April) before your strawman proposal
>> anyway; I only started responding on this topic to defend Kirby. If you
>> want to ban me for responding to a meta-discussion *you* started, then
>> go ahead. :-) I'm certain we *both* have better things to do.
>>
>> --Paul Fernhout
>>
>> Guido van Rossum wrote:
>>> Please stop arguing politics on the list NOW.
>>>
>>> I don't want to start actually kicking people or posts off the list,
>>> but I will if it doesn't stop. This is simply not the platform for it.
>>> Find a different platform where this topic are welcome.
>>>
>>> --Guido
>>>
>>> On 7/18/07, Paul D. Fernhout  wrote:
>>>> Anna Ravenscroft wrote:
>>>>>> Still, I could essentially see Guido's point, because some conventional
>>>>>> school staff who otherwise like Python may face issues posting to a list
>>>>>> talking about the future of education (which may appear to threaten
>>>>>> their job), so perhaps ultimately a solution would be to have one list
>>>>>> for "python in mainstream education" and another list for "python for
>>>>>> alternative or future education".
>>>>> Or how about one list on "educational politics" and one on python in
>>>>> education. Oh wait - there ARE already lists on educational
>>>>> politics... how about those who want to discuss that, go to those
>>>>> lists and discuss it there?! And use this list to specifically discuss
>>>>> python in education?
>>>> I think your analogy (and by extension Guido's strawman proposal) is
>>>> flawed, because a key aspect of *design* is to see how values and
>>>> priorities (which is the core of "politics") lead to new and interesting
>>>> structures for software and content and hardware. In a Python CP4E
>>>> context I see this as including any or all of:
>>>> * changes to Python itself (e.g. "edit and continue" support in the core
>>>> and in IDLE), or
>>>> * new libraries for Python (e.g. PataPata), or
>>>> * new application based on Python (e.g. constructivist educational
>>>> simulations, including perhaps, though he might have disagreed, the late
>>>> Arthur Siegel's PyGeo :-), or
>>>>   http://pygeo.sourceforge.net/index.html
>>>> * new curricula or other smaller educational materials (e.g. the
>>>> Shuttleworth Foundation's steps in that direction), or
>>>> * even new hardware which is Python-powered (e.g. OLPC, or even Lego
>>>> Mindstorms NXT robotics, which I just got two of and was yesterday
>>>> looking up references to using Python to program).
>>>>
>>>> To talk about creating such software or hardware or content without a
>>>> sense of priorities and values would be analogous to going to an
>>>> architect, asking them to design you a custom house and, and then
>>>> saying, "well, you're an architect, just design us something, we are
>>>> busy people and have no time to talk about values or priorities".
>>>> Although I guess even there a clever architect would learn one thing
>>>> about such people's values and priorities. :-)
>>>>
>>>> For a personal example, to show these issues are not just talk, consider
>>>> the literally person-months I spent building the PataPata experiment
>>>>   http://patapata.sourceforge.net/
>>>> to bring some Squeak-like constructivist ideas more directly into a
>>>> Python-powered IDE, and which I discussed on this list. Maybe not a huge
>>>> success, but a big investment of my limited time in the free Python
>>>> realm and I learned a few things from it (including the importance of
>>>> naming objects if you wished to share them, a departure from the "Self"
>>>> prototype programming ideal using unnamed pointers to parent objects).
>>>>   http://patapata.sourceforge.net/critique.html
>>>> Ultimately, PataPata was of very marginal interest here. Other people
>>>> can talk about how Squeak has ideas that might work in Python, but when
>>>> things got going, the talk was just talk. Ideally, from my point of
>>>> view, people here would have discussed how these priorities and values
>>>> of learned-centered technologies such as PataPata was a step towards
>>>> could be translated into even more Python-related software, stuff beyond
>>>> PataPata and even better. People could go beyond what I reference, and
>>>> go beyond my own self critique, and as experienced educators suggest
>>>> even better ideas for new technology related to Python (e.g. "the
>>>> students are always saying if only we had X Y or Z for Python they'd be
>>>> using it so much more for the things they want to do" -- like the
>>>> reasons a homeschooled kid chose "DarkBasic" instead of Python, as
>>>> mentioned on the Math Forum Kirby posts to).
>>>>   http://mathforum.org/kb/message.jspa?messageID=5812048&tstart=0
>>>>
>>>> But that doesn't happen here much, in large part I'd speculate since
>>>> most educators here are teachers, and the authoritarian context most
>>>> teachers work in is unfortunately very limiting both as to free time and
>>>> as to possible horizons, at least in the USA. Again, for example,
>>>> consider my relative who could be fired if she installed Python on her
>>>> classroom computer, and who would not have enough free time to go
>>>> through the bureaucratic hoops to get Python installed district wide,
>>>> let alone then have time to learn how to use it).
>>>>
>>>> That all to me is tremendously disappointing, especially as:
>>>>   CP4E != CP4MainstreamSchools
>>>> in my thinking (even if mainstream schools are part of "Everyone").
>>>>
>>>> It's no big surprise the US military (of all US institutions including
>>>> the Department of Education) initially funded CP4E, because, in the USA,
>>>> historically the military has had the most difficulties dealing with
>>>> lack of education among recruits, see for example:
>>>>   http://www.johntaylorgatto.com/chapters/3b.htm
>>>> """Back in 1952 the Army quietly began hiring hundreds of psychologists
>>>> to find out how 600,000 high school graduates had successfully faked
>>>> illiteracy. Regna Wood sums up the episode this way: "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.""""
>>>>
>>>> Doesn't that sound a bit like future echoes of "Why Johnny Can't Code"?
>>>>   http://www.google.com/search?hl=en&q=Why+Johnny+Can%27t+Code
>>>>   http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html
>>>>   http://news.com.com/Why+Johnny+cant+code/2010-1071_3-5596882.html
>>>>   http://developers.slashdot.org/article.pl?sid=06/09/14/0320238
>>>> It is another example of how, ironically, the US military is perhaps the
>>>> only well supported large institution in the USA who, as with
>>>> illiteracy, needs to wrestle with the consequences of US educational
>>>> problems on a large scale. Gatto suggests, unlike the military, most of
>>>> the other US institutions actually grow in power the more dysfunctional
>>>> citizens are, so educational failure isn't a problem for them;
>>>> illiterate graduates are paradoxically a great thing for, say, a
>>>> department of education's budget -- justifying, in an unexamined way,
>>>> more money to do more of the same.
>>>>
>>>> People on this list (including Guido) sound disappointed in me for
>>>> talking educational politics, but as I reflect on it, I am disappointed
>>>> with people on this list for not helping more directly translate the
>>>> values and priorities I reference into even more Python-related options
>>>> for the future of most education. That future will IMHO emphasize
>>>> learner-centered and learner-customized on-demand activities which
>>>> empower the user to do amazing things either alone or as part of amazing
>>>> ad hoc groups like a typical open source or free software projects,
>>>> including Python. And that disappointment is even keener because I have
>>>> little doubt the educators on the edusig list are generally some of the
>>>> most progressive ones around (otherwise, people her would be on a Java
>>>> list or teaching about using Visual Basic to script Office).
>>>>
>>>> I can acknowledge that to the extent edusig is about being a teachers'
>>>> lounge where teachers compare notes about teaching Python to meet
>>>> state-defined objectives to pass standardized tests, such discussions
>>>> seem off-topic. But as I said before, if that is the concern, Java is
>>>> really the answer (in the USA, based on AP credit as someone else
>>>> mentioned; granted other countries will differ). Once we wander off that
>>>> path of standardization, then lots of issues relating to values and
>>>> priorities show up -- especially if, like me, you are interested in
>>>> making new things related to Python and education.
>>>>
>>>> --Paul Fernhout
>> _______________________________________________
>> Edu-sig mailing list
>> Edu-sig at python.org
>> http://mail.python.org/mailman/listinfo/edu-sig


From guido at python.org  Thu Jul 19 23:12:03 2007
From: guido at python.org (Guido van Rossum)
Date: Thu, 19 Jul 2007 14:12:03 -0700
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: <469FC90A.6050900@kurtz-fernhout.com>
References: 
	<469E190D.1030607@kurtz-fernhout.com>
	
	<469E9F87.6070401@kurtz-fernhout.com>
	
	<469FC90A.6050900@kurtz-fernhout.com>
Message-ID: 

On 7/19/07, Paul D. Fernhout  wrote:
> We'll see how well censorship works here too.

Equating what is happening here to censorship is a joke in itself.

> All the best.

Good riddance.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)

From kirby.urner at gmail.com  Fri Jul 20 01:35:53 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 19 Jul 2007 16:35:53 -0700
Subject: [Edu-sig] Bionic Snaketalk (proposed metaphorics)
In-Reply-To: 
References: 
	
Message-ID: 

That proteins (control/data structures), biota (functions & generators),
skeletals (classes/types) discussion went OK, but I ended up deepening
the meme pool with:  aquaria or zoos (modules).

I didn't even mention packages (ala __init__.py), yet another unit of
depth.  Plus site-packages itself may have many of those (VPython
a case in point).

Plus you might have multiple snake engines (a 2.x, a 3.x).

Anyway, I think adding modules as an outer container sounds good, as
these other components all go towards filling a module:  not just classes,
not just functions.  Data structures may well be top level (*especially*
data structures), such as a list of all cities of more than a million people,
with latitude and longitude tuples.

Tweaking povtoyz.py is harder than tweaking viztoyz.py, at least with the
colors, in part because I embed default texture info in my polyhedra.py.

Others might choose to refactor here.

I sampled Animusic 2 rather heavily again, talking about how rendered
action might be driven by a MIDI stream:

http://www.atomfilms.com/film/animusic_starship.jsp

Kirby

From peter at mapledesign.co.uk  Sat Jul 21 17:17:00 2007
From: peter at mapledesign.co.uk (Peter Bowyer)
Date: Sat, 21 Jul 2007 16:17:00 +0100
Subject: [Edu-sig] Politics and Python in Education (meta on list
 charter)
Message-ID: <20070721153545.16F781E4008@bag.python.org>

At 00:21 19/07/2007, Guido wrote:
>discussions. Almost nobody has spoken in defense of you or Kirby, many
>responded with an enthusiastic "+1" to my original proposal to ban
>politics.

I missed your original post, but a heartfealt +1 from me.  I took 
Arthur to task once and he left the list for a short while - it'd be 
nice not to have edu-sig dominated by one or two people again.

Can I propose we talk about what we're trying and what works, and 
make this the list-focus?

In the context of deploying Python as a teaching aid (or the language 
for a Computer Science course)  I don't give a damn about what 
education *should* be.  I want to hear the approaches others are 
finding successful, I want to hear what people are doing/planning to 
do and their ideas.  I don't want a load of theoretical talk - I'll 
join another mailing list for that.

Please - can we keep this one a list where busy professionals (and 
those interested) can read, talk, share & learn in a pragmatic 
manner?  Let's keep it a useful list for people who want to do 
something educational using Python and need advice or feedback.

I have no problem with the odd bit of theory coming up ("I've always 
thought this way would work..." or "Have you seen this approach 
proposed by XYZ?") - to show we're keeping education in mind it 
should be there.  But this list is a community, not a platform for a 
couple of people to air their views and dominate.

I don't work in an educational institution.  I did my masters' thesis 
on physics & python [1] and am still on this list here because it's a 
subject close to my heart and I want to keep up with what others are 
doing, and contribute if I have anything to offer.

Peter

References
1. 
http://peter.mapledesign.co.uk/writings/physics/teaching-introductory-programming-to-physics-undergraduates.pdf

-- 
Maple Design Ltd - Web design and application development
http://www.mapledesign.co.uk
+44 (0)845 123 8008

Reg. in England no. 05920531  


From kirby.urner at gmail.com  Sat Jul 21 18:13:55 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Sat, 21 Jul 2007 19:13:55 +0300
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: <20070721153545.16F781E4008@bag.python.org>
References: <20070721153545.16F781E4008@bag.python.org>
Message-ID: 

On 7/21/07, Peter Bowyer  wrote:

> In the context of deploying Python as a teaching aid (or the language
> for a Computer Science course)  I don't give a damn about what
> education *should* be.  I want to hear the approaches others are
> finding successful, I want to hear what people are doing/planning to
> do and their ideas.  I don't want a load of theoretical talk - I'll
> join another mailing list for that.

The only problem I see in terms of reducing Kirby's "dominance"
(measured as "relative frequency of posts"?), is I'm one of those
actively teaching Python in a classroom setting.

This idea that I'm just sitting back in an armchair, pontificating
and theorizing, might fit some other subscribers here, but not me.

In Portland, Oregon, we actually teach mathematics using Python.
That's just the reality on the ground.  I use edu-sig to file notes on
how we're doing that, helping to spread competence to other
gnu math teachers out there (a growing army).

http://mybizmo.blogspot.com/2007/07/winding-up.html

I'm also a busy professional, a DBA for a team of eminent heart
surgeons, with clinical data going back to the 1960s (among other
hats that I wear).

Python is not my first computer language.  I've also collaborated
with the late Kenneth Iverson on curriculum writing around the J
language ('Jiving in J').

The late Arthur Siegel was also a contributor to Python's growing
educational toolkit, in the form of Pygeo (which so far drawfs
Crunchy Frog, in terms of scope and ambition http://pygeo.sourceforge.net/ ).

The way I see it, Arthur, a New York financial wizard and latecomer
to programming, earned his street cred the hard way, by really
doing, not just talking about doing.

Kirby

From pdfernhout at kurtz-fernhout.com  Sun Jul 22 07:58:01 2007
From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout)
Date: Sun, 22 Jul 2007 01:58:01 -0400
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: <20070721153545.16F781E4008@bag.python.org>
References: <20070721153545.16F781E4008@bag.python.org>
Message-ID: <46A2F1E9.50007@kurtz-fernhout.com>

Peter Bowyer wrote:
> In the context of deploying Python as a teaching aid (or the language
>  for a Computer Science course)  I don't give a damn about what 
> education *should* be.  I want to hear the approaches others are 
> finding successful, I want to hear what people are doing/planning to 
> do and their ideas.  I don't want a load of theoretical talk - I'll 
> join another mailing list for that.

OK, let's talk specifics of a CP4E-like project and its limitations.
Consider one that is mentioned in the CP4E proposal (though somewhat
dismissively) -- DrScheme, or as it is now, "Teach Scheme":
  http://www.python.org/doc/essays/cp4e.html

"Teach Scheme" is IMHO (arguably) currently the most successful
worldwide project to bring a dynamic computer programming language into
the classroom. [OLPC (carrying Python) might someday soon eclipse it,
but that still remains to be seen. Same with the Shuttleworth
Foundation's noble effort. ]  The Scheme effort is more advanced and
organized with more integrated pedagogical content about teaching
programming than Python/CP4E. See for example:
  "How to Design Programs: An Introduction to Computing and Programming"
   http://www.htdp.org/2003-09-26/
  [Free Scheme book, problem sets, solutions, "teachpacks", etc.]
It has an IDE built specifically both for learning programming and for
advanced development supporting multiple language levels.
  http://www.plt-scheme.org/software/drscheme/tour/
And, unlike how they are described way back when in the CP4E proposal as
"The focus of TeachScheme is on a relatively narrow audience--college
students...", at least now the Schemers say "Teach Scheme" is "Specially
designed for high schools", see:
  http://community.schemewiki.org/?teach-scheme
  http://teach-scheme.org/Talks/ts-proj-anim.pdf

Consider the preface to their book _How to Design Programs_:
  http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-2.html
"Our claim that everyone programs or should learn to program might
appear strange considering that, at first glance, fewer and fewer people
seem to program these days. Instead, the majority of people use
application packages, which don't seem to require any programming. Even
programmers use ``program generators,'' packages that create programs
from, say, business rules. So why should anyone learn to program?
The answer consists of two parts. First, it is indeed true that
traditional forms of programming are useful for just a few people. But,
programming as we the authors understand it is useful for everyone: the
administrative secretary who uses spreadsheets as well as the high-tech
programmer. In other words, we have a broader notion of programming in
mind than the traditional one. We explain our notion in a moment.
Second, we teach our idea of programming with a technology that is based
on the principle of minimal intrusion. Hence our notion of programming
teaches problem-analysis and problem-solving skills without imposing the
overhead of traditional programming notations and tools. ...
No one can predict what kind of application packages will exist five or
ten years from now. But application packages will continue to require
some form of programming. To prepare students for these kinds of
programming activities, schools can either force them to study algebra,
which is the mathematical foundation of programming, or expose them to
some form of programming. Using modern programming languages and
environments, schools can do the latter, they can do it effectively, and
they can make algebra fun."

Sound familiar? Great minds think alike in some respects. :-)

The "Teach Scheme" project even offers free summer workshops to
teachers:
  http://www.teach-scheme.org/Workshops/
But, notice on that free workshop page the first *hint* of a systemic
school-related "educational politics" problem on that page, where they
write: "We also welcome high school teachers who cover at least one of
computer science, mathematics, and the physical sciences. We ask that
you first contact your school to determine whether they will allow you
to make curricular changes based on the summer course. You should find
out what obstacles you will face from your school if you decide to adopt
this curriculum."

Odd, isn't that? Here is wonderful content and software implementing
some of the core goals of CP4E, all for free to the end user, labeled by
the authors as "specially designed for high schools", with
presumably High School teachers so interested in using it they are
willing to take the time to attend a week-long summer workshop so they
can help their students learn using the best tools for their own unique
situation, and yet, this group throws out a wet blanket warning to put
out the fire in those teachers' eyes? Surprising, or is it? I can only
speculate on the ocean of tears motivating that warning.

So, for all that high quality free content, those specialized teaching
tools, those person-years of dedicated work, and so on, (pursuing a lot
of the CP4E mission but in Scheme "clothing" :-), in the end, the best
they can (humbly, and presumably accurately) say on their web site is:
  http://www.teach-scheme.org/
"The past decade has seen significant changes in the design and teaching
of introductory computer science curricula. The TeachScheme! Project was
at the vanguard of this change. The result is in use at hundreds of high
schools and universities, on nearly every continent, and some companies
have begun to employ the resulting software in their work."

I admire the PLT Schemers, and they do great work and seem completely
dedicated to similar goals to CP4E, and are polite and inclusive
and accommodating and smart, but after about a decade of great
effort with sustained grant funding, based around a fantastically
flexible cross-platform Scheme, in total expending far more effort than
Python's edusig or CP4E by an order of magnitude or two, they are only
reaching (at most) *hundreds* of high schools? There are literally 23000
high schools in the USA alone
  http://www.time.com/time/magazine/article/0,9171,884472,00.html
and probably several hundreds of thousands total world wide.
I'd suspect computer programming is likely taught in some form in most
every one of them. Something deeper is wrong here than *effort* or
*technique* in explaining "why Johnny can't code"
  http://www.google.com/search?hl=en&q=why+johnny+can%27t+code
(or more, why Johnny can't code *dynamically* with powerful tools)
when all that excellent "Teach Scheme" effort is apparently just
running into a barely movable brick wall. And, no, I don't think it is
"Scheme" specific, or at least not in a way which would give Python any
advantages over, say, Java or C++ or Visual Basic -- all with bigger job
markets. I feel the answer to why Teach Scheme has had limited adoption
in High Schools involves that "hint" above on their workshop page.
Should not the Python's CP4E and edu-sig be able to learn something from
"Teach Scheme's" experience? Or should such a Python-based effort
blunder along until it too ends up putting up the same warning on a
CP4E "free workshop" web page someday?

To be absolutely clear, this is not to knock "Teach Scheme" (or their
recent embracing of applying their techniques to Java; their ideas could
just as well be used with Python too). I admire them, even as a model
for CP4E to look towards for good ideas to bring into Python. Reaching
hundreds of schools and getting them to embrace powerful tools like PLT
Scheme, even if it took a decade of hard work, is IMHO still nothing
short of a well-deserved *miracle* and money very well spent.
After all, even reaching *just* hundreds of high schools means helping
possibly tens of thousands of kids a year, and that means a lot if you
are one of those kids whose lives are greatly improved. Still, where
does that leave the other several hundred million kids who "Teach
Scheme" probably cannot reach for reasons that have little to do with
effort or quality?

Here is their overview, which is a statement similar to what many
here probably would agree with for compatibility with Python/CP4E: "The
Project wants to turn Computing and Programming into an indispensable
part of the liberal arts curriculum. Computing and Programming teach
skills just as fundamental as, and closely related to, essay writing in
English and problem solving in mathematics. Students who learn to design
programs properly learn to analyze a problem statement; express its
essence, abstractly and with examples; formulate statements and comments
in a precise language; evaluate and revise these activities in light of
checks and tests; and pay attention to details. This benefits all
students, not just those who wish to study computing. For students who
want to pursue other disciplines, this curriculum shows how they can use
computing to model the phenomena they will encounter elsewhere."

That last sentence sounds a bit like Kirby's "gnu math", doesn't it?
Or Art's PyGeo?

People can and do talk here about what works in a progressive classroom
using Python and dynamic objects. It's a good thing to do that.
There should always be a space for that; to the extent any of my posts
here distract from that, I am sorry; I could see how another new list
dedicated to that might make sense -- one narrowly focused on Python in
the conventional classroom, like school-sig at python.org (which perhaps
would be restricted to full-time school teachers, so not open to posting
by me or the late Art or perhaps even Kirby (even as he has a lot of
great stuff to say on that topic. :-) But, as inherently worthy as
it is to make happy  a few dozen or even a few hundred Python-inclined
educators on edu-sig and their students who live in progressive school
districts, is that really the start of a movement, or is it more just a
tiny oasis of sanity?

Even adding together the "Teach Scheme" effort to Python's CP4E -- we're
talking essentially (on a percentage basis) just a hair's width above
*zero* percent of classrooms which are embracing a CP4E-like ideal --
after a decade and probably *millions* of dollars (total) and dozens
of person-years (by smart and motivated people). Curtailing
discussion here on why this is the case just seems to be ensuring this
near zero percentage won't change much for Python -- even as I'll admit
it probably *will* make the people already using Python in the classroom
happier for the moment (thus some of the +1 comments).

Essentially, the few educators lucky (or politically skilled) enough to
find themselves in progressive classrooms find and use Python/CP4E or
"Teach Scheme" or something similar (Squeak?) and they form the majority
on edu-sig. The rest, like my school teacher relative, might possibly be
fired for installing Python or Scheme and so stick with whatever is on
their computer (typically stuff sold to their district by high powered
marketing from commercial companies) or what runs in a locked-down web
browser. The browser is the most approachable of those two, and that's
why Crunchy is such a great idea as long as schools don't have to host
the server, or why Java or Flash based IDEs (including potentially
Jython) have some technical promise in acceptability for schools.
But even then, even if there was a universal free Crunchy server,
or a PataPata Jython-based Swing IDE running as an applet and saving to
a free server, then such tools may run right back into the curriculum
wall hinted at by the Schemers above (or by Kirby previously).
But, admittedly, by the nature of self-selection, these problems do not
concern most of the people who join the edu-sig list -- even as they do
greatly concern the rate of adoption of Python as a vehicle for
school-based education worldwide. But where else in the Python universe
to discuss them?

Education and schooling are not synonymous. Schools ultimately serve the
state; education serves the individual; school teachers who truly want
to educate are often caught painfully in between. Is there another way?
Is there perhaps a way people who have day jobs in schools can make a
bigger difference with their spare time? Unlike PLT Scheme, Python has,
for many reasons, a large installed base. There are likely hundreds of
thousands, if not, by now, millions of people around the world who have
installed Python on their own home computers and typed:
  print "hello"
(and then most likely stopped, either overwhelmed, or underwhelmed...)
The OLPC project will put laptops in the hands of millions more,
and those laptops will presumably be accessible outside of the school
context. So could then focusing on "education" and Python in a *home*
context then be a much longer lever with which to Pythonically move
the entire "educational" world (as opposed to just the essentially
immovable "schooling" world, which is what is *currently* mostly
represented on edu-sig)? Even schooled kids who play with a
computer at home might learn more about programming and the liberal arts
ideals articulated above by the Schemers in that context, if
the Python-powered experience seemed more attractive than, say,
watching TV or playing WoW or hanging out on MySpace.

And yes, the home context is just what I have spent person-months coding
towards for Python with PataPata, so it's not just hot air. And I
appreciate the positive comments in the past from people on this list in
helping improve that experiment (even as it is shelved for the moment).
  http://sourceforge.net/projects/patapata

--Paul Fernhout
[This does not mean I'm about to jump ship for PLT Scheme; I have about
a ten year investment (on-and-off) in using Python (and Jython) and I
would like to see Python succeed in the educational space, especially
with OLPC XO1 in the wings -- even if, sigh, (like it seems now for
every other major computer language in the world), the PLT Schemers have
already done work on "Edit and continue". :-) See:
  "Restartable Applications for PLT Scheme"
http://www.eecs.harvard.edu/cs261/final-project/extended-abstracts/daniel.pdf
That's a good reference document even for Python, since, predictably for
Schemers, they have developed a very general solution: "Online code
patching and program checkpointing for replay have both been explored
and implemented separately. Moreover, many of these systems are designed
around a specific language or platform. We present a portable system
where programs may be checkpointed, reified, and resumed, possibly
elsewhere and possibly with updated code." Hopefully, like when I tried
to bring a Pythonic idea to Scheme:
  http://www.cs.utah.edu/plt/mailarch/plt-scheme-2000/msg00471.html
we may someday see one more Scheme-ish/Squeak-ish/VB-ish idea like this
in Python.]











From peter at mapledesign.co.uk  Sun Jul 22 15:57:48 2007
From: peter at mapledesign.co.uk (Peter Bowyer)
Date: Sun, 22 Jul 2007 14:57:48 +0100
Subject: [Edu-sig] Politics and Python in Education (meta on list
 charter)
In-Reply-To: 
References: <20070721153545.16F781E4008@bag.python.org>
	
Message-ID: <20070722135757.93FB51E4017@bag.python.org>

At 17:13 21/07/2007, kirby urner wrote:
>The only problem I see in terms of reducing Kirby's "dominance"
>(measured as "relative frequency of posts"?), is I'm one of those
>actively teaching Python in a classroom setting.

I think frequency and length are a good measure of 
dominance.  Because it comes across like Kirby's or Paul's Journal - 
it's not often asking for input or in response to others' questions, 
it's information from you being shared.  There's valuable information 
there, but it's not fitting for an email list.  I mean 19kb Paul in 
response to my post!

>This idea that I'm just sitting back in an armchair, pontificating
>and theorizing, might fit some other subscribers here, but not me.
>
>In Portland, Oregon, we actually teach mathematics using Python.
>That's just the reality on the ground.  I use edu-sig to file notes on
>how we're doing that, helping to spread competence to other
>gnu math teachers out there (a growing army).

But is that edu-sig's role?  I'd say no - that's something for your 
own website/blog to fulfill, not a general discussion list.  I'd 
certainly not want you to never provide feedback, but give us brief 
updates on what you're finding works every so often and let us read 
it on your site if we choose.

It comes back to whether the list is viewed as information 
dissemination or a community.  I would strongly argue for the latter, 
as the former can be done by individuals.

Dominance by a few people doesn't build for an open community either, 
or even community.

>I'm also a busy professional, a DBA for a team of eminent heart
>surgeons, with clinical data going back to the 1960s (among other
>hats that I wear).

I have great respect for the amount you manage to do, one day I may 
reach this level of productivity!

In the end it's up to the list mom (an invention sorely missed these 
days) to say what we can and cannot do.  I mean no disrespect to your 
work by these postings Kirby.

Regards,
Peter


From peter at mapledesign.co.uk  Sun Jul 22 16:00:54 2007
From: peter at mapledesign.co.uk (Peter Bowyer)
Date: Sun, 22 Jul 2007 15:00:54 +0100
Subject: [Edu-sig] Politics and Python in Education (meta on list
 charter)
In-Reply-To: <46A2F1E9.50007@kurtz-fernhout.com>
References: <20070721153545.16F781E4008@bag.python.org>
	<46A2F1E9.50007@kurtz-fernhout.com>
Message-ID: <20070722140101.2402F1E4013@bag.python.org>

At 06:58 22/07/2007, Paul D. Fernhout wrote:
>OK, let's talk specifics of a CP4E-like project and its limitations.
>Consider one that is mentioned in the CP4E proposal (though somewhat
>dismissively) -- DrScheme, or as it is now, "Teach Scheme":
>   http://www.python.org/doc/essays/cp4e.html

What did any of this have to do with what I wrote?  You sent a 19kb 
email that only briefly touched upon my points at the end.  I rest my 
case: such mailings should be written up in a wiki, blog or other 
medium; they do not enhance a discussion on the list.

>Even adding together the "Teach Scheme" effort to Python's CP4E -- we're
>talking essentially (on a percentage basis) just a hair's width above
>*zero* percent of classrooms which are embracing a CP4E-like ideal --
>after a decade and probably *millions* of dollars (total) and dozens
>of person-years (by smart and motivated people). Curtailing
>discussion here on why this is the case just seems to be ensuring this
>near zero percentage won't change much for Python -- even as I'll admit
>it probably *will* make the people already using Python in the classroom
>happier for the moment (thus some of the +1 comments).

As I see it your understanding of the purpose of the list and mine 
are different.  This isn't a list about CP4E and how to get Python 
out there because it *needs* to be done, it's about practical 
discussion for those on the ground.

Let's see what the edu-sig page says:
"Edu-sig provides an informal venue for comparing notes and 
discussing future possibilities for Python in education. Its origins 
trace to Guido van Rossum's pioneering Computer Programming for 
Everybody (CP4E), a grant proposal accepted by DARPA, and which 
provided a modicum of funding in 1999.

Membership includes, but is not limited to, educators using Python in 
their courses, independent developers, and authors of educational 
materials. Discussion focuses on Python use at all levels, from..."

OK, so I have been interpreting it more narrowly than it is actually 
defined, not having the faintest idea what CP4E is or why an 
Education Special Interest Group (as opposed to a CP4E SIG) should be 
discussing it.

1.  Does the list fulfill the charter?
2.  Does the list fulfill the needs of its members?
3.  Are these the aims of most members on the list?

>Education and schooling are not synonymous.

Agreed, and no where have I stated to the contrary.

Regards,
Peter

-- 
Maple Design Ltd - Web design and application development
http://www.mapledesign.co.uk
+44 (0)845 123 8008

Reg. in England no. 05920531 


From kirby.urner at gmail.com  Sun Jul 22 16:23:41 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 22 Jul 2007 17:23:41 +0300
Subject: [Edu-sig] Politics and Python in Education (meta on list
	charter)
In-Reply-To: <20070722135757.93FB51E4017@bag.python.org>
References: <20070721153545.16F781E4008@bag.python.org>
	
	<20070722135757.93FB51E4017@bag.python.org>
Message-ID: 

On 7/22/07, Peter Bowyer  wrote:

> I think frequency and length are a good measure of
> dominance.

I'd be more inclined to agree if there were a fixed disk size.
But we both know human postings take few kbs.  Even a
high rez jpeg is more bytes than most of a month's writing.

Put another way:  I'm not trammeling on anyone's freedom to
post whatever, starting thousands of conversations around
me, like in a busy restaurant.  It could be so high volume
around here that you just pick and choose a few threads,
like on comp.lang.python.

I don't think my relatively high post rate is a barrier to that
happening.  Ergo I don't view myself as quelling debate and
or discussion of whether to teach lists first or dictionaries.

Just ignore me already.  Have you anything to say?  Go right
ahead and say it.  How am I in your way?

I'd think teachers would *want* to be on record somewhere
as supporting a more prominent role for programming in
our culture.  Edu-sig could be used in that way.  That puts
you on the winning side early, often a good place to be.

> Because it comes across like Kirby's or Paul's Journal -

But why is that Kirby's or Paul's fault?  Start hitting it back and forth
with Dethe about whatever you want to talk about.  Stop blank
staring at me.  Snap out of it man!

> it's not often asking for input or in response to others' questions,
> it's information from you being shared.  There's valuable information
> there, but it's not fitting for an email list.  I mean 19kb Paul in
> response to my post!

I've been very conversational in style.  These write-ups or class
notes form a piece of it, yes, but I'm hardly just blabbering to myself.
I'm interspersing my remarks.  Like here.  It's just like an ordinary
email list, sometimes with longer essays by some of the more
prolific.  Ever been on with a group of writers before?  It's just
like this.  Some characters you learn to tune out -- life is short,
I think that's a given.

> >This idea that I'm just sitting back in an armchair, pontificating
> >and theorizing, might fit some other subscribers here, but not me.
> >
> >In Portland, Oregon, we actually teach mathematics using Python.
> >That's just the reality on the ground.  I use edu-sig to file notes on
> >how we're doing that, helping to spread competence to other
> >gnu math teachers out there (a growing army).
>
> But is that edu-sig's role?  I'd say no - that's something for your
> own website/blog to fulfill, not a general discussion list.  I'd

I don't *just* use edu-sig in this way, and I *do* put a lot more in my
blogs, including pictures.  But I hardly think it's off topical to take a
real case of a real teacher really teaching Python, and publishing
some of the notes to edu-sig exclusively.  That's part of what makes
this a valuable resource.  Doesn't have to be the whole story.

> certainly not want you to never provide feedback, but give us brief
> updates on what you're finding works every so often and let us read
> it on your site if we choose.

That sounds like trying to micromanage.  But I know very well you
can filter emails, not read my stuff.  And that's *great*!  I shouldn't
be able to flood you with stuff you don't care about -- not because
I need to cut back, but because you have the power to filter (as do I).

Remember, I get a lot of fan mail.  People encourage me.  Why should
I listen to you over them, when it comes to exactly what/how/when
I should post to edu-sig.

> It comes back to whether the list is viewed as information
> dissemination or a community.  I would strongly argue for the latter,
> as the former can be done by individuals.
>

So welcome to our community then.  Don't think I don't consider it to be one.

> Dominance by a few people doesn't build for an open community either,
> or even community.
>

I haven't bought into your "dominance" metaphor yet.  I'm not forcing
anyone to keep quiet about what they care about am I?  So what that
I write a lot?  I'm a writer.

> >I'm also a busy professional, a DBA for a team of eminent heart
> >surgeons, with clinical data going back to the 1960s (among other
> >hats that I wear).
>
> I have great respect for the amount you manage to do, one day I may
> reach this level of productivity!
>
> In the end it's up to the list mom (an invention sorely missed these
> days) to say what we can and cannot do.  I mean no disrespect to your
> work by these postings Kirby.
>
> Regards,
> Peter

Why do we need a "list mom"?  That sounds so cub scout.

Kirby

From belred at gmail.com  Sun Jul 22 23:45:37 2007
From: belred at gmail.com (Bryan)
Date: Sun, 22 Jul 2007 14:45:37 -0700
Subject: [Edu-sig] curriculum
Message-ID: <38f48f590707221445p35373a22lc7d0099c3d598306@mail.gmail.com>

hi,

i have the opportunity to teach python at the local public school and
my company will pay for my time off of work to volunteer.  i talked to
the school and i can set the curriculum and the age of the students
how i want. the grades available to me are K-12.   my question to this
email list is does anyone have a curriculum that i could borrow from.
i need to put together a syllabus and plan for 18 1 hour sessions.
i'm thinking about setting minimum requirement to those that have
taken at least 1 quarter of algebra.  if you think that's not the
right thing to do please let me know.

thanks,

bryan

From mtobis at gmail.com  Mon Jul 23 03:21:38 2007
From: mtobis at gmail.com (Michael Tobis)
Date: Sun, 22 Jul 2007 20:21:38 -0500
Subject: [Edu-sig] curriculum
In-Reply-To: <38f48f590707221445p35373a22lc7d0099c3d598306@mail.gmail.com>
References: <38f48f590707221445p35373a22lc7d0099c3d598306@mail.gmail.com>
Message-ID: 

A lot of the Python-first stuff out there is aimed at the college
level, where opportunities like the yours are more common than at the
high school level.

You may wish to take into account whether this is part of the
curriculum or a voluntary after-school activity. In the latter case,
it's crucial to have the meetings enjoyable and rewarding every time
so as not to have too much attrition. Graphics is certainly valuable
in offering a psychological reward.

One place to look is certainly Jeff Elkner's material at
http://www.ibiblio.org/obp/thinkCSpy/

A quicker path to graphics is offered by
http://www.livewires.org.uk/python/ ; there are some installation
issues you'll have to work out with the school.

Thanks to a recent casual mention on this list, I have been looking at
Scratch for my next effort in this direction. Scratch is not a
full-fledged computer language but has some very remarkable features
as a transition from software user to software creator. It is easy to
install, and offers an upload to the web, so kids can ship their
projects home. I think a few sessions with Scratch may pave the way
for a more successful Python experience.

Good luck and stay in touch!

mt


On 7/22/07, Bryan  wrote:
> hi,
>
> i have the opportunity to teach python at the local public school and
> my company will pay for my time off of work to volunteer.  i talked to
> the school and i can set the curriculum and the age of the students
> how i want. the grades available to me are K-12.   my question to this
> email list is does anyone have a curriculum that i could borrow from.
> i need to put together a syllabus and plan for 18 1 hour sessions.
> i'm thinking about setting minimum requirement to those that have
> taken at least 1 quarter of algebra.  if you think that's not the
> right thing to do please let me know.
>
> thanks,
>
> bryan
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>

From matt at schinckel.net  Mon Jul 23 04:54:49 2007
From: matt at schinckel.net (Matthew Schinckel)
Date: Mon, 23 Jul 2007 12:24:49 +0930
Subject: [Edu-sig] curriculum
In-Reply-To: <38f48f590707221445p35373a22lc7d0099c3d598306@mail.gmail.com>
References: <38f48f590707221445p35373a22lc7d0099c3d598306@mail.gmail.com>
Message-ID: <2521244f0707221954q2e552018pd3430f191d0fbb02@mail.gmail.com>

Using algebra as a basis for teaching programming is great.  I've used
it at times as a lead-in: you basically use the same terminology
(functions), and kids really like being able to replace the actual
calculations with a function that can be 'worked out' by the computer.

You could also approach it from a variety of different directions.
GUI programming is possible, but with the class I am working with now
I wish I'd had more chance to spend teaching other stuff before having
to move to a GUI toolkit.

Matt.

On 23/07/07, Bryan  wrote:
> hi,
>
> i have the opportunity to teach python at the local public school and
> my company will pay for my time off of work to volunteer.  i talked to
> the school and i can set the curriculum and the age of the students
> how i want. the grades available to me are K-12.   my question to this
> email list is does anyone have a curriculum that i could borrow from.
> i need to put together a syllabus and plan for 18 1 hour sessions.
> i'm thinking about setting minimum requirement to those that have
> taken at least 1 quarter of algebra.  if you think that's not the
> right thing to do please let me know.
>
> thanks,
>
> bryan
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>


-- 
Matthew Schinckel 

The Feynman Problem-Solving Algorithm:
  (1) write down the problem;
  (2) think very hard;
  (3) write down the answer.

From clare at girlstart.org  Mon Jul 23 16:55:41 2007
From: clare at girlstart.org (Clare Richardson)
Date: Mon, 23 Jul 2007 09:55:41 -0500
Subject: [Edu-sig] Python editors for newbies?
Message-ID: <2768575AE4BD2740AFC4798322F0C1B0C21454@pandora.girlstart.org>

I'd like to get some opinions on the different Python editors and how
well they work for teaching Python as a first programming language.
We're thinking about using Dr. Python, since I'd like to keep away from
the command line.  Thoughts?

 

Clare Richardson
Technology and Program Coordinator
Girlstart
www.girlstart.org  
512.916.4775
512.916.4776 fax

Celebrate 10 Years of Success
Girlstart Luxury Vacation Raffle 


 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070723/54569446/attachment.html 

From belred at gmail.com  Tue Jul 24 05:47:53 2007
From: belred at gmail.com (Bryan)
Date: Mon, 23 Jul 2007 20:47:53 -0700
Subject: [Edu-sig] curriculum
In-Reply-To: 
References: <38f48f590707221445p35373a22lc7d0099c3d598306@mail.gmail.com>
	
Message-ID: <38f48f590707232047r5cd45d8dgcd5c1823324a866c@mail.gmail.com>

thank you all for your recommendations.  i'm going to go with joseph
ehlers suggestion and look more deeply into "Computer Programming is
Fun" since it's *exactly* what it was after.  joseph, great job
reading my mind!!  to answer some of the other's, this is for a real
school course not an after school class.  and i really do want to
teach the real python language, not a variant, logo, turtle, scratch,
etc.  CPIF seems very well thought out and professional.  and IMO
which you may or not agree with me and that's ok :), is i think it's
great that the author brought the lesson plans down to an introductory
level without "dummying down" or "watering down" the language.  it's
still python, using the python interpreter and still 100% applicable
to the real world as-is.

joseph, how many lessons do you make out of the book?  do you give
homework assignments or is it all done in class?  i only have enough
time and money to teach 1 class, 1 hour per week.  that's really why i
suggested the minimum requirement be algebra because i need to filter
down the number of kids that would want to take the class.  but like i
said before, i can filter the kids down anyway i want.  maybe algebra
isn't the best way to do it.  but i have to do something that is fair
and reasonable.  i'm not a teacher by trade, i design and architect
software for a living and i have been evangelizing python for many
years now and getting python projects started throughout the companies
i've worked for.  my company gives us paid time off to volunteer
anything we want and i thought this would be a great opportunity to
teach python to kids.  it's great to have a language that you can
develop sophisticated professional level programs with, and at the
same time be able to teach an introductory level class for kids.  i
wish i learned python as my first programming language instead of
TRS-80 BASIC.


thanks,

bryan

From matt at schinckel.net  Tue Jul 24 06:45:43 2007
From: matt at schinckel.net (Matthew Schinckel)
Date: Tue, 24 Jul 2007 14:15:43 +0930
Subject: [Edu-sig] Python editors for newbies?
In-Reply-To: <2768575AE4BD2740AFC4798322F0C1B0C21454@pandora.girlstart.org>
References: <2768575AE4BD2740AFC4798322F0C1B0C21454@pandora.girlstart.org>
Message-ID: <2521244f0707232145j248b6d39t3737e9dd68e9c511@mail.gmail.com>

I've been using Komodo, which whilst it isn't open source, has a free
version.  The full version, replete with Debugger, SCM and more, can
be set up as an Educational License, which is free if you meet certain
conditions.

It's cross-platform, and quite good.

http://www.activestate.com

I am in no way affiliated with ActiveState.  Other than being a customer.

On 24/07/07, Clare Richardson  wrote:
>
>
>
>
> I'd like to get some opinions on the different Python editors and how well
> they work for teaching Python as a first programming language.  We're
> thinking about using Dr. Python, since I'd like to keep away from the
> command line.  Thoughts?
>
>
>
> Clare Richardson
>  Technology and Program Coordinator
>  Girlstart
>  www.girlstart.org
>  512.916.4775
>  512.916.4776 fax
>
>  Celebrate 10 Years of Success
>  Girlstart Luxury Vacation Raffle
>
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>
>


-- 
Matthew Schinckel 

The Feynman Problem-Solving Algorithm:
  (1) write down the problem;
  (2) think very hard;
  (3) write down the answer.

From kirby.urner at gmail.com  Wed Jul 25 19:52:18 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 25 Jul 2007 10:52:18 -0700
Subject: [Edu-sig] Blog posts re OSCON
Message-ID: 

Not seeing a flood of posts here, which I gather is good news.  Certainly
I'm scaling back.  Anyway, I'm posting a lot about OSCON 2007 (the 9th
OSCON), including some education-related chatter, with some segues
to/from EuroPython.

My talk, about teaching Python in Portland, its implications for world
domination, is tomorrow.

Ran into Guido this morning.  More in my blogs (worldgame, controlroom,
mybizmo at blogspot.com).

OK, Ubuntu Community manager, Jono Bacon, is giving his stump speech
"How To Herd Cats and Influence People."

Urner out.

PS:  I've seen Anna here, Guido, but if there're other edu-sig subscribers
here at the Convention Center willing to track me down and say "hi", I'd
be appreciative.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070725/6e9c43b6/attachment.html 

From kirby.urner at gmail.com  Thu Jul 26 21:22:14 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 26 Jul 2007 12:22:14 -0700
Subject: [Edu-sig] Pretalk talking points (P4E)
Message-ID: 

In the spirit of open sourcing stuff, I'm jotting some last minute
thoughts for my talk, which I'll print out and have with me at
the podium, probably with annotations, other markup.

I'm recalling Novell's Miguel (de Icaza) showing off the rotating
cube of desktop motifs in earlier OSCONs, the applause.  But
now that it's a reality on my Ubuntu Dell, geeks seem hesitant
to revel in eye candy (I've seen no rotating cube in any
presentation so far -- were they big last year?).  Either it's ho
hum or let's leave it to OS X to pioneer "trendy" (as in iPhone
or whatever).  Not sure what it is.

Anyway, I don't take that slant.

I'm planning to be Bold with Beryl (r.c. 0.4.2 or something).

In the context of this morning's keynotes, my presentation is
somewhat about branding, less so about Python (kwel logo)
and more so about me and my 4D meme, which I've used
as a prefix for the two subsidiaries:  Solutions and Studios.

My logo appears on the top and bottom facets of the Beryl
cube, as well as @ myspace.com/4dstudios.

So on each facet (4 of them, top and bottom not counted),
I'll have a different show and tell item.  Screen 0 = slides,
which anchor my narrative.  Screen 1 = IDLE, from whence
I might sneak a peek at the source and/or run some short
demos.  Screen 2 = VLC paused in Code Guardian, to help
with my slides about Real Time versus Render Time output.
Screen 3 (last but not least):  Firefox, with a bunch of pages
preopened in tabs.

The context:  we're already over the hump with the open source
languages, even some some closed ones, regarding their
relevance to "cave painting" in an educational context.
I explain what that means using several illustrative slides.

The Python stuff that I pander has everything to do with my
vision for the local economy.  We're a ToonTown in the making,
since long before I got here, and BioTech is another big win,
along the existing chip fabs, OSDL, other big players.

Clients for "toons" include these technology companies, NGOs,
other institutions and think tanks (e.g. wwwanderers.org).

I'm not just talking about Roger Rabbit here.  I'm talking about
hemoglobin, geospatial simulations, all the "professional adult
cartoons" we call "visualizations" and read Tufte regarding.

So that explains also my very biological approach, of proteins,
biota, animals (or other similar scale) for expressions, functions,
class types.  Modules = Ecosystems.  Snakes have __ribs__.

We're big on biology (OHSU etc.).

Then comes the long digression into string.Template, which
has to do with Office Automation.  The initial big application of
PCs was word processing (their first "killer" role -- witness death
of the typewriter, probably calculators next).  And the big
application of word processing, abetted by spreadsheet and
database,  was the "mail merge."

When it comes to kids, they like Mad Libs.  Let's start there
and roll forward through a some examples of boilerplate
"view languages": POV-Ray's SDL, Vpython's API, and X3D.
Tie in the "mail merge" idea and use that to motivate a
discussion of back end databases, with Venn Diagrams
tying to MySQL.

In sum: "template" remains an important abstraction, is the
same "boilerplate" that used to come from lawyers more than
from today's coders.  Boilerplate shapes the View while the
database (Model) keeps the raw vital records.  Thirdly, some
Controller (WordPerfect?) mediates between them, giving us
form letters, address labels, or GUI views on a screen
(perhaps with write access back to the Model).

Smattered in between:  more bio about me, cuz it's my company
that I'm branding.

The success of IDLE in spreading Python to a vast base of
Windows users was a shot heard 'round the world, still with
echoing repercussions (mostly good ones).

That's about it.  the Saturday Academy brand (going on 24
years) gets some air time, my HP4E and the whole business
about Geography (my segue to/from Polyhedra, as "Platonic
planets") now much amplified as a result of this convention
(glad to see my intuitions were on target).

We'll just fade out at the philosophy part, as that's where
my "keep Portland weird" background paper picks up (the one
I wrote for the Lithuania presentation), and which is more of
a formal paper (with endnotes and everything), less a slide
show, much less a "switching desktops" screencast.

I'll post more about how it all went later sometime.  Or watch
my blogs (RSS feeds available).

Kirby

PS:  I do confess to collecting "positive collateral" regarding
snake iconography.  An obvious example:  the caduceus,
used as a trademark by Physicians and others of the medical
persuasion.  We think of them as healers.

Also: positive links to Dragonology, but more about that in
some other venue.  We don't want edu-sig to get sucked into
my HP4E too deeply ("HP wuh? Harry Potter for everyone?")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070726/98e380ef/attachment.htm 

From kirby.urner at gmail.com  Fri Jul 27 03:31:55 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 26 Jul 2007 18:31:55 -0700
Subject: [Edu-sig] Pretalk talking points (P4E)
In-Reply-To: 
References: 
Message-ID: 

>
> I'll post more about how it all went later sometime.  Or watch
> my blogs (RSS feeds available).
>
> Kirby


The talk went OK.  Good follow-up conversations with people
coming up after.

David Goodger, the Python Idioms tutor, convener of the Python
BOF last night, has been in email contact since 2001 or so.

Check out his website!:
http://puzzler.sourceforge.net/docs/pentominoes.html

However, my ISP, digitalspace.net, recently acquired, chose this
moment to "convert" my 4dsolutions.net website to some new
infrastructure, meaning all kinds of problems with subdirectories,
missing Python interpreters, other crap.

Means my default location for downloading presentation materials
is off line right when I'm advertising it to the public.

What terrible timing!  Disaster!

Let's hope this works again someday:
http://www.4dsolutions.net/presentations/

Back to lurk mode.

Kirby
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070726/dc8b56ea/attachment.html 

From andre.roberge at gmail.com  Mon Jul 30 04:53:30 2007
From: andre.roberge at gmail.com (Andre Roberge)
Date: Sun, 29 Jul 2007 23:53:30 -0300
Subject: [Edu-sig] Important new release (was: Crunchy security advisory)
Message-ID: <7528bcdd0707291953l6b58211bmff7d846401941525@mail.gmail.com>

A new release (0.9.2) containing a very important security fix is
available for Crunchy, at http://code.google.com/p/crunchy

Anyone using Crunchy *should* download this release.

Fairly detailed information about the security issue can be found
on the FAQ page included in Crunchy's release
(viewable from Crunchy's left menu).

Andr?

Crunchy is an application that transforms an otherwise static
html page into an interactive Python session.

=========
It appears that a previous message meant to be sent to crunchy-discuss
and edu-sig
was not forwarded appropriately from Google groups (at least, I did
not get a copy).
If you get this message in duplicate, please accept my apologies.

From kirby.urner at gmail.com  Mon Jul 30 21:35:24 2007
From: kirby.urner at gmail.com (kirby urner)
Date: Mon, 30 Jul 2007 12:35:24 -0700
Subject: [Edu-sig] Apropos "crunchy"...
Message-ID: 

I noted Nat's use of "crunchy" during the keynotes, found other instances,
of "crunchy" used as an attribute of talks, presentations.

A "crunchy talk" has more technical content, as typified by the keynote on
doing parallel processing in Haskell (what Parrot is waiting for?).

Actually it was about transactional memory, inspired by database folk
(like me!) and their ACID.  Atomic tasks with all-or-nothing commit
(rollback
if blocked) plus "else choose" capabilities, makes for intelligent parallel
programming, the next big challenge for many programmers.

Speaking of which, it seems clear to me that C++ ain't goin' anywhere
any time soon.  Intel's preferred solution for parallel processing is a new
C++ compiler with templates adapted to multi-tasking.

This won't be your grandfather's supercomputing though.  The extra CPU
horses may get used for rather "mundane" background tasks, such as font
smoothing.

I want to hear the bed time story that goes with "mommy, why isn't there
a C++ Python offering?"  From C to Java to C#... to Python itself.

Aren't we missing something in that loop?

Python in Haskell?

Not what I was thinking.

And for my next item on this crunchy diet, it's time to upload a composition

(a picture) of this robot penguin I first saw in demo mode at Europython,
purchased on sale at OSCON, from a French-English speaking geek grrrl
with a wacky keyboard (OK, wacky for *me*, artificially slowed by QWERTY
that I am as a writer).

More re Crunchy the Penguin in my blog:
http://mybizmo.blogspot.com/2007/07/tux-is-alive.html

Kirby
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20070730/2eefa67f/attachment.htm