skip to main content
10.1145/3328778.3366920acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article
Open Access

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

Published:26 February 2020Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. J. Brown. Error messages: The neglected area of the man/machine interface. Commun. ACM, 26(4):246--249, Apr. 1983.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. du Boulay. Some difficulties of learning to program. Journal of Educational Computing Research, 2(1):57--73, 1986.Google ScholarGoogle ScholarCross RefCross Ref
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. E. Fleury. Parameter passing: the rules the students construct. In ACM SIGCSE Bulletin, volume 23, pages 283--286, 1991.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Guzdial. A media computation course for non-majors. SIGCSE Bull., 35(3):104--108, June 2003.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle Scholar
  14. The Jython project. https://www.jython.org/.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. Kohn. Teaching Python Programming to Novices: Addressing Misconceptions and Creating a Development Environment. PhD thesis, ETH Zurich, 2017.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Kölling. The greenfoot programming environment. Trans. Comput. Educ., 10(4):14:1--14:21, Nov. 2010.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. S. Papert. Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc., 1980.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. C. Reas and B. Fry. Processing: A Programming Handbook for Visual Designers and Artists. MIT Press, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. E. S. Roberts. Loop exits and structured programming: reopening the debate. In SIGCSE, volume 95, pages 268--272, 1995.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. v. Rossum and F. L. Drake. Python Language Reference Manual. Network Theory Ltd, United Kingdom, 2011.Google ScholarGoogle Scholar
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. A. Stefik and E. Gellenbeck. Empirical studies on programming language stimuli. Software Quality Journal, 19(1):65--99, Mar 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. A. Stefik and S. Siebert. An empirical investigation into programming language syntax. ACM Transactions on Computing Education (TOCE), 13(4):19, 2013.Google ScholarGoogle Scholar
  39. V. J. Traver. On compiler error messages: what they say and what they mean. Advances in Human-Computer Interaction, 2010, 2010.Google ScholarGoogle Scholar

Index Terms

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

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SIGCSE '20: Proceedings of the 51st ACM Technical Symposium on Computer Science Education
          February 2020
          1502 pages
          ISBN:9781450367936
          DOI:10.1145/3328778

          Copyright © 2020 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 26 February 2020

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate1,595of4,542submissions,35%

          Upcoming Conference

          SIGCSE Virtual 2024

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader