Data abstraction and problem solving in C++. Walls and mirrors (Data Abstraction & Problem Solving with C++: Walls and Mirrors)
It's time for another retro book from my past. The Third Edition of Walls and Mirrors by Frank M. Carrano and Janet J. Carrano Pritchard's out. 2003 year. This year I bought this book to learn programming languages in my first year. It's funny that the roots of the book go back to the book. 1986 yearIntermediate Problem Solving and Data Structures: Walls and Mirrors"It was published the year I was born. The link of the books was through the key concepts of "walls and mirrors" that permeate the entire book: "Walls" symbolize the abstraction of data - hiding the details of the implementation of the module from the rest of the program, just as a wall can isolate and hide Mirrors represent recursion, a repetitive technique of solving problems by solving smaller versions of the same problem, just as images in mirrors facing each other become smaller with each reflection. n
The book itself consists of two main parts.
- Problem Solving Methods - Programming Principles, Recursion, Data Abstraction, Linked Lists
- Solving problems using abstract data types - stacks, queues, algorithm efficiency, sorting, trees, tables, graphs
I remember that the book told about important moments that at that time seemed to me not trivial. The difference between specification and implementation is the basis of the object-oriented approach Encapsulation, inheritance and polymorphism as key concepts of OOP Abstract data types as basic development cubes
- Recursive problem-solving techniques
The book became popular in the US academic community and was republished. 8 once, and the high edition came out in 2024 I have not seen any translations of any new editions into Russian. Now the third edition of the book is only interesting from a historical point of view, but once it really helped me understand the basic concepts, but in C++ I did not write professionally:)
P.S. The book went to the bookshare corner in our office.
#Software #Engineering