An empirical investigation into the design of auditory cues to enhance computer program comprehension

Decades of research have led to notable improvements in the representations used to aid human comprehension of computer programs. Much of this research has focused on visual representations, which leaves open the question of how best to design auditory representations of computer programs. While this question has particular relevance for visually impaired programmers, sighted programmers might also benefit from enhanced auditory representations of their programs. In order to investigate this question empirically, first, we introduce artifact encoding, a novel approach to rigorously measuring the comprehensibility of auditory representations of computer programs. Using this approach as a foundation, we present an experimental study that compared the comprehensibility of two alternative auditory program representations: one with lexical scoping cues that convey the nesting level of program statements, and another without such scoping cues. The results of our first experiment validate both artifact encoding and the scoping cues we used. To see whether auditory cues validated through our paradigm can aid program comprehension in a realistic task scenario, we experimentally compared programmers' ability to debug programs using three alternative environments: (1) an auditory execution environment with our empirically derived auditory cues; (2) an auditory execution environment with the current state-of-the-art auditory cues generated by a screen reader running on top of Microsoft Visual Studio; and (3) a visual version of the execution environment. The results of our second experiment showed that our comprehensible auditory cues are significantly better than the state-of-the-art, affording human performance approaching the effectiveness of visual representations within the statistical margin of error. This research contributes a novel methodology and foundational empirical data that can guide the design of effective auditory representations of computer programs.

[1]  John P. Dougherty Concept visualization in CS0 using ALICE , 2007 .

[2]  Hironobu Takagi,et al.  Proceedings of the 2010 International Cross Disciplinary Conference on Web Accessibility (W4A) , 2010, W4A 2010.

[3]  M. Dewey,et al.  Coefficients of Agreement , 1983, British Journal of Psychiatry.

[4]  Éric Tanter,et al.  Processing , 1988 .

[5]  Randy Pausch,et al.  Alice: a 3-D tool for introductory programming concepts , 2000 .

[6]  Kirsten N. Whitley Visual Programming Languages and the Empirical Evidence For and Against , 1997, J. Vis. Lang. Comput..

[7]  Keith Gallagher,et al.  LISTENING TO PROGRAM SLICES , 2006 .

[8]  Bruce N. Walker,et al.  Mappings and metaphors in auditory displays: An experimental assessment , 2005, TAP.

[9]  Ann C. Smith,et al.  Nonvisual tool for navigating hierarchical structures , 2003, ASSETS.

[10]  Robert Biddle,et al.  Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications , 2007, OOPSLA.

[11]  Bei Yuan,et al.  TextSL: a command-based virtual world interface for the visually impaired , 2009, Assets '09.

[12]  D. Stott Parker,et al.  Saving traces for Ada debugging , 1985 .

[13]  Chris Mellish,et al.  THE 'AUDIOVIEW' - PROVIDING A GLANCE AT JAVA SOURCE CODE , 2005 .

[14]  Brad A. Myers,et al.  Natural programming languages and environments , 2004, Commun. ACM.

[15]  Mordechai Ben-Ari,et al.  The Jeliot 2000 program animation system , 2003, Comput. Educ..

[16]  T. N. Chairman-Nam,et al.  Proceedings of the 20th international conference on Software engineering , 1998, ICSE 1998.

[17]  Mireille Ducassé,et al.  Coca: an automated debugger for C , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[18]  Ronald Baecker,et al.  Enhancing program readability and comprehensibility with tools for program visualization , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[19]  Andreas Stefik,et al.  WAD: A Feasibility study using the Wicked Audio Debugger , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[20]  S. B. Needleman,et al.  A general method applicable to the search for similarities in the amino acid sequence of two proteins. , 1970, Journal of molecular biology.

[21]  Andrew Begel,et al.  Spoken Language Support for Software Development , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[22]  Randy F. Pausch Alice: a dying man's passion , 2008, SIGCSE '08.

[23]  C. Formby,et al.  Effects of cueing in auditory temporal masking. , 2007, Journal of speech, language, and hearing research : JSLHR.

[24]  Maria Klara Wolters,et al.  Leveraging large data sets for user requirements analysis , 2011, ASSETS.

[25]  Christopher D. Hundhausen,et al.  Can direct manipulation lower the barriers to computer programming and promote transfer of training?: An experimental study , 2009, TCHI.

[26]  Hironobu Takagi,et al.  Collaborative web accessibility improvement: challenges and possibilities , 2009, Assets '09.

[27]  T. McNamara Semantic Priming: Perspectives from Memory and Word Recognition , 2005 .

[28]  Dominique Archambault,et al.  Mathematics on the web: emerging opportunities for visually impaired people , 2007, W4A '07.

[29]  Elliot Soloway,et al.  Empirical Studies of Programmers: Second Workshop , 1991 .

[30]  Enrico Pontelli,et al.  UMA: a system for universal mathematics accessibility , 2003, ASSETS.

[31]  Éric Tanter,et al.  Back to the Future: Omniscient Debugging , 2009, IEEE Software.

[32]  Richard T. Snodgrass Monitoring in a software development environment: A relational approach , 1984 .

[33]  Robert David Stevens,et al.  Principles for the Design of Auditory Interfaces to Present Complex Information to Blind People , 1996 .

[34]  Anneliese Amschler Andrews,et al.  Comprehension processes during large scale maintenance , 1994, Proceedings of 16th International Conference on Software Engineering.

[35]  Sri Hastuti Kurniawan,et al.  Rock Vibe: Rock Band® computer games for people with no or limited vision , 2009, Assets '09.

[36]  Judith Masthoff,et al.  Fisheye Views of Java Source Code: An Updated LOD Algorithm , 2007, HCI.

[37]  Michael P. Conlon,et al.  Using Alice 2.0 as a first language , 2009 .

[38]  Chieko Asakawa,et al.  An interactive method for accessing tables in HTML , 1998, Assets '98.

[39]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[40]  Paul Vickers,et al.  Musical program auralization: Empirical studies , 2005, TAP.

[41]  Paul Vickers,et al.  When bugs sing , 2002, Interact. Comput..

[42]  A.P. Mathur,et al.  LISTEN: A tool to investigate the use of sound for the analysis of program behavior , 1995, Proceedings Nineteenth Annual International Computer Software and Applications Conference (COMPSAC'95).

[43]  Christopher D. Hundhausen,et al.  On the design of an educational infrastructure for the blind and visually impaired in computer science , 2011, SIGCSE.

[44]  Mireille Ducassé,et al.  Using events to debug Java programs backwards in time , 2003, OOPSLA '03.

[45]  Steve Pettifer,et al.  Evaluation of a non-visual molecule browser , 2003, Assets '04.

[46]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[47]  Chieko Asakawa What's the web like if you can't see it? , 2005, W4A '05.

[48]  Elliot Soloway,et al.  Uncovering principles of novice programming , 1983, POPL '83.

[49]  Neil Soiffer,et al.  MathPlayer v2.1: web-based math accessibility , 2007, Assets '07.

[50]  Bei Yuan,et al.  Blind hero: enabling guitar hero for the visually impaired , 2008, Assets '08.

[51]  Kris Powers,et al.  Evaluating assessments of novice programming environments , 2005, ICER '05.

[52]  Peter Parente Audio enriched links: web page previews for blind users , 2003, Assets '04.

[53]  Arthur I. Karshmer,et al.  Proceedings of the third international ACM conference on Assistive technologies , 1998 .

[54]  Joan M. Francioni,et al.  Debugging parallel programs using sound , 1991, PADD '91.

[55]  Thomas D. LaToza,et al.  More natural end-user software engineering , 2008, WEUSE '08.

[56]  A. Marie Vans,et al.  Program understanding behavior during debugging of large scale software , 1997, ESP '97.

[57]  Brian Ellis,et al.  The Factory Pattern in API Design: A Usability Evaluation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[58]  Brad A. Myers,et al.  Finding causes of program output with the Java Whyline , 2009, CHI.

[59]  Jaime Sánchez,et al.  Memory enhancement through audio , 2003, ASSETS.

[60]  Kate Ehrlich,et al.  Cognitive strategies and looping constructs: an empirical study , 1983, CACM.

[61]  Daniel T. Joyce,et al.  Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, SIGCSE 2004, Norfolk, Virginia, USA, March 3-7, 2004 , 2004, SIGCSE.

[62]  Philip Wadler,et al.  Views: a way for pattern matching to cohabit with data abstraction , 1987, POPL '87.

[63]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[64]  Brad A. Myers,et al.  Usability Issues in the Design of Novice Programming Systems , 1996 .

[65]  Andreas Stefik,et al.  Evaluating prosodic cues as a means to disambiguate algebraic expressions: an empirical study , 2009, Assets '09.

[66]  Mark Guzdial,et al.  Teaching the Nintendo generation to program , 2002, CACM.

[67]  Joan M. Francioni,et al.  The Sounds of Parallel Programs , 1991, The Sixth Distributed Memory Computing Conference, 1991. Proceedings.

[68]  Linda McIver The effect of programming language on error rates of novice programmers , 2000, PPIG.

[69]  Bruce N. Walker,et al.  LEARNING RATES FOR AUDITORY MENUS ENHANCED WITH SPEARCONS VERSUS EARCONS , 2007 .

[70]  Curtis R. Cook,et al.  Typographic style is more than cosmetic , 1990, CACM.

[71]  John Hershberger,et al.  Colour and sound in algorithm animation , 1991, Proceedings 1991 IEEE Workshop on Visual Languages.

[72]  William W. Gaver Auditory Icons: Using Sound in Computer Interfaces , 1986, Hum. Comput. Interact..

[73]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[74]  Stuart I. Feldman,et al.  IGOR: a system for program debugging via reversible execution , 1988, PADD '88.

[75]  Margaret Burnett,et al.  Proceedings of the 4th international workshop on End-user software engineering , 2008, ICSE 2008.

[76]  Steven M. Hadfield,et al.  RAPTOR: a visual programming environment for teaching algorithmic problem solving , 2005 .

[77]  Ben Shneiderman,et al.  Program indentation and comprehensibility , 1983, CACM.

[78]  Enrico Pontelli,et al.  Mathematics and Accessibility: a Survey , 2007 .

[79]  Paul Whitney The Psychology of Language , 1997 .

[80]  Richard E. Ladner,et al.  Inspiring blind high school students to pursue computer science with instant messaging chatbots , 2008, SIGCSE '08.

[81]  Enrico Pontelli,et al.  Making Microsoft Excel™: multimodal presentation of charts , 2009, Assets '09.

[82]  Thomas Ertl,et al.  A tactile web browser for the visually disabled , 2005, HYPERTEXT '05.

[83]  Andreas Stefik,et al.  Using spoken text to aid debugging: An empirical study , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[84]  T. Dean Hendrix,et al.  An extensible framework for providing dynamic data structure visualizations in a lightweight IDE , 2004 .

[85]  Carole A. Goble,et al.  Rendering tables in audio: the interaction of structure and reading styles , 2003, Assets '04.