Python in Secondary Schools

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

On 7/13/07, Sven Forum <svenforum@gmail.com> 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")

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

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 <mtobis@gmail.com> 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

On 7/16/07, kirby urner <kirby.urner@gmail.com> 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@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/)

On 7/17/07, Guido van Rossum <guido@python.org> 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@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@python.org http://mail.python.org/mailman/listinfo/edu-sig

On 7/17/07, Andre Roberge <andre.roberge@gmail.com> wrote:
On 7/17/07, Guido van Rossum <guido@python.org> 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/)

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@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@canterburyschool.org; 260-436-0746; FAX: 260-436-5137

On 7/17/07, Vern Ceder <vceder@canterburyschool.org> 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@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@canterburyschool.org; 260-436-0746; FAX: 260-436-5137 _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig

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@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@cs.luc.edu for graduate admin Chicago, Illinois 60611 upd@cs.luc.edu for undergrad admin aharrin@luc.edu as professor

From there: "Ultimately, educational technology's greatest value is in supporting "learning on demand" based on interest or need which is at
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-Batterin... 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.ht... (which links to an essay of mine). 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.

On 7/17/07, Paul D. Fernhout <pdfernhout@kurtz-fernhout.com> 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é

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 <andre.roberge@gmail.com> wrote:
On 7/17/07, Paul D. Fernhout <pdfernhout@kurtz-fernhout.com> 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@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- --Guido van Rossum (home page: http://www.python.org/~guido/)

On 7/17/07, Guido van Rossum <guido@python.org> 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é

On 7/17/07, Guido van Rossum <guido@python.org> 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

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

On 7/17/07, Guido van Rossum <guido@python.org> wrote:
On 7/16/07, kirby urner <kirby.urner@gmail.com> 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@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@python.org http://mail.python.org/mailman/listinfo/edu-sig

On 7/17/07, kirby urner <kirby.urner@gmail.com> 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/)

On 7/17/07, Guido van Rossum <guido@python.org> 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.
<philosophical> 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. </philosophical> 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

On 7/16/07, kirby urner <kirby.urner@gmail.com> 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 <mtobis@gmail.com> 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@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!

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.o... 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-Batterin... 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

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/

2007/7/17, Kevin Driscoll <driscollkevin@gmail.com>:
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@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
participants (13)
-
Andre Roberge
-
Andrew Harrington
-
Anna Ravenscroft
-
Dethe Elza
-
francois schnell
-
Guido van Rossum
-
Kevin Driscoll
-
kirby urner
-
Michael Tobis
-
Nicolas Pettiaux
-
Paul D. Fernhout
-
Sven Forum
-
Vern Ceder