Using ACL2 To Teach Students About Software Testing
Ruben Gamboa (University of Wyoming), Alicia Thoney (University of, Wyoming)

TL;DR
This paper discusses using ACL2 in a university course to teach students about software testing, focusing on formal methods and proof techniques for verifying properties of checksum algorithms.
Contribution
It introduces an educational approach integrating ACL2's formal verification tools into a Discrete Mathematics course to enhance understanding of software correctness.
Findings
Students successfully used ACL2 to find counterexamples for checksum properties.
The course demonstrated the spectrum of testing tools from unit tests to formal proofs.
ACL2 facilitated automatic proofs of certain properties in student exercises.
Abstract
We report on our experience using ACL2 in the classroom to teach students about software testing. The course COSC2300 at the University of Wyoming is a mostly traditional Discrete Mathematics course, but with a clear focus on computer science applications. For instance, the section on logic and proofs is motivated by the desire to write proofs about computer software. We emphasize that the importance of software correctness falls along a spectrum with casual programs on one end and mission-critical ones on the other. Corresponding to this spectrum is a variety of tools, ranging from unit tests, randomized testing of properties, and even formal proofs. In this paper, we describe one of the major activities, in which students use the ACL2 Sedan's counter-example generation facility to investigate properties of various existing checksum algorithms used in error detection. Students are…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
