Making Formal Methods Popular: The Crux is Math Education!
Franz Lichtenberger · 2015
Although on many occasions, especially at FM conferences, highlights of the use of Formal Methods in software development are presented, FM plays just a minor role in both the everyday work of soft- ware engineers as well as Computer Science and Software Engineering curricula. To me, one of the main reasons for the status quo is that math- ematics education, as it is usually done today, does not enable students to understand and to use Formal Methods. Software engineering is a young engineering discipline that is dierent in many respects from the classical engineering elds. To me the most distinguishing point is the kind of mathematics that serves the respective elds well. Classical, calculus-based engineering mathematics is of no use. Just putting more emphasis on Discrete Mathematics, as recommended and usually done, is { by far { not enough. I will report on an alternative approach to teaching introductory math- ematics to students of CS and SE which started already in the 1980s. whole rst year is dedicated to teach The Language and Methods of Mathematics. It is also an introduction into FM, i.e. in the second semester students learn to do Hoare-style correctness proofs, for example. Implementing such radical changes in the curriculum is, of course, also a political problem. Some of these aspects will be discussed, for example that this will be possible only if SE is regarded a discipline of its own, not just a part of CS. In many cases it will also be necessary to take math education away from math departments. Real (IR -) mathematicians have a hard time understanding the mathematical needs of software engineers. In the last section I will present some personal thoughts about which advanced mathematical topics could play a major role in future SE edu- cation, as for example (partial) dierential