SELGMay 28, 2019

Deep Learning for Bug-Localization in Student Programs

arXiv:1905.12454v14 citations
Originality Incremental advance
AI Analysis

This addresses the challenge for students in online programming courses who struggle to debug programs when only given failing tests, though it is an incremental improvement over prior methods.

The paper tackles the problem of localizing bugs in student programs by using a deep learning technique that predicts test outcomes without executing the code, achieving higher accuracy than existing baselines.

Providing feedback is an integral part of teaching. Most open online courses on programming make use of automated grading systems to support programming assignments and give real-time feedback. These systems usually rely on test results to quantify the programs' functional correctness. They return failing tests to the students as feedback. However, students may find it difficult to debug their programs if they receive no hints about where the bug is and how to fix it. In this work, we present the first deep learning based technique that can localize bugs in a faulty program w.r.t. a failing test, without even running the program. At the heart of our technique is a novel tree convolutional neural network which is trained to predict whether a program passes or fails a given test. To localize the bugs, we analyze the trained network using a state-of-the-art neural prediction attribution technique and see which lines of the programs make it predict the test outcomes. Our experiments show that the proposed technique is generally more accurate than two state-of-the-art program-spectrum based and one syntactic difference based bug-localization baselines.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes