Is education Python's killer app? I think it could be. I used the occasion of the Python Papers to motivate my efforts to explain this idea, and you can see what I came up with on pages 8-15. The part that makes me especially queasy is the CP4E section on pages 10-11. I wish I had more to say there. It's fairly clear to those of us who weren't there that there were some problems, but it's not especially clear what they were or what we should learn from them. I'd very much appreciate input from those who were actually there! Anyway http://tinyurl.com/yr62r3 seems to short-circuit some pointless hoop-jumping to get you to the article. If that doesn't work, try going to http://pyjournal.cgpublisher.com/ and looking for the spring 2007 edition. I suggest a concerted effort by the community toward leveraging the OLPC/Sugar momentum to revive the idea of Python as tool for teaching some programming as a useful part of universal education. I have posted this to the advocacy list and c.l.p. I welcome response or critiques. mt
The part that makes me especially queasy is the CP4E section on pages 10-11. I wish I had more to say there. It's fairly clear to those of us who weren't there that there were some problems, but it's not especially clear what they were or what we should learn from them. I'd very much appreciate input from those who were actually there!
Where is "there" exactly? Interesting paper, though of necessity you leave a lot out, such as how the Scheme people made tremendous strides in their CP4E mode, setting high standards with SICP. We hope Pythoneers don't dumb it all down by encouraging sloppy habits (the Schemers' worst fear). http://www.tuxdeluxe.org/node/153 http://lemonodor.com/archives/001497.html (tangentially related) As to "losing focus" and/or "herding cats" on edu-sig, I'm not sure if that's what happened, or if we're simply seeing from different perspectives. I see edu-sig like a water cooler (a watering hole) where people of diverse backgrounds come of their own volition to compare notes, shoot the breeze. That doesn't make it a management hub or anything -- we all go back to our respective meetings and decision-making processes. For example, the Jesuits, with hundreds of years of pedagogy to their credit, thousands of mostly-man hours designing curriculum, aren't necessarily interested in vetting their proposals to teach Python in some trademarked Jesuitical way via some organ within Python.org. They'll work within the Vatican or whatever it is that they do. Just a random example. Schools aren't obligated to be public with their planning is my point. The fact that Python itself is open source doesn't change that fact. So whereas I'm hopeful that edu-sig will continue to be a source of interesting filings (your paper and drafting process a case in point), I'm not expecting it to be much more than that, at least not for the many faculties with already semi-set ways of working together. Lots of proprietary stuff goes on that we only learn about on edu-sig long after the fact -- and that's OK (not a problem). On the other hand, some of us *are* committed to a more open source approach even w/r to curriculum design, at least in some aspects. I would encourage us to keep edu-sig a welcoming environment for such posters, which doesn't mean holding back all negative feedback (it's possible for curricula to suck, as well as to be wonderfully brilliant -- sometimes both at the same time). We shouldn't devolve into a mutual admiration society where "I'll just say good stuff about your stuff if you'll just say good stuff about my stuff" agreements dominate -- a recipe for lowering overall quality whenever and wherever. Fortunately, I see little danger of that happening here. Kirby
kirby urner wrote:
The part that makes me especially queasy is the CP4E section on pages 10-11. I wish I had more to say there. It's fairly clear to those of us who weren't there that there were some problems, but it's not especially clear what they were or what we should learn from them. I'd very much appreciate input from those who were actually there!
Where is "there" exactly?
From his email, "there" are those who were involved in the CP4E project and who can tell us why it failed to reach fruition. I've never found a good explanation myself, that didn't pull punches and told the story.
As to "losing focus" and/or "herding cats" on edu-sig, I'm not sure if that's what happened, or if we're simply seeing from different perspectives.
For example, the Jesuits, with hundreds of years of pedagogy to their credit, thousands of mostly-man hours designing curriculum, aren't necessarily interested in vetting their proposals to teach Python in some trademarked Jesuitical way via some organ within Python.org. They'll work within the Vatican or whatever it is that they do.
Just a random example. Schools aren't obligated to be public with their planning is my point. The fact that Python itself is open source doesn't change that fact.
If we have the destination in common but do not agree on the path, we cannot share the journey nor the burdens thereof and must say 'fare thee well'.
So whereas I'm hopeful that edu-sig will continue to be a source of interesting filings (your paper and drafting process a case in point), I'm not expecting it to be much more than that, at least not for the many faculties with already semi-set ways of working together.
Lots of proprietary stuff goes on that we only learn about on edu-sig long after the fact -- and that's OK (not a problem).
Sadly, these people miss out on a diversity of viewpoints, because they did not share their problems. Perhaps that is their fear, that someone will solve them but not in a way to their liking and without their aid. Better to keep the problems. -Jeff
On 5/25/07, Jeff Rush <jeff@taupro.com> wrote:
kirby urner wrote:
The part that makes me especially queasy is the CP4E section on pages 10-11. I wish I had more to say there. It's fairly clear to those of us who weren't there that there were some problems, but it's not especially clear what they were or what we should learn from them. I'd very much appreciate input from those who were actually there!
Where is "there" exactly?
From his email, "there" are those who were involved in the CP4E project and who can tell us why it failed to reach fruition. I've never found a good explanation myself, that didn't pull punches and told the story.
My view is CP4E is alive and well, achieving results daily.
If we have the destination in common but do not agree on the path, we cannot share the journey nor the burdens thereof and must say 'fare thee well'.
Our destination is pretty much everybody programs, a taken for granted skill, although "to program" means many things, doesn't imply mastery of Python.
Lots of proprietary stuff goes on that we only learn about on edu-sig long after the fact -- and that's OK (not a problem).
Sadly, these people miss out on a diversity of viewpoints, because they did not share their problems. Perhaps that is their fear, that someone will solve them but not in a way to their liking and without their aid. Better to keep the problems.
-Jeff
It's not either/or. Today's software is a mix and the same people may do a lot of both. Kirby
Michael Tobis wrote:
Is education Python's killer app? I think it could be.
I used the occasion of the Python Papers to motivate my efforts to explain this idea, and you can see what I came up with on pages 8-15.
Michael, thanks for writing for the Python Papers. I found your article quite interesting. I would ask though, of what education are you thinking? I mean, there is the use of Python to teach programming, and there is the teaching of other topics but using Python to do it. And there is the teaching of children versus adults, although a case can be made for some degree of overlap there. Much of the effort I've seen is to teach programming, but the OLPC project has intrigued me more to consider non-programming topics. Since I hang out mostly with other programmers, this is challenging.
I suggest a concerted effort by the community toward leveraging the OLPC/Sugar momentum to revive the idea of Python as tool for teaching some programming as a useful part of universal education.
While there are those who enjoy solving abstract problems, programming or otherwise, if seems to me that if we're going to tackle CP4E (computer programming for everyone, for those not aware of the history), we have to make programming not the end-goal but the tool for doing the things in which those people are interested. CP4E will never make the vast majority of people programming geeks. So it seems to me that it would advance the cause, of programming in general and Python specifically, if a repository of resources were assembled. I'm sure some of these exist scattered across the net but some I've never been able to find. And non-programmers can be so impatient in rummaging through sites, understandably wanting to get on with solving their problem. I tossed together a very rough wiki page of some ideas I've been kicking around. These resources attempt to answer a response I get frequently when I push the learning of Python, that of "but what would I -do- with Python once I learned it?". http://wiki.python.org/moin/Advocacy/ProgrammingForNewprogrammers I call that group "new programmers" - somehow calling them normal or average folk seems mildly insulting to someone, and calling them "non-programmers" isn't accurate if our goal is to teach them programming, albeit non-vocational style. "Non-professional programmers"? "Typical" people? "Making People Programming-Literate"? -Jeff
On 5/26/07, Jeff Rush <jeff@taupro.com> wrote:
I tossed together a very rough wiki page of some ideas I've been kicking around. These resources attempt to answer a response I get frequently when I push the learning of Python, that of "but what would I -do- with Python once I learned it?".
http://wiki.python.org/moin/Advocacy/ProgrammingForNewprogrammers
Thanks for getting this going. Re: http://wiki.python.org/moin/ConceptualRoadmap I'd suggest delisting VPython as one of the interpreters (amidst Jython and IronPython) because it's not really a Python shell or interpreter, offering interactive use of the language, but a C++ library and API focussed on OpenGL type stuff pretty exclusively. VPython is like wxPython in that sense, but with a different purpose (tho partially overlapping as wx provides a window into OpenGL -- which I've never used very successfully (whereas VPython has been at the basis of several Pythonic math courses I've taught)). VPython does integrate with IDLE pretty well, which is maybe where this impression of VPython being its own Python interpreter is coming from. iPython is a wrapper for CPython that doesn't use Tk or IDLE -- or is it a wrapper for Jython as well? I've used it, but haven't explored it in great depth. Seem to recall needing ctypes to run it, at least on a Windows box. I think CP4E ultimately requires stepping outside the scope of any one language and getting more into the bigger picture. I think a basic understanding of tcp/ip is maybe where to start with a lot of students. There's a basic "how it works" flavor to it. I suggest screening 'Warriors of the Net' for starters, which comes in a variety of languages, could come in even more. Kirby
Jeff: sorry for the double mailing; I erroneously replied to you and not all. All: On 5/26/07, Jeff Rush <jeff@taupro.com> wrote:
Michael Tobis wrote:
Is education Python's killer app? I think it could be.
I used the occasion of the Python Papers to motivate my efforts to explain this idea, and you can see what I came up with on pages 8-15.
Michael, thanks for writing for the Python Papers. I found your article quite interesting.
Thanks. I hope it helps bring some new energy to CP4E.
I would ask though, of what education are you thinking? I mean, there is the use of Python to teach programming, and there is the teaching of other topics but using Python to do it.
Absolutely. I want there to be a well-designed computer language in common use so that I can write simple pieces of code to convey the fundamentals of climate and earth science that are policy relevant and have substantive discussions with people, instead of having to go over the fundamentals over and over again. That was my motivation for getting interested in CP4E in the first place. I expect you may hear from others on this list ( :-) ) who are using Python to teach math.
And there is the teaching of children versus adults, although a case can be made for some degree of overlap there.
Yes. Check my taxonomy of five classes of beginner. I think that may be the most substantively original part of my modest contribution.
Much of the effort I've seen is to teach programming, but the OLPC project has intrigued me more to consider non-programming topics. Since I hang out mostly with other programmers, this is challenging.
I suggest a concerted effort by the community toward leveraging the OLPC/Sugar momentum to revive the idea of Python as tool for teaching some programming as a useful part of universal education.
While there are those who enjoy solving abstract problems, programming or otherwise, if seems to me that if we're going to tackle CP4E (computer programming for everyone, for those not aware of the history), we have to make programming not the end-goal but the tool for doing the things in which those people are interested. CP4E will never make the vast majority of people programming geeks.
I absolutely agree. The purpose of literacy is not to create novelists, either. Findamental programming competence is not vocational training. It ought to be and (if we survive the next coming crunch intact) probably someday will be a prerequisite for effective participation in the democratic process.
So it seems to me that it would advance the cause, of programming in general and Python specifically, if a repository of resources were assembled. I'm sure some of these exist scattered across the net but some I've never been able to find. And non-programmers can be so impatient in rummaging through sites, understandably wanting to get on with solving their problem.
I tossed together a very rough wiki page of some ideas I've been kicking around. These resources attempt to answer a response I get frequently when I push the learning of Python, that of "but what would I -do- with Python once I learned it?".
http://wiki.python.org/moin/Advocacy/ProgrammingForNewprogrammers
Wiki is good. Yes wiki please. I think we should also update the edu-sig page on python.org . One of the purposes of the article was to nucleate a maintained directory relevant resources of all types. Michael
On 5/29/07, Michael Tobis <mtobis@gmail.com> wrote:
I expect you may hear from others on this list ( :-) ) who are using Python to teach math.
Yeah that'd be me, except I'm gravitating to the Shuttleworth Foundation approach of referring to "analytical thinking" (http://www.kususa.org) and/or not calling it math. Sometimes I call it "math... not!" or ~M! for short (kinda quirky -- using it to help storyboard a TV show). It's just that when I look at the current K-12 and try to see how we get from there to here, I notice lots of content in the math curriculum that's a natural fit. Algorithms like Euclid's for the gcd, a classic in Python (by Guido) *could* be reached through a history class, but math is where we'd traditionally encounter and use it pre-college, given computer science tends to start up with it later (see Knuth TAOCP, vol 3). Another example: Python's primitive types, available out of the box, go naturally with a discussion of the mathematical sets N, Z (int), Q, R (float), C (complex). Then we say "math is an extensible type system" i.e. you inherit a set of tools (types), with which to roll your own (types, classes). Q (rational numbers) would be a user type, as they're not primitive in Python (ergo 'import rat' or 'from rats import Rat' or whatever). Vectors likewise (historically a user type, making use of earlier types and ops). The thing about types is we define them in terms of what they can *do* (meaning as use -- Wittgenstein), which often means in terms of Python's special names or __ribs__ as I call them. When students see __add__ and __mul__ overloaded again and again, but in different ways depending on the type, it seems natural to clue them in about some of the abstractions, i.e. the concept of "inverse" and "identity". In Z, every int has an additive inverse such that m + (-m) = 0 (additive identity). In Q, every p/q has both an additive *and* a multiplicative inverse (except 0 in the latter case): Rat(1,2).__add__(Rat(-1,2)) == 0 and Rat(1,2).__mul__(Rat(2,1)) == 1. Meaning: 1/2 + (1/2) gives 0 and (1/2) * (2/1) gives 1. This leads to a discussion of such concepts as group, ring and field (Z is a ring, Q a field) which are considered "advanced" by current standards, but which I think the practive of operator overloading brings within range of a pre-college student (ala Kusasa). A practical use of this knowledge is explaining RSA (public key cryptography, built in to web browsers, used everywhere daily). Math has this advantage of being a "required subject" which everyone recognizes is part of the "core curriculum" whereas "computer programming" is out in the cold as a peripheral elective. Oregon state schools don't even use AP compsci, so boning up on Java in high school isn't going to earn you credits at Oregon State. K-12 computer teachers are the first to get repurposed in a budget crunch, asked to teach math (required), or maybe gym (also required). Plus so much of "computer class" tends to *not* involve in programming, is focused on bizapps like spreadsheets. Similar in other states I'm guessing. Changing all this to make programming more integral would seem quasi-hopeless on the one hand, but on the other hand we have a lot of motivated kids and a lot of distance education tools for reaching them at home via the Internet. It's possible to start building our new curriculum today, complementing what we know the schools are teaching, but not confining ourselves to that content. Kids engaging in these prototype learning experiences actually find themselves clued in to a lot more critical info plus find themselves develping job-relevant skills, so there's payback, reward, for study. But of course only the most self-motivated are going to develop these study habits. The Internet is *so* distracting -- by default many don't find a way to stick with it. Formalizing the reward system would be a next step, and that includes various forms of credentialling and certification. Finally, Arthur and I used to fight over whether my investments in the Buckminster Fuller literature we're helping or hurting my efforts around CP4E. I think the Bucky stuff is helping because I'm able to establish that my geometry modules contain some basic curricular innovations that math teachers have just been too lazy to accommodate, given the high inertia and traditional-bound nature of their subject. I teach about the whole number ratios between important polyhedra, about the space-filling MITEs and Couplers, they don't. Plus I get the geodesic domes and spheres out of my investment (HP4E meme). So even as I distance myself from traditional K-12 mathematics via my storyboarding for ~M!, I'm able to show that I've got some of the best treasures in active use, vs. languishing from disuse and neglect. My positive futurism is backed up with a respectible track record. Kids, still with most of their lives ahead of them, tend to gravitate to positive futurism, provided it's not just empty BS. Kirby
participants (3)
-
Jeff Rush -
kirby urner -
Michael Tobis