Bewertung:

Das Buch wird wegen seines effektiven Ansatzes zur Vermittlung von Algorithmen und Datenstrukturen, insbesondere durch problemorientiertes Lernen, sehr positiv aufgenommen. Viele Rezensenten loben den Lehrstil des Autors und die Klarheit der Erklärungen. Einige Leser sind jedoch der Meinung, dass es an umfassenden Illustrationen mangelt und kritisieren die physische Qualität des Buches.
Vorteile:⬤ Deckt grundlegende Ideen klar ab
⬤ gute problemorientierte Einführung in Algorithmen
⬤ hilft zu verstehen, warum naivere Lösungen scheitern
⬤ gut geschrieben und motivierend
⬤ empfohlen für diejenigen, die mit dem Programmieren vertraut sind.
⬤ Fehlt umfassende Illustrationen, um das Verständnis zu fördern
⬤ einige Benutzer berichteten über schlechte physische Qualität und Druckprobleme
⬤ nicht so umfassend wie ein Universitätskurs.
(basierend auf 8 Leserbewertungen)
Algorithmic Thinking: A Problem-Based Introduction
Eine praktische, problemorientierte Einführung in die Entwicklung von Algorithmen und Datenstrukturen zur Lösung von Problemen mit einem Computer.
Beim Programmieren geht es darum, einen Computer zur Lösung von Problemen einzusetzen, und Algorithmen und Datenstrukturen sind die Bausteine von Computerprogrammen. Für jedes Problem, das ein Programmierer lösen will, setzt er einen Algorithmus ein: eine Abfolge von Schritten zur Lösung des Problems. Viele Bücher lehren Algorithmen unabhängig von spezifischen Problemen, aber dieses Buch verwendet sorgfältige Erklärungen, Beispiele und Argumente, anstatt formale Mathematik und Beweise, die es dem Leser erschweren, eine Verbindung zwischen dem Gelernten und dem, was er damit machen kann, herzustellen. Algorithmisches Denken: A Problem-Based Introduction lehrt den Leser, die besten Algorithmen und Datenstrukturen für eine gegebene Situation zu verwenden, indem es ihn durch die Lösung realer Probleme aus internationalen Programmierwettbewerben führt, z. B. wie man feststellt, ob Schneeflocken einzigartig sind; wie man ein Spiel mit der minimalen Anzahl von Zügen gewinnt; wie man die Anzahl der Wege zu einem Haus findet; wie man aus einer Höhle in möglichst wenigen Schritten entkommt usw. Die Leser befassen sich mit anspruchsvollen Themen wie Rekursion, dynamischer Programmierung, Graphen, gierigen Algorithmen, Heaps, Hashtabellen, Segmentbäumen und anderen Datenstrukturen für den effizienten Umgang mit Daten.
Das Buch enthält keinen Pseudocode: Der gesamte Code ist in C geschrieben und wird im Text ausführlich erklärt (C ist de facto eine Programmiersprache für Programmierwettbewerbe). Zingaro zeigt auch, wie mehrere Probleme auf Algorithmen in Graphen reduziert werden können. Am Ende des Buches sollten die Leser verstehen, wie wichtig die Modellierung ist, wie man ein Problem sorgfältig durcharbeitet und warum es sich lohnt, Daten mithilfe von Datenstrukturen zu organisieren.