Skip to main content

Analysis Techniques for Feedback-Based Educational Systems for Programming

  • Conference paper
  • First Online:
Advanced Computational Methods for Knowledge Engineering

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 453))

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Notes

  1. 1.

    Orsini, L. (2013). Why Programming Is The Core Skill Of The 21st Century? Retrieved 13/01/2015 on: http://readwrite.com/2013/05/31/programming-core-skill-21st-century.

  2. 2.

    The Hour of Code is here! President Barack Obama wrote his first line of code. Retrieved 13/01/2015 on: http://codeorg.tumblr.com/post/104684466538/hourofcode2014.

  3. 3.

    Wirtschaftsminister will Programmieren als Fremdsprache. Retrieved 13/01/2015 on http://www.golem.de/news/unterricht-gabriel-will-programmieren-als-fremdsprache-an-schulen-1409-109450.html.

  4. 4.

    The class of programs is defined by: “(1) remove a single element from the front or back of their input list, (2) use simple variations of standard append 3 for input decomposition and output composition, (3) restrict the use of increasing arguments (i.e., arguments increase in length on each pass) to those that are necessary for the computation (e.g., accumulators) for outputs, (4) use a single recursive clause” [19, p. 8].

References

  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. 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. 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. Deek, F.P., McHugh, J.A.: A survey and critical analysis of tools for learning programming. Comput. Sci. Educ. 8(2), 130–178 (1998)

    Article  Google Scholar 

  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. Guzdial, M.: Programming environments for novices. In: Fincher, S., Petre, M. (eds.) Computer Science Education Research, pp. 127–154 (2004)

    Google Scholar 

  7. Douce, C., Livingstone, D., Orwell, J.: Automatic test-based assessment of programming: a review. J. Educ. Res. Comput 5(3), 4 (2005)

    Article  Google Scholar 

  8. Gomez-Albarran, M.: The teaching and learning of programming: a survey of supporting software tools. Comput. J. 48(2), 131–144 (2005)

    Article  Google Scholar 

  9. Barnes, D.J., Kölling, M.: Objects first with java. Pearson Education (2012)

    Google Scholar 

  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)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  14. Johnson, W.L.: Understanding and debugging novice programs. Artif. Intell. 42(1), 51–97 (1990)

    Article  Google Scholar 

  15. Looi, C.-K.: Automatic debugging of Prolog programs in a Prolog intelligent tutoring system. Instr. Sci. 20, 215–263 (1991)

    Article  Google Scholar 

  16. Payne, S.J., Squibb, H.R.: Algebra mal-rules and cognitive accounts of error. Cogn. Sci. 14(3), 445–481 (1990)

    Article  Google Scholar 

  17. Vanneste, P.: A reverse engineering approach to novice program analysis. Ph.D. thesis, KU Leuven Campus Kortrijk (1994)

    Google Scholar 

  18. Hong, J.: Guided programming and automated error analysis in an intelligent Prolog tutor. Int. J. Hum Comput Stud. 61(4), 505–534 (2004)

    Article  Google Scholar 

  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. 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. 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)

    Chapter  Google Scholar 

  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. Heeren, B., Jeuring, J., Gerdes, A.: Specifying rewrite strategies for interactive exercises. Math. Comput. Sci. 3(3), 349–370 (2010)

    Article  MATH  Google Scholar 

  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)

    Article  Google Scholar 

  25. Sykes, E.R.: Qualitative evaluation of the java intelligent tutoring system. J. Syst. Cyber (2006)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  27. Sison, R.C., Numao, M., Shimura, M.: Multistrategy discovery and detection of novice programmer errors. Mach. Learn. 38(1–2), 157–180 (2000)

    Article  Google Scholar 

  28. Bareiss, E.R., Porter, B.W., Weir, C.: PROTOS: an exemplar-based learning apprentice (1987)

    Google Scholar 

  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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nguyen-Thinh Le .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Le, NT. (2016). Analysis Techniques for Feedback-Based Educational Systems for Programming. In: Nguyen, T.B., van Do, T., An Le Thi, H., Nguyen, N.T. (eds) Advanced Computational Methods for Knowledge Engineering. Advances in Intelligent Systems and Computing, vol 453. Springer, Cham. https://doi.org/10.1007/978-3-319-38884-7_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-38884-7_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-38883-0

  • Online ISBN: 978-3-319-38884-7

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics