A Framework for Generating Diverse Haskell-IO Exercise Tasks
This work addresses the need for scalable and efficient exercise generation in e-learning environments for Haskell programming education, though it is incremental as it builds on an existing specification language.
The authors tackled the problem of manual creation of Haskell-I/O programming exercises by developing a framework for automatic task generation, which saves educator time and enables students to practice with diverse, plagiarism-resistant tasks.
We present the design of a framework to automatically generate a large range of different exercise tasks on Haskell-I/O programming. Automatic task generation is useful in many different ways. Manual task creating is a time consuming process, so automating it saves valuable time for the educator. Together with an automated assessment system automatic task generation allows students to practice with as many exercise tasks as needed. Additionally, each student can be given a slightly different version of a task, reducing issues regarding plagiarism that arise naturally in an e-learning environment. Our task generation is centered around a specification language for I/O behavior that we developed in an earlier work. The task generation framework, an EDSL in Haskell, provides powerful primitives for the creation of various artifacts, including program code, from specifications. We will not go into detail on the technical realization of these primitives. This article instead showcases how such artifacts and the framework as a whole can be used to build exercise tasks templates that can then be (randomly) instantiated.