Inhaltsverzeichnis
| Inhaltsverzeichnis |
| |
| Einleitung | 1 |
| |
| Was ist Informatik? | 5 |
| |
| 1 | Informatik | 7 |
| 1.1 | Was ist Informatik? | 7 |
| 1.2 | Teilgebiete der Informatik | 8 |
| |
| Programmierung | 13 |
| |
| 2 | Vom Problem Über den Algorithmus zum Programm | 15 |
| 2.1 | Vorgehensweise bei der Lösung von Programmierproblemen | 15 |
| 2.2 | Algorithmen | 16 |
| 2.3 | Beispiel: Jüngster Studierender | 18 |
| |
| 3 | Algorithmenentwurf | 23 |
| 3.1 | Beispiel: Minimum einer Menge von Zahlen | 23 |
| 3.2 | Grundkonzepte von Algorithmen | 26 |
| |
| 4 | Grundkonzepte der Programmierung | 37 |
| 4.1 | Programmierung und Programmiersprache Java | 37 |
| 4.2 | Grundstruktur von Java-Programmen | 38 |
| 4.3 | Beispiel: Minimum einer Menge von Zahlen | 45 |
| 4.4 | Variablen | 47 |
| 4.5 | Datentypen | 51 |
| 4.6 | Operatoren und Ausdrücke | 56 |
| 4.7 | Typkonvertierung | 62 |
| 4.8 | Anweisungen und Ablaufstrukturen | 64 |
| 4.9 | Konventionen | 71 |
| 4.10 | Beispiel: Mittelwert einer Folge von Zahlen | 72 |
| |
| 5 | Funktionen | 77 |
| 5.1 | Beispiel: Sortieren einer Menge von Zahlen durch Minimumsuche | 77 |
| 5.2 | Funktionen | 84 |
| 5.3 | Gültigkeitsbereich von Deklarationen | 89 |
| |
| 6 | Rekursion | 93 |
| 6.1 | Beispiel: Sortieren einer Menge von Zahlen durch Mischen | 93 |
| 6.2 | Prinzip der Rekursion | 105 |
| |
| 7 | Klassen und Objekte | 109 |
| 7.1 | Beispiel: Suchen in einem Datenbestand | 109 |
| 7.2 | Klassen | 113 |
| 7.3 | Objekte | 121 |
| |
| 8 | Objektorientierte Programmierung | 137 |
| 8.1 | Objektorientierte Modellierung | 137 |
| 8.2 | UML-Notation | 142 |
| 8.3 | Vererbung | 144 |
| 8.4 | Sichtbarkeit von Information | 155 |
| 8.5 | Polymorphismus | 158 |
| |
| 9 | Klassenbibliotheken | 167 |
| 9.1 | Einbinden von Klassenbibliotheken | 167 |
| 9.2 | Applets | 168 |
| 9.3 | Systemzeit | 171 |
| 9.4 | Streams | 173 |
| 9.5 | Paketsichtbarkeit | 176 |
| |
| 10 | Grafikprogrammierung mit Swing | 181 |
| 10.1 | Grundlagen von grafischen Benutzungsoberflächen | 181 |
| 10.2 | Einfache Benutzungsoberfläche | 183 |
| 10.3 | Beispiel für einfache Grafikbefehle | 193 |
| 11 | Andere Programmierstile | 207 |
| 11.1 | Übersicht | 207 |
| 11.2 | Imperative Programmierung | 208 |
| 11.3 | Funktionale Programmierung | 208 |
| 11.4 | Logische Programmierung | 209 |
| |
| Algorithmen und Datenstrukturen | 211 |
| |
| 12 | Asymptotische Aufwandsanalyse | 213 |
| 12.1 | Zeitaufwand | 213 |
| 12.2 | Speicheraufwand | 217 |
| |
| 13 | Sortieren | 219 |
| 13.1 | Sortieren durch Minimumsuche | 219 |
| 13.2 | Sortieren durch Mischen (1) | 221 |
| 13.3 | Exkurs: Vollständige Induktion | 225 |
| 13.4 | Sortieren durch Mischen (2) | 229 |
| 13.5 | Einige Bemerkungen zum Sortierproblem | 230 |
| |
| 14 | Mengen | 233 |
| 14.1 | Operationen auf Mengen | 233 |
| 14.2 | Mengenverwaltung mit unsortiertem Array | 234 |
| 14.3 | Mengenverwaltung mit sortiertem Array | 237 |
| 14.4 | Mengenverwaltung mit ausgeglichenem binären Suchbaum | 244 |
| 14.5 | Mengenverwaltung mit Hashing | 251 |
| |
| Vom Programm zum Rechner | 255 |
| |
| 15 | Hardware und Programmierung | 257 |
| 16 | Rechnerarchitektur und Maschinensprache | 259 |
| 16.1 | Rechnerarchitektur | 259 |
| 16.2 | Hauptspeicher | 261 |
| 16.3 | Prozessor, Befehlssatz und Maschinensprache | 262 |
| |
| 17 | Schaltungen | 267 |
| 17.1 | Zweiwertige Informationsdarstellung | 267 |
| 17.2 | Boolesche Funktionen | 270 |
| 17.3 | Schaltungen | 274 |
| |
| 18 | Formale Sprachen und Compiler | 283 |
| 18.1 | Compiler | 283 |
| 18.2 | Formale Sprachen und Grammatiken | 284 |
| 18.3 | Sprachtypen nach Chomsky | 289 |
| 18.4 | Übersetzung | 292 |
| 18.5 | Automaten | 297 |
| 18.6 | Endlicher Automat | 298 |
| 18.7 | Semantik | 302 |
| |
| Anhang | 305 |
| |
| A | Schlüsselwörter im Sprachumfang von Java | 309 |
| |
| B | Grundlagen der Java-Programmierumgebung | 313 |
| B.1 | Installation der Java-Programmierumgebung | 313 |
| B.2 | Aufrufsyntax der Java-Entwicklungsprogramme | 318 |
| B.3 | Integrierte Java-Programmierumgebungen | 320 |
| |
| C | Programmieren in C++ | 327 |
| C.1 | Vergleich zwischen Java und C++ | 327 |
| C.2 | Grundkonzepte | 331 |
| C.3 | Zeiger und Referenzen | 338 |
| C.4 | Klassen und Objekte | 343 |
| C.5 | Übersetzungsprozess von C++-Programmen | 349 |
| |
| C | Literaturverzeichnis | 353 |
| |
| Stichwortverzeichnis | 355 |