Less Power for More Learning: Restricting OCaml Features for Effective Teaching
Max Lang, Nico Petzendorfer

TL;DR
This paper introduces a framework for restricting OCaml language features to facilitate automated grading of programming exercises, ensuring security and scalability for large numbers of submissions.
Contribution
It provides a method to sandbox OCaml features, enabling secure, scalable, and automated grading with a focus on disabling specific language and library features.
Findings
Effective feature restriction for OCaml in grading
Implementation of a mock IO system for testing
Security measures for sandboxing code
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsIntelligent Tutoring Systems and Adaptive Learning · Logic, programming, and type systems · Software Engineering Research
