К основному содержимому
#Software

Абстракция данных и решение задач на C++. Стены и зеркала (Data Abstraction & Problem Solving with C++: Walls and Mirrors)

#Software #Engineering

Пришло время еще одной ретро-книги из моего прошлого. Третье издание книги про стены и зеркала Фрэнка М. Каррано и Джанет Дж. Причард вышла в 2003 году. В этом году я как раз купил эту книгу для изучения языков программирования на первом курсе. Забавно, что корни книгиуходят к книге 1986 года "Intermediate Problem Solving and Data Structures: Walls and Mirrors", которая была издана в год моего рождения. Свзяь книг была через ключевые концепции "стен и зеркал", которая пронизывает всю книгу:

  • "Стены" символизируют абстракцию данных - скрытие деталей реализации модуля от остальной программы, подобно тому, как стена может изолировать и скрыть
  • "Зеркала" представляют рекурсию - повторяющуюся технику решения проблем путём решения меньших версий той же проблемы, подобно тому, как изображения в обращённых друг к другу зеркалах становятся всё меньше с каждым отражением

Сама книга состоит из двух основных частей

  1. Методы решения задач - принципы программирования, рекурсия, абстракция данных, связанные списки
  2. Решение задач с помощью абстрактных типов данных - стеки, очереди, эффективность алгоритмов, сортировка, деревья, таблицы, графы

Я помню, что в книге рассказывалось про важные моменты, которые тогда еще мне казались нетривиальными

  • Различие между спецификацией и реализацией - так вво основа объектно-ориентированного подхода
  • Инкапсуляция, наследование и полиморфизм как ключевые понятия ООП
  • Абстрактные типы данных как базовые кубики разработки
  • Рекурсивные методы решения задач

Книга стала популярной в академической среде США и она была переиздана 8 раз, причем воьсмое издание вышло в 2024 году, но я не видел переводов новых изданий на русский язык. Сейчас третье издание книги интересно только с исторической точки зрения, но когда-то она мне действительно помогла понять базовые концепции, но на C++ я писать профессионально не стал:)

P.S. Книга уехала в букшеринг уголок в нашем офисе.

#Software #Engineering