Teaching python (programming) to children

Peter Hansen peter at engcorp.com
Mon Nov 12 19:47:36 EST 2001


David Andreas Alderud wrote:
> 
> > This, of course, represents a value judgment on your part that loose
> > typing (and by the way, Python is *strongly* typed, but dynamically so)
> > is a bad thing.  In any case I would argue that the habits beginners would
> > pick up learning Python would serve them well in the future.  When they get
> > to a statically typed language, or a weakly typed one (Python is neither),
> > they will question *its* value and ease of use.
> 
> Depends on the audience I guess, people who are interested in programming
> tend to be interested in how the computer works and how to write efficient
> programs.

I think we were talking about *children*, who are definitely not interested
in writing efficient programs...  Don't mix first-year students who might
want to learn about the guts of a PC with the audience which was targetted
by this discussion.

> Things like dictionaries are good for non-programmers to get things done,
> it's good for a simple solution but can not be transformed in a way that BST
> are simply turned into an R\BST when the requirements change.

Sorry, no idea what you are talking about.  What's a BST?

> > No, good teachers who promote consistent coding style, modular
> > design, unit testing, and so forth teach students how to write good code.
> > The language has very little to do with it, except insofar as some
> > languages get in the way of that, while others do not.  Python does not.
> 
> Again, depends on what kind of view one has of teaching and learning, my
> view is that the students should teach them selves, and that is best done in
> Ada.

Uh, yeah, so teachers are just there to serve cookies?  And would
you seriously prefer Ada over Python for teaching *children*?

> > Python has proven very effective for hardware programming.  Yes,
> > via a DLL or driver or something, but then again very little of
> > what constitutes "hardware programming" involves access to the
> > hardware, and most involves what you *do* with that access.
> 
> We have completely different views on low-level programming, when doing
> hardware programming I do not simply mean accessing hardware.

Neither do I; that was my point.  But likely we are talking apples
and oranges...  I've been using Python to talk to instruments like
oscilloscopes via a GPIB interface, to talk to various devices
through serial or parallel ports, and to talk to a 16-bit processor
through a dual-port RAM, and to twiddle the bits in a watchdog timer
device on an embedded PC104 module.  The results have been 
uniformly superior to those I seen with other languages, thus
my claim that Python would be quite effective at teaching "hardware
programming" to first-year university students (allowing them
to focus on the task at hand, not the language).

So what do *you* mean by "hardware programming"?

-- 
----------------------
Peter Hansen, P.Eng.
peter at engcorp.com



More information about the Python-list mailing list