[Edu-sig] Introductory high school programming class - Python orTeachScheme

Kirby Urner urnerk at qwest.net
Wed May 5 23:23:49 EDT 2004

Hi Joseph --

Congrats on doing good research and landing two big fish.

Years back on this list, one of the TeachScheme principals (Matthias)
subscribed for a spell, so he could debate some of these very questions you

The discussion gets rather technical at times. See: 

See also this quick summary:

My points in favor of Python:

1. the object oriented paradigm is close to the surface ("everything is an
object") while in Scheme it's a more advanced feature.

2. because of 1, Python is a natural lead-in to other object oriented
languages, Java in particular, which is currently the language used for the
high school advanced placement test (check out Jython)

3. Python has more libraries and bindings to other packages, has been
extended in more directions, features in the still-popular LAMP
configuration (= Linux + Apache + MySQL + Perl, Python or PHP).

4. Python is more used outside of academia than Scheme (no, I can't cite a
survey, so feel free to take this with a grain of salt).

5. Scheme is heavy into recursion, which is cool, but one needn't get so
heavily into it in order to program.  Python'll recurse too if that's what
you need (though not with "tail call elimination" i.e. you push/pop a stack,
vs. running through the same code at the top level).

I like your idea of featuring some of both.  It's good to give beginning
students a sense of the variety of languages out there.  Python and Scheme
are different enough to drive this point home.
The proportions could be up to you.  I think you should go some distance
towards learning both languages -- use free on-line tutorials and curricula
for a few hours into each.  Play around.  And then decide for yourself which
you'd like to teach more, or if you'd feel up to a 50-50 split.

In other words, take the taste test and see if you like Coke or Pepsi more.

I think there's more than enough education material for either choice.
Neither all Python nor all Scheme would be outside the ballpark (here in
Oregon, I know of at least one example of each -- with even more going with
Java), nor would some mix of the two be weird.  

Here's a HS course that does both, and more besides (yes, Stuyvesant is
pretty hard core:  http://cs.stuy.edu/mcs1/ ).

If you haven't already, check http://www.python.org/sigs/edu-sig/ .
Specifically, you might want to click on the Live Wires link towards the
bottom, under 'Of Interest to Educators' (another example curriculum).

Dr. John Zelle's text could also be used for high schoolers, why not?


PS:  DrPython is an IDE modeled somewhat after DrScheme, which the
DrPython's author admires.

From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On
Behalf Of Joseph Ehlers
Sent: Wednesday, May 05, 2004 6:48 PM
To: edu-sig at python.org
Subject: [Edu-sig] Introductory high school programming class - Python

I'm trying to propose an introductory computer programming class for high
school students.  I do not have a programming background so I will be
learning the language just like the students.  Through my research I came
across Python.  It sounds great - easy to learn, teaches thinking skills,
and is fun.  I was set to go with Python then I came across the TeachScheme
project which also sounds great - it too is easy to learn, teaches thinking
skills and comes with lots of curriculum.  I have a few questions and I'm
hoping this group can shed some light on this issue.
1.  Is one better than the other (Python  vs. TeachScheme) to teach high
school novices programming skills, thinking skills, language, and keeping
their attention so I can then have an audience for a second, more advanced
programming class?  
2.  I've looked at "How to Think Like a Computer Scientist", it looks very
doable for a novice and "Python Programming for the Absolute Beginner"
(Premier Press) looks like a lot of fun.  Is  there any other curriculum for
high school students out there?
3.  Is it possible to teach a semester of TeachScheme and a semester of
Python or is that overkill on the basics and not doing justice to either
I appreciate your assistance.

More information about the Edu-sig mailing list