Having Fun in Learning Formal Specifications

There are many benefits in providing formal specifications for our software. However, teaching students to do this is not always easy as courses on formal methods are often experienced as dry by students. This paper presents a game called FormalZ that teachers can use to introduce some variation in their class. Students can have some fun in playing the game and, while doing so, also learn the basics of writing formal specifications in the form of pre-and post-conditions. Unlike existing software engineering themed education games such as Pex and Code Defenders, FormalZ takes the deep gamification approach where playing gets a more central role in order to generate more engagement. This short paper presents our work in progress: the first implementation of FormalZ along with the result of a preliminary users' evaluation. This implementation is functionally complete and tested, but the polishing of its user interface is still future work.

[1]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[2]  Marc Prensky,et al.  Digital game-based learning , 2000, CIE.

[3]  N. Rose The Cambridge Handbook of The Learning Sciences , 2007, British Journal of Psychiatry.

[4]  P. Vittoz Man , 1962, Bloom.

[5]  Štefan Korečko,et al.  Using Simulation Games in Teaching Formal Methods for Software Development , 2015 .

[6]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[7]  R. Sawyer The Cambridge Handbook of the Learning Sciences: Introduction , 2014 .

[8]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2011, SIGP.

[9]  Jane Sinclair,et al.  Introduction to formal specification and Z , 1991, Prentice Hall International Series in Computer Science.

[10]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[11]  Acey Kreisler Boyce Deep Gamification: Combining Game-based and Play-based Methods. , 2014 .

[12]  Philip J Cowen,et al.  Constructionism , 2011, BMJ : British Medical Journal.

[13]  Gordon Fraser,et al.  Teaching Software Testing Concepts Using a Mutation Testing Game , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering Education and Training Track (ICSE-SEET).