On March 7, 1991, David Gries received the 1991 SIGCSE Outstanding Contribution to Computer Science Education Award. This paper contains his Award Lecture, which was given that day to a joint session of the ACM Computer Science Conference and SIGCSE Symposium in San Antonio.
In the first part of the paper, the author discusses the need to produce software using rigorous formal methods and shows how these methods can be introduced early in the curriculum. This portion of the presentation is technically correct but not completely effective, because no examples are presented that use common computer science algorithms. (A mathematics word problem and some other mathematical proofs are used.)
The second half of the paper contains a proposal for a two-semester first-year course that would integrate mathematical logic into a course that teaches analysis of algorithms, abstract data types, and design principles. This would be after the “remedial” first course in programming. This proposed course is compatible with recent ACM/IEEE-CS curriculum efforts.
The paper is intended for computer science educators at all levels; Gries seeks to convince the reader that the course he recommends is vital to the development of software engineers at an early stage. The paper succeeds for the most part and is recommended reading for all computer science educators; the aforementioned weakness in the first portion of the document reduces the effectiveness of the author’s arguments, however.