Abstract:
A method for recognizing algorithms by detecting algorithmic schemas is presented. The method uses the findings of the studies on programming schemas, according to which experts develop schemas, high-level cognitive constructs that abstract knowledge of programming structures, and use them in comprehending and solving similar problems that differ in lower level details. We introduce a set of schemas for sorting algorithms that consists of loops, their nesting relationship, beacon-like algorithm-specific features and operations, etc., and use these abstract concepts to recognize implementations of sorting algorithms.
We have developed a prototype for detecting schemas and conducted an experiment to evaluate the performance of the presented method on sorting algorithms and their variations implemented in Java. The tested implementations are recognized with the average accuracy of 88,3%. This is a promising result that shows the applicability of the method in context and level of students' implementations. By identifying the algorithm-specific code from the given program, the schema detection method improves our previous method for automatic algorithm recognition.
We have developed a prototype for detecting schemas and conducted an experiment to evaluate the performance of the presented method on sorting algorithms and their variations implemented in Java. The tested implementations are recognized with the average accuracy of 88,3%. This is a promising result that shows the applicability of the method in context and level of students' implementations. By identifying the algorithm-specific code from the given program, the schema detection method improves our previous method for automatic algorithm recognition.