Analysis Techniques for Feedback-Based Educational Systems for Programming

  • Nguyen-Thinh LeEmail author
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 453)


Over the last three decades, many educational systems for programming have been developed to support learning/teaching programming. In order to help students solve programming problems, many educational systems use the means of meaningful feedback that is resulted through an accurate analysis of student programs. In this paper, I review and classify analysis techniques that are required to analyze errors in a student program. This paper also proposes several research directions.


Educational systems for programming Feedback Analysis techniques 


  1. 1.
    Altadmri, A., Brown, N.C.: 37 Million compilations: investigating novice programming mistakes in large-scale student data. In: Proceedings of the 46th ACM Technical Symposium on Computer Science Education, pp. 522–527 (2015)Google Scholar
  2. 2.
    Carter, J., Dewan, P., Pichiliani, M.: Towards incremental separation of surmountable and insurmountable programming difficulties. In: Proceedings of the 46th ACM Technical Symposium on Computer Science Education, pp. 241–246 (2015)Google Scholar
  3. 3.
    Ducassé, M., Emde, A.-M.: A review of automated debugging systems: knowledge, strategies and techniques. In: Proceedings of the 10th International Conference on Software Engineering, pp. 162–171. IEEE (1988)Google Scholar
  4. 4.
    Deek, F.P., McHugh, J.A.: A survey and critical analysis of tools for learning programming. Comput. Sci. Educ. 8(2), 130–178 (1998)CrossRefGoogle Scholar
  5. 5.
    Deek, F., Ho, K.-W., Ramadhan, H.: A review of web-based learning systems for programming. In: Montgomerie, C., Viteli, J. (eds.) Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications, pp. 382–387 (2001)Google Scholar
  6. 6.
    Guzdial, M.: Programming environments for novices. In: Fincher, S., Petre, M. (eds.) Computer Science Education Research, pp. 127–154 (2004)Google Scholar
  7. 7.
    Douce, C., Livingstone, D., Orwell, J.: Automatic test-based assessment of programming: a review. J. Educ. Res. Comput 5(3), 4 (2005)Google Scholar
  8. 8.
    Gomez-Albarran, M.: The teaching and learning of programming: a survey of supporting software tools. Comput. J. 48(2), 131–144 (2005)CrossRefGoogle Scholar
  9. 9.
    Barnes, D.J., Kölling, M.: Objects first with java. Pearson Education (2012)Google Scholar
  10. 10.
    Weber, G., Brusilovsky, P.: ELM-ART—an interactive and intelligent web-based electronic textbook. Int. J. Artif. Intell. Educ. 26(1), 72–81 (2015)Google Scholar
  11. 11.
    Rösling, G., Freisleben, B.: Animal: A system for supporting multiple roles in algorithm animation. J. Vis. Lang. Comput. 13(3), 341–354 (2002)CrossRefGoogle Scholar
  12. 12.
    Bergin, J., Roberts, J., Pattis, R., Stehlik, M.: Karel++: A Gentle Introduction to the Art of Object-Oriented Programming. Wiley, New York, NY, USA (1996)Google Scholar
  13. 13.
    Le, N.-T., Strickroth, S., Gross, S., Pinkwart, N.: A Review of AI-supported tutoring approaches for learning programming. In: Proceedings of the 1st International Conference on Computer Science, Applied Mathematics and Applications (ICCSAMA), pp. 267–279, Berlin, Germany. Springer, Switzerland (2013)Google Scholar
  14. 14.
    Johnson, W.L.: Understanding and debugging novice programs. Artif. Intell. 42(1), 51–97 (1990)CrossRefGoogle Scholar
  15. 15.
    Looi, C.-K.: Automatic debugging of Prolog programs in a Prolog intelligent tutoring system. Instr. Sci. 20, 215–263 (1991)CrossRefGoogle Scholar
  16. 16.
    Payne, S.J., Squibb, H.R.: Algebra mal-rules and cognitive accounts of error. Cogn. Sci. 14(3), 445–481 (1990)CrossRefGoogle Scholar
  17. 17.
    Vanneste, P.: A reverse engineering approach to novice program analysis. Ph.D. thesis, KU Leuven Campus Kortrijk (1994)Google Scholar
  18. 18.
    Hong, J.: Guided programming and automated error analysis in an intelligent Prolog tutor. Int. J. Hum Comput Stud. 61(4), 505–534 (2004)CrossRefGoogle Scholar
  19. 19.
    Gegg-Harrison, T.S.: Exploiting program schemata in a Prolog tutoring system. Ph.D. thesis, Department of Computer Science, Duke University (1993)Google Scholar
  20. 20.
    Le, N.T., Menzel, W.: Using weighted constraints to diagnose errors in logic programming—the case of an ill-defined domain. Int. J. Artif. Intell. Educ. 19(4), 382–400 (2009)Google Scholar
  21. 21.
    Ohlsson, S.: Constraint-based student modelling. In: Greer, J.E., McCalla, G.I. (eds.) Student Modelling: The Key to Individualized Knowledge-Based Instruction, pp. 167–189, Springer, Berlin (1994)Google Scholar
  22. 22.
    Gerdes, A., Heeren, B., Jeuring, J., van Binsbergen, L.T.: Ask-Elle: a teacher-adaptable programming tutor for Haskell giving automated feedback. In: Le, N.T., Boyer, K., Hsiao, S. I., Sosnovsky, S., Barnes, T. (eds.) Special Issue on AI-Supported Education in Computer Science. Int. J. Artif. Intell. Educ. (2016)Google Scholar
  23. 23.
    Heeren, B., Jeuring, J., Gerdes, A.: Specifying rewrite strategies for interactive exercises. Math. Comput. Sci. 3(3), 349–370 (2010)CrossRefzbMATHGoogle Scholar
  24. 24.
    Anderson, J.R., Betts, S., Ferris, J.L., Fincham, J.M.: Neural imaging to track mental states while using an intelligent tutoring system. In: Proceedings of the National Academy of Science, vol. 107, pp. 7018–7023 (2010)Google Scholar
  25. 25.
    Sykes, E.R.: Qualitative evaluation of the java intelligent tutoring system. J. Syst. Cyber (2006)Google Scholar
  26. 26.
    Suarez, M., Sison, R.: Automatic construction of a bug library for object-oriented novice java programmer errors. In: Woolf, B., Aïmeur, E., Nkambou, R., Lajoie, S. (eds.) Intelligent tutoring systems, vol. 5091, pp. 184–193. Springer, Berlin (2008)CrossRefGoogle Scholar
  27. 27.
    Sison, R.C., Numao, M., Shimura, M.: Multistrategy discovery and detection of novice programmer errors. Mach. Learn. 38(1–2), 157–180 (2000)CrossRefGoogle Scholar
  28. 28.
    Bareiss, E.R., Porter, B.W., Weir, C.: PROTOS: an exemplar-based learning apprentice (1987)Google Scholar
  29. 29.
    Gross, S., Pinkwart, N.: Towards an integrative learning environment for java programming. In: the IEEE 15th International Conference on Advanced Learning Technologies (ICALT), pp. 24–28 (2015)Google Scholar
  30. 30.
    Mokbel, B., Paaßen, B., Hammer, B.: Adaptive distance measures for sequential data. In: Proceedings of the 22nd European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning, pp. 265–270 (2014)Google Scholar
  31. 31.
    Rivers, K., Koedinger, K.R.: Data-driven hint generation in vast solution spaces: a self-improving python programming tutor. In: Le, N.T., Boyer, K., Hsiao, S.I., Sosnovsky, S., Barnes, T. (eds.) Special Issue on AI-Supported Education in Computer Science. Int. J. Artif. Intell. Educ. (2016)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.Humboldt-Universität zu BerlinBerlinGermany

Personalised recommendations