Walls and Mirrors


Walls And Mirrors is a computer science textbook, for undergraduates taking a second computer science course, originally written by Paul Helman and Robert Veroff. The book attempts to strike a balance between being too mathematically rigorous and formal, and being so informal, practical, and hands-on that computer science theory is not taught.
The "walls" of the title refer to the abstract data type which has a wall between its public interface and private implementation. Early languages like Pascal did not build this wall very high; later languages like Modula-2 did create a much stronger wall between the two; and object-oriented languages such as C++ and Java implement walls using the class concept.
The "mirrors" of the title refer to recursion. The idea is of looking at a reflection in two mirrors placed in opposition to one another, so a repeated image is reflected smaller and smaller in them.

Editions

The first edition, which used the language Pascal, was published in 1986.
An edition which used Modula-2 was published in 1988. Modula-2 had much better support for the sort of ADT the book taught than Pascal.
Later editions from the mid 1990s and the 2000s used C++ and Java, reflecting a fundamental shift in how computer science was taught. The original authors' names have been removed from the most recent editions of the book.

Publication History