skip to main content
research-article

An introductory course on programming based on formal specification and program calculation

Published:25 June 2009Publication History
Skip Abstract Section

Abstract

We report on our experience in teaching introductory courses on programming based on formal specification and program calculation, in two different Computer Science programmes. We favour the use of logic as a tool, the notion of program as a formal entity, as well as some issues associated with efficiency. We also review and use in practical cases some program transformation strategies, such as generalisation, tupling and modularisation. We describe our approach, its advantages and drawbacks. Furthermore, we present some preliminary results from an ongoing qualitative research which intends to characterise, describe and understand the students' experiences when taking these courses.

References

  1. Backhouse, R. Program Construction: Calculating Implementations from Specifications, John Wiley & Sons, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Blanco, J., Smith, S. and Barsotti, D. Cálculo de Programas, Fa.M.A.F, U.N.C., 2008.Google ScholarGoogle Scholar
  3. Clack, C. and Myers, C. The Dys-Functional Student in LNCS 1022, 289--309, Springer, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cohen, E. Programming in the 1990s: An Introduction to the Calculation of Programs, Springer-Verlag, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dijkstra, E. A Discipline of Programming, Prentice Hall, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dijkstra, E. and Feijen, W. A Method of Programming, Addison-Wesley, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dijkstra, E. and Scholten, C. Predicate Calculus and Program Semantics, Monographs in Computer Science, Springer-Verlag, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Dijkstra, E. and Schneider, F. A Logical Approach to Discrete Math, Monographs in Computer Science, Springer-Verlag, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Fokkinga, M., Werkcollege Functioneel Programmeren, University of Twente, 1996.Google ScholarGoogle Scholar
  10. Gries, D. The Science of Programming, Monographs in Computer Science, Springer-Verlag, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hazzan, O., Dubinsky, Y., Eidelman, L., Sakhnini, V. and Teif, M. Qualitative Research in Computer Science Education. SIGCSE Bulletin, Vol. 38, 408--412, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hoogerwoord, R. The Design of Functional Programs: A Calculational Approach, PhD Thesis, Eindhoven University of Technology, The Netherlands, 1989.Google ScholarGoogle Scholar
  13. Kaldewaij, A. Programming: The Derivation of Algorithms, Prentice Hall, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Lincoln, Y. and Guba, E. Naturalistic Inquiry, SAGE Publication, 1985.Google ScholarGoogle ScholarCross RefCross Ref
  15. Liskov, B. and Guttag, J. Program Development in Java: Abstraction, Specification and Objetc-oriented Design, Pub-AW, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Meyer, B. Object-Oriented Software Construction, Prentice Hall, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An introductory course on programming based on formal specification and program calculation

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader