Formal Methods in System Design

, Volume 51, Issue 2, pp 419–430 | Cite as

Keeping logic in the trivium of computer science: a teaching perspective

  • J. A. Makowsky
  • A. Zamansky


In this paper we argue that the traditional syllabus of logic courses for computer science is outdated and missing its purposes, therefore contributing to the gradual relegation of logic from the computing curricula. We further provide some practical recommendations and directions that need to be considered in the adaptation of the logic course syllabi to the needs of modern computing practitioners.


Logic education Computer science Teaching 



The second author was supported by the Israel Science Foundation under Grant agreement 817/15.


  1. 1.
    Adamowicz Z, Zbierski P (2011) Logic of mathematics: a modern course of classical logic. Wiley, New YorkMATHGoogle Scholar
  2. 2.
    Arora S, Barak B (2009) Computational complexity: a modern approach. Cambridge University Press, CambridgeCrossRefMATHGoogle Scholar
  3. 3.
    Ball T, Zorn B (2015) Teach foundational language principles. Commun ACM 58(5):30–31CrossRefGoogle Scholar
  4. 4.
    Barland I, Felleisen M, Fisler K, Kolaitis P, Vardi MY (2000) Integrating logic into the computer science curriculum. In: Innovation and technology in computer science educationGoogle Scholar
  5. 5.
    Barwise J, Feferman S (eds) (1985) Model-theoretic logics. In: Perspectives in mathematical logic. Springer, BerlinGoogle Scholar
  6. 6.
    Ben-Ari M (2012) Mathematical logic for computer science. Springer, BerlinCrossRefMATHGoogle Scholar
  7. 7.
    Bradley A, Manna Z (2007) The calculus of computation: decision procedures with applications to verification. Springer, BerlinMATHGoogle Scholar
  8. 8.
    Burgess J (2005) Fixing frege. Princeton University Press, PrincetonMATHGoogle Scholar
  9. 9.
    Buss S (1998) Handbook of proof theory, vol 137. Elsevier, AmsterdamMATHGoogle Scholar
  10. 10.
    Chamarthi H, Dillinger P, Manolios P, Vroon D (2011) The acl2 sedan theorem proving system. In: International conference on tools and algorithms for the construction and analysis of systems. Springer, pp 291–295Google Scholar
  11. 11.
    Clarke EM, Grumberg O, Peled D (1999) Model checking. MIT Press, CambridgeGoogle Scholar
  12. 12.
    Enderton H, Enderton HB (2001) A mathematical introduction to logic. Academic press, LondonMATHGoogle Scholar
  13. 13.
    Gallier JH (2015) Logic for computer science: foundations of automatic theorem proving. Courier Dover Publications, New YorkMATHGoogle Scholar
  14. 14.
    Garey MG, Johnson DS (1979) Computers and intractability. Mathematical series. W.H. Freeman and Company, San FranciscoMATHGoogle Scholar
  15. 15.
    Goldreich O (2008) Computational complexity: a conceptual approach. Cambridge University Press, CambridgeCrossRefMATHGoogle Scholar
  16. 16.
    Harrison J (2009) Handbook of practical logic and automated reasoning. Cambridge University Press, CambridgeCrossRefMATHGoogle Scholar
  17. 17.
    Hilbert D, Ackermann W (1928) Grundzüge der theoretischen logik, vol 1037. Springer, Berlin, p 23MATHGoogle Scholar
  18. 18.
    Hodges W (1993) Model theory, vol 42. Encyclopedia of mathematics and its applications. Cambridge University Press, CambridgeCrossRefMATHGoogle Scholar
  19. 19.
    Huth M, Ryan M (2004) Logic in computer science: modelling and reasoning about systems. Cambridge University Press, CambridgeCrossRefMATHGoogle Scholar
  20. 20.
    Jackson D (2002) Alloy: a lightweight object modelling notation. ACM Trans Softw Eng Methodol (TOSEM) 11(2):256–290CrossRefGoogle Scholar
  21. 21.
    Jech T (1978) Set theory. Academic Press, LondonMATHGoogle Scholar
  22. 22.
    Jech T (2003) Set theory. The third millenium edition, revised and expanded. Springer monographs in mathematics. Springer, BerlinGoogle Scholar
  23. 23.
    Knuth DE (1969) The art of computer programming, vol 1. Addison Wesley, BostonMATHGoogle Scholar
  24. 24.
    Lethbridge TC (2000) What knowledge is important to a software professional? Computer 33(5):44–50CrossRefGoogle Scholar
  25. 25.
    Libkin L (2004) Elements of finite model theory. Springer, BerlinCrossRefMATHGoogle Scholar
  26. 26.
    Makowsky JA (2008) From Hilbert’s program to a logic toolbox. Ann Math Artif Intell 53(1–4):225–250CrossRefMATHMathSciNetGoogle Scholar
  27. 27.
    Makowsky JA (2015) Teaching logic for computer science: are we teaching the wrong narrative? In: TTL 2015 proceedings of fourth international conference on tools for teaching logicGoogle Scholar
  28. 28.
    Mendelson E (1987) Introduction to mathematical logic. Wadsworth Publ. Co., Belmont, CAGoogle Scholar
  29. 29.
    Page RL (2003) Software is discrete mathematics. In: ACM SIGPLAN notices, ACM, vol 38.9, pp 79–86Google Scholar
  30. 30.
    Papadimitriou C (1994) Computational complexity. Addison Wesley, BostonMATHGoogle Scholar
  31. 31.
    Shoenfield J (1967) Mathematical logic, vol 21. Addison-Wesley, BostonMATHGoogle Scholar
  32. 32.
    Soare RI (2016) Turing computability: theory and applications. Springer, BerlinCrossRefMATHGoogle Scholar
  33. 33.
    Spichkova M (2016) Boring formal methods or Sherlock Holmes deduction methods? In: Federation of international conferences on software technologies: applications and foundations. Springer, pp 242–252Google Scholar
  34. 34.
    Tavolato P, 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, Paris, FrankreichGoogle Scholar
  35. 35.
    ten Cate B, van Benthem J, Vaananen J (2007) Lindstrom theorems for fragments of first-order logic. In: 22nd annual IEEE symposium on logic in computer science, 2007, LICS 2007. IEEE, pp 280–292Google Scholar
  36. 36.
    van Benthem J, ten Cate B, Väänanen J (2009) Lindstrom theorems for fragments of first-order logic. Log Methods Comput Sci 5:280–292Google Scholar
  37. 37.
  38. 38.
  39. 39.
    Wing JM (2000) Invited talk: weaving formal methods into the undergraduate computer science curriculum. Algebraic methodology and software technology. Springer, Berlin, pp 2–7CrossRefGoogle Scholar
  40. 40.
    Zamansky A, Farchi E (2015) Helping the tester get it right: towards supporting agile combinatorial test design. In: 2nd human-oriented formal methods workshop (HOFM 2015)Google Scholar
  41. 41.
    Zamansky A, Farchi E (2015) Teaching logic to information systems students: challenges and opportunities. In: TTL 2015 proceedings of fourth international conference on tools for teaching logicGoogle Scholar
  42. 42.
    Zamansky A, Rogachevsky K, Levy M, Kogan M (2016) How many likes can we get for logic? Exploring the potential of Facebook for enhancing core software engineering courses. In: Proceedings of the European conference on software engineering educationGoogle Scholar
  43. 43.
    Zamansky A, Zohar Y (2016) Mathematical does not mean boring: integrating software assignments to enhance learning of logico-mathematical concepts. In: International conference on advanced information systems engineering. Springer, pp 103–108Google Scholar
  44. 44.
    Zamansky Z (2017) Teaching logic to information systems students: a student-centric approach. IFCOLOG J Log Appl (forthcoming)Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2017

Authors and Affiliations

  1. 1.Faculty of Computer ScienceTechnion-IITHaifaIsrael
  2. 2.Information Systems DepartmentHaifa UniversityHaifaIsrael

Personalised recommendations