[Edu-sig] Python in Secondary Schools (politics of installing Python & edit and continue)

Paul D. Fernhout pdfernhout at kurtz-fernhout.com
Wed Jul 18 03:43:34 CEST 2007

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:

That old page links to this other site "www.mathematicallysane.com",
which might be of similar interest:
"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)
from around 1969 (so, almost forty years ago):
"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:

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:
"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"
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:
"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:

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:
"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:

Consider, from a review of _Disciplined Minds_, to see where *not*
considering politics of education gets us:
Or from a review of that book:
"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"
  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:
so probably time to move on for now.

--Paul Fernhout

More information about the Edu-sig mailing list