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