Teaching python (programming) to children

Hung Jung Lu hungjunglu at yahoo.com
Mon Nov 5 11:32:19 EST 2001


Nomad <nomad***@***freemail.absa.co.za> wrote in message news:<bfvcut8gadpces2t1pvq9kmv8j78d0u8nu at 4ax.com>...
> IMHO, python would be one of (if not _the_) best language to teach
> beginning programming - not just children, but as you mention, there
> is the difficulty with the "englishness" of the language (or almost
> any other programming language).

I have my doubts about Python being the first programming language to
teach. I see all too many newbies running into the problem of
namespaces. How do you explain to them that "from xyz import *" is a
bad thing, if they don't even understand what's going on behind the
scene? Also, how in the world can beginners understand what a hash
table mean? Are we going to tell them something like: "oh well, think
of Python dictionary as a magic black box, you'll understand it later
when you take a course in C/C++"?

Python seems very friendly, at first sight. But unless you really
understand the dictionary and namespace (and name binding) mechanisms
behind it, you'll run into surprises in no time. And at that moment,
there is simply no way that it could be explained in easy terms to
beginners, when they don't understand things like pointers,
references, memory stack and heap, hash tables.

I do believe Python should be part of a programmer's school
curriculum, but I really doubt it can be a good first language to
learn, unless some technicality questions are addressed properly.

Or is there a good way of teaching to make it less traumatic for
beginners to grasp the concepts of dictionary, name spaces, assignment
by reference? It is just really really annoying that every single
newbie has to be explained on these issues, and many of them end up
without understanding it. I can't imagine teachers having a good time
at these issues. I mean, it's OK to make students understand these
Python issues, but the time required is not negligible, and the
knowledge gained is limited in scope: these peculiarities are very
Python specific. And it's doubly frustrating when after spending all
the time, the students end up without understanding it. What can you
do? It's not the fault of the average students or the average
teachers, when the language itself has a non-trivial component that's
hard to explain/understand.

Hung Jung



More information about the Python-list mailing list