Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
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
Grafische Notation
33
Pseudocode
34
1.4 Schleifen
35
1.5 Verzweigungen
37
1.6 Logische Aussagen
39
Logisches NICHT
40
Logisches UND
41
Logisches ODER
41
Klammerung und Vorrangsregeln
42
Besondere Aussagen
43
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
Rechnen im Binärsystem
53
Einheiten
54
2.3 Kodierungen
56
Natürliche Zahlen
56
Ganze Zahlen
57
Kommazahlen
58
Text
59
Bilder
60
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
Repräsentation im Speicher
72
Andere Operationen auf den Datenstrukturen
75
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
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
Suchen in Suchbäumen
152
Ein Element hinzufügen
154
Suchbäume erstellen
155
Balancierte Bäume
157
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
Gerichtete Kanten
179
Gewichtete Kanten
180
Beispiele für Graphen
180
9.4 Suchen und Bewegen in Graphen
182
Implementierung
183
Beispiel
184
9.5 Eigenschaften von Graphen
187
Bäume und Zyklenfreiheit
187
Zusammenhang
188
Eulersche Graphen
189
Planarität
189
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
Reguläre Grammatiken
199
Kontextfreie Grammatiken
200
Höhere Grammatiken
201
10.3 Automaten
201
Endliche Automaten
202
Höhere Automaten
205
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
Aktivitäten und deren Reihenfolge
220
Start- und Endknoten
220
Verzweigungen
221
Verantwortungsbereiche
222
11.5 Strukturmodellierung
223
Objekte und Klassen
223
Vererbung
224
Abstrakte Klassen
225
Sichtbarkeiten
225
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
Grundbegriffe
236
Darstellung
236
Kardinalitäten
237
Schlüssel
239
12.3 Operationen auf Datenbanken
239
Daten abfragen und sortieren
239
Gruppierung von Daten
243
Einträge einfügen
245
Einträge modifizieren
245
Einträge löschen
246
12.4 Empfohlene Strukturierung von Daten
246
Ein Wert pro Zelle
247
Redundanzen vermeiden
249
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
Autonomie und Lernfähigkeit
262
Intelligenztests für Maschinen
263
Starke und schwache Intelligenz
264
13.3 Nachgeahmte Intelligenz
265
Entscheidungsbäume
265
Wissens- und logikbasierte Systeme
267
Heuristiken
271
13.4 Maschinelles Lernen
272
Arten des Lernens
272
Künstliche neuronale Netze
274
Generative KI
278
13.5 Anwendungsfelder
281
Automatische Textverarbeitung
281
Empfehlungssysteme in der Medizin
282
Intelligente Handykameras und Bildbearbeitung
283
Selbstfahrende Fahrzeuge
284
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
Die Knobelei als Schaltplan
293
Exklusives ODER
294
Algorithmen als logische Schaltungen
295
14.3 Hardware-Komponenten und ihr Zusammenspiel
295
14.4 Betriebssysteme
298
Kernfunktionen von Betriebssystemen
299
Verbreitete Betriebssysteme
301
Betriebssystemnahe Programmierung
302
14.5 Betriebssystemunabhängigkeit
303
Interpreter
303
Bytecode-Sprachen
304
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
Clients und Server
313
Weitere Netzwerkgeräte
314
15.4 Internetstruktur
316
Services im Internet
318
Daten im Internet versenden
318
Adressauflösung zum Finden der IP-Adresse
319
15.5 Einheitliche Kommunikation
320
Eine HTTP-Anfrage
320
Die Antwort des Webservers
321
Die Anfrage zusätzlicher Ressourcen
322
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
Die Top-down-Methode
345
Die Bottom-up-Methode
346
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
Änderungen kleinschrittig speichern
354
Daten mit einem Server synchronisieren
355
Mit anderen Personen zusammen entwickeln
355
Verschiedene Entwicklungszweige verfolgen
357
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
Kompilierungsfehler
365
Laufzeitfehler
366
Logische Fehler
367
Designfehler
368
Umgebungsfehler
370
Kommunikationsfehler
370
19.5 Techniken zur Fehlervermeidung
371
Testen
371
A/B-Testing
373
Programmierstil
373
Pair Programming
373
Code Review
374
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
Ausführung
380
Erklärung des Programmcodes
381
20.3 Variablen
381
20.4 Klassen, Objekte und Methoden
382
Eigenschaften von Objekten
383
Verhalten von Objekten
383
20.5 Datentypen
386
Zahlen
386
Wahrheitswerte
387
Zeichen und Zeichenketten
388
Arrays
389
Queues und Stacks
390
Sets und Maps
392
20.6 Kontrollstrukturen
393
Verzweigungen
393
Schleifen
395
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
Software für den Überwachungsstaat
405
Hutfarben beim Hacken
407
21.2 Informatik in der Wirtschaft
408
Automatisierung statt Arbeitsplatz
408
Netzneutralität
409
21.3 Der Wert persönlicher Daten
410
21.4 Gemeingüter und Open Source
412
Wissen für jedermann
412
Kostenlose und quelloffene Software
413
Probleme der Anarchie
414
21.5 Vertrauen in Informationen
415
21.6 Verantwortung für Technologie
416
Das Leben in der Blase
417
Vermeidbare Fehlfunktionen
417
Unvermeidbare Folgen
419
21.7 IT-Gerechtigkeit
420
21.8 Die technisierte Gesellschaft
421
Arbeitszeit: 24/7
421
Individuelle Abhängigkeit von Technik
422
Gesellschaftliche Abhängigkeit von Technik
422
21.9 Zusammenfassung und Einordnung
423
22 Extro
424
22.1 Wie wird man Informatiker*in?
424
Inhalte des Informatikstudiums
424
Organisation des Studiums
426
Die Entscheidung für ein Studium
427
Ausbildung als Alternative zum Studium
428
Ein duales Studium als Mittelweg
429
Das Berufsleben in der Informatik
429
22.2 Ressourcen
430
22.3 Wie geht es weiter?
430
Index
433