Advice on giving a python course

Glyph Lefkowitz glyph at twistedmatrix.com
Tue May 2 12:48:33 EDT 2000


Timothy Grant <tjg at avalongroup.net> writes:

> One short anecdote about my six year old...
> 
> I put him to bed the other night and he said "Dad I have a great idea
> for a computer game! It would be a cross between Donkey Kong and
> Bomberman. Can we write it next weekend?"
> 
> He'll be part of my testbed for the introductory programming course!

Speaking as an expert who was once a six-year-old asking his dad the
same question :-), and also as a camp counsellor at a computer camp
who's taught many an introductory course to children...

Be careful when you say "yes" to questions like this.  When I was a
child, I wanted to write a game, too.  (I am still trying to write the
*same* game ^_^ and should be doing it professionally pretty soon, but
I digress...)  Python would have had a better chance at doing what I
wanted (I wanted to do something text-based, speed wasn't a big
issue).  APL and LISP, the languages my father recommended, were both
too obtuse to express the things I wanted to express easily.  BASIC
(especially on the AMIGA) just looked dumb and it was too hard to make
it do anything meaningful.

The positive side-effect of this is that I am now a programmer,
trained nearly from birth :-) but the downside is that I spent a lot
of time being frustrated with computers as a child.  *Programming is
hard* and do not let your child labour under the delusion that it will
be easy.  When you write your Bomberman clone (let's say for Linux in
Tk) your six-year-old will be upset that it performs poorly.  They'll
want it to run with smooth animations, as if it were hand-crafted in
x86 assembler.

I also realize that when a six-year-old says "bomberman" or "donkey
kong" these days, it might be one of those god-awful
crimes-against-design in 3D :-) so be prepared to explain enough
computational geometry for a basic introduction to OpenGL.

Above all, keep the experience satisfying.  If performance becomes a
problem, teach them enough C to speed it up a bit.  If chunky
animations are the problem, give them a few lessons with the Gimp.

More generally, for your class, teaching this sort of integration
early on will give your students a better sense of what's required to
make a *complete* program, not just the "pure" higher-level logic.
This is important, because when a student goes on to make a program on
their own, the worst thing they can think is "Oh, that's graphics, so
I can't do that", or "Oh, that's C, I can't do that" ... or far worse,
"That would involve editing somebody else's code..."

-- 
                  __________________________________________
                 |    ______      __   __  _____  _     _   |
                 |   |  ____ |      \_/   |_____] |_____|   |
                 |   |_____| |_____  |    |       |     |   |
                 |   @ t w i s t e d m a t r i x  . c o m   |
                 |   http://www.twistedmatrix.com/~glyph/   |
                 `__________________________________________'




More information about the Python-list mailing list