Analysis Techniques for Feedback-Based Educational Systems for Programming

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.

[1]  Mercedes Gómez-Albarrán,et al.  The Teaching and Learning of Programming: A Survey of Supporting Software Tools , 2005, Comput. J..

[2]  Barbara Hammer,et al.  Adaptive distance measures for sequential data , 2014, ESANN.

[3]  Niels Pinkwart,et al.  Towards an Integrative Learning Environment for Java Programming , 2015, 2015 IEEE 15th International Conference on Advanced Learning Technologies.

[4]  Kenneth R. Koedinger,et al.  Data-Driven Hint Generation in Vast Solution Spaces: a Self-Improving Python Programming Tutor , 2017, International Journal of Artificial Intelligence in Education.

[5]  Richard E. Pattis,et al.  Karel ++ A Gentle Introduction to the Art of Object-Oriented Programming , 1996 .

[6]  E. R. Bareiss,et al.  Protos: An Exemplar-Based Learning Apprentice , 1988, Int. J. Man Mach. Stud..

[7]  Timothy S. Gegg-Harrison Exploiting program schemata in a Prolog tutoring system , 1993 .

[8]  Johan Jeuring,et al.  Ask-Elle: an Adaptable Programming Tutor for Haskell Giving Automated Feedback , 2017, International Journal of Artificial Intelligence in Education.

[9]  Stephen J. Payne,et al.  Algebra Mal‐Rules and Cognitive Accounts of Error , 1990 .

[10]  Edward R. Sykes Qualitative Evaluation of the Java Intelligent Tutoring System , 2006 .

[11]  W. Lewis Johnson,et al.  Understanding and Debugging Novice Programs , 1990, Artif. Intell..

[12]  David J. Barnes,et al.  Objects First with Java , 2006 .

[13]  Masayuki Numao,et al.  Multistrategy Discovery and Detection of Novice Programmer Errors , 2004, Machine Learning.

[14]  Fadi P. Deek,et al.  A REVIEW OF WEB-BASED LEARNING SYSTEMS FOR PROGRAMMING , 2001 .

[15]  Stellan Ohlsson,et al.  Constraint-Based Student Modeling , 1994 .

[16]  Christopher Douce,et al.  Automatic test-based assessment of programming: A review , 2005, JERC.

[17]  Raymund Sison,et al.  Automatic Construction of a Bug Library for Object-Oriented Novice Java Programmer Errors , 2008, Intelligent Tutoring Systems.

[18]  Bernd Freisleben,et al.  ANIMAL: A System for Supporting Multiple Roles in Algorithm Animation , 2002, J. Vis. Lang. Comput..

[19]  Prasun Dewan,et al.  Towards Incremental Separation of Surmountable and Insurmountable Programming Difficulties , 2015, SIGCSE.

[20]  Peter Brusilovsky,et al.  ELM-ART – An Interactive and Intelligent Web-Based Electronic Textbook , 2015, International Journal of Artificial Intelligence in Education.

[21]  Fadi P. Deek,et al.  A Survey and Critical Analysis of Tools for Learning Programming , 1998, Comput. Sci. Educ..

[22]  Neil Brown,et al.  37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data , 2015, SIGCSE.

[23]  Benedict du Boulay Programming Environments for Novices , 1992, Intelligent Tutoring Systems.

[24]  Wolfgang Menzel,et al.  UsingWeighted Constraints to Diagnose Errors in Logic Programming - The Case of an Ill-defined Domain , 2009, Int. J. Artif. Intell. Educ..

[25]  Johan Jeuring,et al.  Specifying Rewrite Strategies for Interactive Exercises , 2010, Math. Comput. Sci..

[26]  Jun Hong,et al.  Guided programming and automated error analysis in an intelligent Prolog tutor , 2004, Int. J. Hum. Comput. Stud..

[27]  John R Anderson,et al.  Neural imaging to track mental states while using an intelligent tutoring system , 2010, Proceedings of the National Academy of Sciences.

[28]  Chee-Kit Looi Automatic debugging of Prolog programs in a Prolog Intelligent Tutoring System , 1991 .

[29]  Niels Pinkwart,et al.  A Review of AI-Supported Tutoring Approaches for Learning Programming , 2013, Advanced Computational Methods for Knowledge Engineering.

[30]  Mireille Ducassé,et al.  A review of automated debugging systems: knowledge, strategies and techniques , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.