[Edu-sig] Introductory high school programming class - Python or TeachScheme

Jeff Sandys sandysj at juno.com
Thu May 6 18:17:28 EDT 2004

I guess it matters on what you want to do.

If you want to prep for the AP, teach java.
because the test uses java.

If you want to teach Computer Science, teach Scheme,
because Scheme is used in _Structure and Interpretation 
of Computer Programs_, the seminal computer science book.

If you want to teach programming, teach Python,
because it has the best balance of power and ease of use.

At our Seattle Python Interest Group we went around the 
room saying what we use Python for.  My answer, to 
write programs!  Because when I need a program to do 
something, I need it now, I want it fast, and it has 
to be easy to write.

Lisp (Scheme is a dialect of Lisp) is a great porgramming
language, but I find even after years of practice I have 
to think really hard when I write Lisp code, and with 
Python I hardly have to think to write code.

The language I have used in a middle school programming 
club is Logo, which has an expression, "no threshold, 
no ceiling".  And Logo has a low threshold and is very 
expressive, but without the libraries it has a low 

Python has a higher threshold than Logo, IMHO, but with 
the libraries it has a high ceiling.  Scheme's threshold 
is higher than Python and with limited libraries Scheme's 
ceiling is lower.  Scheme's expresiveness is more powerful, 
sometimes when programming in Python I wish Python had a 
feature or syntax found in Lisp, but then I code around 
it and remember why I am using Python in the first place.

Jeff Sandys

More information about the Edu-sig mailing list