skip to main content
10.1145/3372782.3408118acmconferencesArticle/Chapter ViewAbstractPublication PagesicerConference Proceedingsconference-collections
poster

MatchingRef: Matching Variable Names in a Reference Page to Help Introductory CS Students Fix Compiler Errors

Published:07 August 2020Publication History

ABSTRACT

Debugging compiler errors is essential to programming and can be challenging for novice programmers. In introductory computer science courses, challenging errors can discourage students. One reason these errors are difficult to resolve is that most online help systems do not match a student's code. For example, online reference pages use different variable names, identifiers, and method names compared with a student's particular code. To utilize existing resources, students must wade through other people's code (which is often too advanced for novices to comprehend). This is time-consuming and does not provide novices with solutions.

To address this problem, we developed MatchingRef -a reference system that helps novices resolve compiler errors. It is a web-based reference guide that catalogs common Processing/Java compiler errors. MatchingRef integrates with the Processing programming environment to provide users with explanations and that match users' particular code. It includes a list of strategies to fix each error, accompanied by one or more concrete examples. Importantly, the key feature that distinguishes MatchingRef from prior reference systems (e.g., Decaf [1], HelpMeOut [4], CodeWrite [2]) is that MatchingRef examples are all dynamically generated using variable, method, and class names from users' programming environments.

There are four guiding design principles behind MatchingRef. First is readability, which is listed as a criterion that good error messages should exhibit [5]. The description from Java documentation is usually technical and causes confusion for novice programmers. Hence, we provide explanations that are less cryptic and more familiar in wording. Second is learning by examples. Examples have been shown to be effective way to learn and fix programming errors, such as in online forum like Stack Overflow [7]. Therefore, we include examples in each suggestion so that users can have a concrete idea on how to fix the problems. Third is familiarity, a common design principle across domains [3]. MatchingRef matches elements in the fixing examples with the original code of the users. Finally, our system is intended to reduce cognitive load by customizing the pages to users' code to show the relevant information. According to Cognitive Load Theory (CLT), humans have a finite ability to efficiently process input [6]. As MatchingRef provide users with matching error messages and matching names, their brain only needs to process useful information such as ways to fix the errors or roots of the errors. Users can avoid reading some information in the page multiple times such as variable names or class names because they are already familiar with them.

We conducted a within-subjects pilot study (n = 4) to evaluate whether MatchingRef improved novices' performance and comprehension while debugging compiler errors. Participants interacted with two designs of our system, one with matching variable names in the examples and one without this feature. Otherwise, the systems were identical. The participants were students in introductory computer science courses that use Processing. Due to the small sample size, we could not detect significant differences in task completion time. Although the conclusions we can draw are limited, we are encouraged to evaluate MatchingRef in a more formal study.

References

  1. Brett A. Becker. 2016. An Effective Approach to Enhancing Compiler Error Messages. In Computing Science Education (SIGCSE). ACM, 126--131. https://doi. org/10.1145/2839509.2844584Google ScholarGoogle Scholar
  2. Paul Denny, Andrew Luxton-Reilly, and Dave Carpenter. 2014. Enhancing Syntax Error Messages Appears Ineffectual. In Innovation and Technology in Computer Science Education (ITiCSE). ACM, 273--278. https://doi.org/10.1145/2591708.2591748Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Alan Dix, Janet E. Finlay, Gregory D. Abowd, and Russell Beale. 2003. Human Computer Interaction (3rd Edition). Prentice-Hall, Inc., USA.Google ScholarGoogle Scholar
  4. Björn Hartmann, Daniel MacDougall, Joel Brandt, and Scott R. Klemmer. 2010. What Would Other Programmers Do: Suggesting Solutions to Error Messages. In Human Factors in Computing Systems (CHI). ACM, 1019--1028. https://doi.org/10. 1145/1753326.1753478Google ScholarGoogle Scholar
  5. James J. Horning. 1976. What the Compiler Should Tell the User. In Compiler Construction, An Advanced Course, 2nd Ed. Springer-Verlag, 525--548.Google ScholarGoogle Scholar
  6. John Sweller. 1988. Cognitive load during problem solving: Effects on learning. Cognitive Science 12, 2 (1988), 257--285. https://doi.org/10.1016/0364-0213(88) 90023-7Google ScholarGoogle ScholarCross RefCross Ref
  7. Emillie Thiselton and Christoph Treude. 2019. Enhancing Python Compiler Error Messages via Stack Overflow. In Empirical Software Engineering and Measurement (ESEM). 1--12Google ScholarGoogle Scholar

Index Terms

  1. MatchingRef: Matching Variable Names in a Reference Page to Help Introductory CS Students Fix Compiler Errors

        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
          ICER '20: Proceedings of the 2020 ACM Conference on International Computing Education Research
          August 2020
          364 pages
          ISBN:9781450370929
          DOI:10.1145/3372782

          Copyright © 2020 Owner/Author

          Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 7 August 2020

          Check for updates

          Qualifiers

          • poster

          Acceptance Rates

          Overall Acceptance Rate189of803submissions,24%

          Upcoming Conference

          ICER 2024
          ACM Conference on International Computing Education Research
          August 13 - 15, 2024
          Melbourne , VIC , Australia
        • Article Metrics

          • Downloads (Last 12 months)10
          • Downloads (Last 6 weeks)0

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader