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 the trees.

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.

Resources

Background materials

Programming tutorials for non-programmers using Python

Shells and Editors

  • IDLE
    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.
  • PythonCard
    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.
  • IPython
    A more capable non-GUI shell (cross platform).
  • ActivePython
    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).
  • DrPython
    A cross-platform editor and shell by Daniel Pozmanter, modeled on DrScheme of which he is a fan.
  • Komodo
    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.
See also the Python Editors Wiki and the Python Integrated Development Environments Wiki.

Of Interest to Educators

  • wxPython
    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.
  • Blender
    A cross-platform 3D modeling suite, offering modeling, animation, interactive creation and playback. Blender uses Python for scripting support.
  • GVR
    Guido van Robot strives to emulate Karel the Robot, this time using Python.
  • RUR-PLE
    A programmable computer screen robot for children learning Python, by André Roberge
  • KineticsKit
    Classes written in Python to simulate the behaviour of a 3D mass-spring-system.
  • LiveWires
    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).
  • matplotlib
    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.
  • PIL
    The Python Imaging Library by Secret Labs. Allows Python to create and manipulate image files in their native formats, and to convert between formats.
  • PyGame
    This package by Pete Shinners and company allows Python to talk to SDL, a cross-platform, multimedia library.
  • PyGeo
    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 Numeric.
  • Pyro
    A Python programming environment for easily exploring advanced topics in artificial intelligence and robotics.
  • ReportLab
    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.
  • SciPy
    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.
  • VPython
    A real time graphics library wrapped in a friendly Python API.

Software Repositories

More about Computer Programming for Everybody

SIG administrivia