So gelingt der Einstieg ins Informatikstudium! 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 Verständnishürden 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 an die Hochschule.
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?
Rezensionen / Stimmen
»Buchtipp!«
Sprache
Verlagsort
Verlagsgruppe
Editions-Typ
Produkt-Hinweis
Maße
Höhe: 225 mm
Breite: 169 mm
Dicke: 28 mm
Gewicht
ISBN-13
978-3-367-10854-1 (9783367108541)
Schweitzer Klassifikation
Autor*in
Arne Boockmeyer ist Doktorand an der Professur für Betriebssysteme und Middleware am Hasso-Plattner-Institut in Potsdam. Er befasst sich mit der Didaktik des Faches Informatik, unterrichtet und betreut Studierende in allen Ebenen des Studiums und forscht im Bereich der Bahn-Digitalisierung und (Co-)Simulation. Er begeistert regelmäßig Schüler für die Informatik und freut sich immer, wenn er seine Faszination weitergeben kann.
Philipp Fischbeck kennt typische Hürden beim Lernen aus seiner Arbeit mit Jugendlichen in Schüler*innen-Workshops und mit Studierenden als Tutor und Dozent am Hasso-Plattner-Institut. Dort schloss er seine Promotion mit den Schwerpunkten Algorithmik und Graphentheorie ab. Er ist immer wieder begeistert, wenn sich schwierige Themen und Techniken nach etwas Einarbeitungszeit meistern lassen. Wer sich vom Spaß am Problemlösen und Rätseln anstecken lassen möchte, ist bei ihm richtig.
Stefan Neubert hat zahlreiche Informatik-Workshops und -Camps für Schüler*innen entwickelt und durchgeführt. Studierende im Bachelor-Studiengang haben seine langjährige Tätigkeit in der Lehrveranstaltung "Theoretische Informatik" mit einem Lehrpreis belohnt, weil er mit Leidenschaft dafür arbeitet, komplexe Themen verständlich zu machen. Inzwischen arbeitet er als Program Manager für den Bachelor-Studiengang am Hasso-Plattner-Institut, wo er zuvor auch studiert, unterrichtet und geforscht hat. An der Informatik schätzt er besonders, dass sie Kreativität und Teamfähigkeit erfordert, obwohl das vielleicht oft nicht vermutet wird. Lernende schätzen seine verständliche Sprache und anschaulichen Beispiele - vor allem dann, wenn es anspruchsvoller wird.
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