Hostname: page-component-77f85d65b8-2tv5m Total loading time: 0 Render date: 2026-03-27T08:50:03.989Z Has data issue: false hasContentIssue false

Engineering Software Correctness

Published online by Cambridge University Press:  01 November 2007

REX PAGE*
Affiliation:
School of Computer Science, University of Oklahoma, Norman, OK 73019, USA email: page@ou.edu
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Design and quality are fundamental themes in engineering education. Functionalprogramming builds software from small components, a central element of gooddesign, and facilitates reasoning about correctness, an important aspect ofquality. Software engineering courses that employ functional programming providea platform for educating students in the design of quality software. This pearldescribes experiments in the use of ACL2, a purely functional subset of CommonLisp with an embedded mechanical logic, to focus on design and correctness insoftware engineering courses. Students find the courses challenging andinteresting. A few acquire enough skill to use an automated theorem prover onthe job without additional training. Many students, but not quite a majority,find enough success to suggest that additional experience would make themeffective users of mechanized logic in commercial software development. Nearlyall gain a new perspective on what it means for software to be correct andacquire a good understanding of functional programming.

Information

Type
Educational Pearl
Copyright
Copyright © Cambridge University Press 2007
Submit a response

Discussions

No Discussions have been published for this article.