EDU-SIG: Python in Education
Python continues to make inroads at all levels in education. As a first
programming language, Python provides a lucid, interactive environment in which to
explore procedural, functional and object oriented approaches to problem solving.
Its high level data structures and clear syntax keep the forest in view through
Other, and oft times more difficult, languages become more accessible once these
basics are mastered, while Python itself remains a valuable tool in more advanced
professional and business applications. Because Python is both powerful by itself,
and plays well with others (including with multiple operating systems) its relevance
is not diminished as one's toolbox becomes more heterogenous and specialized.
Edu-sig provides an informal venue for comparing notes and discussing future
possibilities for Python in education. Its origins trace to Guido van Rossum's
pioneering Computer Programming for Everybody (CP4E), a
grant proposal accepted by DARPA, and which provided a modicum of funding in 1999.
Membership includes, but is not limited to, educators using Python in their courses,
independent developers, and authors of educational materials. Discussion focuses on
Python use at all levels, from beginning to advanced applications.
Programming tutorials for non-programmers using Python
Shells and Editors
See also the Python Editors
Wiki and the Python Integrated Development Environments Wiki.
An IDE for Python in Python, and included in the installation files on any
platform that supports Tcl, including Windows.
- PyCrust, PyShell, PyAlaMode
These shell and editor tools, by Patrick O'Brien, come as a standard part
of the wxPython installation (see below). These tools make use of introspection
to provide a tree view of the current namespace.
This IDE by Kevin Altis, also based on wxWindows,
provides a simplified way of constructing GUI-based interfaces in Python.
Inspired in part by the HyperCard for the Macintosh.
- SPE - Stani's Python Editor
Based on wxPython (see below), with special extensions for working with Blender.
A more capable non-GUI shell (cross platform).
A free Python distribution from ActiveState. The Windows version comes with
PythonWin, a GUI-based shell and text editor based on Mark
Hammond's win32all (Python extensions for Windows).
A cross-platform editor and shell by Daniel Pozmanter, modeled on DrScheme
of which he is a fan.
ActiveState's commercial IDE for open source languages, including Python.
Runs on Linux and Windows.
- Wing IDE
Wingware's commercial IDE with extensive debugging and code
intelligence support for Python. Wing runs on Windows, Linux,
and OS X (as an X11 application).
- Boa Constructor
A full-featured IDE for Python, built on wxWindows. Still in alpha development.
Of Interest to Educators
This module by Robin Dunn contains an elaborate GUI-based demo showing what
all the wxWindows widgets can do when invoked from within Python -- all the
examples are driven by well-documented source code. wxPython and wxWindows
are mature products.
A cross-platform 3D modeling suite, offering modeling, animation, interactive
creation and playback. Blender uses Python for scripting support.
Guido van Robot strives to emulate Karel the Robot, this time using Python.
A programmable computer screen robot for children learning Python, by André Roberge
Classes written in Python to simulate the behaviour of a 3D mass-spring-system.
A Python course geared towards beginning programmers with open source online worksheets
and code. The more recent versions of the course make use of the Pygame package (see below).
A pure Python plotting library designed to bring publication quality
plotting to Python with a syntax familiar to matlab users.
- Numerical Python
A major extension to Python supporting the manipulation of large arrays, linear
algebra and FFT. This product is currently being rewritten by the Space Telescope
Science Institute as numarray.py.
The Python Imaging Library by Secret Labs. Allows Python to create and manipulate
image files in their native formats, and to convert between formats.
This package by Pete Shinners and company allows Python to talk to SDL,
a cross-platform, multimedia library.
A dynamic geometry package by Arthur Siegel, in the tradition of Cabri
Geometry and The
Geometer's Sketchpad but extended to 3D. PyGeo depends on VPython and
A Python programming environment for easily exploring advanced topics in artificial
intelligence and robotics.
Gives Python programs the power to output directly in Adobe's PDF format.
The open source version is fully functional in the hands of a Python programmer.
Useful for publishing course materials.
This site links to the many resources enabling Python to function as a tool
for visualizing data, from simple XY plots to more elaborate 3D graphics.
These resources often depend, in turn, on Numeric Python.
- Useless Python!
An archive of Python programs of all kinds, contributed by Python users from
all walks of life.
A real time graphics library wrapped in a friendly Python API.