[Edu-sig] python in high school

Jim Harrison jhrsn@pitt.edu
Wed, 11 Jun 2003 08:58:38 -0400


on 6/11/03 1:26 AM, Rob Zaar at zaar@sjrc.melb.catholic.edu.au wrote:

> We have a toss up between VB 6.0 and me pushing for python. The decision needs
> to be made soon for next year. We were using J++ (don't ask). Low price will
> push it past the 'all the other programming teachers like VB' hurdle, as long
> as it had an IDE that had drag and drop components. I think this would also be
> good for python in the long term in terms of increasing python use.

Most students involved in high-school-level programming courses now will
have a computer at home. One of the most useful qualities for an
instructional programming language is the ability for students to work with
it outside of class or structured computing lab time--and to use it later
for their own projects or just exploring. I understand that this is not the
traditional approach in secondary school instruction but that's an artifact
of home computers not being widespread enough in the past to assume access
for most students. Can you imagine teaching math without homework problems?
Things have changed in programming instruction and are continuing to change.
Even curriculum guides and lesson plan templates.

Python offers a high quality language and generally useful development
environment that is 1) free and 2) runs on any conceivable hardware/software
a student might have at home or that might be in local public access
facilities like libraries. This includes pretty much any version of Windows
likely to be encountered, MacOS, MacOSX, Linux and various unixes, plus a
number of more rare platforms. The install is straightforward. Thus python
offers the possibility of including homework/exercises which provide
immediate feedback via the debugger. :-) Furthermore, source code files can
be shared directly between these platforms. I should know...I use python to
teach a graduate programming course with a medical informatics flavor in
which I use MacOSX for presentation and homework evaluation. Files are
submitted by students running Windows (mostly), but also Linux and MacOSX.
All our computer lab work is done on Windows machines using stuff I prepare
on OSX. No problem.

This is not the case with VB, which 1) entails significant cost and
licensing issues which may change over time, 2) runs and compiles on only
one platform, and 3) has relatively narrow hardware/software requirements
even within that platform. It's quite possible in the near future that
students might have Windows machines at home and the wherewithal to buy VB,
but might need to upgrade both Windows and their hardware at additional cost
to be able to run VB.NET. Why saddle yourself and your students with these
problems?

Having a graphical IDE is less important for programming instruction than
you might think. In fact, you can easily make the case that if you're going
to use a graphical IDE, it's better to start students without it and then
introduce it partway into the curriculum. Python gives you that opportunity
within the framework of one language. While I'm also pulling for Boa
Constructor (on MacOSX!), I would think that a fairer and more meaningful
comparison vs. VB would be to a commercial IDE such as Wing
(http://wingide.com/) or ActiveState's Visual Python
(http://www.activestate.com/Products/Visual_Python/). The latter even lets
you pay money to confine yourself to Windows, Visual Studio and .NET--just
like VB! However, knowing Python, the students will leave the curriculum
with something they can extend to any environment should they have the need.

Jim Harrison
University of Pittsburgh