Teaching Simple Constructive Proofs with Haskell Programs

Matthew Farrugia-Roberts
(The University of Melbourne)
Bryn Jeffries
(Grok Academy)
Harald Søndergaard
(The University of Melbourne)

In recent years we have explored using Haskell alongside a traditional mathematical formalism in our large-enrolment university course on topics including logic and formal languages, aiming to offer our students a programming perspective on these mathematical topics. We have found it possible to offer almost all formative and summative assessment through an interactive learning platform, using Haskell as a lingua franca for digital exercises across our broad syllabus. One of the hardest exercises to convert into this format are traditional written proofs conveying constructive arguments. In this paper we reflect on the digitisation of this kind of exercise. We share many examples of Haskell exercises designed to target similar skills to written proof exercises across topics in propositional logic and formal languages, discussing various aspects of the design of such exercises. We also catalogue a sample of student responses to such exercises. This discussion contributes to our broader exploration of programming problems as a flexible digital medium for learning and assessment.

In Peter Achten and Elena Machkasova: Proceedings Tenth and Eleventh International Workshop on Trends in Functional Programming In Education (TFPIE 2021/22), Kraków, Poland (online), 16th February 2021/16th March 2022, Electronic Proceedings in Theoretical Computer Science 363, pp. 54–73.
Published: 26th July 2022.

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