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.
- Backhouse, R. Program Construction: Calculating Implementations from Specifications, John Wiley & Sons, 2003. Google ScholarDigital Library
- Blanco, J., Smith, S. and Barsotti, D. Cálculo de Programas, Fa.M.A.F, U.N.C., 2008.Google Scholar
- Clack, C. and Myers, C. The Dys-Functional Student in LNCS 1022, 289--309, Springer, 1995. Google ScholarDigital Library
- Cohen, E. Programming in the 1990s: An Introduction to the Calculation of Programs, Springer-Verlag, 1990. Google ScholarDigital Library
- Dijkstra, E. A Discipline of Programming, Prentice Hall, 1976. Google ScholarDigital Library
- Dijkstra, E. and Feijen, W. A Method of Programming, Addison-Wesley, 1988. Google ScholarDigital Library
- Dijkstra, E. and Scholten, C. Predicate Calculus and Program Semantics, Monographs in Computer Science, Springer-Verlag, 1990. Google ScholarDigital Library
- Dijkstra, E. and Schneider, F. A Logical Approach to Discrete Math, Monographs in Computer Science, Springer-Verlag, 1993. Google ScholarDigital Library
- Fokkinga, M., Werkcollege Functioneel Programmeren, University of Twente, 1996.Google Scholar
- Gries, D. The Science of Programming, Monographs in Computer Science, Springer-Verlag, 1981. Google ScholarDigital Library
- 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 ScholarDigital Library
- Hoogerwoord, R. The Design of Functional Programs: A Calculational Approach, PhD Thesis, Eindhoven University of Technology, The Netherlands, 1989.Google Scholar
- Kaldewaij, A. Programming: The Derivation of Algorithms, Prentice Hall, 1990. Google ScholarDigital Library
- Lincoln, Y. and Guba, E. Naturalistic Inquiry, SAGE Publication, 1985.Google ScholarCross Ref
- Liskov, B. and Guttag, J. Program Development in Java: Abstraction, Specification and Objetc-oriented Design, Pub-AW, 2000. Google ScholarDigital Library
- Meyer, B. Object-Oriented Software Construction, Prentice Hall, 2000. Google ScholarDigital Library
Index Terms
- An introductory course on programming based on formal specification and program calculation
Recommendations
High School Calculus and Computer Science Course Taking as Predictors of Success in Introductory College Computer Science
Success in an introductory college computer science (CS) course encourages students to major and pursue careers in computer science and many other STEM fields, whereas weak performance is often a powerful deterrent. This article examines the role of ...
A Formal Framework for ASTRAL Intralevel Proof Obligations
ASTRAL is a formal specification language for real-time systems. It is intended to support formal software development, and therefore has been formally defined. This paper focuses on how to formally prove the mathematical correctness of ASTRAL ...
Assessing the Development of Computer Science Pedagogical Content Knowledge in the TEALS Program (Abstract Only)
SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science EducationOne of the critical barriers to increasing pre-collegiate computer science course offerings in the U.S. is a lack of qualified computer science teachers. Programs such as TEALS, a teacher preparation program pairing high school teachers with computing ...
Comments