Python and Schools

Peter van Kampen news at
Tue Apr 15 17:21:45 CEST 2003

In article <bDSma.22753$T34.687158 at>, Alex Martelli wrote:
> Aahz wrote:
>> In article <v9e21mhemm8c2 at>,
>> Paul Watson <pwatson at> wrote:
>>>We need to teach students correct design priciples to build something
>>>greater than what already exists.  We will never get very far if we
>>>require everyone to start with a quark or atom.  Yes, of course we need
>>>some people who design silicon and create microcode.  They will learn
>>>the low-level details what they need to know as they need it.  Knowing
>>>great design and organization principles will enable them to make the
>>>most of it.
>> While there's some truth to that, try explaining why the following code
>> is a Bad Idea to someone who has no basic understanding of CS:
>>     s = ''
>>     for i in range(1000000):
>>         s += str(i)
> I will gladly accept the challenge, if we can agree on the details to
> determine whether I've won or lost the bet.  What I require is somebody
> with real, earnest *interest* in *understanding* this stuff -- I'll
> gladly undertake to supply all necessary *background*, but I have no
> idea on how to awake real interest in somebody whose motivation for
> learning is just "serving time" or some vague hope of getting a good
> paying job (and that would be just as much of a problem, whether the
> subject was "CS", "programming", or "artichoke farming techniques").

I would gladly volunteer to be that somebody, although I realize it
won't happen (Practicallity beats geograpy ;-)) But I think you'll be
surprised about the number of people who *would* want to understand
the basics without necessarily (re-)entering university for a
CS-course. Let me tell you my background, perhaps it can serve as an

I am a programmer by accident. I love the pleasure of 'creating' when
writing programs/scripts/whatever. I studied English literature but I
have toyed with computers over the years, mostly as a means to
store/retrieve stuff my brain (sadly) keeps forgetting (that's why I
have always been interested in databases).

Thanks to BASIC I learned on a Commodore 64 and dBase I learned on my
parents computer, back in the 1980's I found myself faced with the
opportunity/neccesity (as I said, totally by accident) to develop an
MS-Access-application in 1999 (a long story I won't bother you with).
After that was finished I was rather hooked (again after almost 10
years of hardly touching a computer, couldn't afford on either). Once
I learned to connect databases to the internet I could make a living
out of it (my re-discovery of the computer coincided with the
.com-hype), but I could not afford to keep up with Microsofts
relentless 'upgrading' so I have gradually moved to linux over the
past 2 years. Now I do mostly php/mysql-stuff and try to learn python.

I do not understand discussions about O(N) en O(N^2) and would be very
interested to learn such things. I have bought 'Python in a Nutshell'
and I love it how you explain about tokens, identifiers, keywords and
so on. Very few (if at all) 'general purpose' textbooks take the
trouble to explain stuff like that.

> If the interest is there, and enough Python background to understand
> exactly what this program snippet DOES, then in about one or two
> hours of face to face instruction I can give a model that will allow
> the student to predict this snippet's disastrous performance and
> compare it to the expected performance for, e.g.,
>     s = ''.join([str(i) for in in range(1000000)])
> It's not rocket science (that's _another_ thread...;-) -- at this
> level, it's really simple arithmetic, a decent mental model of "an
> abstract underlying machine", AND an interest in understanding this.

So +1 for an article/book. I think you could write another best-seller
explaining this and similar basic things most CS-students take for
granted while there are many more users of python (and many other
high-level languages) who use it just to get their jobs done...


Peter van Kampen
pterk -- at --

More information about the Python-list mailing list