Towards a Python 3 IDE for Teaching Creative Programming
Processing is a popular graphical library and IDE developed for electronic art and visual design communities, with a strong focus on teaching art, design, and creative-technologies students computer programming fundamentals in a visual context. Processing provides a collection of special commands to draw, animate, and handle user input using Java. Users can enable Python Mode (also called Processing.py) for Processing in the IDE interface. This leverages Jython, a Java implementation of Python, to interface with Processing’s Java core, providing a way to write Processing code using Python syntax.
Studies highlight Python’s strong and growing presence in introductory Computer Science curricula, courses for different domains that employ programming, and other educational environments. However, Processing.py’s Jython implementation has its limitations: it is source-compatible with Python 2.7 (not 3+); it does not support CPython libraries, such as NumPy for handling complex matrix operations or Pymunk for simulating 2D physics. Several promising new Python-Processing tools have emerged, but no attempts to integrate one of the most promising, the py5 library created by Jim Schmitz, into a Processing-like-IDE experience that is as approachable and easy to just-run-and-start-coding as Processing.
This paper presents a new development environment, thonny-py5mode, that the author developed as a software plug-in for the Thonny IDE (a beginner-oriented IDE for Python programming). The plug-in includes assistive features for auto-completion, colour-mixing, converting code between Processing.py and py5, an accompanying cheat sheet, and more. The plug-in provides a much-needed successor to the Processing IDE’s Python Mode coding experience. It transforms Thonny into a creative computing environment by adding features that employ Processing’s core libraries to generate interactive, visual output via py5 – including Python 3 support, module/class/imported/static modes, named and shorthand hexadecimal colour values, NumPy methods for selecting and manipulating pixels, profiler functions, and OpenSimplex 2 noise.
Mon 5 DecDisplayed time zone: Auckland, Wellington change
10:30 - 12:00 | |||
10:30 15mTalk | Integration testing can be reliable and low-effort in a projectional IDE through snapshots - DEMOVirtual PAINT Bastian Kruck itemis SECURE // Hasso Plattner Institute | ||
10:45 15mTalk | Towards a Python 3 IDE for Teaching Creative Programming PAINT Tristan Bunn Victoria University of Wellington, Craig Anslow Victoria University of Wellington, Karsten Lundqvist | ||
11:00 15mTalk | Conjecturing on a Fundamental Theorem of Computation and its Implications for a New Theory in Programmer Experience Design PAINT Gary Miller University of Technology Sydney | ||
11:15 15mTalk | Domain-Specific Visual Language for Data Engineering Quality PAINT DOI Pre-print | ||
11:30 15mTalk | Blocks, Blocks, and More Blocks-Based Programming PAINT Benjamin Selwyn-Smith Oracle Labs, Craig Anslow Victoria University of Wellington, Michael Homer Victoria University of Wellington DOI | ||
11:45 15mTalk | Interleaved 2D Notation for Concatenative Programming PAINT Michael Homer Victoria University of Wellington DOI Pre-print |