Exploratory programming describes techniques for programmers to interactively explore and develop programs.
Auditory displays present information in the form of sounds rather than conventional visual artifacts.
By bringing these two paradigms together, programmers can be equipped with additional tooling that allows them to inspect and monitor their source code through sounds. However, traditional applications of sounds as an aid for programming are typically non-interactive and involve major implementational efforts.
With the sonyx prototype (Sound-based tOols for uNderstanding of software sYstems through eXploration), we have implemented a concept in the interactive programming environment Squeak/Smalltalk that enables programmers to listen to aspects of interest in their program by inserting customized sound probes at arbitrary places in their source code. Sound probes automatically trigger a sound whenever a referenced source code expression is evaluated. By mapping custom expressions and portions of the runtime state to different sound parameters and combining multiple sounds, programmers can swiftly create individual sonifications of their software through a simple low-code interface.
In a user study, we have evaluated the impact of the sonyx prototype on the programming experience, problem comprehension, and the effectiveness of developers. The study was conducted as a randomized experiment with repeated measures, comparing the use of sonyx to two control conditions, namely regular programming without additional tools, and using a visual display rather than an auditory one. Our results indicate that in programming, auditory displays have the potential to improve the satisfaction of programmers and to help them solve typical programming tasks more successfully.
This project is conducted by Christoph Thiede.
Results reported here are the outcome of two semester projects in Sonic Thinking and Neurodesign. The project has benefitted from suggestions by Tom Beckmann and Patrick Rein from the Software Architecture Group, as well as Julia von Thienen and Irene Plank from the Neurodesign Group, and input from further colleagues.
The sonyx prototype and all details on the user study are available in the GitHub repository: https://github.com/LinqLover/sonyx