Skip to main content

Rooting Formal Methods Within Higher Education Curricula for Computer Science and Software Engineering — A White Paper —

  • Conference paper
  • First Online:
Formal Methods – Fun for Everybody (FMFun 2019)

Abstract

This white paper argues that formal methods need to be better rooted in higher education curricula for computer science and software engineering programmes of study. To this end, it advocates

  • improved teaching of formal methods;

  • systematic highlighting of formal methods within existing, ‘classical’ computer science courses; and

  • the inclusion of a compulsory formal methods course in computer science and software engineering curricula.

These recommendations are based on the observations that

  • formal methods are an essential and cost-effective means to increase software quality; however

  • computer science and software engineering programmes typically fail to provide adequate training in formal methods; and thus

  • there is a lack of computer science graduates who are qualified to apply formal methods in industry.

This white paper is the result of a collective effort by authors and participants of the 1st International Workshop on Formal Methods – Fun for Everybody which was held in Bergen, Norway, 2–3 December 2019. As such, it represents insights based on learning and teaching computer science and software engineering (with or without formal methods) at various universities across Europe.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Pattis [Pat94] even suggested teaching Extended Backus-Naur Form (EBNF) as the first topic in computer science. Not to facilitate presenting the syntax of a programming language, but because EBNF is a microcosm of programming. With no prerequisites, students are introduced to a variety of fundamental concepts in programming: formal systems, abstraction, control structures, equivalence of descriptions, the difference between syntax and semantics, and the relative power of recursion versus iteration.

  2. 2.

    https://github.com/javapathfinder/jpf-core/wiki.

  3. 3.

    The recent The Java®Language Specification, Java SE 14 Edition is 800 pages [GJS+20] and not easily digestible.

  4. 4.

    AlphaZero is the descendant of AlphaGo, the AI that became known for defeating Lee Sedol, the world’s best Go player, in March of 2016.

  5. 5.

    Nature, 26 May 2016.

  6. 6.

    This is not eased by the often poor error messages provided by formal method tools.

  7. 7.

    https://www.chromium.org/Home/chromium-security/memory-safety.

  8. 8.

    https://www.youtube.com/watch?v=UCwyOSHRBi0.

  9. 9.

    https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel/-/blob/master/notebooks/tutorials/prob_solver_intro.ipynb.

  10. 10.

    https://icpc.baylor.edu/.

References

  1. ACM. Computer science curricula 2013: Curriculum guidelines for undergraduate degree programs in computer science (2013). http://dx.doi.org/10.1145/2534860

  2. ACM. Software engineering 2014: Curriculum guidelines for undergraduate degree programs in computer science (2015). https://doi.org/10.1145/2965631

  3. Amrani, M., Lucio, L., Bibal, A.: ML + FV = \(\heartsuit \)? A survey on the application of machine learning to formal verification. arXiv Software Engineering (2018)

    Google Scholar 

  4. Barnes, J.E.: Experiences in the industrial use of formal methods. In: Romanovsky, A., Jones, C., Bendiposto, J., Leuschel, M., (eds.) AVoCS 2011. Electronic Communications of the EASST (2011)

    Google Scholar 

  5. Backes, J., Bolignano, P., Cook, B., Gacek, A., Luckow, K.S., Rungta, N., Schaef, M., Schlesinger, C., Tanash, R., Varming, C., Whalen, M.: One-click formal methods. IEEE Softw. 36(6), 61–65 (2019)

    Article  Google Scholar 

  6. Brakman, H., Driessen, V., Kavuma, J., Bijvank, L.N., Vermolen, S.: Supporting formal method teaching with real-life protocols. In: Formal Methods in the Teaching Lab (2006). http://www4.di.uminho.pt/FME-SoE/FMEd06/Preprints.pdf

  7. Blanco, J., Losano, L., Aguirre, N., Novaira, M.M., Permigiani, S., Scilingo, G.: An introductory course on programming based on formal specification and program calculation. SIGCSE Bull. 41(2), 31–37 (2009)

    Article  Google Scholar 

  8. Boute, R.: Teaching and practicing computer science at the university level. SIGCSE Bull. 41(2), 24–30 (2009)

    Article  Google Scholar 

  9. Brain, M., Schanda, F.: A lightweight technique for distributed and incremental program verification. In: Joshi, R., Müller, P., Podelski, A. (eds.) VSTTE 2012. LNCS, vol. 7152, pp. 114–129. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-27705-4_10

    Chapter  MATH  Google Scholar 

  10. Camilli, M.: Formal verification problems in a big data world: towards a mighty synergy. In: Proceedings of ICSE 2014, pp. 638–641. ACM (2014)

    Google Scholar 

  11. Cooper, D., Clancy, M.: Oh! Pascal. W.W. Norton & Company Inc., New York (1982)

    MATH  Google Scholar 

  12. Chudnov, A., et al.: Continuous formal verification of Amazon s2n. In: Chockler, H., Weissenbacher, G. (eds.) CAV 2018. LNCS, vol. 10982, pp. 430–446. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-96142-2_26

    Chapter  Google Scholar 

  13. Calcagno, C., Distefano, D., O’Hearn, P.W., Yang, H.: Compositional shape analysis by means of bi-abduction. J. ACM 58(6), 26:1–26:66 (2011)

    Article  MathSciNet  Google Scholar 

  14. Cerone, A.: Human-oriented formal modelling of human-computer interaction: practitioners’ and students’ perspectives. In: Milazzo, P., Varró, D., Wimmer, M. (eds.) STAF 2016. LNCS, vol. 9946, pp. 232–241. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-50230-4_17

    Chapter  Google Scholar 

  15. Cerone, A.: From stories to concurrency: How children can play with formal methods. In: A. Cerone and M. Roggenbach (eds.) FMFun 2019, CCIS 1301, pp. 191–207. Springer, Cham (2017)

    Google Scholar 

  16. Cerone, A., Lermer, K.R.: Adapting to different types of target audience in teaching formal methods. In: A. Cerone and M. Roggenbach (eds.) FMFun 2019, CCIS 1301, pp. 106–123. Springer, Cham (2017)

    Google Scholar 

  17. Cerone, A., Roggenbach, M., Schlingloff, B.-H., Schneider, G., Shaikh, S.A.: Teaching formal methods for software engineering - ten principles (2015). https://www.informaticadidactica.de/uploads/Artikel/Schlinghoff2015/Schlinghoff2015.pdf

  18. Deitel, P.J., Deitel, H.M.: Java - How to Program, 7th edn. Pearson Education Inc., Upper Saddle River (2007)

    MATH  Google Scholar 

  19. Distefano, D., Fähndrich, M., Logozzo, F., O’Hearn, P.W.: Scaling static analyses at Facebook. Commun. ACM 62(8), 62–70 (2019)

    Article  Google Scholar 

  20. Dewar, R.B.K., Schonberg, E.: Computer science education: Where are the software engineers of tomorrow? CROSSTALK - The Journal of Defense Software Engineering (2018)

    Google Scholar 

  21. Floyd, R.W.: Assigning meaning to programs. Math. Aspects Comput. Sci. 19, 19–32 (1967)

    Article  MathSciNet  Google Scholar 

  22. Farrell, M., Wu, H.: When the student becomes the teacher. In: A. Cerone and M. Roggenbach (eds.) FMFun 2019, CCIS 1301, pp. 208–217. Springer, Cham (2017)

    Google Scholar 

  23. Garavel, H., Graf, S.: Formal Methods for Safe and Secure Computers Systems. Federal Office for Information Security (2013). https://www.bsi.bund.de/DE/Publikationen/Studien/Formal_Methods_Study_875/study_875.html

  24. Paul Gibson, J.: Formal methods: never too young to start. In: Proceedings of FORMED 2008, pp. 151–160 (2008)

    Google Scholar 

  25. Gosling, J., et al.: The Java language specification - Java SE 14 Edition. Technical Report JSR-389 Java SE 2014, Oracle America, February 2020

    Google Scholar 

  26. Geleßus, D., Leuschel, M.: ProB and Jupyter for logic, set theory, theoretical computer science and formal methods. In: Raschke, A., Méry, D., Houdek, F. (eds.) ABZ 2020. LNCS, vol. 12071, pp. 248–254. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-48077-6_19

    Chapter  Google Scholar 

  27. Glass, R.L.: A new answer to “how important is mathematics to the software practitioner?”. IEEE Softw. 17(6), 136 (2000)

    Google Scholar 

  28. Gnesi, S., Margaria, T.: Some Trends in Formal Methods Applications to Railway Signaling, pp. 61–84 (2013)

    Google Scholar 

  29. Heule, M.J.H., Kullmann, O.: The science of brute force. Commun. ACM 60(8), 70–79 (2017)

    Article  Google Scholar 

  30. Huang, X., Kwiatkowska, M., Wang, S., Wu, M.: Safety verification of deep neural networks. In: Majumdar, R., Kunčak, V. (eds.) CAV 2017. LNCS, vol. 10426, pp. 3–29. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-63387-9_1

    Chapter  Google Scholar 

  31. Hoare, C.A.R., Wirth, N.: An axiomatic definition of the programming language PASCAL. Acta Inf. 2, 335–355 (1973)

    Article  Google Scholar 

  32. ISO 7185:1990 Information technology - Programming languages - Pascal (1990)

    Google Scholar 

  33. James, P., Moller, F., Nga, N.H., Roggenbach, M., Schneider, S.A., Treharne, H.: Techniques for modelling and verifying railway interlockings. Int. J. Softw. Tools Technol. Transf. 16(6), 685–711 (2014)

    Article  Google Scholar 

  34. Krings, S., Körner, P., Schmidt, J.: Experience report on an inquiry-based course on model checking. In: Tagungsband des 16. Workshops zu Software Engineering im Unterricht der Hochschulen, CEUR, vol. 2358 (2019)

    Google Scholar 

  35. Leveson, N.: Are you sure your software will not kill anyone? Commun. ACM 63(2), 25–28 (2020)

    Article  Google Scholar 

  36. McCormick, J.W., Chapin, P.C.: Building High Integrity Applications with SPARK. Cambridge University Press, Cambridge (2015)

    Book  Google Scholar 

  37. Mandrioli, C., Leva, A., Maggio, M.: Dynamic models for the formal verification of big data applications via stochastic model checking. In: Proceedings of CCTA 2018, pp. 1466–1471. IEEE Computer Society (2018)

    Google Scholar 

  38. Moller, F., O’Reilly, L., Powell, S., Denner, C.: Teaching them early: formal methods in school. In: A. Cerone and M. Roggenbach (eds.) FMFun 2019, CCIS 1301, pp. 173–190. Springer, Cham (2017)

    Google Scholar 

  39. Newcombe, C., Rath, T., Zhang, F., Munteanu, B., Brooker, M., Deardeuff, M.: How Amazon web services uses formal methods. Commun. ACM 58(4), 66–73 (2015)

    Article  Google Scholar 

  40. Ölveczky, P.: Teaching formal methods for fun using Maude. In: A. Cerone and M. Roggenbach (eds.) FMFun 2019, CCIS 1301, pp. 58–91. Springer, Cham (2017)

    Google Scholar 

  41. Pattis, R.E.: Teaching EBNF first in CS 1. In: Proceedings of the Twenty-Fifth SIGCSE Symposium on Computer Science Education, SIGCSE 1994, New York, NY, USA, pp. 300–303. Association for Computing Machinery (1994)

    Google Scholar 

  42. Petrasch, J., Oepen, J.-H., Krings, S., Gericke, M.: Writing a model checker in 80 days: reusable libraries and custom implementation. In: Proceedings of AVoCS 2018, vol. 76, Electronic Communications of the EASST (2019)

    Google Scholar 

  43. Roggenbach, M., Cerone, A., Schlingloff, B.-H., Schneider, G., Shaikh, S.A.: Formal Methods for Software Engineering. Springer, Switzerland (2021)

    Google Scholar 

  44. Roggenbach, M., Moller, F., Schneider, S., Treharne, H., Nguyen, H.N.: Railway modelling in CSP\(\vert \)B: the double junction case study. ECEASST, 53 (2012)

    Google Scholar 

  45. Sekerinski, E.: Teaching the mathematics of software design. In: Formal Methods in the Teaching Lab (2006). http://www4.di.uminho.pt/FME-SoE/FMEd06/Preprints.pdf

  46. Sun, X., Khedr, H., Shoukry, Y.: Formal verification of neural network controlled autonomous systems. In: Proceedings of HSCC 2019, pp. 147–156. ACM (2019)

    Google Scholar 

  47. Sadowski, C., van Gogh, J., Jaspan, C., Söderberg, E., Winter, C.: Tricorder: building a program analysis ecosystem. In: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 1, pp. 598–608 (2015)

    Google Scholar 

  48. Shilov, N.V., Yi, K.: Engaging students with theory through ACM collegiate programming contests. Commun. ACM 45(9), 98–101 (2002)

    Article  Google Scholar 

  49. van der Aalst, W.: Process Mining - Data Science in Action, 2nd edn. Springer, Heidelberg (2016)

    Book  Google Scholar 

  50. van Rossum, G., the Python development team: the Python Language Reference - Release 3.8.3. Python Software Foundation, June 2020. Retrieved 2020–06-15

    Google Scholar 

  51. Wing, J.: A specifier’s introduction to formal methods. IEEE Comput. 23(9), 8–22 (1990)

    Article  Google Scholar 

  52. Wang, S., Pei, K., Whitehouse, J., Yang, J., Jana, S.: Formal security analysis of neural networks using symbolic intervals. In: Proceedings of Sec 2018, pp. 1599–1614. ACM (2018)

    Google Scholar 

  53. Zhumagambetov, R.: Teaching formal methods in academia: a systematic literature review. In: A. Cerone and M. Roggenbach (eds.) FMFun 2019, CCIS 1301, pp. 218–226. Springer, Cham (2017)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Antonio Cerone .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Cerone, A. et al. (2021). Rooting Formal Methods Within Higher Education Curricula for Computer Science and Software Engineering — A White Paper —. In: Cerone, A., Roggenbach, M. (eds) Formal Methods – Fun for Everybody. FMFun 2019. Communications in Computer and Information Science, vol 1301. Springer, Cham. https://doi.org/10.1007/978-3-030-71374-4_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-71374-4_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-71373-7

  • Online ISBN: 978-3-030-71374-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics