skip to main content
research-article

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

Published: 25 June 2009 Publication History

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.
[2]
Blanco, J., Smith, S. and Barsotti, D. Cálculo de Programas, Fa.M.A.F, U.N.C., 2008.
[3]
Clack, C. and Myers, C. The Dys-Functional Student in LNCS 1022, 289--309, Springer, 1995.
[4]
Cohen, E. Programming in the 1990s: An Introduction to the Calculation of Programs, Springer-Verlag, 1990.
[5]
Dijkstra, E. A Discipline of Programming, Prentice Hall, 1976.
[6]
Dijkstra, E. and Feijen, W. A Method of Programming, Addison-Wesley, 1988.
[7]
Dijkstra, E. and Scholten, C. Predicate Calculus and Program Semantics, Monographs in Computer Science, Springer-Verlag, 1990.
[8]
Dijkstra, E. and Schneider, F. A Logical Approach to Discrete Math, Monographs in Computer Science, Springer-Verlag, 1993.
[9]
Fokkinga, M., Werkcollege Functioneel Programmeren, University of Twente, 1996.
[10]
Gries, D. The Science of Programming, Monographs in Computer Science, Springer-Verlag, 1981.
[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.
[12]
Hoogerwoord, R. The Design of Functional Programs: A Calculational Approach, PhD Thesis, Eindhoven University of Technology, The Netherlands, 1989.
[13]
Kaldewaij, A. Programming: The Derivation of Algorithms, Prentice Hall, 1990.
[14]
Lincoln, Y. and Guba, E. Naturalistic Inquiry, SAGE Publication, 1985.
[15]
Liskov, B. and Guttag, J. Program Development in Java: Abstraction, Specification and Objetc-oriented Design, Pub-AW, 2000.
[16]
Meyer, B. Object-Oriented Software Construction, Prentice Hall, 2000.

Cited By

View all

Index Terms

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

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGCSE Bulletin
    ACM SIGCSE Bulletin  Volume 41, Issue 2
    June 2009
    166 pages
    ISSN:0097-8418
    DOI:10.1145/1595453
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 June 2009
    Published in SIGCSE Volume 41, Issue 2

    Check for updates

    Author Tags

    1. computer science education
    2. formal specification
    3. functional programming
    4. program derivation and verification
    5. qualitative research in education

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 09 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media