Gesamt |
|
Anspruch | |
Aufmachung | |
Preis - Leistungs - Verhältnis | |
Die funktionale Programmiersprache C und die objektorientierte, darauf aufbauende Sprache C++ sind für die meisten Informatiker ein Muss. Zwar gibt es mittlerweile Java, was aufgrund seiner Plattformunabhängigkeit sehr beliebt geworden ist, doch an C und C++ kommt man kaum vorbei, vor allem wenn man in Betriebssystemen oder anderen Hardware-nahen Umgebungen programmieren möchte. Ulrich Kaiser und Christoph Kecher haben nun die dritte Auflage des 1358 Seiten umfassenden Lehrbuches für C und C++ herausgebracht.
Nach dem Vorwort beginnt das Buch mit der Erklärung einiger Grundbegriffe der Entwicklung. Danach wird die Programmierumgebung mit Editor, Compiler, Linker und Debugger vorgestellt. Das dritte Kapitel behandelt ausgewählte Sprachelemente in C. Dabei wird unter anderem auf Programmrahmen, Operationen, Kommentare, Ein- und Ausgaben und den Kontrollfluss eingegangen, bevor man die ersten Beispielsprogramme schreiben kann. In den folgenden Kapiteln werden die Arithmetik, aussagenlogische Verknüpfungen und die Darstellung von elementaren Datentypen behandelt.
Programme in C werden in der Regel in Funktionen und Unterprogramme unterteilt. Dabei ist auch die rekursive Verarbeitung von Aufgaben möglich. Das siebte Kapitel behandelt dies mit der Überschrift "Modularisierung". Dabei wird zusätzlich auf die verschiedenen Deklarationen von Variabeln eingegangen und die Bibliothek der C-Runtime angesprochen. Bevor der erste Teil der C-Referenz kommt, wird noch die Verwendung von Zeigern und Adressen behandelt. Nachdem dann die Kombinatorik thematisiert wurde, geht es um die Grafikprogrammierung. Danach wird es wieder etwas theoretischer mit der Leistungsanalyse und -messung von Algorithmen. Dies ist allerdings vor allem bei großen Entwicklungen ein unbedingtes Muss.
Im dreizehnten Kapitel werden verschiedene Sortieralgorithmen besprochen. Dazu gehören beispielsweise Bubblesort, Quicksort und Shellsort. Auch die Leistungsanalyse der Algorithmen darf natürlich nicht fehlen. In den folgenden Kapiteln werden verschiedene komplexe Datenstrukturen wie Listen, Bäume und Hashtabellen besprochen. Es gibt auch einen Einblick in die Graphentheorie. Zwischendurch gibt es noch den zweiten Teil der C-Referenz.
Weiter geht es in dem Buch mit der objektorientierten Entwicklung mit C++. Neben zwei C++-Referenzen wird die Verwendung von Klassen und die Vererbung in C++ besprochen. Im ganzen Buch gibt es Übungsaufgaben, deren Lösungen im Anhang zu finden sind. Darüber hinaus gibt es eine CD, auf der man neben der Entwicklungsumgebung auch die Beispielprogramme aus dem Buch findet.
Der große Nachteil bei der Entwicklung mit C oder C++ im Gegensatz zu Java ist, dass es bei Java eine API gibt, in der alle Möglichkeiten und Bibliotheken verzeichnet sind. Bei C beziehungsweise C++ gibt es sowas leider nicht. Umso wichtiger sind die in diesem Buch vorhandenen Referenzen sowie der Abschnitt über die C-Runtime-Library.
Auf der Rückseite des Buches wird einem ein praktischer Einstieg in C und C++ versprochen. Dies scheint am Anfang jedoch nicht der Fall zu sein. Viel Text und sehr viel Theorie wird vermittelt, bevor es das erste Mal an die Programmierung geht. Allerdings ist dies vernünftig, da die beiden Autoren so die Grundlagen sehr gut vermitteln können und somit nicht alle Dinge dreimal wiederholt werden müssen. Sie vermitteln solide Grundlagen, die man sich nach einmaligem Druchkämpfen durch die Theorie auch gut behalten und anwenden kann.
Vor allem Studenten greifen gerne zu diesem Buch, da nicht nur C und C++ erklärt, sondern auch einige Grundlagen und Grundbegriffe der Informatik besprochen werden. Leider gibt es auch einige Dinge, die intensiver behandelt werden könnten. So werden zwar Sortieralgorithmen besprochen, aber es wird weniger auf die verschiedenen Formen der unterschiedlichen Algorithmen eingegangen. Ebenso werden zwar Listen und Bäume sowie Hashtabellen angesprochen, allerdings gibt es eine Vielzahl verschiedener Strukturen dieser Datentypen wie beispielsweise Red-Black-Bäume, die unter den Tisch fallen gelassen werden.
Die Erklärungen sind gut geschrieben. Viele Beispiele und Übungen runden das Gelernte ab und man kann mit diesem Buch wunderbar C und C++ erlernen. Für Personen, die sich hobbymäßig für die Programmierung interessieren, ist der Einblick in die Informatik sehr interessant. Für Informatik-Studenten und Informatiker dient dieses Buch als gutes Nachschlagewerk, wobei die Bereiche aus der Informatik ausgelassen werden können, da diese nicht ausführlich genug sind.
Fazit:
Unter Informatikern wird dieses Buch nicht umsonst die Bibel der C- und C++-Entwicklung genannt. Es ist ein wunderbares Nachschlagewerk, welches solides Basiswissen zu C/C++ schafft und darüber hinaus einige Grundlagen der Informatik vermittelt.