Teaching of Formal Methods for Software Engineering

Maria Spichkova, Anna Zamansky


The use of Formal Methods (FMs) offers rigour and precision, while reducing ambiguity and inconsistency. The major barriers hindering the adoption of FMs in industry are the problems of understandability, comprehensibility, and scalability. To solve the understandability problem, from one side, the readability of the method have to be increased, but from another side, an appropriate teaching and learning approach have to be introduced. This paper presents an overview of existing approaches on teaching of FMs and Logic, also discusses the common issues in teaching of this subjects.


  1. Alharthi, A. D., Spichkova, M., and Hamilton, M. (2015). Requirements engineering aspects of elearning systems. In Proceedings of the ASWEC 2015 24th Australasian Software Engineering Conference, pages 132-133. ACM.
  2. Bjørner, D. and Havelund, K. (2014). 40 years of formal methods. In FM 2014: Formal Methods, pages 42- 61. Springer.
  3. Bubel, R. and Hähnle, R. (2008). A hoare-style calculus with explicit state updates. In Instenes, Z., editor, Proc. Formal Methods in Computer Science Education (FORMED), Electronic Notes in Theoretical Computer Science, pages 49-60. Elsevier.
  4. Crevier, D. (1993). AI: The Tumultuous History of the Search for Artificial Intelligence . Basic Books, Inc., New York, NY, USA.
  5. Crocker, D. (2006). Teaching formal methods with perfect developer. Teaching Formal Methods: Practice and Experience, Electronic Workshops in Computing.
  6. Curzon, P. and McOwan, P. W. (2013). Teaching formal methods using magic tricks. In Fun with Formal Methods: Workshop at the 25th International Conference on Computer Aided Verification .
  7. Dean, C. N. and (editors), R. T. B., editors (2004). Teaching Formal Methods: CoLogNET/FME Symposium, TFM 2004. LNCS. Springer-Verlag.
  8. Feast, V. and Bretag, T. (2005). Responding to crises in transnational education: new challenges for higher education. Higher Education Research & Development, 24(1):63-78.
  9. Ferreira, J. a. F., Mendes, A., Backhouse, R., and Barbosa, L. S. (2009). Which mathematics for the information society? In Proceedings of the 2Nd International Conference on Teaching Formal Methods, TFM 7809, pages 39-56, Berlin, Heidelberg. Springer-Verlag.
  10. Filliaˆtre, J.-C. and Paskevich, A. (2013). Why3 - where programs meet provers. In Felleisen, M. and Gardner, P., editors, Programming Languages and Systems: 22nd European Symposium on Programming, pages 125-128. Springer Berlin Heidelberg, Berlin, Heidelberg.
  11. Henz, M. and Hobor, A. (2011). Teaching experience: Logic and formal methods with coq. In Jouannaud, J.-P. and Shao, Z., editors, Certified Programs and Proofs: First International Conference, CPP 2011, Kenting, Taiwan, December 7-9, 2011. Proceedings, pages 199-215. Springer Berlin Heidelberg, Berlin, Heidelberg.
  12. Hoare, L. (2013). Swimming in the deep end: transnational teaching as culture learning? Higher Education Research & Development, 32(4):561-574.
  13. Hölzl, F. and Feilkas, M. (2010). Autofocus 3: a scientific tool prototype for model-based development of component-based, reactive, distributed systems. In Proceedings of the 2007 International Dagstuhl conference on Model-based engineering of embedded real-time systems, MBEERTS'10, pages 317-322.
  14. Ishikawa, F., Taguchi, K., Yoshioka, N., and Honiden, S. (2009). What top-level software engineers tackle after learning formal methods: Experiences from the top se project. In Proceedings of the 2Nd International Conference on Teaching Formal Methods, TFM 7809, pages 57-71. Springer-Verlag.
  15. Jin, Y. and Parnas, D. L. (2010). Defining the meaning of tabular mathematical expressions. Sci. Comput. Program., 75(11):980-1000.
  16. Korecko, S., Sorad, J., Dudlakova, Z., and Sobota, B. (2014). A toolset for support of teaching formal software development. In Giannakopoulou, D. and Salaun, G., editors, Software Engineering and Formal Methods, volume 8702 of LNCS, pages 278-283. Springer.
  17. Kozulin, A., Gindis, B., Ageyev, V. S., and Miller, S. M. (2003). Vygotsky's Educational Theory In Cultural Context. Cambridge University Press.
  18. LeBlanc, R. J., Sobel, A., Diaz-Herrera, J. L., Hilburn, T. B., et al. (2006). Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. IEEE Computer Society.
  19. Leino, K. R. M. (2010). Dafny: An automatic program verifier for functional correctness. In Proceedings of the 16th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, LPAR'10, pages 348-370, Berlin, Heidelberg. Springer-Verlag.
  20. Mandrioli, D. (2015). On the heroism of really pursuing formal methods. In Formal Methods in Software Engineering (FormaliSE), 2015 IEEE/ACM 3rd FME Workshop on, pages 1-5. IEEE.
  21. Mayer, R. E. (1975). Different problem-solving competencies established in learning computer programming with and without meaningful models. Journal of Educational Psychology, 67:725-734.
  22. Mayer, R. E. (1981). The psychology of how novices learn computer programming. ACM Comput. Surv., 13(1):121-141.
  23. Nipkow, T., Paulson, L. C., and Wenzel, M. (2002). Isabelle/HOL - A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS. Springer.
  24. Page, R. L. (2003). Software is discrete mathematics. ACM SIGPLAN Notices, 38(9):79-86.
  25. Pane, J. and Myers, B. (1996). Usability issues in the design of novice programming systems. School of Computer Science Technical Report CMU-CS-96-132.
  26. Parnas, D. (1993). Predicate logic for software engineering. Software Engineering, IEEE Transactions on, 19(9):856-862.
  27. Parnas, D. L. (2010). Really rethinking 'formal methods'. Computer, 43(1):28-34.
  28. Parnas, D. L. (2011). Precise documentation: The key to better software. In Nanz, S., editor, The Future of Software Engineering, pages 125-148. Springer Berlin Heidelberg, Berlin, Heidelberg.
  29. Penzenstadler, B., Bauer, V., Calero, C., and Franch, X. (2012). Sustainability in software engineering: A systematic literature review. In Evaluation Assessment in Software Engineering (EASE 2012), 16th International Conference on, pages 32-41.
  30. Pokorny, M. (2012). Efficiency of blended learning in teaching logic, sets and binary relations. In 2012 IEEE 10th International Conference on Emerging eLearning Technologies Applications (ICETA), pages 301- 305.
  31. Powers, K., Ecott, S., and Hirshfield, L. M. (2007). Through the Looking Glass: Teaching CS0 with Alice. SIGCSE Bull., 39(1):213-217.
  32. Prince, M. J. and Felder, R. M. (2006). Inductive teaching and learning methods: Definitions, comparisons, and research bases. Journal of Engineering Education, 95:123-138.
  33. Richardson, F. C. and Suinn, R. M. (1972). The mathematics anxiety rating scale: psychometric data. Journal of counseling Psychology, 19(6):551.
  34. Sahami, M., Guzdial, M., McGettrick, A., and Roach, S. (2011). Setting the stage for computing curricula 2013: computer science-report from the acm/ieee-cs joint task force. In Proceedings of the 42nd ACM technical symposium on Computer science education, pages 161-162. ACM.
  35. Sedelmaier, Y. and Landes, D. (2015). Active and inductive learning in software engineering education. In Proceedings of the 37th International Conference on Software Engineering, volume 2 of ICSE, pages 418-427. IEEE Press.
  36. Sherman, B. F. and Wither, D. P. (2003). Mathematics anxiety and mathematics achievement. Mathematics Education Research Journal, 15(2):138-150.
  37. Sirkiä, T. and Sorva, J. (2012). Exploring programming misconceptions: An analysis of student mistakes in visual program simulation exercises. In Proceedings of the 12th International Conference on Computing Education Research, pages 19-28. ACM.
  38. Spichkova, M. (2016). Applied logic in engineering. CoRR.
  39. Spichkova, M., Hölzl, F., and Trachtenherz, D. (2012). Verified System Development with the AutoFocus Tool Chain. In 2nd Workshop on Formal Methods in the Development of Software, WS-FMDS.
  40. Spichkova, M., Liu, H., Laali, M., and Schmidt, H. W. (2015a). Human factors in software reliability engineering. Workshop on Applications of Human Error Research to Improve Software Engineering (WAHESE2015).
  41. Spichkova, M. and Schmidt, H. (2015). Requirements engineering aspects of a geographically distributed architecture. 10th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE 2015).
  42. Spichkova, M., Zamansky, A., and Farchi, E. (2015b). Towards a human-centred approach in modelling and testing of cyber-physical systems. In 2015 IEEE 21st International Conference on Parallel and Distributed Systems (ICPADS), pages 847-851.
  43. Spichkova, M., Zhu, X., and Mou, D. (2013). Do we really need to write documentation for a system? In International Conference on Model-Driven Engineering and Software Development (MODELSWARD'13).
  44. Sprankle, M. and Hubbard, J. (2011). Problem Solving & Programming Concepts. Pearson Education.
  45. Sznuk, T. and Schubert, A. (2014). Tool support for teaching hoare logic. In Giannakopoulou, D. and Salaün, G., editors, Software Engineering and Formal Methods: 12th International Conference, SEFM 2014 Proceedings, pages 332-346. Springer International Publishing, Cham.
  46. Tavolato, P. and Vogt, F. (2012). Integrating formal methods into computer science curricula at a university of applied sciences. In TLA+ Workshop at the 18th International Symposium on Formal Methods.
  47. Trierweiler, S. and Stricker, G. (1998). The Scientific Practice of Professional Psychology. Springer.
  48. Tucker, A. B., Kelemen, C. F., and Bruce, K. B. (2001). Our curriculum has become math-phobic! ACM Sigcse Bulletin, 33(1):243-247.
  49. Vallance, S., Perkins, H. C., and Dixon, J. E. (2011). What is social sustainability? a clarification of concepts. Geoforum, 42(3):342 - 348. Themed Issue: Subaltern Geopolitics.
  50. Vosinakis, S., Koutsabasis, P., and Anastassakis, G. (2014). A platform for teaching logic programming using virtual worlds. In 2014 IEEE 14th International Conference on Advanced Learning Technologies (ICALT), pages 657-661.
  51. Wang, S. and Yilmaz, L. (2006). A strategy and tool support to motivate the study of formal methods in undergraduate software design and modeling courses*. International Journal Of Engineering Education, 22(2).
  52. Wang, Z., Hart, S. A., Kovas, Y., Lukowski, S., Soden, B., Thompson, L. A., Plomin, R., McLoughlin, G., Bartlett, C. W., Lyons, I. M., and Petrill, S. A. (2014). Who is afraid of math? two sources of genetic variance for mathematical anxiety. Journal of Child Psychology and Psychiatry, 55(9):1056-1064.
  53. Wing, J. M. (2000). Weaving formal methods into the undergraduate curriculum. In Proceedings of the 8th International Conference on Algebraic Methodology and Software Technology, pages 2-7.
  54. Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3):33-35.
  55. Woodcock, J., Larsen, P. G., Bicarregui, J., and Fitzgerald, J. (2009). Formal methods: Practice and experience. ACM Comput. Surv., 41(4):19:1-19:36.
  56. Woodcraft, S. (2012). Social sustainability and new communities: Moving from concept to practice in the UK. Procedia - Social and Behavioral Sciences, 68:29 - 42.
  57. Zamansky, A. and Farchi, E. (2015a). Exploring the role of logic and formal methods in information systems education. In 2nd Human-Oriented Formal Methods workshop (HOFM 2015).
  58. Zamansky, A. and Farchi, E. (2015b). Teaching logic to information systems students: challenges and opportunities. In Proceedings of the 4th International Conference on Tools for Teaching Logic (TTL).
  59. Zobel, J. and Hamilton, M. (2002). Managing student plagiarism in large academic departments. Australian University Review, 45(2):23 - 30.

Paper Citation

in Harvard Style

Spichkova M. and Zamansky A. (2016). Teaching of Formal Methods for Software Engineering . In Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: COLAFORM, (ENASE 2016) ISBN 978-989-758-189-2, pages 370-376. DOI: 10.5220/0005928503700376

in Bibtex Style

author={Maria Spichkova and Anna Zamansky},
title={Teaching of Formal Methods for Software Engineering},
booktitle={Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: COLAFORM, (ENASE 2016)},

in EndNote Style

JO - Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: COLAFORM, (ENASE 2016)
TI - Teaching of Formal Methods for Software Engineering
SN - 978-989-758-189-2
AU - Spichkova M.
AU - Zamansky A.
PY - 2016
SP - 370
EP - 376
DO - 10.5220/0005928503700376