TITLE: SIGCSE Buzz: Python Rising?
AUTHOR: Eugene Wallingford
DATE: March 05, 2006 10:06 AM
DESC:
-----
BODY:
If the buzz is accurate, Python may be a successor.
The conference program included a panel on experiences
teaching Python to novices, including
John Zelle
and
Mark Guzdial,
who have written the two texts currently available.
My publisher friend Jim Leisy of
Franklin, Beedle
was very high on
Zelle's book
and the adoptions they've picked up in the last few
months. The range of schools now using Python in at
least one track of their intro courses ranges from small
private schools all the way to MIT.
Heck, I got home from SIGCSE and "PYTHON" even showed
up as a solution in the local newspaper's Saturday
Jumble!
All in all, I think I prefer Ruby, both for me and for
beginners, but it is behind Python in the CS education
life cycle. In particular, there is only one introductory
level book available right now, Chris Pine's
Learn To Program.
Andy Hunt from the Pragmatic Bookshelf sent me a review
copy, and it looks good. It's not from the traditional
CS1 textbook mold, though, and will face an uphill battle
earning broad attention for CS1 courses.
In any case, I welcome the return to a small, simple,
language for teaching beginners to program. Whether
Ruby or Python, we would be using an interpreted language
that is of practical value as a scripting language. This
has great value for three audiences of student: non-majors
can learn a little about computing while learning scripting
skills that they can take to their major discipline; folks
who intend to major in CS but change their minds can also
leave the course with useful skills; and even majors will
develop skills that are valuable in upper-division courses.
(You gotta figure that they'll want to try out
Ruby on Rails
at some point in the next few years.)
Scripting languages pose their own problems, both in
terms of language and curriculum. In particular, you
need to introduce at least one and maybe two systems
languages such as Java, C, or C++ in later courses,
before they are needed for large projects. But I think
the trade-off will be a favorable one. Students can
learn to program in an engaging and relatively
undistracting context before moving on to bigger issues.
Then again, I've always favored languages like Smalltalk
and Scheme, so I may not be the best bellwether of this
trend.
Anyway, I left SIGCSE surprised to have encountered
Python at so many turns. Maybe Java will hang on as
the dominant CS1 language for a few more years. Maybe
Python will supplant it. Or maybe Python will just be
a rebound language that fills the void until the real
successor comes along. But for now the buzz is notable.
-----