ABSTRACT
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.
- A. Annamaa. Introducing Thonny, a Python IDE for learning programming. In Proceedings of the 15th Koli Calling Conference on Computing Education Research, Koli Calling '15, pages 117--121, New York, NY, USA, 2015. ACM.Google ScholarDigital Library
- W. Bares, B. Manaris, and R. McCauley. Gender equity in computer science through computing in the arts -- a six-year longitudinal study. Computer Science Education, 28(3):191--210, 2018.Google ScholarCross Ref
- B. A. Becker. An effective approach to enhancing compiler error messages. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education, SIGCSE '16, pages 126--131, New York, NY, USA, 2016. ACM.Google ScholarDigital Library
- B. A. Becker, K. Goslin, and G. Glanville. The effects of enhanced compiler error messages on a syntax error debugging test. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education, SIGCSE '18, pages 640--645, New York, NY, USA, 2018. ACM.Google ScholarDigital Library
- P. J. Brown. Error messages: The neglected area of the man/machine interface. Commun. ACM, 26(4):246--249, Apr. 1983.Google ScholarDigital Library
- P. Denny, A. Luxton-Reilly, and D. Carpenter. Enhancing syntax error messages appears ineffectual. In Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education, ITiCSE '14, pages 273--278, New York, NY, USA, 2014. ACM.Google ScholarDigital Library
- B. du Boulay. Some difficulties of learning to program. Journal of Educational Computing Research, 2(1):57--73, 1986.Google ScholarCross Ref
- S. H. Edwards, D. S. Tilden, and A. Allevato. Pythy: Improving the introductory python programming experience. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, SIGCSE '14, pages 641--646, New York, NY, USA, 2014. ACM.Google ScholarDigital Library
- A. E. Fleury. Parameter passing: the rules the students construct. In ACM SIGCSE Bulletin, volume 23, pages 283--286, 1991.Google ScholarDigital Library
- P. J. Guo. Online Python Tutor: Embeddable web-based program visualization for CS education. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education, SIGCSE '13, pages 579--584, New York, NY, USA, 2013. ACM.Google ScholarDigital Library
- M. Guzdial. A media computation course for non-majors. SIGCSE Bull., 35(3):104--108, June 2003.Google ScholarDigital Library
- M. Hristova, A. Misra, M. Rutter, and R. Mercuri. Identifying and correcting java programming errors for introductory computer science students. SIGCSE Bull., 35(1):153--156, Jan. 2003.Google ScholarDigital Library
- J. Hugunin. Python and Java: The best of both worlds. In Proceedings of the 6th international Python conference, volume 9, pages 2--18. CNRI Reston, VA, 1997.Google Scholar
- The Jython project. https://www.jython.org/.Google Scholar
- M. Kallia and S. Sentance. Learning to use functions: The relationship between misconceptions and self-efficacy. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, SIGCSE '19, pages 752--758, New York, NY, USA, 2019. ACM.Google ScholarDigital Library
- C. Kelleher and R. Pausch. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv., 37(2):83--137, June 2005.Google ScholarDigital Library
- T. Kohn. Teaching Python Programming to Novices: Addressing Misconceptions and Creating a Development Environment. PhD thesis, ETH Zurich, 2017.Google Scholar
- T. Kohn. The error behind the message: Finding the cause of error messages in Python. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, SIGCSE '19, pages 524--530, New York, NY, USA, 2019. ACM.Google ScholarDigital Library
- M. Kölling. The greenfoot programming environment. Trans. Comput. Educ., 10(4):14:1--14:21, Nov. 2010.Google ScholarDigital Library
- M. Kölling, B. Quig, A. Patterson, and J. Rosenberg. The bluej system and its pedagogy. Computer Science Education, 13(4):249--268, 2003.Google ScholarCross Ref
- E. Lahtinen, K. Ala-Mutka, and H.-M. J"arvinen. A study of the difficulties of novice programmers. SIGCSE Bull., 37(3):14--18, June 2005.Google ScholarDigital Library
- J. Maloney, M. Resnick, N. Rusk, B. Silverman, and E. Eastmond. The Scratch programming language and environment. ACM Transactions on Computing Education (TOCE), 10(4):16, 2010.Google Scholar
- B. Manaris, B. Stevens, and A. R. Brown. JythonMusic: An environment for teaching algorithmic music composition, dynamic coding and musical performativity. Journal of Music, Technology and Education, 9(1):33--56, 2016.Google Scholar
- G. Marceau, K. Fisler, and S. Krishnamurthi. Measuring the effectiveness of error messages designed for novice programmers. In Proceedings of the 42Nd ACM Technical Symposium on Computer Science Education, SIGCSE '11, pages 499--504, New York, NY, USA, 2011. ACM.Google ScholarDigital Library
- G. Marceau, K. Fisler, and S. Krishnamurthi. Mind your language: On novices' interactions with error messages. In Proceedings of the 10th SIGPLAN Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2011, pages 3--18, New York, NY, USA, 2011. ACM.Google ScholarDigital Library
- M.-H. Nienaltowski, M. Pedroni, and B. Meyer. Compiler error messages: What can help novices? In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education, SIGCSE '08, pages 168--172, New York, NY, USA, 2008. ACM.Google ScholarDigital Library
- E. Odekirk-Hash and J. L. Zachary. Automated feedback on programs means students need less help from teachers. In Proceedings of the Thirty-second SIGCSE Technical Symposium on Computer Science Education, SIGCSE '01, pages 55--59, New York, NY, USA, 2001. ACM.Google ScholarDigital Library
- S. Papert. Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc., 1980.Google ScholarDigital Library
- R. S. Pettit, J. Homer, and R. Gee. Do enhanced compiler error messages help students?: Results inconclusive. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, SIGCSE '17, pages 465--470, New York, NY, USA, 2017. ACM.Google ScholarDigital Library
- D. Pritchard. Frequency distribution of error messages. In Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools, PLATEAU 2015, pages 1--8, New York, NY, USA, 2015. ACM.Google ScholarDigital Library
- C. Reas and B. Fry. Processing: A Programming Handbook for Visual Designers and Artists. MIT Press, 2007.Google ScholarDigital Library
- P. C. Rigby and S. Thompson. Study of novice programmers using eclipse and gild. In Proceedings of the 2005 OOPSLA Workshop on Eclipse Technology eXchange, eclipse '05, pages 105--109, New York, NY, USA, 2005. ACM.Google ScholarDigital Library
- E. S. Roberts. Loop exits and structured programming: reopening the debate. In SIGCSE, volume 95, pages 268--272, 1995.Google ScholarDigital Library
- G. v. Rossum and F. L. Drake. Python Language Reference Manual. Network Theory Ltd, United Kingdom, 2011.Google Scholar
- E. Soloway, J. Bonar, and K. Ehrlich. Cognitive strategies and looping constructs: An empirical study. Communications of the ACM, 26(11):853--860, 1983.Google ScholarDigital Library
- J. Sorva and T. Sirki"a. UUhistle: A software tool for visual program simulation. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research, Koli Calling '10, pages 49--54, New York, NY, USA, 2010. ACM.Google ScholarDigital Library
- A. Stefik and E. Gellenbeck. Empirical studies on programming language stimuli. Software Quality Journal, 19(1):65--99, Mar 2011.Google ScholarDigital Library
- A. Stefik and S. Siebert. An empirical investigation into programming language syntax. ACM Transactions on Computing Education (TOCE), 13(4):19, 2013.Google Scholar
- V. J. Traver. On compiler error messages: what they say and what they mean. Advances in Human-Computer Interaction, 2010, 2010.Google Scholar
Index Terms
- Tell Me What's Wrong: A Python IDE with Error Messages
Recommendations
Introducing Thonny, a Python IDE for learning programming
Koli Calling '15: Proceedings of the 15th Koli Calling Conference on Computing Education ResearchThonny is a new Python IDE for learning and teaching programming that can make program visualization a natural part of the beginners' workflow. Among its prominent features are different ways of stepping through the code, step-by-step expression ...
Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research
ITiCSE-WGR '19: Proceedings of the Working Group Reports on Innovation and Technology in Computer Science EducationDiagnostic messages generated by compilers and interpreters such as syntax error messages have been researched for over half of a century. Unfortunately, these messages which include error, warning, and run-time messages, present substantial difficulty ...
The Effects of Compilation Mechanisms and Error Message Presentation on Novice Programmer Behavior
SIGCSE '20: Proceedings of the 51st ACM Technical Symposium on Computer Science EducationIt is generally accepted that learning to program could be easier for many students. One of the most important components of this experience is the programming environment. Novices learn in a variety of environments, from basic command-line interfaces ...
Comments