Data-Driven Program Synthesis for Hint Generation in Programming Tutors

Timotej Lazar, Ivan Bratko

One of the main functions of intelligent tutoring systems is providing feedback to help students solve problems. We present a novel approach to program synthesis that can be used as a basis for automatic hint generation in programming tutors. Instead of using a state-space representation of the problem-solving process, our method finds a set of textual edits commonly used by students on program code. Given an incorrect program it then synthesizes new programs by applying sequences of edits until a solution is found. The edit sequence can be used to provide hints with varying levels of detail. Experimental results confirm the feasibility of our approach.

The final publication is available at Springer via https://link.springer.com/chapter/10.1007/978-3-319-07221-0_38.