An axiomatic basis for computer programming
Communications of the ACM
The Science of Programming
Princples of Computer Programming
Princples of Computer Programming
The Craft of Programming
A Discipline of Programming
Structured Programming; Theory and Practice the Systems Programming Series
Structured Programming; Theory and Practice the Systems Programming Series
Structured programming
Hi-index | 0.00 |
We describe a first course of two semesters in computer science that is based on mathematical principles of computer program analysis and design, rather than on apprenticeship programming. The course is modeled on elementary mathematics courses in both content and pedagogy. The content is based on a calculus of programs in which the functional semantics of programs and program parts are derived from the character valued functions that define the texts of programs. The first semester uses a minimal, but practical, subset of Pascal that has only character and character file data types, called CF Pascal, and is treated as a ruler and compass language for pedagogical advantage. This simple language, with no numbers, no arrays, no gotos, permits a complete and exact treatment of its operational semantics before the functional semantics is developed. The second semester begins with a treatment of data abstractions in order to provide an intellectual basis for the introduction of additional Pascal data types such as Boolean and integer, and the remainder of Pascal. Arrays, pointers, and gotos are introduced late in the course as advanced topics because of the complex mathematical treatments they require for program part verification and correct program design.