Engaging Millennials into Learning Formal Methods

This paper summarizes our experience in teaching courses on formal methods (FM) to Computer Science (CS) and Software Engineering (SE) students at various universities around the world, including University of Madeira (UMa) in Portugal, Pontificia Universidad Javeriana (PUJ) and University of Los Andes (Uniandes) in Colombia, Carnegie Mellon University (CMU) in the USA, and at Innopolis University (INNO) in the Russian Federation. We report challenges faced during the past 10 to 15 years to teach FM to millennials undergradu- ate and graduate students and describe how we have coped with those challenges. We formulate a characterization of millennials, based on our experience, and show how this characterization has shaped our decisions in terms of course structure and content. We show how these decisions are reflected on the current structure of the MSS (Models of Software Systems) course that currently runs as part of the MSIT-SE (Master of Science in Information Technology - Software Engineering) programme offered at INNO. We have conducted two surveys among students, the first one at CMU and the second one at INNO that we have used to document and justify our decisions. The first survey is about the choice of Event-B as mathematical formalism and the second one is about the organization of teams of students within the classroom to work on software projects based on Event-B.

[1]  Bart Jacobs,et al.  Formal methods for smart cards: an experience report , 2005, Sci. Comput. Program..

[2]  Néstor Cataño,et al.  EventB2Java: A Code Generator for Event-B , 2016, NFM.

[3]  Thai Son Hoang,et al.  Rodin: an open toolset for modelling and reasoning in Event-B , 2010, International Journal on Software Tools for Technology Transfer.

[4]  Camilo Rueda,et al.  Matelas: A Predicate Calculus Common Formal Definition for Social Networking , 2010, ASM.

[5]  Néstor Cataño,et al.  A Case Study on Code Generation of an ERP System from Event-B , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security.

[6]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[7]  Kaisa Sere,et al.  Stepwise Refinement of Action Systems , 1991, Struct. Program..

[8]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[9]  Victor Rivera,et al.  Code generation for Event-B , 2016, International Journal on Software Tools for Technology Transfer.

[10]  Iain Whiteside,et al.  Proof Patterns for Formal Methods , 2014, FM.

[11]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[12]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[13]  Jakob Nielsen,et al.  Usability engineering , 1997, The Computer Science and Engineering Handbook.

[14]  Jean-Raymond Abrial,et al.  Modeling in event-b - system and software engineering by Jean-Raymond Abrial , 2010, SOEN.

[15]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

[16]  J. Michael Spivey,et al.  An introduction to Z and formal specifications , 1989, Softw. Eng. J..

[17]  John Tang Boyland,et al.  Checking Interference with Fractional Permissions , 2003, SAS.

[18]  Jean-Raymond Abrial,et al.  Refinement, Decomposition, and Instantiation of Discrete Models: Application to Event-B , 2007, Fundam. Informaticae.

[19]  Insup Lee,et al.  Generic Infusion Pump Hazard Analysis and Safety Requirements Version 1.0 , 2009 .

[20]  Néstor Cataño,et al.  Lightweight Verification of a Multi-Task Threaded Server: A Case Study With The Plural Tool , 2011, FMICS.

[21]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

[22]  Néstor Cataño,et al.  Automated Verification of Specifications with Typestates and Access Permissions , 2012, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[23]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[24]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.