Javista Automated Assessment of Imperative Programs
This thesis presents a methodology and a tool for automated assessment of programming exercises, with the purpose of reducing the workload of teachers. Our aim is for the tool to provide accurate and useful assessment given an exercise specification. Using the tool could allow teachers to spend more time helping students. The tool, implemented in Haskell, is intended to be used by teachers through a command line interface and targets a subset of Java. Assessment is achieved by using semantic and behavioural analysis. Semantic analysis consists of normalisation and prefix trees, while behavioural analysis consists of testing including integrated shrinking. The presented tool is evaluated using a data set from the course TDA450 at Chalmers University of Technology. The tool managed to classify 60% of the solutions as either correct or incorrect with no false positives. The result shows that it is possible to automatically assess student solutions and suggests that more solutions can be classified given further development.