Teaching formal methods in the context of software engineering

Shaoying Liu, Kazuhiro Takahashi, Toshinori Hayashi, Toshihiro Nakayama
2009 ACM SIGCSE Bulletin  
Formal methods were developed to provide systematic and rigorous techniques for software development, and they must be taught in the context of software engineering. In this paper, we discuss the importance of such a teaching paradigm and describe several specific techniques for teaching formal methods. These techniques have been tested over the last fifteen years in our formal methods education programs for undergraduate and graduate students at universities as well as practitioners at
more » ... s. We also present a curriculum to systematically introduce formal methods to students at university and a successful program of teaching formal methods to industry. Our experience shows that students can gain confidence in formal methods only when they learn their clear benefits in the context of software engineering.
doi:10.1145/1595453.1595457 fatcat:doglbmnhtbbetm2rhrrvyfn7hi