Tell Me What's Wrong: A Python IDE with Error Messages

Development environments play a crucial role for novice programmers. Not only do they act as interface to type in and execute programs, but a programming environment is also responsible for reporting errors, managing in- and output when the program is running, or offering the programmer access to the underlying notional machine. In recent years several new educational programming environments for Python have been presented. However, the important issue of reporting errors has rarely been addressed and evaluations often hint that students main issue is the poor quality of Python's error messages. We have therefore written an educational Python environment with enhanced error messages. This paper presents the design and rationale of its three primary features: modifications to Python, enhanced error messages, and the visual debugger.

[1]  Peter J. Brown,et al.  Error messages: the neglected area of the man/machine interface , 1983, CACM.

[2]  David Pritchard,et al.  Frequency distribution of error messages , 2015, PLATEAU@SPLASH.

[3]  Juha Sorva,et al.  UUhistle: a software tool for visual program simulation , 2010, Koli Calling.

[4]  Andrew Luxton-Reilly,et al.  Enhancing syntax error messages appears ineffectual , 2014, ITiCSE '14.

[5]  Kathi Fisler,et al.  Mind your language: on novices' interactions with error messages , 2011, Onward! 2011.

[6]  Rebecca T. Mercuri,et al.  Identifying and correcting Java programming errors for introductory computer science students , 2003, SIGCSE.

[7]  Sue Sentance,et al.  Learning to use Functions: The Relationship Between Misconceptions and Self-Efficacy , 2019, SIGCSE.

[8]  Michael Kölling,et al.  The BlueJ System and its Pedagogy , 2003, Comput. Sci. Educ..

[9]  Andreas Stefik,et al.  An Empirical Investigation into Programming Language Syntax , 2013, TOCE.

[10]  HristovaMaria,et al.  Identifying and correcting Java programming errors for introductory computer science students , 2003 .

[11]  Bill Z. Manaris,et al.  Gender equity in computer science through computing in the arts – a six-year longitudinal study , 2018, Comput. Sci. Educ..

[12]  LahtinenEssi,et al.  A study of the difficulties of novice programmers , 2005 .

[13]  Stephen H. Edwards,et al.  Pythy: improving the introductory python programming experience , 2014, SIGCSE '14.

[14]  Tobias Kohn Teaching Python Programming to Novices: Addressing Misconceptions and Creating a Development Environment , 2017 .

[15]  Andreas Stefik,et al.  Empirical studies on programming language stimuli , 2011, Software Quality Journal.

[16]  Aivar Annamaa,et al.  Introducing Thonny, a Python IDE for learning programming , 2015, Koli Calling.

[17]  John Homer,et al.  Do Enhanced Compiler Error Messages Help Students?: Results Inconclusive. , 2017, SIGCSE.

[18]  Eric S. Roberts,et al.  Loop exits and structured programming: reopening the debate , 1995, SIGCSE.

[19]  Philip J. Guo Online python tutor: embeddable web-based program visualization for cs education , 2013, SIGCSE '13.

[20]  Tobias Kohn,et al.  The Error Behind The Message: Finding the Cause of Error Messages in Python , 2019, SIGCSE.

[21]  Peter C. Rigby,et al.  Study of novice programmers using Eclipse and Gild , 2005, eclipse '05.

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

[23]  Benedict duBoulay,et al.  Some Difficulties of Learning to Program , 1986 .

[24]  Mark Guzdial,et al.  A media computation course for non-majors , 2003, ITiCSE '03.

[25]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[26]  Brett A. Becker,et al.  The Effects of Enhanced Compiler Error Messages on a Syntax Error Debugging Test , 2018, SIGCSE.

[27]  Fred L. Drake,et al.  The Python Language Reference Manual , 1999 .

[28]  V. Javier Traver,et al.  On Compiler Error Messages: What They Say and What They Mean , 2010, Adv. Hum. Comput. Interact..

[29]  Bertrand Meyer,et al.  Compiler error messages: what can help novices? , 2008, SIGCSE '08.

[30]  Michael Kölling,et al.  The Greenfoot Programming Environment , 2010, TOCE.

[31]  Brett A. Becker An Effective Approach to Enhancing Compiler Error Messages , 2016, SIGCSE.

[32]  E FleuryAnn Parameter passing: the rules the students construct , 1991 .

[33]  John Maloney,et al.  The Scratch Programming Language and Environment , 2010, TOCE.

[34]  Ann E. Fleury Parameter passing: the rules the students construct , 1991, SIGCSE '91.

[35]  Kathi Fisler,et al.  Measuring the effectiveness of error messages designed for novice programmers , 2011, SIGCSE.

[36]  Jim Hugunin Python and Java: The Best of Both Worlds , 1997 .

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

[38]  Andrew R. Brown,et al.  JythonMusic: An environment for teaching algorithmic music composition, dynamic coding and musical performativity , 2016 .

[39]  Joseph L. Zachary,et al.  Automated feedback on programs means students need less help from teachers , 2001, SIGCSE '01.

[40]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[41]  Casey Reas,et al.  Processing: a programming handbook for visual designers and artists , 2007 .