On Novices' Interaction with Compiler Error Messages: A Human Factors Approach

The difficulty in understanding compiler error messages can be a major impediment to novice student learning. To alleviate this issue, multiple researchers have run experiments enhancing compiler error messages in automated assessment tools for programming assignments. The conclusions reached by these published experiments appear to be conducting. We examine these experiments and propose five potential reasons for the inconsistent conclusions concerning enhanced compiler error messages: (1) students do not read them, (2) researchers are measuring the wrong thing, (3) the effects are hard to measure, (4) the messages are not properly designed, (5) the messages are properly designed, but students do not understand them in context due to increased cognitive load. We constructed mixed-methods experiments designed to address reasons 1 and 5 with a specific automated assessment tool, Athene, that previously reported inconclusive results. Testing student comprehension of the enhanced compiler error messages outside the context of an automated assessment tool demonstrated their effectiveness over standard compiler error messages. Quantitative results from a 60 minute one-on-one think-aloud study with 31 students did not show substantial increase in student learning outcomes over the control. However, qualitative results from the one-on-one think-aloud study indicated that most students are reading the enhanced compiler error messages and generally make effective changes after encountering them.

[1]  James Prather,et al.  Automated assessment tools: too many cooks, not enough collaboration , 2017 .

[2]  Abilene Christian,et al.  From Walls to Steps: Using online automatic homework checking tools to improve learning in introductory programming courses , 2018 .

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

[4]  Margaret M. Burnett,et al.  Programming, Problem Solving, and Self-Awareness: Effects of Explicit Guidance , 2016, CHI.

[5]  Richard L. Wexelblat,et al.  Maxims for malfeasant designers, or how to design languages to make programming as difficult as possible , 1976, ICSE '76.

[6]  Jack Hollingsworth,et al.  Automatic graders for programming classes , 1960, Commun. ACM.

[7]  A. Twycross Research design: qualitative, quantitative and mixed methods approaches Research design: qualitative, quantitative and mixed methods approaches Creswell John W Sage 320 £29 0761924426 0761924426 [Formula: see text]. , 2004, Nurse researcher.

[8]  M. Patton Qualitative Research & Evaluation Methods: Integrating Theory and Practice , 2014 .

[9]  Susan Mengel,et al.  An Empirical Study of Iterative Improvement in Programming Assignments , 2015, SIGCSE.

[10]  Jacqueline L. Whalley,et al.  A qualitative think-aloud study of novice programmers' code writing strategies , 2014, ITiCSE '14.

[11]  Stephen N. Freund,et al.  Thetis: an ANSI C programming environment designed for introductory use , 1996, SIGCSE '96.

[12]  Emerson R. Murphy-Hill,et al.  Compiler error notifications revisited: an interaction-first approach for helping developers more effectively comprehend and resolve error notifications , 2014, ICSE Companion.

[13]  Jeffrey Rubin,et al.  Handbook of Usability Testing: How to Plan, Design, and Conduct Effective Tests , 1994 .

[14]  Emerson R. Murphy-Hill,et al.  Do Developers Read Compiler Error Messages? , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[15]  Christopher Douce,et al.  Automatic test-based assessment of programming: A review , 2005, JERC.

[16]  Petri Ihantola,et al.  Review of recent systems for automatic assessment of programming assignments , 2010, Koli Calling.

[17]  Kirsti Ala-Mutka,et al.  A Survey of Automated Assessment Approaches for Programming Assignments , 2005, Comput. Sci. Educ..

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

[19]  Dianne Hagan,et al.  Teaching Java with the BlueJ Environment , 2000 .

[20]  Caitlin Kelleher,et al.  Storytelling alice motivates middle school girls to learn computer programming , 2007, CHI.

[21]  Stephen H. Edwards,et al.  Web-CAT: automatically grading programming assignments , 2008, ITiCSE.

[22]  W. Teepe,et al.  Protocol Analysis , 2012 .

[23]  Christian Bird,et al.  What developers want and need from program analysis: An empirical study , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[24]  Scott R. Klemmer,et al.  What would other programmers do: suggesting solutions to error messages , 2010, CHI.

[25]  Tom Schorsch,et al.  CAP: an automated self-assessment tool to check Pascal programs for syntax, logic and style errors , 1995 .

[26]  Derrell Lipman,et al.  LearnCS!: a new, browser-based C programming environment for CS1 , 2014 .

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

[28]  Jens Bennedsen,et al.  Failure rates in introductory programming , 2007, SGCS.

[29]  Gary Lewandowski,et al.  Debugging: the good, the bad, and the quirky -- a qualitative analysis of novices' strategies , 2008, SIGCSE '08.

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

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

[32]  Robert W. Hasker,et al.  HiC: a C++ compiler for CS1 , 2002 .

[33]  Raymond Lister,et al.  A qualitative think aloud study of the early neo-piagetian stages of reasoning in novice programmers , 2013, ACE '13.

[34]  Elizabeth Carter,et al.  Its debug: practical results , 2015 .

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

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

[37]  Amy J. Ko,et al.  Personifying programming tool feedback improves novice programmers' learning , 2011, ICER.

[38]  J. Jackson,et al.  Identifying Top Java Errors for Novice Programmers , 2005, Proceedings Frontiers in Education 35th Annual Conference.

[39]  Miguel P Caldas,et al.  Research design: qualitative, quantitative, and mixed methods approaches , 2003 .

[40]  Ma. Mercedes T. Rodrigo,et al.  A detector for non-literal Java errors , 2010, Koli Calling.

[41]  Timothy T. Yuen Novices' knowledge construction of difficult concepts in CS1 , 2007, SGCS.

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

[43]  Frederick W. B. Li,et al.  BlueFix: Using Crowd-Sourced Feedback to Support Programming Students in Error Diagnosis and Repair , 2012, ICWL.

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

[45]  Thomas R. Flowers,et al.  Empowering students and building confidence in novice programmers through Gauntlet , 2004, 34th Annual Frontiers in Education, 2004. FIE 2004..