Automated Grading of Automata with ACL2s

Ankit Kumar
(Northeastern University)
Andrew Walter
(Northeastern University)
Panagiotis Manolios
(Northeastern University)

Almost all Computer Science programs require students to take a course on the Theory of Computation (ToC) which covers various models of computation such as finite automata, push-down automata and Turing machines. ToC courses tend to give assignments that require paper-and-pencil solutions. Grading such assignments takes time, so students typically receive feedback for their solutions more than a week after they complete them. We present the Automatic Automata Checker (A2C), an open source library that enables one to construct executable automata using definitions that mimic those found in standard textbooks. Such constructions are easy to reason about using semantic equivalence checks, properties and test cases. Instructors can conveniently specify solutions in the form of their own constructions. A2C can check for semantic equivalence between student and instructor solutions and can immediately generate actionable feedback, which helps students better understand the material. A2C can be downloaded and used locally by students as well as integrated into Learning Management Systems (LMS) like Gradescope to automatically grade student submissions and generate feedback. A2C is based on the ACL2s interactive theorem prover, which provides advanced methods for stating, proving and disproving properties. Since feedback is automatic, A2C can be deployed at scale and integrated into massively open online courses.

In Pedro Quaresma, João Marcos and Walther Neuper: Proceedings 11th International Workshop on Theorem Proving Components for Educational Software (ThEdu'22), Haifa, Israel, 11 August 2022, Electronic Proceedings in Theoretical Computer Science 375, pp. 77–91.
Published: 10th March 2023.

ArXived at: https://dx.doi.org/10.4204/EPTCS.375.7 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org