Python and Schools

Donnal Walter donnal at
Tue Apr 15 19:28:29 CEST 2003

Peter van Kampen wrote:
> 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
> example.
> 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...
> PterK

Me, too, Peter. +1 on the article/book as well.

I am a physican first and programmer second. I've never taken a course 
in computer science, and I do not know the meaning of O(N). OTOH, just 
from following comp.lang.python I think I have a pretty good idea why

     s += str(i)

would be a bad idea. Nevertheless, I certainly would not be opposed to 
deepening my understanding. (PythonIAN is great, BTW.)

Donnal Walter
Arkansas Children's Hospital

More information about the Python-list mailing list