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.
Notes
- 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.
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.
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.
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
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)
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)
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)
Deek, F.P., McHugh, J.A.: A survey and critical analysis of tools for learning programming. Comput. Sci. Educ. 8(2), 130–178 (1998)
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)
Guzdial, M.: Programming environments for novices. In: Fincher, S., Petre, M. (eds.) Computer Science Education Research, pp. 127–154 (2004)
Douce, C., Livingstone, D., Orwell, J.: Automatic test-based assessment of programming: a review. J. Educ. Res. Comput 5(3), 4 (2005)
Gomez-Albarran, M.: The teaching and learning of programming: a survey of supporting software tools. Comput. J. 48(2), 131–144 (2005)
Barnes, D.J., Kölling, M.: Objects first with java. Pearson Education (2012)
Weber, G., Brusilovsky, P.: ELM-ART—an interactive and intelligent web-based electronic textbook. Int. J. Artif. Intell. Educ. 26(1), 72–81 (2015)
Rösling, G., Freisleben, B.: Animal: A system for supporting multiple roles in algorithm animation. J. Vis. Lang. Comput. 13(3), 341–354 (2002)
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)
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)
Johnson, W.L.: Understanding and debugging novice programs. Artif. Intell. 42(1), 51–97 (1990)
Looi, C.-K.: Automatic debugging of Prolog programs in a Prolog intelligent tutoring system. Instr. Sci. 20, 215–263 (1991)
Payne, S.J., Squibb, H.R.: Algebra mal-rules and cognitive accounts of error. Cogn. Sci. 14(3), 445–481 (1990)
Vanneste, P.: A reverse engineering approach to novice program analysis. Ph.D. thesis, KU Leuven Campus Kortrijk (1994)
Hong, J.: Guided programming and automated error analysis in an intelligent Prolog tutor. Int. J. Hum Comput Stud. 61(4), 505–534 (2004)
Gegg-Harrison, T.S.: Exploiting program schemata in a Prolog tutoring system. Ph.D. thesis, Department of Computer Science, Duke University (1993)
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)
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)
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)
Heeren, B., Jeuring, J., Gerdes, A.: Specifying rewrite strategies for interactive exercises. Math. Comput. Sci. 3(3), 349–370 (2010)
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)
Sykes, E.R.: Qualitative evaluation of the java intelligent tutoring system. J. Syst. Cyber (2006)
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)
Sison, R.C., Numao, M., Shimura, M.: Multistrategy discovery and detection of novice programmer errors. Mach. Learn. 38(1–2), 157–180 (2000)
Bareiss, E.R., Porter, B.W., Weir, C.: PROTOS: an exemplar-based learning apprentice (1987)
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)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)