[Edu-sig] re: Python Programming: An Introduction to ComputerScience

Kirby Urner urnerk at qwest.net
Sat Dec 13 15:42:05 EST 2003

> As much as I like Python, it doesn't walk on water. Arguing about CS1
> languages usually degenerates into tedious religious battle where
> opposing sides argue the undeniable virtues of their language, and are
> generally disinterested in hearing about any other language. Yes, Python
> has lots of neat features, but so does every language, and arguing that
> Python's neat set of feature is better than language X's is a stalemate
> from the start.

I wasn't doing that though.  I realize there are lots of worthwhile
languages out there and it pays to move on from Python.  But it also pays to
come back to it later, and if all the Python you ever get is in CS1, then
you might not realize some of its power.  

This is equally true for some other languages.

When I did CS1 (or the equivalent), the approach was to look at a different
language every few weeks, or even more frequently.  We used FORTRAN, PL/1,
SNOBOL, APL, Assembler (simplified/simulated), and probably a few others I
can't remember right now.  I kind of liked this approach.  Very eclectic.
In the meantime, a lot of the lectures were about the guts of computers --
details about the registers 'n stuff.  Of course this was long before
Python.  PCs hadn't even been invented yet (we did all our work on a

> Productivity is far more important than language features, and the
> reason why Python trumps other languages is ultimately that it is so
> much easier to become productive in Python.

How is this different from discussing "neat features"?  That you can use
such simple syntax to do file I/O, or don't need a lot of type declarations,
are *features* which lead to higher productivity.  

Likewise, generators and list comprehensions (which we might not get to in
CS1), are productivity enhancers (there's also a PEP about combining these
two in particular, which Martelli is pushing -- dunno what's it's status as
of today).

> I also think that if Python became known as the "beginner's language",
> then that would be a *much* bigger success than if it became the
> language of choice for CS1. Far more people program than take CS1
> courses.
> Toby

I don't see these as particularly different either.  CS1 is casting about
for a good language to start with, for introductory purposes.  C++ was
definitely too hard, and Java, though better, is still sucking a lot of
attention away from concepts, and onto syntax.  So people in Zelle's camp
argue that we should (a) look at so-called "scripting" languages for
candidates and that (b) of these languages, Python is one of the best (other
choices being Ruby, Perl and Scheme -- Scheme having a big advantage when it
comes to having an already-developed CS1/CS2 curriculum).


More information about the Edu-sig mailing list