In this paper we describe a cours e we will teach on an experimental basi s in summer, 1978 ; we like to refer to th e course content as "program verification for programmers" . At a time when more and more people are lamenting the fact that an inordinate amount of software development time is spent in debugging, w e feel it is important to include in ou r curriculum a course whose primary emphasis is on techniques for writing correc t programs . When we speak of program correctness, we are referring to the consistency between a computer program and th e specifications describing what it is sup pose to do . In our course we will develop the concept of verifying a program' s correctness in primarily a non-mathematical manner . While we do not hope o r necessarily think it desirable that a student attempt to produce rigorou s proofs of a program ' s correctness, we do think that he or she should design an d write a program with a correctness proo f in mind so that their confidence in th e reliability of the program is at a high level .
Unfortunately, ACM prohibits us from displaying non-influential references for this paper.
To see the full reference list, please visit http://dl.acm.org/citation.cfm?id=990629.