Re: [Edu-sig] Politics and Python in Education (meta on list charter)

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-progra... -- Maple Design Ltd - Web design and application development http://www.mapledesign.co.uk +44 (0)845 123 8008 Reg. in England no. 05920531

On 7/21/07, Peter Bowyer <peter@mapledesign.co.uk> 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

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@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.pd... 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.]

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
participants (3)
-
kirby urner
-
Paul D. Fernhout
-
Peter Bowyer