Abstract
This piece points out the key position of formal methods
in Computer Science (CS) education, which must thus be
reflected in any CS curriculum as a knowledge area rather
than as elective topics in distinct knowledge areas. This
is confirmed by the increasing use of formal methods in
industry [4]—not limited to safety-critical domains. First,
we indicate the importance of formal methods thinking
in CS education [17], since this provides the necessary
rigor in reasoning about software, its specification, its
verification, and its correctness—all fundamental skills
for future software developers. Then, we argue that every
computer scientist needs to know formal methods [6], since
the skills and knowledge acquired in this way provide the
indispensable solid foundation that forms the backbone
of CS practice. Finally, we underline that teaching formal
methods need not come at the cost of displacing other
engineering aspects of CS that are already widely accepted
as essential. On the contrary, formal methods have the
potential to support and strengthen the presentation
and knowledge in all these subdisciplines. We provide
suggestions for educators on how to incorporate formal
methods into CS education.