Studierende von Bachelor-Studiengängen an Hochschulen und Universitäten, bei denen die Informatik auf irgendeine Weise im Curriculum auftaucht, dürfen sich freuen. Dieses Buch verschafft Ihnen - so einfach, schnell und unterhaltsam wie möglich - einen umfassenden Überblick über die praktische, theoretische und technische Informatik. Sie können das Buch ergänzend zur Vorlesung oder zum Selbststudium nutzen. Der Autor kennt die typischen Probleme der Studierenden. Überwinden Sie Ihre Scheu vor Formalismen. Entdecken Sie den Reiz der Computerwissenschaften! Dies ist das perfekte Buch für den Einstieg in die Informatik.
E.-G. Haffner studierte an der Universitat Kaiserslautern Informatik und Mathematik und promovierte dort. Seit 2002 ist er Professor an der Hochschule Trier mit Lehrverantwortung fur die Studiengange Elektrotechnik, Medizintechnik sowie Wirtschaftsingenieurwesen.
Über den Autor 29
Einführung 29
Zu diesem Buch 29
Konventionen in diesem Buch 29
Törichte Annahmen über den Leser 30
Wie dieses Buch aufgebaut ist 30
Symbole in diesem Buch 34
Wie es weitergeht 35
Teil I: Informatik zum Verlieben 37
Kapitel 1 Informatik im Schnelldurchlauf 39
Mathematik der Information 39
Pandoras Büchse 41
Evolution einer fantastischen Idee 44
Praktische Theorien in der Informatik 45
Gigantische Möglichkeiten der Technik 46
Denkende Computer 47
Kapitel 2 Was die Informatik im Inneren zusammenhält 49
Einblicke und Ausblick 49
Säulen der Softwaretechnik 54
Wechselseitige Impulse durch Hardware und Software 57
Disziplinen der Informatik 59
Kapitel 3 Im Dschungel von Bits und Bytes 63
Hochgeschwindigkeitstechnik im Kleinstformat 63
Atemberaubende Speichermöglichkeiten 64
Die Welt in Zahlen 66
Von Maschinensprache zu Hochsprache 68
Übersetzen und Interpretieren 71
Steuern und Regeln 73
Kapitel 4 Wie Informatiker denken 75
Logische Vorschriften 75
Öffentlich, aber diskret 77
Teilen und Herrschen 79
Rekursiv statt zurück 81
Nerds am Werk 84
Zeitloses von nutzlosem Wissen unterscheiden 84
Teil II: Schöne neue digitale Welt 89
Kapitel 5 Fingertechnik 91
Alles wird digital 91
Warum zwei Werte reichen 94
Bitte ein Byte! 95
Textwerte ermitteln 97
Malen statt Zahlen 99
Konvertierung von Dezimalzahlen in Binärzahlen 100
Hex hex! 102
Rechnen im Dualsystem 103
Festpunkt und Fließkomma 111
Kapitel 6 Heilen mit boolescher Algebra 119
Allheilmittel Algebra 119
Logische Verknüpfungen 123
Gesetze und Regeln 125
Stunde der Wahrheitstabellen 130
Digitale Vergatterung 132
Basis und Komposition 133
Stolpersteine der booleschen Algebra 135
Kapitel 7 Schalten und Walten 137
Entwurfsprobleme spielend lösen 137
Funktionen in Wahrheitstafeln 139
Normale Formen 143
Dont Care? Ist mir doch egal! 146
Minimierung von Termen 146
Kapitel 8 Fangen mit Schaltnetzen 157
Durchblick in Schaltungen 157
Lustige Symbole 161
Decodiernetzwerke 162
Multiplexer ohne Komplexe 163
Komparator für Dualzahlen 164
Halb- und Volladdierer 165
Gatterlaufzeiten 168
Klitschige Glitches 169
Kapitel 9 Schaltwerke der Menschheitsgeschichte 173
Schmerzfreie Rückkopplungen 173
Zustände wie bei den Graphen 175
Kritische Läufe 175
Flanken ohne Tore 177
Familie der Flipflops 177
Zähler mit Flipflops 184
Schiebung in den Registern 185
Kapitel 10 Mikroprogramme im Land der Automaten 187
Synchrone Automaten 187
Entwurf von Schaltwerken 190
Steuern für ein gutes Werk 193
Mikroprogramme als Meisterwerke 196
Teil III: Besichtigung der Maschinenhalle 205
Kapitel 11 EVA und die Vertreibung aus dem Paradies 207
Digitale Kernspaltung 207
Eingabe, Verarbeitung und Ausgabe 208
Rechnerarchitektur von Neumann 209
Komponenten eines modernen Computers 212
Spannung zwischen Zentrale und Peripherie 215
Kapitel 12 Alle Macht der Zentraleinheit 217
Kein Prozess ohne Prozessor 217
Steuern für ein gutes Werk 221
Konstruktion aus ALU 223
Registerspeicher mittendrin 224
Die Fäden laufen zusammen 224
Laden 227
Programme mit System 228
An den Start es geht los! 230Inhaltsverzeichnis 17
Kapitel 13 Speicher im ganzen Haus 233
Komische Speichertypen 233
Speicher für die Massen 241
Kapitel 14 Mit dem Bus zum BIOS 245
Organisation von Ein- und Ausschaltvorgängen 245
Unterbrechungen mit Interrupts 247
Fit trotz Ablaufinvarianz 249
Schnittstellen ohne Verletzungen 250
Eingabegeräte 251
Ausgabegeräte 255
Kapitel 15 Cache me if you can 257
Risiken reduzieren mit RISC 257
Pipelines ohne Öl 259
Parallele Welten 262
Cache bringt Cash 265
Architekturen der Zukunft ein Blick in die Glaskugel 266
Teil IV: Sprachen für Computer 269
Kapitel 16 Warum alles so kompliziert ist 271
Fallstricke menschlicher Sprache 271
Maschinenlesbares Kauderwelsch 274
Assemblercode zum Abgewöhnen 278
Unterprogramme 281
Gipfel erklimmen mit Hochsprachen 283
Kapitel 17 Programmiersprachen und Werkzeuge 287
Programmieren als Kunstform 287
Interpreter ohne Spielraum 289
Programme, die Programme schreiben 291
Werkzeuge zum Übersetzen 293
Ein bunter Strauß von Programmiersprachen 297
Kapitel 18 Bestandteile einer Programmiersprache 303
Backus-Naur-Kuchenform 303
Bezeichner und Konstanten 307
Operatoren 308
Gleich ist nicht gleich gleich 310
Atomare Datentypen 310
Kontrollstrukturen, so weit das Auge reicht 311
Erlaubte Ausdrücke 312
Ausnahmsweise eine Exception 314
Angekettete Strings 316
Ein Strom von Streams 316
Argumente und Parameter 317
Kapitel 19 Auf was Sie beim Programmieren achten sollten 321
Reusability Reusability Reusability 321
Abstraktion als Universalwaffe 323
Wert eines Ausdrucks und Seiteneffekt 326
Ende des Arrays 327
Gefährliche Zeiger 329
Kapitel 20 Programme entwickeln mit System 333
Entwickeln in behaglicher Umgebung 333
Bibliotheken ohne Bücher 335
APIs effektiv nutzen 338
Lebenszyklus eines Programms339
Teil V: C und andere Vitamine 343
Kapitel 21 Wer A sagt, muss auch C sagen 345
Das kleine A-B-C 345
Programmaufbau in C 348
Das sind Argumente 351
Musterbeispiel verstehen 355
Zeigerzauberwelt 358
Kapitel 22 C als Muttersprache 363
Atomare Datentypen363
Operationen mit Operatoren 366
Ein weites Feld von Arrays und Structures 367
Zeichen in Ketten legen 369
Kontrollstrukturen 372
Mit Dateien arbeiten 378
Standardkanäle 380
Kapitel 23 Fiese Tricks in ANSI C 383
Spiel mit den Pointern 383
Warum kurz, wenn es noch kürzer geht? 386
Zeiger und Felder 388
C für flinke Finger 389
Dynamisch trotz static 391
Fehler auf dem Behandlungsstuhl 392
Kapitel 24 Abheben mit C++ 395
Objekte und Klassen 395
Die Sache hat Methode 396
Vererbungslehre 400
Operatoren überladen 401
Ein- und Ausgabe neu ordnen 402
Strings zum Verlieben 403
Streams und Stringstreams 408
Ein Königreich für ein Template 408
Öffnungszeiten der Standardbibliothek 410
Werfen und Fangen: Ausnahmebehandlung 411
Virtuelle Methoden 413
Polymorphie und ihre Heilungschancen 417
Kapitel 25 Apps mit Objective-C und Swift 419
Apps für Eier 419
Kurzer Plausch über Smalltalk 420
Instanzen verstehen 422
Synthetische Objekte 422
.. Faulheit siegt! 425
Design Pattern für Apps 426
Schnelle Aufzählung 429
Swift ist besser 429
Teil VI: Eruption aus Java 435
Kapitel 26 Heißer Kaffee 437
Java für alle 437
Virtuelle Maschinen 438
Bezeichner und Variablen 440
Nicht einwickeln lassen 441
Kontrolle mit Struktur 446
Kapitel 27 Felder und mehr 449
Arrays 449
Iteration und Rekursion 452
Grafische Komponenten und Applets 453
Kapitel 28 Klasse Klassen 457
Objekte der Begierde 457
Kapseln mit Methode 458
Von Face zu Interface 462
Abstrakte Basisklassen 465
Casting von Typen 466
Vergleichen und Kopieren 468Inhaltsverzeichnis 21
Kapitel 29 Sammeln für Java 471
Collections verwenden 471
Mit Iteratoren klettern 476
Exceptions sinnvoll behandeln 477
Zugesicherte Assertions 479
Kapitel 30 Apps mit Android 481
Entwickeln in der richtigen Umgebung 481
XML und Android 484
UI, tolle Elemente 486
Teil VII: Datenstrukturen und Algorithmen für die Ewigkeit 489
Kapitel 31 Algorithmen für den Hausgebrauch 491
Systematik von Programmen 491
Teile und herrsche! 492
Zauberkraft durch Rekursion 493
Türme von Hanoi 494
Euklid& Co 497
Analyse von Algorithmen ohne Komplexe 498
O-Ton der O-Notation 499
Kapitel 32 Elementare Datenstrukturen 505
Abstrakte Datentypen 505
Listige Listen 508
Stacks im Keller 509
Schlängelnde Queues 510
Doppelt gemoppelte Deques 512
Klang der Strings 515
Struktur von Zeichenketten 515
Aufspüren von Mustern 516
Kapitel 33 Tabellen für alle Einsatzzwecke 519
Struktur von Tabellen 519
Sequenzielle Suche 522
Binäre Suche 523
Sortierverfahren 527
Völlig legal: HashTables 539
Hashing ohne Kollisionen 540
Kapitel 34 Wald und Bäume überblicken 543
Äste an Wurzeln 543
Binärbäume für die Informatiker 546
Ordnung in den Laden bringen 546
Früchte der Syntaxbäume 551
Entscheidungsbäume 553
Kapitel 35 Jede Menge Graphen 555
Graphen vor Gericht 555
Erforschung von Graphen 557
Schmerzlose Adjazenz 558
Planierte Graphen 559
Langer Weg zum kürzesten Graphen 561
Teil VIII: Computerarchitektur als Gesamtkunstwerk 565
Kapitel 36 Betriebssysteme 567
Rechte und Pflichten 567
Administratoren und DAUs 569
Prominente Vertreter 570
Ordnerstrukturen für Dateien 572
Tasks den Prozess machen 575
Nadel und Threads 577
Virtuelle Echtzeitanforderungen 578
Kapitel 37 Architektur von Software 581
Architekten für Programme 581
Gebäude mit drei Stockwerken 583
Anforderungsanalysen 584
Lasten- und Pflichtenhefte 585
Modellieren mit UML 586
Vorgehensmodell zur Software-Entwicklung 587
Kapitel 38 Datenbanksysteme 589
Bank für Daten 589
Relationale Datenbanksysteme 590
SQL im Crashkurs 595
Offene Quellen 599
Teil IX: Künstliche Intelligenz gegen natürliche Dummheit 601
Kapitel 39 Führung durch die Asservatenkammer 603
Cyborgs auf der Spur 603
Wissen ohne Gewissen 606
Planen und Entscheiden 607
Musteranalyse und erkennung 607
Intelligente Agenten oder Suche oder was? 607
Künstliche Wesen mit eigenem Bewusstsein 608
Kapitel 40 Spielend suchen und finden 611
Aufspüren mit GPS 611
Bergsteiger-Methode 614
Heuristische Suche im Heu 617
Navigieren zu den Sternen mit dem A*-Algorithmus 619
Spaß mit MINIMAX und Moritz 621
Beschneidungen von Alpha bis Beta 624
Kapitel 41 Lärmende Systeme 629
Maschinelles Lernen 629
Inferenz ohne Sperenzien 631
Landung auf der Wissensbasis 632
Induktive und deduktive Methoden 632
Rauschen im Datenwald 633
Lernen mit Konzept 634
Entscheiden lernen mit Bäumen 638
Lernen ohne Lehrer 644
Kapitel 42 Expertensysteme für Profis 645
Prolog 645
Expertenwissen 649
Diagnosen vom Elektronenhirn 651
Fallbasiertes Schließen 652
Vorhersagen treffen und reich warden 658
Kapitel 43 Kunstvolle neuronale Netze 659
Kopieren geht über Studieren 659
Vorwärts zu den verketteten Netzen 662
Rosenblatts Theorem 664
Fortschritt durch Backpropagation 668
Die Macht der Rückkopplungen 676
Attraktive Attraktorennetze 678
Grenzenlose Anwendungsfelder 680
Teil X: Im Netz der Netze 681
Kapitel 44 Ganz nach Protokoll 683
Militärische Ideen 683
Tanz um die Redundanz 684
Schichten und Geschichten 685
Hubs, Switches und Router 690
Übersicht der wichtigsten Dienste 691
Kapitel 45 Gestalten und Gestaltung im Web 695
Webtechnologie für Insider 695
HTML bis XML 699
Unbegrenzte Möglichkeiten700
Kapitel 46 Skriptsprachen 705
Geschälte Shell-Skripte 705
Kein bisschen umständlich: awk 709
Perlentauchen mit perl 711
Siegeszug von PHP 714
JavaScript 716
Kapitel 47 Socket- und Threadprogrammierung 719
Spaß mit Client und Server 719
Socken für die Sockets 720
Prozesse und Threads 725
Schutz durch Mutexe 728
POSIX-Standard 728
Eine eigene Bank bauen 729
Kapitel 48 Durchblick und Ausblick 739
Vom Web getrieben 739
Ad hoc statt lang geplant 742
Big Data für Big Brother 743
Im Nebel der Cloud 744
Weltweite Aussichten 745
Teil XI: Die praktischen Seiten der theoretischen Informatik 747
Kapitel 49 Komprimierte Information 749
Dreiklang der Information 749
Transportieren und speichern 752
Sinnfreies Messen von Information 753
Gehalt für Entscheidungen 758
Entropie als Theorie der Unordnung 760
Kompressen ohne Mull 763
Optimale Codes 764
Kapitel 50 Formulare für formale Sprachen 775
Alphabet und Grammatik 775
Endliche Automaten und Sprachen 778
Reguläre Sprachen 779
Immer den Kontext beachten 781
Pumpen für den Beweis 782
Freiheit für den Kontext 784
Kapitel 51 Logik und Korrektheit für Informatiker 789
Logische Aussagen 789
Prädikat wertvoll 792
Armer Gödel 794
Korrektheit von Programmen 796
Formale Verifikation ohne Schmerzen 798
Kapitel 52 Theorie für Unberechenbare 803
Algorithmen entschlüsseln 803
Anwerfen der Turing-Maschine 805
Berechenbare Turing-Programme 809
Halteproblem ohne Züge 811
Kapitel 53 Mittel gegen theoretische Komplexe 815
P wie praktische Probleme 815
SAT-Probleme bei bestem Empfang 818
Ganz bestimmt nicht-deterministisch 819
Ein schwerer Rucksack 821
Händler auf der Reise 821
Cooks Geniestreich 822
NP-Vollständigkeit und der Gral der Weisheit 823
Teil XII: Top Secret 829
Kapitel 54 Risiken und Manager 831
Grundfeste der Informationssicherheit 831
CIA-Triade 832
Ganz sichere Fakten über Risiken 833
Risikolebenszyklus 835
Wichtige Rollen und Dokumente 839
Information Security Policy 841
Internationale Sicherheitszertifizierungen842
Kapitel 55 Angriffsarten und Schutzmaßnahmen 843
Offene und verborgene Bedrohungen 843
Einbrecher ohne Handschuhe 844
Soziales Hacken und Phishing 844
Der Mann in der Mitte und andere Angriffsmöglichkeiten 847
Technische Problemzonen 849
Protokollschwächen 854
Protokolle mit »S« 855
Per Tunnel in die Sicherheit 857
WLAN ohne böse Überraschung 857
Kapitel 56 Vierbeiniger Besuch aus Troja 859
Kleinstlebewesen in der Informatik 859
Funktionsprinzip der Viren 860
Infektionsarten 861
Gemeine Viren 861
Rasende Würmer 862
Pferde, die keine sind 862
Spam, Spam, Spam 866
Antiviren als Antikörper 868
EICAR-Test positive 870
Logische Bomben 870
Kapitel 57 Alice und Bob im Wunderland der Zahlen 873
Dieser Abschnitt ist geheim 873
Wfstdimvfttfmvohtwfsgbisfo 874
Symmetrische Klassiker 878
One Time Pad 882
Paradox: Sichere Kommunikation über unsicheren Kanal 884
Aufbau von Kryptosystemen 888
Kapitel 58 Wände gegen Feuer 891
Moderne Sicherheitsinfrastrukturen 891
Filteranlage für Pakete 893
Besuch beim Statusinspektor 895
Stellvertreter-Systeme für und gegen alles 897
Eindringlinge geschickt identifizieren 899
Teil XIII: Der Top-Ten-Teil 903
Kapitel 59 Zehn bedeutende Meilensteine der Informatik 905
Eine sehr, sehr alte Rechenmaschine 905
Die digitale (Zeit-)Rechnung beginnt 906
Der wirklich erste Computer 906
Was wirklich berechenbar ist 907
Spielend voranschreiten 907
Personal Computer erobern die Welt 907
Fenster und Mäuse 907
Im Netz der Netze 908
Die mobile Revolution 908
Jetzt sind Sie am Zug! 908
Kapitel 60 Die zehn schlimmsten Irrtümer der Informatik 909
Ende 911
Stichwortverzeichnis 913