Reading Computer Programs:
Instructor’s Guide and Exercises
by Lionel E. Deimel and
J. Fernando Naveda
I began thinking about the nature of programs and about how we
should approach understanding programs as soon as I developed some facility with
FORTRAN, around 1967. Program comprehension became a serious research interest
of mine while I was on the Computer Science faculty of North Carolina State
University. Although I have maintained an interest in program comprehension over
many years, I have had limited opportunities for doing empirical research into
the topic, something I regret. I did, however, expend a good deal of effort exploring possible roles
for program reading within the computer science curriculum and in the software
development environment. While at the
Software Engineering Institute, J. Fernando Naveda and I had the opportunity to
produce an “educational materials package” on this topic called
“Reading Computer Programs: Instructor’s Guide and Exercises” (citation). The SEI
distributed the printed report, as well as a diskette containing a program,
described below, and exercises from the report.
“Reading
Computer Programs” should be of interest to programming instructors,
software developers, and anyone interested in improving the process of software
development. Although written some time ago, it still, I think, retains
relevance. Like many of the products of the SEI’s Education Program, “Reading
Computer Programs” contains an annotated bibliography, an updated version of
which is available
here. The report
also includes an Ada program offered as an object of study.
I began writing this program to learn Ada, and the program was intended to use
some of the distinctive features of this programming language. David A. Wheeler
organized the program into a
collection
of Web pages as a resource for Ada users. Programmers unfamiliar with Ada
will find reading this program a double challenge. (This reminds me that the
first maintenance task I was ever given involved fixing a program in an obscure
language I had never even heard of!) The program searches for perfect digital invariants,
by the way, which are
discussed under Recreational Math.
| |
 |
Reading Computer Programs:
Instructor’s Guide and Exercises (PDF) |
|

— LED, 5/30/2007 |