User Tools

Site Tools


papers:abml:start

This is an old revision of the document!


Identifying typical approaches and errors in Prolog programming with argument-based machine learning

In programming courses with high student-teacher ratios, it is nearly impossible to provide feedback to all homeworks submitted by students. The alternative would be to give a general feedback to all students or to implement a programming tutor that can automatically generate personalized feedback. Both approaches are, however, difficult to implement, since teachers need to consider all possible errors made by students. In this paper, we propose to semi-automatically learn typical patterns of correct and incorrect programs, which can be used to identify different approaches and errors in Prolog programming. The attributes describing programs are extracted from abstract syntax trees (AST). However, as the space of all patterns is immense and not all patterns are meaningful, we propose a new rule learning algorithm based on argument-based machine learning (ABML), where experts can articulate their relevant knowledge through arguments. We describe the application of our algorithm to Prolog programs submitted by students during Programming Languages Course at University of Ljubljana. We tested our approach on 42 Prolog exercises and obtained promising results. The average default classification accuracy was 0.65, while the accuracy of our method was above 90% in 34 cases, in 7 cases the accuracy was between 85% and 90%, however only in one case our method failed to learn good rules and scored 72%. We also provide a step-by-step description of gathering new knolwedge accomplished with the ABML interaction loop, and describe some examples of learned rules to demonstrate how can they be used to explain typical errors and approaches in Prolog programs.

Paper submitted to journal.

papers/abml/start.1499329453.txt.gz · Last modified: 2017/07/06 10:24 by martin