Table of Contents
Fetching ...

How Helpful do Novice Programmers Find the Feedback of an Automated Repair Tool?

Oka Kurniawan, Christopher M. Poskitt, Ismam Al Hoque, Norman Tiong Seng Lee, Cyrille Jégourel, Nachamma Sockalingam

TL;DR

This paper addresses how novices benefit from automated repair-based feedback in programming education. The authors extend CLARA to CLARA-S to cover more Python features and integrate it with Jupyter Notebooks, then run a think-aloud study to observe novice and intermediate users. They report that while automated repairs can help learners, novices often struggle to decipher cryptic repair messages, though they value knowing where fixes are needed. The work highlights the potential for APR-based feedback to support learning and instructor efficiency, and outlines directions for iterative hinting and improved explanations in larger follow-on studies.

Abstract

Immediate feedback has been shown to improve student learning. In programming courses, immediate, automated feedback is typically provided in the form of pre-defined test cases run by a submission platform. While these are excellent for highlighting the presence of logical errors, they do not provide novice programmers enough scaffolding to help them identify where an error is or how to fix it. To address this, several tools have been developed that provide richer feedback in the form of program repairs. Studies of such tools, however, tend to focus more on whether correct repairs can be generated, rather than how novices are using them. In this paper, we describe our experience of using CLARA, an automated repair tool, to provide feedback to novices. First, we extended CLARA to support a larger subset of the Python language, before integrating it with the Jupyter Notebooks used for our programming exercises. Second, we devised a preliminary study in which students tackled programming problems with and without support of the tool using the 'think aloud' protocol. We found that novices often struggled to understand the proposed repairs, echoing the well-known challenge to understand compiler/interpreter messages. Furthermore, we found that students valued being told where a fix was needed - without necessarily the fix itself - suggesting that 'less may be more' from a pedagogical perspective.

How Helpful do Novice Programmers Find the Feedback of an Automated Repair Tool?

TL;DR

This paper addresses how novices benefit from automated repair-based feedback in programming education. The authors extend CLARA to CLARA-S to cover more Python features and integrate it with Jupyter Notebooks, then run a think-aloud study to observe novice and intermediate users. They report that while automated repairs can help learners, novices often struggle to decipher cryptic repair messages, though they value knowing where fixes are needed. The work highlights the potential for APR-based feedback to support learning and instructor efficiency, and outlines directions for iterative hinting and improved explanations in larger follow-on studies.

Abstract

Immediate feedback has been shown to improve student learning. In programming courses, immediate, automated feedback is typically provided in the form of pre-defined test cases run by a submission platform. While these are excellent for highlighting the presence of logical errors, they do not provide novice programmers enough scaffolding to help them identify where an error is or how to fix it. To address this, several tools have been developed that provide richer feedback in the form of program repairs. Studies of such tools, however, tend to focus more on whether correct repairs can be generated, rather than how novices are using them. In this paper, we describe our experience of using CLARA, an automated repair tool, to provide feedback to novices. First, we extended CLARA to support a larger subset of the Python language, before integrating it with the Jupyter Notebooks used for our programming exercises. Second, we devised a preliminary study in which students tackled programming problems with and without support of the tool using the 'think aloud' protocol. We found that novices often struggled to understand the proposed repairs, echoing the well-known challenge to understand compiler/interpreter messages. Furthermore, we found that students valued being told where a fix was needed - without necessarily the fix itself - suggesting that 'less may be more' from a pedagogical perspective.
Paper Structure (6 sections, 4 figures, 1 table)

This paper contains 6 sections, 4 figures, 1 table.

Figures (4)

  • Figure 1: Screenshot of our Jupyter extension to call CLARA
  • Figure 2: Study protocol for the two groups of students, Group A and B. Each participant is given 30 mins for each programming task, P1 and P2. Group A uses CLARA-S for P2, whereas Group B uses it for P1
  • Figure 3: Feedback on the use of CLARA-S with respect to programming background. The numbers in the bars are percentages
  • Figure 4: Example of CLARA-S output seen by a participant