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
by Greg Wilson (and funded by the Python Software Foundation is a course on software development skills for scientists and engineers.
A new portal site for teachers using Python to teach computer science and/or programming skills. How to Think Like a Computer Scientist Learning with Python by Allen B. Downey, Jeffrey Elkner and Chris Meyers provides good introduction to Python's capabilities. An Introduction to Programming by Eric Rollins is an example of how this open source resource may serve as a basis for a specific course.
Using Python in a High School Computer Science Program
Experiences with Python in the classroom, reported at the 8th International Python Conference. By Jeff Elkner. (See also an interview with Jeff by Frank Willison for O'Reilly.)
- Dr. John Zelle of Wartburg College advocates using Python as a first language, and provides a paper on that topic at his web site. His much anticipated Python-based introductory computer science text book is also now available.
- John Miller's PhD dissertation, Promoting Computer Literacy Through Programming Python (1.37 MB), looks at the issues around teaching with Python, and explores some of the threads taken up on edu-sig.
- Kirby Urner's CP4E resources integrate Python programming with topics in mathematics.
Programming tutorials for non-programmers using Python
- These resources have been collected in the Beginner's Guide to 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.
These shell and editor tools, by Patrick O'Brien, come as a standard part of the wxWidgets 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.
Based on wxPython, 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.
Wingware's high quality commercial IDE is available at substantial discounts for educators, and for free for classroom/lab use or non-commercial open source development projects (contact sales at wingware dot com for details). Wing provides extensive debugging and code intelligence support for Python and runs on Windows, Linux, and OS X (as an X11 application).
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. wxWidgets 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.
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 Numeric.
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.
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.
Software Repositories
Lots of Python modules, organized by topic.
Lots of useful code examples (but proving utility is not a requirement for submission)
A feature of the ActiveState Programmer Network (another feature is a searchable archive of the Python e-lists).
More about Computer Programming for Everybody
Computer Programming for Everybody
Presentation summarizing CP4E highlights. By Guido van Rossum.
An Interview with Guido van Rossum
A conversation with the creator of Python about an effort to teach Python to non-computer science students. By Phil Hughes for Linux Journal.
By Stephen Figgins for O'Reilly.
By Stephen Figgins for O'Reilly.
A Long -- yet always incomplete -- List of Python Links
Python is really out there!
SIG administrivia
- Subscribe to the edu-sig mailing list
- Browse the edu-sig mailing list archives

