Teaching Formal Methods Using Magic Tricks
Paul Curzon, Peter William McOwan · 2013
The cs4fn project (www.cs4fn.org) aims to both enthuse school students about computer science and teach advanced computing ideas. One of the ways we have done this is using magic tricks. We give a highly popular magic show to school students around the UK. We have also written two magic books teaching computing concepts. We describe here how magic tricks can be used to introduce formal method concepts to school children. We illustrate how card tricks can, for example be used to show what an algorithm is, why testing is insu cient, how rigorous argument can reduce the amount of testing, making models of systems, how algorithms can be verified using proof, how algebraic proofs can be used to do this, what invariants are, and how inductive proofs can be used to verify an