Walls and Mirrors
Walls And Mirrors is an influential computer science textbook, for undergraduates taking a second computer science course (typically on the subject of data structures and algorithms), 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 (ADT) 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++ 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 late 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 edition of the book. The current author is Frank M. Carrano (5th Ed.). The recently published second edition of the Java version removed the name "Walls and Mirrors".
Publication data
- Pascal edition (1986) - ISBN 0-8053-8940-7 (published by Benjamin Cummings before it was acquired by Addison-Wesley)
- Modula-2 edition (1988) - ISBN 0-8053-8945-8 (published by Benjamin Cummings before it was acquired by Addison-Wesley)
- Fourth edition (2004) - ISBN 0-321-24725-6 (published by Addison-Wesley)
- Fifth edition (2006) - ISBN 0-321-43332-7 (published by Addison-Wesley)