Skip to main content

Teaching mathematics to software engineers

  • Invited Lectures
  • Conference paper
  • First Online:
Algebraic Methodology and Software Technology (AMAST 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 936))

Abstract

Based on my experience in teaching formal methods to practicing and aspiring software engineers, I present some of the common stumbling blocks faced when writing formal specifications. The most conspicuous problem is learning to abstract. I address all these problems indirectly by giving a list of hints to specifiers. Thus this paper should be of interest not only to teachers of formal methods but also to their students.

This research is sponsored by the Wright Laboratory, Aeronautical Systems Center, Air Force Materiel Command, USAF, and the Advanced Research Projects Agency (ARPA) under grant number F33615-93-1-1330. Views and conclusions contained in this document are those of the authors and should not be interpreted as necessarily representing official policies or endorsements, either expressed or implied, of Wright Laboratory or the United States Government.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. DIS 8807. Information systems processing-open systems interconnection-lotos. Technical report, International Standards Organization, 1987.

    Google Scholar 

  2. H. G. Baker. List Processing in Real Time on a Serial Computer. Communications of the ACM, 21(4):280–294, 1978.

    Google Scholar 

  3. W.R. Bevier, W.A. Hunt, Jr., J. S. Moore, and W.D. Young. An approach to systems verification. Journal of Automated Reasoning, 5:411–428, 1989.

    Google Scholar 

  4. M. Burrows, M. Abadi, and R. Needham. A logic of authentication. ACM Transactions on Computer Systems, 8(1):18–36, February 1990.

    Google Scholar 

  5. D. Garlan. Preconditions for understanding. In Proceedings of the Sixth Int'l Conf. on Software Specification and Design, pages 242–245, October 1991.

    Google Scholar 

  6. D. Garlan, G. Abowd, D. Jackson, J. Tomayko, and J.M. Wing. The CMU Master of Software Engineering Core Curriculum. In Proceedings of the Eighth SEI Conference on Software Engineering Education (CSEE). Springer-Verlag, 1995.

    Google Scholar 

  7. D. Garlan, A. Brown, D. Jackson, J. Tomayko, and J. Wing. The CMU Masters in Software Engineering Core Curriculum. Technical Report CMU-CS-93-180, Carnegie Mellon Computer Science Department, August 1993.

    Google Scholar 

  8. C.A.R. Hoare. Communicating Sequential Processes, Prentice-Hall International, 1985.

    Google Scholar 

  9. J.J. Horning, J.V. with S.J. Garland Guttag, K.D. Jones, A. Modet, and J.M. Wing. Larch: Languages and Tools for Formal Specification. Springer-Verlag, New York, 1993.

    Google Scholar 

  10. C.B. Jones. Systematic Software Development Using VDM, chapter 15. Prentice-Hall International, 1986.

    Google Scholar 

  11. Deepak Kapur. Towards a theory of abstract data types. Technical Report 237, MIT LCS, June 1980. Ph.D. Thesis.

    Google Scholar 

  12. B. Lampson, W. Weihl, and U. Maheshwari. Principles of computer systems. Technical Report MIT/LCS/RSS-22, MIT Lab. for Comp. Science, 1993. Lecture Notes for 6.826, Fall 1992.

    Google Scholar 

  13. B. Liskov and J. Guttag. Abstraction and Specification in Program Development. McGraw-Hill/MIT Press, 1986.

    Google Scholar 

  14. N. Lynch and M. Tuttle. Hierarchical correctness proofs for distributed algorithms. Technical report, MIT Laboratory for Computer Science, Cambridge, MA, April 1987.

    Google Scholar 

  15. A.J.R.G. Milner. A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer-Verlag, 1980.

    Google Scholar 

  16. L. Mummert, J.M. Wing, and M. Satyanarayanan. Using belief to reason about cache coherence. In Proceedings of the Symposium on Principles of Distributed Computing, pages 71–80, August 1994. Also CMU-CS-94-151, May 1994.

    Google Scholar 

  17. Scott M. Nettles and James W. O'Toole. Real-Time Replication Garbage Collection. In SIGPLAN Symposium on Programming Language Design and Implementation. ACM, June 1993.

    Google Scholar 

  18. John Scheid and Steven Holtsberg. Ina Jo specification language reference manual. Technical Report TM-6021/001/06, Paramax Systems Corporation, A Unisys Company, June 1992.

    Google Scholar 

  19. J.M. Spivey. Introducing Z: a Specification Language and its Formal Semantics. Cambridge University Press, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

V. S. Alagar Maurice Nivat

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wing, J.M. (1995). Teaching mathematics to software engineers. In: Alagar, V.S., Nivat, M. (eds) Algebraic Methodology and Software Technology. AMAST 1995. Lecture Notes in Computer Science, vol 936. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60043-4_44

Download citation

  • DOI: https://doi.org/10.1007/3-540-60043-4_44

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60043-5

  • Online ISBN: 978-3-540-49410-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics