More Programming Than Programming: Teaching Formal Methods in a Software Engineering Programme

James Noble,David Streader,Isaac Oscar Gariano,Miniruwani Samarakoon
DOI: https://doi.org/10.48550/arXiv.2205.00787
2022-05-02
Software Engineering
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.
What problem does this paper attempt to address?