Data-Driven Program Synthesis for Hint Generation in Programming Tutors

  • Timotej Lazar
  • Ivan Bratko
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8474)


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.


programming tutors hint generation program synthesis 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Mitrovic, A., Martin, B., Mayo, M.: Using evaluation to shape ITS design: Results and experiences with SQL-Tutor. User Modeling and User-Adapted Interaction 12(2-3), 243–279 (2002)CrossRefzbMATHGoogle Scholar
  2. 2.
    Le, N.-T., Menzel, W.: Using weighted constraints to diagnose errors in logic programming - the case of an ill-defined domain. International Journal of Artificial Intelligence in Education 19(4), 381–400 (2009)Google Scholar
  3. 3.
    Hong, J.: Guided programming and automated error analysis in an intelligent Prolog tutor. International Journal of Human-Computer Studies 61(4), 505–534 (2004)CrossRefGoogle Scholar
  4. 4.
    Gerdes, A., Jeuring, J., Heeren, B.: An interactive functional programming tutor. In: ITICSE 2012, pp. 250–255. ACM (2012)Google Scholar
  5. 5.
    Koedinger, K.R., Brunskill, E., Baker, R.S., McLaughlin, E.A., Stamper, J.C.: New potentials for data-driven intelligent tutoring system development and optimization. AI Magazine 34(3), 27–41 (2013)Google Scholar
  6. 6.
    Barnes, T., Stamper, J.: Automatic hint generation for logic proof tutoring using historical data. Educational Technology & Society 13(1), 3–12 (2010)Google Scholar
  7. 7.
    Jin, W., Barnes, T., Stamper, J., Eagle, M.J., Johnson, M.W., Lehmann, L.: Program representation for automatic hint generation for a data-driven novice programming tutor. In: Cerri, S.A., Clancey, W.J., Papadourakis, G., Panourgia, K. (eds.) ITS 2012. LNCS, vol. 7315, pp. 304–309. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  8. 8.
    Rivers, K., Koedinger, K.R.: Automatic generation of programming feedback; A data-driven approach. In: Artificial Intelligence in Education, pp. 50–59 (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Timotej Lazar
    • 1
  • Ivan Bratko
    • 1
  1. 1.Faculty of Computer and Information ScienceUniversity of LjubljanaSlovenia

Personalised recommendations