E-Book, Deutsch, 440 Seiten
Reihe: Rheinwerk Computing
Boockmeyer / Fischbeck / Neubert Fit fürs Studium – Informatik
3. Auflage 2025
ISBN: 978-3-367-11272-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
E-Book, Deutsch, 440 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-367-11272-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Schließen Sie Wissenslücken , die Ihnen im Studium das Leben schwer machen könnten. Dieser Vorkurs präsentiert Ihnen alles Wesentliche Schritt für Schritt, anschaulich und zum Mitmachen. Jedes Kapitel beginnt mit einer Knobelei, die Sie ohne Vorkenntnisse lösen können und die zu einem der Grundkonzepte der Informatik führt. Der Computer kann dabei meist ausgeschaltet bleiben – um einen Algorithmus zu entwerfen, in formale Sprachen einzusteigen oder die Grundlagen der Verschlüsselung zu verstehen, reichen Papier, Bleistift und dieses Buch.
Die Autoren kennen typische Einstiegsprobleme und gehen auch die schwierigen Themen mit Schwung und didaktischem Feingefühl an. Diagramme, Beispiele und Aufgaben mit Lösungen helfen, alles zu verstehen. Mit Grundkenntnissen zu Rechnerarchitekturen, Algorithmen und ihrer Komplexität, formalen Sprachen, objektorientierter Programmierung u. v. m. gehen Sie gut vorbereitet ins Studium.
- Alle Grundkonzepte verstehen und Wissenslücken schließen
- Mit vielen Beispielen, Knobeleien, Übungen und Lösungen
- Formale Sprachen, Algorithmen, Encoding etc. ohne Mühe
Aus dem Inhalt:
- Algorithmen und ihre Komplexität
- Formale Sprachen
- Rechnerarchitektur
- Datenstrukturen und Codierung
- Wichtiges aus der Mathematik
- Reguläre Ausdrücke
- Verschlüsselung
- Softwareentwicklung im Team
- Künstliche Intelligenz
- Betriebssysteme und Compiler
- Praxiseinstieg in Programmierung mit Java
- Wie werde ich Informatiker?
Autoren/Hrsg.
Weitere Infos & Material
Geleitwort ... 17
Intro ... 19
1. Algorithmen ... 28
1.1 ... Wo ist der Ausgang des Labyrinths? ... 29
1.2 ... Was ist ein Algorithmus? ... 30
1.3 ... Wie wird ein Algorithmus notiert? ... 32
1.4 ... Schleifen ... 35
1.5 ... Verzweigungen ... 37
1.6 ... Logische Aussagen ... 39
1.7 ... Funktionen ... 43
1.8 ... Zusammenfassung und Einordnung ... 44
1.9 ... Aufgaben ... 45
1.10 ... Lösungen ... 46
2. Zahlen und Kodierungen ... 50
2.1 ... Gib mir 31! ... 51
2.2 ... Zahlensysteme und Einheiten ... 52
2.3 ... Kodierungen ... 56
2.4 ... Zusammenfassung und Einordnung ... 62
2.5 ... Aufgaben ... 63
2.6 ... Lösungen ... 64
3. Datenstrukturen ... 68
3.1 ... Speicherung gleicher Daten ... 69
3.2 ... Geordnete Daten ... 69
3.3 ... Ungeordnete Daten ... 75
3.4 ... Datenzuordnungen ... 77
3.5 ... Zusammenfassung und Einordnung ... 78
3.6 ... Aufgaben ... 80
3.7 ... Lösungen ... 81
4. Einfache Sortieralgorithmen ... 84
4.1 ... Bücher sortieren ... 85
4.2 ... Selection Sort ... 86
4.3 ... Insertion Sort ... 91
4.4 ... Bubble Sort ... 93
4.5 ... Ordnungen ... 96
4.6 ... Zusammenfassung und Einordnung ... 97
4.7 ... Aufgaben ... 98
4.8 ... Lösungen ... 99
5. Komplexität ... 104
5.1 ... Schokolade aufteilen ... 105
5.2 ... Verschiedene Wege führen zum Ziel ... 106
5.3 ... Eingabegröße ... 106
5.4 ... Messen der Laufzeit ... 108
5.5 ... Berechnen der Laufzeit ... 108
5.6 ... Die Landau-Notation ... 111
5.7 ... Typische Laufzeiten ... 114
5.8 ... Zusammenfassung und Einordnung ... 116
5.9 ... Aufgaben ... 118
5.10 ... Lösungen ... 119
6. Effizientere Sortieralgorithmen ... 122
6.1 ... Sortieren im Team ... 123
6.2 ... Merge Sort ... 123
6.3 ... Quick Sort ... 128
6.4 ... Rekursion und Divide and Conquer ... 130
6.5 ... Noch schneller sortieren ... 133
6.6 ... Zusammenfassung und Einordnung ... 135
6.7 ... Aufgaben ... 137
6.8 ... Lösungen ... 138
7. Suchen ... 144
7.1 ... Finden und Sortieren ... 145
7.2 ... Lineare Suche ... 145
7.3 ... Binäre Suche ... 148
7.4 ... Suchbäume ... 151
7.5 ... Zusammenfassung und Einordnung ... 158
7.6 ... Aufgaben ... 159
7.7 ... Lösungen ... 160
8. Backtracking und dynamische Programmierung ... 164
8.1 ... Das Kistenproblem ... 165
8.2 ... Die perfekte Kiste ... 165
8.3 ... Branch and Bound ... 167
8.4 ... Dynamische Programmierung ... 168
8.5 ... Zusammenfassung und Einordnung ... 170
8.6 ... Aufgaben ... 171
8.7 ... Lösungen ... 172
9. Graphen ... 176
9.1 ... Morgendliches Anziehen ... 177
9.2 ... Verknüpfte Daten ... 178
9.3 ... Varianten von Graphen ... 179
9.4 ... Suchen und Bewegen in Graphen ... 182
9.5 ... Eigenschaften von Graphen ... 187
9.6 ... Zusammenfassung und Einordnung ... 190
9.7 ... Aufgaben ... 191
9.8 ... Lösungen ... 193
10. Formale Sprachen ... 196
10.1 ... Sätze erzeugen ... 197
10.2 ... Grammatiken ... 198
10.3 ... Automaten ... 201
10.4 ... Sprachen und Mengenoperationen ... 205
10.5 ... Reguläre Ausdrücke ... 208
10.6 ... Zusammenfassung und Einordnung ... 210
10.7 ... Aufgaben ... 211
10.8 ... Lösungen ... 212
11. Modellierung ... 216
11.1 ... Das Vereinsfest ... 217
11.2 ... Modellierung und Modelle ... 217
11.3 ... Problemmodellierung ... 219
11.4 ... Prozessmodellierung ... 220
11.5 ... Strukturmodellierung ... 223
11.6 ... Zusammenfassung und Einordnung ... 226
11.7 ... Aufgaben ... 228
11.8 ... Lösungen ... 229
12. Datenbanken ... 232
12.1 ... Max' Lieblingsfilme ... 233
12.2 ... Strukturierte Datenspeicherung ... 235
12.3 ... Operationen auf Datenbanken ... 239
12.4 ... Empfohlene Strukturierung von Daten ... 246
12.5 ... Zusammenfassung und Einordnung ... 250
12.6 ... Aufgaben ... 252
12.7 ... Lösungen ... 255
13. Künstliche Intelligenz ... 260
13.1 ... Mensch gegen Maschine ... 261
13.2 ... Was ist Intelligenz? ... 262
13.3 ... Nachgeahmte Intelligenz ... 265
13.4 ... Maschinelles Lernen ... 272
13.5 ... Anwendungsfelder ... 281
13.6 ... Zusammenfassung und Einordnung ... 285
13.7 ... Aufgaben ... 287
13.8 ... Lösungen ... 288
14. Computer ... 290
14.1 ... Addieren auf der Hardware-Ebene ... 291
14.2 ... Logische Schaltungen ... 292
14.3 ... Hardware-Komponenten und ihr Zusammenspiel ... 295
14.4 ... Betriebssysteme ... 298
14.5 ... Betriebssystemunabhängigkeit ... 303
14.6 ... Virtuelle Computer ... 304
14.7 ... Zusammenfassung und Einordnung ... 305
14.8 ... Aufgaben ... 307
14.9 ... Lösungen ... 308
15. Netzwerke ... 310
15.1 ... Die Post des Kanzleramts ... 311
15.2 ... Eine mögliche Lösung für die Poststelle ... 311
15.3 ... Netzwerke ... 313
15.4 ... Internetstruktur ... 316
15.5 ... Einheitliche Kommunikation ... 320
15.6 ... Zusammenfassung und Einordnung ... 323
15.7 ... Aufgaben ... 324
15.8 ... Lösungen ... 325
16. Verschlüsselung ... 328
16.1 ... Fdhvdu ... 329
16.2 ... Warum verschlüsseln? ... 329
16.3 ... Symmetrische Verschlüsselung ... 330
16.4 ... Asymmetrische Verschlüsselung ... 331
16.5 ... Hybridverfahren ... 333
16.6 ... Verschlüsselungen knacken ... 334
16.7 ... Zusammenfassung und Einordnung ... 336
16.8 ... Aufgaben ... 337
16.9 ... Lösungen ... 338
17. Softwareentwicklung ... 340
17.1 ... Algorithmus vs. Software ... 341
17.2 ... Die Werkzeuge in der Softwareentwicklung ... 343
17.3 ... Große Probleme lösen ... 345
17.4 ... Zusammenfassung und Einordnung ... 347
18. Teamarbeit ... 348
18.1 ... Konflikte ... 349
18.2 ... Warum Teams? ... 350
18.3 ... Softwareentwicklung im Team ... 350
18.4 ... Kommunikation in Teams ... 351
18.5 ... Aufgabenverwaltung und Kommunikationswerkzeuge ... 353
18.6 ... Versionsverwaltung ... 354
18.7 ... Zusammenfassung und Einordnung ... 358
18.8 ... Aufgaben ... 360
18.9 ... Lösungen ... 361
19. Fehler ... 362
19.1 ... Auf Fehlersuche ... 363
19.2 ... Warum ist Software fehlerhaft? ... 364
19.3 ... Bugs ... 365
19.4 ... Verschiedene Fehlerarten ... 365
19.5 ... Techniken zur Fehlervermeidung ... 371
19.6 ... Zusammenfassung und Einordnung ... 374
19.7 ... Aufgaben ... 375
19.8 ... Lösungen ... 376
20. Hands-on: Programmieren mit Python ... 378
20.1 ... Die Programmiersprache Python ... 379
20.2 ... Hallo Leser*in ... 380
20.3 ... Variablen ... 381
20.4 ... Klassen, Objekte und Methoden ... 382
20.5 ... Datentypen ... 386
20.6 ... Kontrollstrukturen ... 393
20.7 ... Fehlersuche ... 397
20.8 ... Eine kleine Werkzeugkiste ... 398
20.9 ... Aufgaben ... 399
20.10 ... Lösungen ... 400
21. Ethik in der Informatik ... 404
21.1 ... Recht und Ordnung ... 405
21.2 ... Informatik in der Wirtschaft ... 408
21.3 ... Der Wert persönlicher Daten ... 410
21.4 ... Gemeingüter und Open Source ... 412
21.5 ... Vertrauen in Informationen ... 415
21.6 ... Verantwortung für Technologie ... 416
21.7 ... IT-Gerechtigkeit ... 420
21.8 ... Die technisierte Gesellschaft ... 421
21.9 ... Zusammenfassung und Einordnung ... 423
22. Extro ... 424
22.1 ... Wie wird man Informatiker*in? ... 424
22.2 ... Ressourcen ... 430
22.3 ... Wie geht es weiter? ... 430
Index ... 433
Intro
Haben Sie sich schon einmal gefragt, warum Sie jetzt ein gedrucktes Buch in den Händen halten können? Wie die Website zum Buch und alle anderen Websites auch programmiert und auf Ihrem Computer angezeigt werden können? Oder vielleicht, wieso eine Office-Anwendung oder ein Computerspiel auf Ihrem Computer ausgeführt werden kann? Die Informatik hat inzwischen einen großen Einfluss auf alle Bereiche unseres Lebens genommen.
Versuchen Sie doch einmal, das Gegenteil zu beweisen: Gehen Sie im Kopf Ihre letzte Woche durch, und schätzen Sie, mit wie vielen Dingen Sie in Kontakt gekommen sind, die keinen Bezug zu Informatik haben. Haben Sie etwas gefunden? Dann lassen Sie uns über ein paar Vorschläge genauer nachdenken:
Dachten Sie an Ihr Essen oder Lebensmittel? Die Landwirtschaft ist eine der digitalisiertesten Branchen überhaupt, mit Dutzenden computergesteuerten Systemen zur Qualitätssicherung, automatischen Bewässerung, Schädlingsbekämpfung, Ernteplanung und so weiter. Handelt es sich um ein maschinell hergestelltes Produkt oder überhaupt um ein Produkt, das in irgendeiner Form ausgeliefert wird, so steuert vermutlich ein Computer die Produktion, und mit Sicherheit hat bei der Auslieferung ein Algorithmus dem Lieferdienst den schnellsten Weg ans Ziel gezeigt.
Oder haben Sie an ein Musikstück oder einen Film gedacht? Kaum eine Medienproduktion kommt mittlerweile ohne digitale Aufnahme- und Bearbeitungstechnik aus, und selbst ältere Werke wurden längst in Nullen und Einsen überführt, übers Internet verbreitet und für die Ewigkeit archiviert.
Ein Gebäude? Wahrscheinlich hat eine Software dabei geholfen, Planungsfehler in Architektur und Statik zu vermeiden. Wenn das Gebäude etwas neuer ist, werden vielleicht die Heizung und das Licht von einem Computer gesteuert. Wenn es antik ist, wurde es wahrscheinlich schon mit modernster computergestützter Technologie erfasst, um für die Geschichtsforschung neue Erkenntnisse zu gewinnen.
Ein Lebewesen? Informatiker*innen versuchen, von der Natur zu lernen, und entwickeln Algorithmen, die zum Beispiel vom Verhalten von Ameisen inspiriert sind. Auch die medizinische Versorgung wäre heute ohne die automatische Verarbeitung großer Datenmengen undenkbar.
Das nächstgelegene Gewässer? Das Wetter? Höchstwahrscheinlich überwachen zu genau diesem Zeitpunkt Dutzende Sensoren den Wasserstand, den Sauerstoffgehalt, die Fließgeschwindigkeit und weitere Werte der Flüsse und Seen in Ihrer Umgebung. Und einige der leistungsstärksten Computer der Welt berechnen gerade Daten für die Wettervorhersage in den nächsten Nachrichten, die Sie sehen.
Computer und digitale Systeme, so zeigt uns dieses kleine Gedankenspiel, begleiten uns mittlerweile in allen unseren Lebenslagen und sind aus unserer Welt nicht mehr wegzudenken.
Das Buch
Die Informatik ist eine faszinierende Wissenschaft, die unser gesamtes Leben prägt wie kaum ein anderes Fachgebiet. Mit diesem Buch wollen wir Ihnen diese Faszination vermitteln und Sie begeistern und befähigen, ein Studium der Informatik zu beginnen. Sollten Sie daher gerade am Ende Ihrer Schullaufbahn sein und Interesse an einem Informatikstudium haben, ist dieses Buch genau das Richtige für Sie! Das Gleiche gilt, falls die Schulzeit schon etwas länger zurückliegt, und das ganz unabhängig davon, ob Ihnen dort »Informatik« als Fach begegnet ist. Da die einzigen Voraussetzungen zum Lesen einfache Schulmathematik und Spaß am Knobeln und Lösen von logischen Rätseln sind, benötigen Sie keine weiteren Vorkenntnisse, um direkt ins Thema einsteigen zu können. Falls Sie, zum Beispiel aus dem Schulunterricht, einige Informatikkenntnisse mitbringen, hilft Ihnen das Buch dabei, dieses Wissen zu festigen und auszubauen.
Auch ohne Studienpläne sind Sie selbstverständlich herzlich eingeladen, mit diesem Buch einen Einblick in die Informatik zu gewinnen. Unserer Meinung nach gehört ein Grundverständnis digitaler Technologien längst zum wichtigen Allgemeinwissen, und die Denkmuster unserer Wissenschaft sind auch außerhalb der Informatik sehr nützlich. Egal also, ob Sie selbst etwas Informatik lernen möchten oder vielleicht auch als Lehrkraft Ideen für einen ansprechenden Informatikunterricht suchen: Wir sind uns sicher, dass diese Lektüre ein guter Einstieg ist!
Wie liest man dieses Buch?
Mit Ausnahme von ein paar Grundlagen am Anfang ist es nicht notwendig, die Kapitel in der abgedruckten Reihenfolge zu lesen. Ganz im Gegenteil: Sie können frei nach Interesse und Wissensstand Kapitel überspringen oder spätere Kapitel vorziehen.
Wir empfehlen jedoch, auf jeden Fall mit dem ersten Kapitel über Algorithmen zu beginnen, da Sie die dort eingeführten Konzepte und Schreibweisen auch später immer wieder benötigen werden. Wenn Sie dann Gefallen an algorithmischem Denken gefunden haben, können Sie dieses in den Kapiteln 2 bis 9 anwenden, denn dort sprechen wir über verschiedene Standardalgorithmen und Analysetechniken der Informatik – sozusagen über die Werkzeugkiste aller Informatiker*innen. Kapitel 10, »Formale Sprachen«, macht einen Ausflug in die theoretische Informatik.
In Kapitel 11, »Modellierung«, und Kapitel 12, »Datenbanken«, verlagert sich der Fokus auf die Strukturierung von Problemen, Daten, Prozessen und Systemen. In Kapitel 13, »Künstliche Intelligenz«, beleuchten wir, was es mit künstlicher Intelligenz und maschinellem Lernen auf sich hat. Anschließend steigen wir in die technische Umsetzung ein: Die Kapitel 14 bis 16 widmen sich der Technik hinter Computern, Netzwerken und sicherer Datenübertragung. Ab Kapitel 17, »Softwareentwicklung«, wird es richtig praktisch, denn dort beschäftigen wir uns bis einschließlich Kapitel 19, »Fehler«, mit der Frage, wie eigentlich große und komplizierte Software entwickelt wird. In Kapitel 20, »Hands-on: Programmieren mit Python«, schreiben Sie dann selbst Programme am Computer – hierfür ist es ratsam, zumindest die Grundlagen zu Algorithmen, Datenstrukturen, Objektorientierung, Computern und Softwareentwicklung gelesen zu haben.
Abschließend beschäftigen wir uns in Kapitel 21, »Ethik in der Informatik«, mit ethischen und gesellschaftlichen Fragestellungen: Was darf Informatik alles, und welche Verantwortung tragen wir als Informatiker*innen? Um Ihnen wirklich alles an die Hand zu geben, was Sie für einen erfolgreichen Studienstart benötigen, geben wir Ihnen in Kapitel 22, »Extro«, noch einen Überblick über Ausbildungswege und mögliche Berufsfelder und verraten, wie ein Informatikstudium eigentlich abläuft.
Die meisten Kapitel fangen mit einer Knobelei an, also einer kleinen Rätselaufgabe, die Sie im Kopf, auf Papier oder mit wenigen Alltagsgegenständen lösen können – insbesondere brauchen Sie außer für Kapitel 20 keinen Computer für die Bearbeitung. Anschließend lösen wir die Knobelei auf und zeigen, welche Konzepte der Informatik sich dahinter verbergen. Stück für Stück führen wir im Hauptteil des Kapitels Begriffe und Techniken ein, die wir am Kapitelende zusammenfassen und in den Gesamtzusammenhang stellen.
Ein paar Aufgaben von einfach bis schwer geben Ihnen dann die Möglichkeit, das Gelesene zu verarbeiten und anzuwenden und zu testen, ob Sie alles verstanden haben. Auch diese Aufgaben können Sie (mit Ausnahme von Kapitel 20) völlig ohne Computer oder andere technische Hilfsmittel bearbeiten.
Folgende Stile und Icons verwenden wir, um Dinge zu kennzeichnen:
-
Aufgaben
Alles, was Aufgaben betrifft, erkennen Sie auf den ersten Blick am schraffierten Seitenrand.
Zu Beginn des Kapitels gibt es eine »Knobelei zum Einstieg«, mit der Sie ohne Vorkenntnisse in das Thema des Kapitels einsteigen können.
Am Ende der Kapitel fordern Aufgaben Sie heraus.
[] Manche Aufgaben fordern Sie voraussichtlich mehr als andere. Diesen Aufgaben haben wir nicht nur einen, sondern gleich drei Doktorhütchen vorangestellt.
-
Lösungen
Lösungen finden Sie immer hinter den Aufgaben eines Kapitels. Jede Lösung trägt die gleiche Nummer wie die Aufgabe, die sie löst.
-
Pseudocode und Code
Pseudocode und Code erkennen Sie an dieser Schriftart:
Wiederhole solange Ende des Buches nicht erreicht
Wiederhole solange Seitenende nicht erreicht
Falls Abschnittstyp = AufgabeSchlüsselwörter der Programmiersprache bzw. Begriffe, die in einer Programmiersprache als Schlüsselwort (vgl. Kapitel 20, »Hands-on: Programmieren mit Python«) umgesetzt werden, drucken wir farbig. Moderne Entwicklungsumgebungen bieten verschiedene...




