Less Power for More Learning: Restricting OCaml Features for Effective Teaching
Abstract
We present a framework for sandboxing and restricting features of the OCaml programming language to effectively automate the grading of programming exercises, scaling to hundreds of submissions. We describe how to disable language and library features that should not be used to solve a given exercise. We present an overview of an implementation of a mock IO system to allow testing of IO-related exercises in a controlled environment. Finally, we detail a number of security considerations to ensure submitted code remains sandboxed, allowing automatic grading to be trusted without manual verification. The source code of our implementation is publicly available.
- Publication:
-
arXiv e-prints
- Pub Date:
- September 2023
- DOI:
- arXiv:
- arXiv:2309.04179
- Bibcode:
- 2023arXiv230904179L
- Keywords:
-
- Computer Science - Computers and Society;
- K.3.2
- E-Print:
- for associated git repository, see https://github.com/just-max/less-power