More Programming Than Programming: Teaching Formal Methods in a Software Engineering Programme
James Noble, David Streader, Isaac Oscar Gariano, Miniruwani, Samarakoon

TL;DR
This paper describes a programming-intensive approach using Dafny to teach formal methods, which improved student engagement, retention, and course evaluations in a software engineering program.
Contribution
It introduces a novel teaching method that integrates solver-aided programming to make formal methods more accessible and engaging for students.
Findings
Increased student retention in formal methods course.
Improved course evaluations over ten years.
Enhanced student understanding through instant feedback.
Abstract
Formal methods for software correctness are critical to the future of software engineering - and so must be an essential part of software engineering education. Unfortunately, formal methods are often resisted by students due to perceived difficulty, mathematicity, and practical irrelevance. We redeveloped our software correctness course by taking a programming intensive approach, using the solver-aided language Dafny to provide instant formative feedback via automated assessment. Our redeveloped course increased student retention and resulted in the best evaluation for the course for at least ten years.
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.
Taxonomy
TopicsTeaching and Learning Programming · Software Engineering Research · Software Engineering Techniques and Practices
