dc.description.abstract | Ask-Elle is a tutor for learning the Haskell programming language.
It supports development of Haskell programs by providing stepwise
hints and verifying the correctness of the resulting programs. Ask-
Elle can do this based only on a model solution, which minimizes
the work to set up exercises. The main contribution of our work
is improving Ask-Elle’s normalization mechanism, used to compare
two programs for equivalence. Normalization is at the core of Ask-
Elle’s ability to provide hints and verify the correctness of programs.
Based on a dataset of student programs, we (1) identify cases in
which Ask-Elle’s normalization does not work as expected, (2) imple-
ment semantics-preserving transformations that alleviate the prob-
lems and (3) measure the improvements. The results are very pos-
itive, as we achieve substantial improvements without resorting to
advanced analysis techniques. | |