Contract Inference for the Ask-Elle Programming Tutor
Summary
Ask-Elle is a programming tutor that utilizes (transformations of) model solutions to provide feedback to students on their progress.
If a student's program cannot be reduced to such a model solution, providing helpful feedback becomes hard.
The Master Thesis of Jurriën Stutterheim focuses on the development of a contract inference system for functional programs, with the goal to embed this functionality in the Ask-Elle programming tutor to provide a new source of meaningful feedback to students using it.
This thesis builds upon his work, extending the contract inference algorithm to work with the language used by Ask-Elle: Helium. This language is a subset of the Haskell functional programming language.
Additionally, a code generation system for the typed-contracts Haskell library is developed that annotates an arbitrary section of Helium code with contracts inferred by the extended contract inference algorithm.
We provide some examples of the improved feedback of our system compared to the less-detailed feedback of Ask-Elle given the same inputs.