[Edu-sig] Programming for the fun of it

Jeffrey Elkner jeff@elkner.net
12 Dec 2000 18:38:57 +0500


I like all of Dethe's reasons for non-geeks learning to program,
but I particularly like:

1. Build problem-solving skills
2. Create tools you need

These two go really well together also.  While I have no doubt
that the logical reasoning skills that come from learning basic
programming will be of general benefit to the programming
student, the benefit is abstract and not immediate enough to be
the *only* reason for doing it.  I think Python's clear syntax,
extensive libraries, and rapid development capabilities make it
wonderfully suited to the other key reason: creating tools you
need.  This both gives immediacy to the learning and makes it
fun!

Last weekend my 5th grade son came to me and asked if I would
randomly call out the five notes he was learning to play on
the trumpet.  I told him that I had a better idea.  I would
write a little program for him that he could use anytime
he wanted.  A few short minutes later I had the following:

  #!/usr/bin/python
  import time
  import random

  notes = ['C', 'D', 'E', 'F', 'G']

  while 1:
    print "Now play " + notes[random.randint(0, len(notes) - 1)] + " . .
. ."
    time.sleep(2)

My son really liked this, and for the first time showed some
interest in learning about Python.

One last thing.  I think we need to develop and on-line library
of cool little programs like this that show Python's usefullnes.

I would be glad to set up this library if folks would send me
example programs.  To be truely useful to classroom teachers
they should meet the following criteria:

1. They should be short enough to be looked at and discussed
in 5 to 10 minutes.

2. In keeping with 1 above they should use algorithms that
are fairly easy to understand.

3. They should transparent Python, with minimal use of
special purpose libraries.

jeff elkner
yorktown high school
arlington, va


> So, I've been working for awhile on the how of teaching programming to
> non-geeks.  What I think is a more important question, is Why?  Why 
> should someone be interested in learning to program?  I'm not talking 
> about convincing them to give up their day job, or learn higher math, 
> just to have an interest in occasional programming.  Here's my first
cut 
> at some possible motivations, but I'm very interested in finding more:
> 
> * Build problem-solving skills
> * Learn math
> * Create toys
> * Fix the software you use
> * Understand computers and the digital world better
> * Extend the software you use
> * Create tools you need.
> 
> Any ideas? 
> 
> --Dethe