Informatik für Dummies. Das Lehrbuch - E.-G. Haffner - E-Book

Informatik für Dummies. Das Lehrbuch E-Book

E. G. Haffner

0,0
23,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

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.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 1287

Veröffentlichungsjahr: 2017

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Informatik für Dummies. Das Lehrbuch.

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

1. Auflage 2017

© 2017 WILEY-VCH Verlag GmbH & Co. KGaA, Weinheim

Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.

Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.

Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.

Coverfoto: © foto_don – Fotolia.com

Korrektur: Petra Heubach-Erdmann, Düsseldorf

Satz: inmedialo Digital- und Printmedien, Plankstadt

Druck und Bindung:

Print ISBN: 978-3-527-71024-9

ePub ISBN: 978-3-527-81027-7

mobi ISBN: 978-3-527-81026-0

Über den Autor

Ernst Georg Haffner studierte Informatik und Mathematik an der Universität in Kaiserlautern mit Schwerpunkt Künstliche Intelligenz. Er erwarb das Diplom der Informatik im Bereich Lernende Systeme. Nach einigen Jahren Industrieerfahrung arbeitete er als wissenschaftlicher Mitarbeiter am Institut für Telematik an Sicherheitslösungen im Internet. Mit Themen zu intelligenten Webapplikationen wurde er an der Universität Trier promoviert. Seit 2002 lehrt und forscht er als Professor für Mathematik und Informationstechnik im Fachbereich Technik an der Hochschule Trier.

Auf einen Blick

Einführung

Teil I: Informatik zum Verlieben

Kapitel 1: Informatik im Schnelldurchlauf

Kapitel 2: Was die Informatik im Inneren zusammenhält

Kapitel 3: Im Dschungel von Bits und Bytes

Kapitel 4: Wie Informatiker denken

Teil II: Schöne neue digitale Welt

Kapitel 5: Fingertechnik

Kapitel 6: Heilen mit boolescher Algebra

Kapitel 7: Schalten und Walten

Kapitel 8: Fangen mit Schaltnetzen

Kapitel 9: Schaltwerke der Menschheitsgeschichte

Kapitel 10: Mikroprogramme im Land der Automaten

Teil III: Besichtigung der Maschinenhalle

Kapitel 11: EVA und die Vertreibung aus dem Paradies

Kapitel 12: Alle Macht der Zentraleinheit

Kapitel 13: Speicher im ganzen Haus

Kapitel 14: Mit dem Bus zum BIOS

Kapitel 15: Cache me if you can

Teil IV: Sprachen für Computer

Kapitel 16: Warum alles so kompliziert ist

Kapitel 17: Programmiersprachen und Werkzeuge

Kapitel 18: Bestandteile einer Programmiersprache

Kapitel 19: Auf was Sie beim Programmieren achten sollten

Kapitel 20: Programme entwickeln mit System

Teil V: C und andere Vitamine

Kapitel 21: Wer A sagt, muss auch C sagen

Kapitel 22: C als Muttersprache

Kapitel 23: Fiese Tricks in ANSI C

Kapitel 24: Abheben mit C++

Kapitel 25: Apps mit Objective-C und Swift

Teil VI: Eruption aus Java

Kapitel 26: Heißer Kaffee

Kapitel 27: Felder und mehr

Kapitel 28: Klasse Klassen

Kapitel 29: Sammeln für Java

Kapitel 30: Apps mit Android

Teil VII: Datenstrukturen und Algorithmen für die Ewigkeit

Kapitel 31: Algorithmen für den Hausgebrauch

Kapitel 32: Elementare Datenstrukturen

Kapitel 33: Tabellen für alle Einsatzzwecke

Kapitel 34: Wald und Bäume überblicken

Kapitel 35: Jede Menge Graphen

Teil VIII: Computerarchitektur als Gesamtkunstwerk

Kapitel 36: Betriebssysteme

Kapitel 37: Architektur von Software

Kapitel 38: Datenbanksysteme

Teil IX: Künstliche Intelligenz gegen natürliche Dummheit

Kapitel 39: Führung durch die Asservatenkammer

Kapitel 40: Spielend suchen und finden

Kapitel 41: Lärmende Systeme

Kapitel 42: Expertensysteme für Profis

Kapitel 43: Kunstvolle neuronale Netze

Teil X: Im Netz der Netze

Kapitel 44: Ganz nach Protokoll

Kapitel 45: Gestalten und Gestaltung im Web

Kapitel 46: Skriptsprachen

Kapitel 47: Socket- und Threadprogrammierung

Kapitel 48: Durchblick und Ausblick

Teil XI: Die praktischen Seiten der theoretischen Informatik

Kapitel 49: Komprimierte Information

Kapitel 50: Formulare für formale Sprachen

Kapitel 51: Logik und Korrektheit für Informatiker

Kapitel 52: Theorie für Unberechenbare

Kapitel 53: Mittel gegen theoretische Komplexe

Teil XII: Top Secret

Kapitel 54: Risiken und Manager

Kapitel 55: Angriffsarten und Schutzmaßnahmen

Kapitel 56: Vierbeiniger Besuch aus Troja

Kapitel 57: Alice und Bob im Wunderland der Zahlen

Kapitel 58: Wände gegen Feuer

Teil XIII: Der Top-Ten-Teil

Kapitel 59: Zehn bedeutende Meilensteine der Informatik

Kapitel 60: Die zehn schlimmsten Irrtümer der Informatik

Stichwortverzeichnis

Inhaltsverzeichnis

Über den Autor

Einführung

Zu diesem Buch

Konventionen in diesem Buch

Törichte Annahmen über den Leser

Wie dieses Buch aufgebaut ist

Symbole in diesem Buch

Wie es weitergeht

TEIL I INFORMATIK ZUM VERLIEBEN

Kapitel 1 Informatik im Schnelldurchlauf

Mathematik der Information

Pandoras Büchse

Evolution einer fantastischen Idee

Praktische Theorien in der Informatik

Gigantische Möglichkeiten der Technik

Denkende Computer

Kapitel 2 Was die Informatik im Inneren zusammenhält

Einblicke und Ausblick

Säulen der Softwaretechnik

Modularität

Wiederverwendbarkeit

Wechselseitige Impulse durch Hardware und Software

Disziplinen der Informatik

Wirtschaftsinformatik

Bioinformatik

Medizininformatik

Computerlingusitik

Medieninformatik

Geoinformatik

Umweltinformatik

Sozioinformatik

Kapitel 3 Im Dschungel von Bits und Bytes

Hochgeschwindigkeitstechnik im Kleinstformat

Atemberaubende Speichermöglichkeiten

Die Welt in Zahlen

Von Maschinensprache zu Hochsprache

Übersetzen und Interpretieren

Steuern und Regeln

Kapitel 4 Wie Informatiker denken

Logische Vorschriften

Öffentlich, aber diskret

Teilen und Herrschen

Rekursiv statt zurück

Nerds am Werk

Zeitloses von nutzlosem Wissen unterscheiden

TEIL II SCHÖNE NEUE DIGITALE WELT

Kapitel 5 Fingertechnik

Alles wird digital

Warum zwei Werte reichen

Bitte ein Byte!

Textwerte ermitteln

Malen statt Zahlen

Konvertierung von Dezimalzahlen in Binärzahlen

Hex hex!

Rechnen im Dualsystem

Addition

Negation

Subtraktion

Multiplikation

Division

Festpunkt und Fließkomma

Große und kleine Zahlenbereiche

IEEE-754

Fallstricke der Gleitkommaarithmetik

Kapitel 6 Heilen mit boolescher Algebra

Allheilmittel Algebra

Logische Verknüpfungen

Gesetze und Regeln

Assoziativgesetze

Kommutativgesetze

Distributivgesetze

Neutralität und Komplement

Idempotenz und Absorption

Dualitätsprinzip

De Morgan

Stunde der Wahrheitstabellen

Digitale Vergatterung

Basis und Komposition

Äquivalenz

Antivalenz

Implikation

NAND und NOR

Stolpersteine der booleschen Algebra

Kapitel 7 Schalten und Walten

Entwurfsprobleme spielend lösen

Funktionen in Wahrheitstafeln

Normale Formen

Disjunktive Normalform

Konjunktive Normalform

Don’t Care? Ist mir doch egal!

Minimierung von Termen

KV-Diagramme

Der Quine-McCluskey-Algorithmus

Kapitel 8 Fangen mit Schaltnetzen

Durchblick in Schaltungen

Lustige Symbole

Decodiernetzwerke

Multiplexer ohne Komplexe

Komparator für Dualzahlen

Halb- und Volladdierer

Gatterlaufzeiten

Klitschige Glitches

Kapitel 9 Schaltwerke der Menschheitsgeschichte

Schmerzfreie Rückkopplungen

Zustände wie bei den Graphen

Kritische Läufe

Flanken ohne Tore

Familie der Flipflops

SR-Flipflop

Data Latch

D-Flipflop

Taktflankengesteuertes Flipflop

JK-Flipflop

Zähler mit Flipflops

Schiebung in den Registern

Kapitel 10 Mikroprogramme im Land der Automaten

Synchrone Automaten

Mealy-Automat

Moore-Automat

Entwurf von Schaltwerken

Steuern für ein gutes Werk

Mikroprogramme als Meisterwerke

TEIL III BESICHTIGUNG DER MASCHINENHALLE

Kapitel 11 EVA und die Vertreibung aus dem Paradies

Digitale Kernspaltung

Eingabe, Verarbeitung und Ausgabe

Rechnerarchitektur von Neumann

Komponenten eines modernen Computers

Spannung zwischen Zentrale und Peripherie

Kapitel 12 Alle Macht der Zentraleinheit

Kein Prozess ohne Prozessor

Steuern für ein gutes Werk

Konstruktion aus ALU

Registerspeicher mittendrin

Die Fäden laufen zusammen

Laden

Programme mit System

An den Start – es geht los!

Kapitel 13 Speicher im ganzen Haus

Komische Speichertypen

Ohne RAM läuft nichts

Alle Wege führen zum ROM

Speicher für die Massen

Festplatten

DVDs & Blu-rays & mehr

Kapitel 14 Mit dem Bus zum BIOS

Organisation von Ein- und Ausschaltvorgängen

Unterbrechungen mit Interrupts

Interrupt Request

Interrupt-Service-Routine

Fit trotz Ablaufinvarianz

Schnittstellen ohne Verletzungen

Eingabegeräte

Tastatur

Maus

Touchpad & Touchscreen

Scanner

Ausgabegeräte

Display

Drucker

Kapitel 15 Cache me if you can

Risiken reduzieren mit RISC

Pipelines ohne Öl

Parallele Welten

Leckere Mehrkern-Brötchen

Super, so ein Computer

Entwirrung der Fäden

Cache bringt Cash

Architekturen der Zukunft – ein Blick in die Glaskugel

TEIL IV SPRACHEN FÜR COMPUTER

Kapitel 16 Warum alles so kompliziert ist

Fallstricke menschlicher Sprache

Maschinenlesbares Kauderwelsch

Assemblercode zum Abgewöhnen

Unterprogramme

Gipfel erklimmen mit Hochsprachen

Kapitel 17 Programmiersprachen und Werkzeuge

Programmieren als Kunstform

Interpreter ohne Spielraum

Programme, die Programme schreiben

Werkzeuge zum Übersetzen

Ein bunter Strauß von Programmiersprachen

Imperative und deklarative Programmiersprachen

Funktionale Programmiersprachen

Objektorientierte Programmiersprachen

Kapitel 18 Bestandteile einer Programmiersprache

Backus-Naur-Kuchenform

Bezeichner und Konstanten

Operatoren

Gleich ist nicht gleich gleich

Atomare Datentypen

Kontrollstrukturen, so weit das Auge reicht

Erlaubte Ausdrücke

Ausnahmsweise eine Exception

Angekettete Strings

Ein Strom von Streams

Argumente und Parameter

Kapitel 19 Auf was Sie beim Programmieren achten sollten

Reusability Reusability Reusability

Abstraktion als Universalwaffe

Barrieren

Kapselung

Modularisierung

Schnittstellen ohne Schmerzen

Wert eines Ausdrucks und Seiteneffekt

Ende des Arrays

Gefährliche Zeiger

Kapitel 20 Programme entwickeln mit System

Entwickeln in behaglicher Umgebung

Bibliotheken ohne Bücher

APIs effektiv nutzen

Lebenszyklus eines Programms

TEIL V C UND ANDERE VITAMINE

Kapitel 21 Wer A sagt, muss auch C sagen

Das kleine A-B-C

Programmaufbau in C

B-Zeichner

Das sind Argumente

Musterbeispiel verstehen

Zeigerzauberwelt

Kapitel 22 C als Muttersprache

Atomare Datentypen

Operationen mit Operatoren

Ein weites Feld von Arrays und Structures

Zeichen in Ketten legen

Kontrollstrukturen

if-else

switch

for

while

Mit Dateien arbeiten

Standardkanäle

Kapitel 23 Fiese Tricks in ANSI C

Spiel mit den Pointern

Warum kurz, wenn es noch kürzer geht?

Zeiger und Felder

C für flinke Finger

Dynamisch trotz static

Fehler auf dem Behandlungsstuhl

Kapitel 24 Abheben mit C++

Objekte und Klassen

Die Sache hat Methode

Vererbungslehre

Operatoren überladen

Ein- und Ausgabe neu ordnen

Strings zum Verlieben

Streams und Stringstreams

Ein Königreich für ein Template

Öffnungszeiten der Standardbibliothek

Werfen und Fangen: Ausnahmebehandlung

Virtuelle Methoden

Polymorphie und ihre Heilungschancen

Kapitel 25 Apps mit Objective-C und Swift

Apps für Eier

Kurzer Plausch über Smalltalk

Instanzen verstehen

Synthetische Objekte

… Faulheit siegt!

Design Pattern für Apps

Model View Controller (MVC)

Delegation

Schnelle Aufzählung

Swift ist besser

TEIL VI ERUPTION AUS JAVA

Kapitel 26 Heißer Kaffee

Java für alle

Virtuelle Maschinen

Bezeichner und Variablen

Nicht einwickeln lassen

Kontrolle mit Struktur

Kapitel 27 Felder und mehr

Arrays

Initialisierung

Zugriff auf Elemente

Kopie und Vergleich

Iteration und Rekursion

Grafische Komponenten und Applets

Kapitel 28 Klasse Klassen

Objekte der Begierde

Kapseln mit Methode

Von Face zu Interface

Abstrakte Basisklassen

Casting von Typen

Vergleichen und Kopieren

Kapitel 29 Sammeln für Java

Collections verwenden

Mit Iteratoren klettern

Exceptions sinnvoll behandeln

Zugesicherte Assertions

Kapitel 30 Apps mit Android

Entwickeln in der richtigen Umgebung

XML und Android

UI, tolle Elemente

TEIL VII DATENSTRUKTUREN UND ALGORITHMEN FÜR DIE EWIGKEIT

Kapitel 31 Algorithmen für den Hausgebrauch

Systematik von Programmen

Teile und herrsche!

Zauberkraft durch Rekursion

Türme von Hanoi

Euklid & Co

Analyse von Algorithmen ohne Komplexe

O-Ton der O-Notation

Kapitel 32 Elementare Datenstrukturen

Abstrakte Datentypen

Listige Listen

Stacks im Keller

Schlängelnde Queues

Doppelt gemoppelte Deques

Klang der Strings

Struktur von Zeichenketten

Aufspüren von Mustern

Kapitel 33 Tabellen für alle Einsatzzwecke

Struktur von Tabellen

Sequenzielle Suche

Binäre Suche

Sortierverfahren

Selectionsort

Bubblesort

Für die ganz Eiligen: Quicksort

Völlig legal: HashTables

Hashing ohne Kollisionen

Kapitel 34 Wald und Bäume überblicken

Äste an Wurzeln

Binärbäume für die Informatiker

Ordnung in den Laden bringen

davor (pre)

dazwischen (in)

dahinter (post)

Früchte der Syntaxbäume

Entscheidungsbäume

Kapitel 35 Jede Menge Graphen

Graphen vor Gericht

Erforschung von Graphen

Schmerzlose Adjazenz

Planierte Graphen

Langer Weg zum kürzesten Graphen

Minimaler Spannbaum

Algorithmus nach Kruskal

TEIL VIII COMPUTERARCHITEKTUR ALS GESAMTKUNSTWERK

Kapitel 36 Betriebssysteme

Rechte und Pflichten

Administratoren und DAUs

Prominente Vertreter

Ordnerstrukturen für Dateien

Tasks den Prozess machen

Nadel und Threads

Virtuelle Echtzeitanforderungen

Kapitel 37 Architektur von Software

Architekten für Programme

Gebäude mit drei Stockwerken

Anforderungsanalysen

Lasten- und Pflichtenhefte

Modellieren mit UML

Vorgehensmodell zur Software-Entwicklung

Kapitel 38 Datenbanksysteme

Bank für Daten

Relationale Datenbanksysteme

SQL im Crashkurs

create

select

insert

delete

NoSQL

Offene Quellen

TEIL IX KÜNSTLICHE INTELLIGENZ GEGEN NATÜRLICHE DUMMHEIT 601

Kapitel 39 Führung durch die Asservatenkammer

Cyborgs auf der Spur

Wissen ohne Gewissen

Planen und Entscheiden

Musteranalyse und -erkennung

Intelligente Agenten oder Suche oder was?

Künstliche Wesen mit eigenem Bewusstsein

Kapitel 40 Spielend suchen und finden

Aufspüren mit GPS

Bergsteiger-Methode

Heuristische Suche im Heu

Navigieren zu den Sternen mit dem A*-Algorithmus

Spaß mit MINIMAX und Moritz

Beschneidungen von Alpha bis Beta

Kapitel 41 Lärmende Systeme

Maschinelles Lernen

Inferenz ohne Sperenzien

Landung auf der Wissensbasis

Induktive und deduktive Methoden

Rauschen im Datenwald

Lernen mit Konzept

Entscheiden lernen mit Bäumen

Lernen ohne Lehrer

Kapitel 42 Expertensysteme für Profis

Prolog

Expertenwissen

Diagnosen vom Elektronenhirn

Fallbasiertes Schließen

Vorhersagen treffen und reich werden

Kapitel 43 Kunstvolle neuronale Netze

Kopieren geht über Studieren

Vorwärts zu den verketteten Netzen

Rosenblatts Theorem

Regeln zum Lernen

Das XOR-Problem

Fortschritt durch Backpropagation

Quetsch mich!

Herleitung der Fehlerfunktion

Gewichtsanpassung eines Neurons im Output-Layer

Gewichtsanpassung eines inneren Neurons

Diverse Varianten

Die Macht der Rückkopplungen

Attraktive Attraktorennetze

Grenzenlose Anwendungsfelder

Natürliche Sprache

Wahrnehmung der Umgebung

TEIL X IM NETZ DER NETZE

Kapitel 44 Ganz nach Protokoll

Militärische Ideen

Tanz um die Redundanz

Das Internet-Protokoll

Schichten und Geschichten

Handschlag für TCP

Hubs, Switches und Router

Übersicht der wichtigsten Dienste

Kapitel 45 Gestalten und Gestaltung im Web

Webtechnologie für Insider

HTTP in Kurzform

HTML in Kurzform

HTML bis XML

Unbegrenzte Möglichkeiten

Kapitel 46 Skriptsprachen

Geschälte Shell-Skripte

Kein bisschen umständlich: awk

Perlentauchen mit perl

Siegeszug von PHP

JavaScript

Kapitel 47 Socket- und Threadprogrammierung

Spaß mit Client und Server

Socken für die Sockets

Prozesse und Threads

Das Erzeuger-Konsumenten-Problem

Schutz durch Mutexe

POSIX-Standard

Eine eigene Bank bauen

Kapitel 48 Durchblick und Ausblick

Vom Web getrieben

Ad hoc statt lang geplant

Big Data für Big Brother

Im Nebel der Cloud

Weltweite Aussichten

TEIL XI DIE PRAKTISCHEN SEITEN DER THEORETISCHEN INFORMATIK

Kapitel 49 Komprimierte Information

Dreiklang der Information

Transportieren und speichern

Sinnfreies Messen von Information

Gehalt für Entscheidungen

Entropie als Theorie der Unordnung

Kompressen ohne Mull

Optimale Codes

Shannon-Fano

Huffman

Kapitel 50 Formulare für formale Sprachen

Alphabet und Grammatik

Endliche Automaten und Sprachen

Reguläre Sprachen

Immer den Kontext beachten

Pumpen für den Beweis

Freiheit für den Kontext

Kapitel 51 Logik und Korrektheit für Informatiker

Logische Aussagen

Prädikat wertvoll

Armer Gödel

Korrektheit von Programmen

Formale Verifikation ohne Schmerzen

Kapitel 52 Theorie für Unberechenbare

Algorithmen entschlüsseln

Anwerfen der Turing-Maschine

Berechenbare Turing-Programme

Halteproblem ohne Züge

Kapitel 53 Mittel gegen theoretische Komplexe

P wie praktische Probleme

SAT-Probleme bei bestem Empfang

Ganz bestimmt nicht-deterministisch

Ein schwerer Rucksack

Händler auf der Reise

Cooks Geniestreich

NP-Vollständigkeit und der Gral der Weisheit

Was wäre, wenn?

TEIL XII TOP SECRET

Kapitel 54 Risiken und Manager

Grundfeste der Informationssicherheit

CIA-Triade

Ganz sichere Fakten über Risiken

Risikolebenszyklus

Wichtige Rollen und Dokumente

Information Security Policy

Internationale Sicherheitszertifizierungen

Kapitel 55 Angriffsarten und Schutzmaßnahmen

Offene und verborgene Bedrohungen

Einbrecher ohne Handschuhe

Soziales Hacken und Phishing

Der Mann in der Mitte und andere Angriffsmöglichkeiten

Password Guessing

Password Cracking

Passwort-Sniffing

Man-In-The-Middle

Technische Problemzonen

Designfehler

Pufferüberlauf

Exploit

Überflutung

Protokollschwächen

Schnüffeln und Verschleiern

IP-Angriffe

TCP-Angriffe

Protokolle mit »S«

Per Tunnel in die Sicherheit

WLAN ohne böse Überraschung

Kapitel 56 Vierbeiniger Besuch aus Troja

Kleinstlebewesen in der Informatik

Funktionsprinzip der Viren

Infektionsarten

Gemeine Viren

Rasende Würmer

Pferde, die keine sind

Spam, Spam, Spam

Antiviren als Antikörper

EICAR-Test positiv

Logische Bomben

Kapitel 57 Alice und Bob im Wunderland der Zahlen

Dieser Abschnitt ist geheim

Wfstdimvfttfmvohtwfsgbisfo

Caesar

Vigenère

Symmetrische Klassiker

DES

3DES

AES

One Time Pad

Paradox: Sichere Kommunikation über unsicheren Kanal

Diffie-Hellman

RSA

Aufbau von Kryptosystemen

Ring of Trust

Kapitel 58 Wände gegen Feuer

Moderne Sicherheitsinfrastrukturen

Filteranlage für Pakete

Besuch beim Statusinspektor

Stellvertreter-Systeme für und gegen alles

Eindringlinge geschickt identifizieren

TEIL XIII DER TOP-TEN-TEIL

Kapitel 59 Zehn bedeutende Meilensteine der Informatik

Eine sehr, sehr alte Rechenmaschine

Die digitale (Zeit-)Rechnung beginnt

Der wirklich erste Computer

Was wirklich berechenbar ist

Spielend voranschreiten

Personal Computer erobern die Welt

Fenster und Mäuse

Im Netz der Netze

Die mobile Revolution

Jetzt sind Sie am Zug!

Kapitel 60 Die zehn schlimmsten Irrtümer der Informatik

1943, Thomas John Watson, Vorstand IBM

1949, John von Neumann, Informatikpionier

1962, Dennis Gabor, Nobelpreisträger für Physik

1977, Ken Olson, Gründer DEC

1979, Ian Sharp, Gründer Sharp Associates

1982, Jan Timmer, Vorstand Philips

1985, Steve Jobs, Gründer Apple

1989, Bill Gates, Gründer Microsoft

1992, Ron Sommer, Vorstand Telekom

1995, Robert Metcalfe, Gründer 3com, Erfinder Ethernet

Ende

Stichwortverzeichnis

Endbenutzer-Lizenzvertrag

Guide

Cover

Inhaltsverzeichnis

Begin Reading

Pages

C1

1

2

3

4

7

8

9

11

13

29

30

31

32

33

34

35

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

321

322

323

324

325

326

327

328

329

330

331

333

334

335

336

337

338

339

340

341

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

404

405

406

407

408

409

410

411

412

413

414

415

416

417

418

419

420

421

422

423

424

425

426

427

428

429

430

431

432

433

434

435

436

437

438

439

440

441

442

443

444

445

446

447

448

449

450

451

452

453

454

455

456

457

458

459

460

461

462

463

464

465

466

467

468

469

471

472

473

474

475

476

477

478

479

480

481

482

483

484

485

486

487

489

490

491

492

493

494

495

496

497

498

499

500

501

502

503

504

505

506

507

508

509

510

511

512

513

514

515

516

517

518

519

520

521

522

523

524

525

526

527

528

529

530

531

532

533

534

535

536

537

538

539

540

541

542

543

544

545

546

547

548

549

550

551

552

553

554

555

556

557

558

559

560

561

562

563

564

565

566

567

568

569

570

571

572

573

574

575

576

577

578

579

581

582

583

584

585

586

587

588

589

590

591

592

593

594

595

596

597

598

599

601

602

603

604

605

606

607

608

609

611

612

613

614

615

616

617

618

619

620

621

622

623

624

625

626

627

629

630

631

632

633

634

635

636

637

638

639

640

641

642

643

644

645

646

647

648

649

650

651

652

653

654

655

656

657

658

659

660

661

662

663

664

665

666

667

668

669

670

671

672

673

674

675

676

677

678

679

680

681

682

683

684

685

686

687

688

689

690

691

692

693

695

696

697

698

699

700

701

702

703

704

705

706

707

708

709

710

711

712

713

714

715

716

717

718

719

720

721

722

723

724

725

726

727

728

729

730

731

732

733

734

735

736

737

738

739

740

741

742

743

744

745

746

747

748

749

750

751

752

753

754

755

756

757

758

759

760

761

762

763

764

765

766

767

768

769

770

771

772

773

775

776

777

778

779

780

781

782

783

784

785

786

787

788

789

790

791

792

793

794

795

796

797

798

799

800

801

802

803

804

805

806

807

808

809

810

811

812

813

814

815

816

817

818

819

820

821

822

823

824

825

826

827

828

829

830

831

832

833

834

835

836

837

838

839

840

841

842

843

844

845

846

847

848

849

850

851

852

853

854

855

856

857

858

859

860

861

862

863

864

865

866

867

868

869

870

871

873

874

875

876

877

878

879

880

881

882

883

884

885

886

887

888

889

890

891

892

893

894

895

896

897

898

899

900

901

902

903

904

905

906

907

908

909

910

911

913

914

915

916

917

918

919

920

921

922

Einführung

Womöglich interessieren Sie sich überhaupt nicht für Informatik. Sie wollen gar nicht wissen, wie PCs oder Tablets funktionieren. Programmiersprachen erscheinen Ihnen überflüssig. Das Internet, künstliche Intelligenz oder gar Informationssicherheit halten Sie für völlig irrelevant. Eigentlich suchen Sie ein Buch über afrikanische Wanderheuschrecken. Nun gut, dann dürfen Sie Informatik für Dummies gerne wieder ins Regal zurückstellen.

Für alle anderen gilt Vorsicht! Wenn Sie weiterlesen, werden Sie vermutlich gar nicht mehr genug bekommen von diesem wohl faszinierendsten und bedeutendsten Fachgebiet unserer Zeit!

Zu diesem Buch

Dieses Buch möchte Ihnen helfen, sich rasch einen umfassenden Überblick über die wichtigsten Teilgebiete der Informatik zu verschaffen.

Informatik ist ein »dickes Brett«. Das erkennen Sie allein schon am Umfang des Buches. Aber im Gegensatz zur reinen Mathematik ist die Informatik nicht »trocken«. Wohin Sie auch blicken, alle technischen Innovationen sind von Informatik »durchflutet«. Ob Sie Apps an Ihrem Smartphone bedienen oder sich über die Tricks in einem Spielfilm wundern. Überall steckt Informatik drin. Wichtige technische, praktische und theoretische Grundlagen dazu finden Sie in diesem Buch.

Die konkrete Auswahl der Sachthemen richtet sich nach den typischen Anforderungen in technisch-naturwissenschaftlichen Bachelor-Studiengängen. Allerdings ist Ihr Informatik für Dummies kein Lehrbuch im klassischen Sinne. Es geht nicht darum, jedes Detail systematisch aufzulisten. Das ist in einem einzigen Buch unmöglich zu bewerkstelligen. Vielmehr werden Sie hier neben den erforderlichen Grundlagen auch einige heikle und schwer verständliche Themen vorfinden. Mein Ziel ist es, Ihnen gerade diese Zusammenhänge möglichst klar und präzise zu erläutern. Darüber hinaus habe ich Ihnen eine Reihe von heißen Topics ausgesucht und – glauben Sie mir – davon gibt es jede Menge.

Konventionen in diesem Buch

Ich gehe nicht davon aus, dass Sie besondere Schwierigkeiten haben werden, sich in diesem Buch zurechtzufinden. Dennoch erscheint es angebracht, Sie auf ein paar Dinge hinzuweisen.

Den Quellcode von Computerprogrammen stelle ich in einer eigenen Schriftart dar, das sieht dann zum Beispiel so aus:

  int fakultaet(int n);

Zu den wenigen größeren Programmbeispielen in diesem Buch dürfen Sie sich den Quellcode auch unter http://www.wiley-vch.de/publish/dt/books/ISBN3-527-71024-8 herunterladen.

Hin und wieder tauchen winzige Texte oder Symbole in Kästchen auf, etwa oder . Damit sind die entsprechenden Tasten auf Ihrer realen Computertastatur beziehungsweise dem virtuellen Tablet-Keyboard gemeint.

Ach ja, bevor ich es vergesse. Nervt es Sie auch, in einem Buch stets die explizite weibliche und männliche Form von Leserinnen, Lesern, LeserInnen und allen anderen Typen von Funktionen, Aufgaben und Dingen in der maximal unleserlichen Darstellung aller Geschlechter zu finden? Ich spreche Sie daher, liebe Leserin, lieber Leser, stets mit der maskulinen Form an, die ich aufgrund der Kürze und der geschlechtlich neutralen Verwendungsmöglichkeit bevorzuge. Keine Sorge, ich behalte Sie alle dabei jederzeit im Blick!

Törichte Annahmen über den Leser

Aufgrund der Tatsache, dass Sie bis zu diesem Abschnitt bei der Lektüre vorgedrungen sind, darf ich von einem gewissen Interesse an Informatik bei Ihnen ausgehen. Oder ist diese Annahme bereits töricht?

Die Zielgruppe dieses Buches sind jedenfalls Studierende von Bachelor-Studiengängen an Hochschulen oder Universitäten, bei denen Aspekte der Informatik auf irgendeine Weise im Curriculum des Basisstudiums auftauchten. Für reine Informatiker ist die Darstellung ihres Lehrgebiets in einem einzigen Band sicherlich zu kompakt.

Auch wenn Sie nicht der primären Zielgruppe angehören, möchte ich Sie keineswegs davon abhalten, sich mit Informatik zu befassen. Im Gegenteil: Ich habe mich sehr bemüht, möglichst allgemein verständlich zu erklären. Deswegen eignet sich das Buch gewiss auch zum Selbststudium. Solange Sie es nicht als Briefbeschwerer einsetzen, bin ich zufrieden.

Aber selbst dann habe ich keinen Grund, mich zu beklagen. Immerhin ist es Ihr Buch und Sie können damit machen, was Sie wollen.

Wie dieses Buch aufgebaut ist

Damit Sie sich im Dschungel der Informatik nicht verirren, habe ich das Buch in 13 Teile aufgeschlüsselt, die insgesamt 60 Kapitel umfassen.

Jedes Kapitel ist seinerseits in Abschnitte gegliedert, wie Sie dem Inhaltsverzeichnis entnehmen. Die einzelnen Teile behandeln die folgenden Themen:

Teil I: Informatik zum Verlieben

In diesem ersten Teil erhalten Sie einen leicht verdaulichen Überblick über die gesamte Informatik. Sie werden gewiss von den unglaublichen Möglichkeiten ebenso fasziniert sein, wie ich es selbst bin. Außerdem möchte ich Sie für den winzigen, aber wesentlichen Kern begeistern, der die gesamte Informatik zusammenhält. Weiter geht es in diesem Teil um die zahllosen Anwendungsmöglichkeiten der Informatik. Schließlich will ich Ihnen einen kleinen Einblick in das Denken von Informatikern verschaffen, das sich – vielleicht – schon bald nicht mehr von Ihrem eigenen unterscheiden wird.

Teil II: Schöne neue digitale Welt

Dieser Teil befasst sich mit Digitaltechnik, eine der grundlegenden und maßgeblichen Säulen der Informatik. Vom binären Rechnen bis zur booleschen Algebra werden die wichtigsten Themen behandelt. Schaltnetze und Schaltwerke bilden bereits einen Übergang und Anknüpfungspunkt zur Elektrotechnik. Schließlich befasst sich ein eigenes Kapitel mit »Automaten«. Keine Sorge, dabei geht es nicht um tumbe Geräte für Kaugummis, sondern den Wegbereitern zum Verständnis von Mikroprozessoren.

Teil III: Besichtigung der Maschinenhalle

Der dritte Teil ist der technischen Informatik gewidmet. Ausgehend vom Grundkonzept des Computers werden nacheinander »Zentraleinheit« und »Peripherie« beleuchtet. Dazwischen fährt ein »Bus«, genau genommen sogar ganze Linien von Bussen. Immerhin handelt es sich um weite Strecken, zumindest für Objekte von der Größe eines Elektrons. Außerdem werden die unterschiedlichen Speichertechniken unter die Lupe genommen. Garantiert werden Sie nach der Lektüre die Abkürzung »DDR« nicht mehr für einen ehemaligen sozialistischen Staat halten. Der dritte Teil endet mit fortgeschrittenen Computerarchitekturen und einem Blick in die Glaskugel, was uns wohl die Zukunft noch so alles bescheren mag oder auch nicht.

Teil IV: Sprachen für Computer

»Wie sag’ ich es meinem Computer?« Um diese zentrale Frage dreht sich alles im vierten Teil. Es geht zunächst um grundsätzliche Schwierigkeiten des Programmierens und deren Auflösung. Außerdem zeige ich Ihnen die nötigen Werkzeuge und Instrumente, wie Sie systematisch von einer gegebenen Fragestellung zu einem funktionierenden Programm kommen. Die Eckpfeiler moderner Softwaretechnik schließen den Teil ab.

Teil V: C und andere Vitamine

Eine der wichtigsten Computersprachen überhaupt nennt sich »C«. Dabei handelt es sich um eine Hochsprache, mit der Sie zugleich hardwarenah programmieren. C ist somit universell einsetzbar. Neben Tipps und Tricks zum ursprünglichen Klassiker gehe ich in eigenen Kapiteln auch auf berühmte Ableger wie »C++« oder »Objective-C« ein. Am Ende wird Ihnen sogar »Swift« begegnen, der jüngste Spross, der für die Entwicklung von Apps auf der iPhone/iPad-Seite immer wichtiger wird.

Teil VI: Eruption aus Java

Ähnlich dynamisch wie das komplette Internet hat sich die Programmiersprache »Java« entwickelt. Die grundlegenden Ideen werden in den insgesamt fünf Kapiteln dieses Teils beleuchtet. Ich werde Ihnen erklären, was es mit Klassen, Strings und Collections auf sich hat. Zum Schluss zeige ich Ihnen sogar, wie Sie Java für die Entwicklung von Apps auf Android-Geräten einsetzen.

Teil VII: Datenstrukturen und Algorithmen für die Ewigkeit

Jedes Programm steht und fällt mit dem »Algorithmus«, den es implementiert. Dieser wiederum arbeitet auf »Datenstrukturen«. Datenstrukturen und Algorithmen werden so untrennbar miteinander verflochten. Nacheinander gehe ich auf wichtige Vertreter der jeweiligen Gattungen ein. Ich zeige Ihnen die Verwendung von »Grafen« und »Bäumen«, von »Kellern« und »Schlangen«. Aber keine Sorge, die beißen nicht! Die Verwendung solcher Strukturen wird Ihr Leben wesentlich erleichtern. Ob es ums Suchen oder Sortieren geht, ob Sie spielen oder traversieren. Nach der Lektüre werden Sie die wichtigsten Konzepte beherrschen.

Teil VIII: Computerarchitektur als Gesamtkunstwerk

In diesem vergleichsweise kurzen Teil spanne ich den Bogen von Betriebssystemen, ohne die kein Computer läuft, bis hin zu Datenbanken, den Kornkammern unserer Informationsgesellschaft. Dabei zeige ich Ihnen nicht nur die prinzipielle Vorgehensweise, sondern weise Sie in die mystischen Tiefen der drei Buchstaben ein: »SQL«. Daneben geht es auch um die vielen Schritte zur Herstellung einer Anwendung. Angefangen bei der Anforderungsanalyse über die konkrete Implementierung bis hin zu den Testläufen. Der ewige Kreislauf des Software-Lebens …

Teil IX: Künstliche Intelligenz gegen natürliche Dummheit

Längst ist »KI«, die künstliche Intelligenz, ein anerkannter und sehr erfolgreicher Zweig der Informatik. Der Teil beginnt mit einem Kapitel über die unglaublichen Möglichkeiten, die sich durch ihren Einsatz auftun. Sie werden erfahren, wie Brettspiele programmiert werden können, und ich gehe auch näher auf das wohl faszinierendste Teilgebiet der KI ein: »lernende Systeme«. Dazwischen wird sich alles um »Expertensysteme« drehen: Programme, die das Wissen menschlicher Experten kondensieren. Ein eigenes Kapitel widmet sich schließlich dem wichtigen Zweig der »künstlichen neuronalen Netze«.

Teil X: Im Netz der Netze

Jeder benutzt es; nur die wenigsten wissen wirklich, was sie da tun. Ich meine das Internet, das »Neuland für uns alle«. Dieser zehnte Teil Ihres für Dummies-Buches startet mit dem, was das Internet antreibt: den »Protokollen«. Kryptisch für Außenstehende stellen sie jedoch keinerlei Problem für die Eingeweihten dar, zu denen auch Sie am Ende der Lektüre gehören werden.

In den Folgekapiteln geht es darum, was Sie alles mit solchen Protokollen anstellen. Die Gestaltung des »World Wide Web« finden Sie in einem eigenen Kapitel. Noch spannender wird es, wenn Sie im Kapitel »Socket- und Threadprogrammierung« selbst Hand anlegen an die Client-Server-Entwicklung. Schließlich darf ebenfalls ein Kapitel über Clouds und Big Data nicht fehlen.

Teil XI: Die praktischen Seiten der theoretischen Informatik

Dieser Teil ist der theoretischen Informatik gewidmet, die noch weitaus abstrakter als die Mathematik an grundsätzliche Fragestellungen herangeht. Woher wissen Sie, ob Ihr Programm das tut, was es soll? Gibt es Grenzen dessen, was eine Software überhaupt berechnen kann? Ist es prinzipiell vorhersagbar, ob ein Programm jemals halten wird? Ausführliche Antworten auf diese und andere Fragen finden Sie hier. Dazu befassen sich ein eigenes Kapitel mit »formalen Sprachen« und ein weiteres mit »Logik«, dem Fundament der theoretischen Informatik. Berühmte und teilweise bis heute ungelöste Probleme habe ich mir für das letzte Kapitel des Teils aufgehoben. Wer weiß, vielleicht werden Sie nach der Lektüre einen Schlüssel zur Beantwortung dieser offenen Fragestellungen finden und damit Ruhm und Reichtum bis zum Ende Ihrer Tage ernten?

Teil XII: Top Secret

Spätestens seit der Jahrtausendwende ist »Informationssicherheit« zu einem der drängendsten und bedeutsamsten Bedürfnisse moderner Informationstechnologie geworden – vom neuerlichen Stress mit Geheimdiensten ganz zu schweigen. Dieser Teil beginnt mit dem Managen von Risiken und arbeitet sich anschließend systematisch an die wichtigsten Angriffsarten und Schutzmaßnahmen heran. Außerdem möchte ich Ihnen einen Blick auf die zahlentheoretischen Grundlagen gewähren, der für das Verständnis von Verschlüsselung essenziell ist. Ja, das ist Mathematik, das gebe ich zu. Doch Sie werden sich der Faszination dieses Gebiets am Ende nicht mehr entziehen können.

Teil XIII: Der Top-Ten-Teil

Jedes für Dummies-Buch besitzt einen »Top-Ten-Teil«. Sie glauben mir nicht? Vielleicht befinden Sie sich gerade in einer Buchhandlung. Dann stöbern Sie doch einfach einmal in einem Dummies-Buch zu einem X-beliebigen Thema. Sie werden sehen, der »Top-Ten-Teil« ist obligatorisch. Im vorliegenden Fall geht es um zehn wichtige Meilensteine und zehn furchtbare Irrtümer der Informatik. Mit einem Lächeln werden Sie also die Lektüre beenden, vorausgesetzt, Sie sind nicht so neugierig, als Erstes ganz hinten zu beginnen …

Symbole in diesem Buch

Damit Sie sich leichter in Ihrem Informatik für Dummies-Buch zurechtfinden, habe ich Ihnen einige Stellen mit lustigen Symbolen markiert:

Alles, was Sie sich unbedingt einprägen sollten, wird durch diese Hand hervorgehoben. Den Knoten dürfen Sie sich natürlich auch ins Taschentuch machen.

Erleuchtet! Mit dieser Glühbirne weise ich Sie auf einen Tipp hin. Sparen Sie Zeit und Energie, indem Sie die jeweiligen Ratschläge befolgen.

Dies ist ein Zeichen dafür, dass Ihre höchste Konzentration und Aufmerksamkeit gefordert ist. Ich weise Sie hier auf gefährliche Fallstricke oder typische Fehler hin. Aber keine Sorge, das Symbol taucht nicht allzu oft auf.

Wenn der Dummies-Mann erscheint, müssen Sie damit rechnen, dass der nebenstehende Text recht technisch und vielleicht auch schwierig zu verstehen ist. Trösten Sie sich: Entweder Sie haben ohnehin Spaß daran und lauern schon auf den nächsten Hinweis oder Sie ignorieren den Typen einfach. In beiden Fällen kommen Sie gut mit der restlichen Lektüre klar.

Hin und wieder tauchen sehr wichtige Fachbegriffe auf, die ich möglichst knapp, aber hoffentlich verständlich definiere.

Bei vielen Fragestellungen ist es wichtig, zunächst das Problem in seiner Tiefe zu ergründen. Keine Angst, Sherlock Holmes und ich holen Sie da wieder raus!

Mit dem Wegweiser weise ich Sie auf eine andere Stelle im Buch hin, wo dasselbe oder ein ähnliches Thema von einer anderen Seite beleuchtet wird. Bei Bedarf können Sie direkt dorthin springen.

Freuen Sie sich! Immer wenn Sie dieses Symbol sehen, gebe ich Ihnen ein Beispiel. Das soll Ihnen das Verständnis des jeweiligen Themas erleichtern und vertiefen.

Dieses Buch möchte Sie auch unterhalten. Die eine oder andere Anekdote finden Sie immer dann, wenn dieses Symbol erscheint. Aber bitte lesen Sie auch den Rest des Buches: Der ist mindestens genauso wichtig!

An diesen Stellen finden Sie Angaben zu Ressourcen im Internet.

Wie es weitergeht

Sie haben jetzt mindestens zwei Möglichkeiten. Entweder Sie stellen das Buch ganz schnell wieder ins Regal zurück, weil ich Ihnen beim besten Willen keine Auskünfte über afrikanische Wanderheuschrecken erteilen kann.

Oder aber Sie wagen das Abenteuer Informatik, nehmen Ihren Mut zusammen, atmen tief durch und gehen den nächsten Schritt, indem Sie das erste Kapitel aufschlagen. Oder das zweite. Oder irgendeine Seite, die Sie interessiert. Es ist Ihr Buch, es ist Ihre Zeit. Ich habe mein Bestes gegeben, jetzt sind Sie an der Reihe!

Teil I

Informatik zum Verlieben

IN DIESEM TEIL …

… Ihres Buches führe ich Sie ganz sanft und behutsam in die spannende, aber nicht ganz ungefährliche Welt der Informatik ein. Es geht los mit einer atemberaubenden Betrachtung ihrer rasanten Entstehungsgeschichte. Danach führe ich Sie an den innersten Kern von Computer-systemen und Sie werden im selben Moment verstehen, warum Informatik unsere Gesellschaft revolutioniert. Außerdem werfen wir einen gemeinsamen Blick auf die komplette Kette der Informationsverarbeitung. Schließlich will ich Ihnen nicht vorenthalten, wie Informatiker denken. Nicht ausgeschlossen, dass Sie sich am Ende tatsächlich in die Informatik verlieben.

Kapitel 1

Informatik im Schnelldurchlauf

IN DIESEM KAPITEL

Teilgebiete der Informatik kennenlernen

Funktionsweise von Computern verstehen

Potenzial der Programmierung erkennen

In diesem Kapitel möchte ich Ihnen ein Gesamtbild der Informatik verschaffen. Gewissermaßen präsentiere ich Ihnen eine exklusive Kurzzusammenfassung Ihres kompletten Informatik für Dummies-Buches, damit Ihnen die Bäume nicht die Sicht auf den Wald versperren. Keine Angst also, wenn Sie an der einen oder anderen Stelle unsicher sind oder ausführlichere Erklärungen erwarten. Dafür stehen Ihnen noch neunundfünfzig weitere Kapitel zur Verfügung. Genug der Vorrede, lassen Sie uns loslegen!

Mathematik der Information

Wir schreiben das Jahr 2317. Längst haben Maschinen, intelligente Roboter und Supercomputer, die Weltherrschaft an sich gerissen. Wie konnte es nur so weit kommen?

Ich will Ihnen diese Frage beantworten. Treten Sie nur näher heran, trauen Sie sich! Ich kann Sie an der Hand nehmen, wenn Ihnen das herzlose Berechnen dieser Wesen Furcht einflößt. Zuerst zeige ich Ihnen die gigantische Maschinenhalle. Damit fing alles an. Mit »Größe«.

Wer hätte Mitte des 20. Jahrhunderts geahnt, dass die Klötze vom Ausmaß eines mittelgroßen Reisebusses mit der Rechenpower eines simplen Taschenrechners dermaßen klein und mächtig würden? Dass sie uns schließlich überflügelten?

Ja, stöhnen Sie nur! Geben Sie ruhig mir die Schuld! Aber schuld an allem ist die Informatik. Sie wissen nicht, was das ist? Nun gut. Wenn Sie dieses Buch bis zum Ende lesen, können Sie sich allerdings nicht mehr herausreden. Dann wissen Sie alles. Dann sind Sie mitverantwortlich für die Misere.

Drei simple Gründe haben zur Machtübernahme der Computer, also der Rechner, genügt:

MiniaturisierungBeschleunigungModularisierung

Den Technikern ist es gelungen, die Komponenten von Rechnern immer weiter zu verkleinern. Inzwischen sind die Bausteine so winzig, dass Millionen von Transistoren, gewissermaßen ihre Nervenzellen, nur einen Quadratmillimeter groß sind. Sobald die Leiterbahnen nur noch durch eine einzige Schicht von Atomen getrennt sind, ist ein Ende der rein elektrischen Miniaturisierung erreicht. Elektronen würden ansonsten nicht mehr auf ihren eigenen Bahnen verbleiben, sondern auf benachbarte Leitungen überspringen. Ein Kurzschluss. Aber schon wird an neuen Systemen getüftelt: Computer auf Basis von Licht. Aus dem Reisebus ist ein Staubkorn geworden.

Auch in Sachen Geschwindigkeit sind enorme Erfolge zu verbuchen. Die Taktfrequenz eines Prozessors, also der Pulsschlag eines Rechners, hat sich von wenigen Hertz – ein paar Schläge pro Sekunde – auf über fünf Gigahertz – fünf Milliarden Schläge pro Sekunde erhöht. Aufgrund der Wärmeentwicklung sind auch hier die physikalischen Grenzen in Sichtweite. Mit extremem Aufwand ließe sich die Taktrate noch in Richtung zehn Gigahertz erhöhen, doch längst hat sich ein anderer Ausweg gefunden. Statt eines einzigen Prozessors werden immer mehr dieser Schaltzentren in die Computer eingebaut. Parallelisierung steigert die Leistung, auch wenn die Taktrate nicht weiter erhöht wird. Der Reisebus fährt nicht mehr, er »beamt« von einer Haltestelle zur nächsten.

Die Komplexität, die in solchen Systemen verbaut ist, übersteigt jedes menschliche Vorstellungsvermögen. Wie also konnten Menschen Maschinen programmieren, die selbst in der Lage waren, noch kompliziertere Nachfolger zu konstruieren?

Die Antwort ist erschreckend einfach: durch die Aufteilung einzelner Aufgaben in Module, kleine Arbeitseinheiten, die wie eigenständige Systeme operieren. Das allein wäre noch nicht so schlimm, aber Module können selbst wieder Module enthalten, die wiederum aus Modulen bestehen und so weiter und so fort. Plötzlich reduziert sich die fast unerträgliche Komplexität auf das Verstehen immer nur jeweils eines einzelnen Moduls.

Wundern Sie sich nicht! Genau so funktionieren auch ganze Staaten mit ihren schier unüberblickbaren Aufgaben und Pflichten. Allerdings ist die menschliche Aufnahmekapazität begrenzt und irgendwann nicht mehr in der Lage, das Gesamtsystem zu kontrollieren. Wenn Sie dafür ein Beispiel benötigen, schauen Sie sich die Steuergesetzgebung in Deutschland an …

Dies war die Stunde der Maschinen, die mit unermesslicher Speicherkapazität und wahnwitziger Datenverarbeitungsgeschwindigkeit das Heft des Handelns an sich rissen. Die Informatik wurde von ihren eigenen Kindern verschlungen.

Informatik

Der Begriff »Informatik« ist ein Kunstwort, das sich aus »Information« und »Mathematik« (beziehungsweise »Automatik«) zusammensetzt. Der Schwabe Karl Steinbuch hat das durchaus passende Wort 1957 ins Spiel gebracht. Die Bezeichnung hat sich in zahlreichen Ländern durchgesetzt, nur nicht in den englischsprachigen: Dort ist stattdessen von »Computer Science« die Rede. Im Wort »Computerwissenschaft« ist dieInformationunter die Räder gekommen.

Als wissenschaftliche Ausrichtung ging die Informatik einerseits aus der Mathematik hervor, andererseits aus den unterschiedlichen Fachgebieten der Elektrotechnik, etwa der Nachrichtentechnik und der Elektronik.

Informatik besteht aus drei großen Teilgebieten:

Technische Informatik, die sich mit der Hardware befasst und einen Rekord nach dem anderen aufstellt: immer kleiner, immer schneller, immer mehrPraktische Informatik, die für die Programmierung zuständig ist und immerzu neue Sprachen und Dialekte erfindet, um Computern zu sagen, was wir von ihnen wollenTheoretische Informatik, die prinzipielle Möglichkeiten aufzeigt, was überhaupt noch zu berechnen ist und wann ein Programm nicht weiter verbessert werden kann

Pandoras Büchse

Um zu verstehen, warum Computer so mächtig geworden sind, machen wir ein kleines Gedankenexperiment. Ich möchte Ihnen zeigen, wie ein Computer im Prinzip funktioniert. Hierzu werde ich Sie nicht mit einer Fülle von Fachbegriffen verwirren, die kommen später noch zur Genüge.

Gehen Sie in die Küche und betrachten Sie Ihre Kuchenrezepte. Stellen Sie sich vor, Sie könnten eine Maschine bauen, die einen Kuchen backt. Allerdings müssten Sie sich entscheiden: Wollen Sie

StreuselkuchenApfeltorteSchwarzwälder Kirsch oderBienenstich?

Plötzlich überkommt Sie eine geniale Idee. Sie entwerfen einen Automaten, der jeden beliebigen Kuchen backen kann! Dabei wollen Sie sich keineswegs auf bereits bekannte Sorten beschränken.

Auch wenn Sie – für den Moment – nicht die leiseste Ahnung haben, wie Sie das anstellen, so sind doch einige Randbedingungen dieser Wundermaschine völlig klar. Ihr Automat benötigt in jedem Fall …

das Rezept sowiedie Zutaten

für den jeweilig zu backenden Kuchen, das ist die Eingabe. Das Rezept besteht aus einer Reihe von Anweisungen, die das Gerät fein säuberlich eine nach der anderen abarbeiten muss. Zu gegebener Zeit werden weiterhin die Zutaten benötigt. Natürlich wollen Sie das hoffentlich leckere Ergebnis am Ende auch kosten. Im richtigen Moment liefert die Maschine demnach auch eine Ausgabe, den Kuchen selbst. Das, was dazwischen passiert, heißt Verarbeitung.

Sie können sich das sehr leicht durch den Namen »Eva« einprägen:

EVA: Eingabe → Verarbeitung → Ausgabe

In Kapitel 11 erfahren Sie übrigens, wie Eva aus dem Paradies vertrieben wurde.

Genauso verhält es sich auch mit Computern. Egal, welche der fantastischen Anwendungsmöglichkeiten dieser Wundermaschine Sie betrachten. Ob …

Textverarbeitung oder TabellenkalkulationMultimediaApps auf dem SmartphoneIntelligente HaushaltsgeräteSpieleRobotersteuerung oder dieWeltherrschaft,

in allen diesen Systemen steckt dieselbe Idee, das gleiche Prinzip, das letztlich alles andere möglich gemacht hat. Allerdings geht es bei Computern nicht in erster Linie um Nahrungsaufnahme, sondern um … Zahlen!

Ein Computer ist eine universelle Rechenmaschine, die Zahlen verarbeitet. Sowohl Eingabe als auch Ausgabe sind demnach Zahlen. Ebenso codieren letztlich Zahlen die Rechenvorschrift zur Verarbeitung dieser Zahlen!

Das ist jetzt aber – gelinde ausgedrückt – ein wenig enttäuschend: Ein Computer verarbeitet lediglich Zahlen? Da wäre Ihnen sicher der Backautomat lieber.

Trotzdem ist das richtig. Im Inneren eines jeden Computers steckt nur eine Rechenmaschine, die in der Lage ist, mit Zahlen zu jonglieren. »Für die Steuererklärung mag das angehen«, werden Sie denken. »Aber wo bleibt meine Textverarbeitung, mein Musik-player, mein intelligenter Schachgegner? Was ist mit dem Bordcomputer meines Autos?«

Die Antwort ist vielleicht überraschend:

Alle Anwendungen von Computern basieren letztlich auf der Durchführung von Rechenoperationen.

Wenn das stimmt – und ich versichere Ihnen, dass dem so ist –, muss es eine Übersetzung von …

TastatureingabenBildernMusikVideosSpracheSensordatenja, beliebigen Informationen

in Zahlen geben. Aber das ist noch nicht alles: Das Ergebnis einer Rechenoperation, und sei sie noch so kompliziert, ist ebenfalls immer nur eine Zahl. Ganz gleich, ob Sie damit einen Roboter oder ein KFZ steuern oder einfach nur Ihr Lieblingslied hören wollen: Es muss also auch die umgekehrte Übersetzung geben, nämlich von Zahlen in …

TexteBilderVideosSpracheSignale an Aktoren zum Ansteuern von Elektromotorenbeliebigen sonstigen Informationen.

Puh, das wäre geschafft!

In Teil II Ihres Informatik für Dummies-Buches zeige ich Ihnen, wie Sie beliebige Informationen in Zahlen verwandeln und umgekehrt.

Seien Sie also bitte nicht enttäuscht, wenn Sie in diesem Buch überwiegend mit Zahlen konfrontiert werden. Fast alles in der Informatik dreht sich um Zahlen, und wer könnte besser damit umgehen als ein Computer?

Damit ist die Eingangsfrage dieses Abschnitts beantwortet, der Grund, warum die Maschinen die Weltherrschaft an sich gerissen haben. Aus einer ursprünglich tumben Rechenmaschine wird ein universeller Computer, ein Gerät, das in der Lage ist, beliebige Rechenoperationen auszuführen. Da zugleich jede Information in Zahlen transformiert wird, kann somit auch jede berechenbare Operation auf Informationen durchgeführt werden. Die Programme, also die Rechenvorschriften für die Computer, wurden mit der Zeit immer intelligenter. Irgendwann waren nur noch Hochleistungscomputer überhaupt in der Lage, neue, bessere Programme zu erfinden. Am Ende fingen die Systeme an, selbstständig zu denken, was nichts anderes ist als eine besonders raffinierte Art des Rechnens.

Evolution einer fantastischen Idee

Die Grundidee ist nun geklärt, doch Sie wollen bestimmt wissen, wie eine solche universelle Rechenmaschine genau funktioniert, was sie im Innersten antreibt.

Im Zentrum eines jeden Computers befinden sich Schalter. Mehr als einer. Viele. Sehr viele. Etliche Millionen – pro Quadratmillimeter Chipfläche. Das »Gehirn« eines Computers besteht zum größten Teil aus Schaltern und alle funktionieren auf dieselbe Weise. Jeder dieser Schalter kann nur einen von zwei Zuständen annehmen, nämlich »an« oder »aus«, die ich der Einfachheit halber mit »1« und »0« bezeichne. Stellen Sie sich diese Schalter als Torwächter vor. Steht der Schalter auf »1«, ist das Tor geöffnet, anderenfalls geschlossen. Wenn das Tor geöffnet ist, gibt es einen freien Weg durch das Tor, ansonsten ist der Weg unterbrochen.

Diese Schalter sind überaus leistungsfähig:

Informationen werden in Zustände der Schalter codiert.Eingaben erfolgen durch die Vorgabe von Schalterpositionen.Ausgaben werden aus Schalterzuständen erzeugt.Generell besteht Datenverarbeitung im Ändern der Schalterpositionen.

Entscheidend ist dabei die Anordnung der Schalter. Natürlich hätte es keinen Sinn, zig Millionen von Schaltern einfach nebeneinander anzuordnen. Vielmehr müssen diese Helferlein in geeigneter Weise so positioniert und miteinander verbunden werden, dass der Zustand eines Schalters zugleich die Zustände von anderen Schaltern beeinflusst.

Klingt verwirrend, oder? Aber dazu ist lediglich eine einzige Eigenschaft erforderlich:

Schalter in Computern ermöglichen oder unterbrechen den Fluss eines Mediums. Dieses Medium ist zugleich in der Lage, die Zustände der Schalter selbst zu verändern.

Noch mal ganz langsam. Die Schalter in Computern sind Tore, die Wege öffnen oder verschließen. So weit, so gut. Aber wer oder was passiert diese Wege?

Das spielt im Grunde keine Rolle, solange dieses Etwas, das »Medium«, in der Lage ist, eben solche Schalter ein- oder auszuschalten.

Das wohl bekannteste derartige Medium ist elektrischer Strom. Der zugehörige Schalter heißt Transistor.

Das Wort Transistor ist eine Zusammenziehung von »transfer resistor«, einem steuerbaren elektrischen Widerstand.

Transistoren lassen einen Stromfluss zu – oder unterbrechen ihn. Dabei wird ihr Zustand selbst wiederum von einer angelegten Spannung gesteuert, die vom Zustand eines anderen Transistors abhängt. Diese Selbstbezüglichkeit ist der Kern der Computertechnologie!

Den Transistor nehmen wir in Kapitel 8 unter die Lupe.

Computer funktionieren nicht nur mit Strom! Warum nehmen Sie als »Medium« nicht Wasser? Der Wasserdruck könnte Wasserhähne mechanisch schalten. Oder Seile? Der Zug an Seilen wäre bei geschickter Anordnung dazu geeignet, andere Stricke zu be- oder entlasten. Vielleicht gelingt es Ihnen, mittels Photozellen reine Lichtcomputer zu erfinden?

Ihnen fallen gewiss noch andere Möglichkeiten ein, wie Sie Schalter konstruieren, die gerade durch das Medium geschaltet werden, das sie selbst schalten.

Elektrischer Strom und Transistoren haben aber Vorteile, die Sie erst einmal toppen müssen:

extreme Miniaturisierung möglichkeine mechanische Leistungsaufnahmehohe Geschwindigkeit des Elektronenflusses

Dies soll als kurze Einführung in die Logik eines Computers genügen. Allerdings habe ich Ihnen bei Weitem noch nicht alle Fragen beantwortet. Das hat auch etwas Gutes. Sonst wäre Ihr schönes Buch hier bereits zu Ende …

Praktische Theorien in der Informatik

Sie wissen nun, dass ein Computer eine universelle Rechenmaschine ist. Nicht mehr, aber auch nicht weniger. Ein bedeutsamer Zweig der Informatik, die theoretische Informatik, befasst sich mit grundsätzlichen Fragen der Möglichkeiten und Grenzen derartiger Maschinen, ganz gleich, wie schnell sie sind oder wie toll die Programme darauf laufen.

Da die konkrete Implementierung eines Programms für die theoretische Untersuchung keine Rolle spielt, befassen sich die Theoretiker unter den Informatikern am liebsten mit Algorithmen.

Ein Algorithmus beschreibt eine eindeutige, aus endlich vielen Schritten zusammengesetzte Handlungsanweisung.

Spannende Themen der theoretischen Informatik betreffen grundsätzliche Fragen zu Algorithmen. Dabei sind Zeit- und Speicherbedarf von besonderem Interesse. Auch ist es wichtig zu entscheiden, welcher von zwei Algorithmen, die dasselbe Problem lösen, prinzipiell geeigneter ist.

Oder andersherum gefragt. Gibt es Probleme, für die überhaupt keine Algorithmen zur Lösung existieren? Die gibt es sehr wohl!

Um allgemeingültige Aussagen über universelle Rechenmaschinen treffen zu können, kreieren theoretische Informatiker ihre eigenen Sprachen, deren Ausdruckskraft so groß und mächtig wie irgend möglich ist.

Alle Details zur theoretischen Informatik finden Sie in Teil XI Ihres Dummies-Buches.

Gigantische Möglichkeiten der Technik

Mit den Transistoren haben Sie schon einmal einen kleinen Vorgeschmack auf die atemberaubenden Bestandteile elektronischer Computer bekommen.

Allerdings geht die technische Informatik weit darüber hinaus. Sie strebt wie keine andere Disziplin innerhalb der Informatik nach immer höheren Zielen. Es geht einerseits um die Verkleinerung von Speichermedien, um mehr Daten auf weniger Raum unterzubringen. Zugleich sollen Datenverarbeitung und Austausch von Informationen immer schneller vonstattengehen. Wärmeentwicklung und Energieverbrauch bleiben ebenfalls im Fokus.

Dabei greifen die Techniker auf immer neue Ideen zurück. Neben elektrischen Schaltern sind magnetisierbare Materialien das Mittel der Wahl. Daneben haben auch optische Verfahren, wie sie bereits in Compact Disks (DVD, Blu-Ray) zum Einsatz kommen, weiterhin ihren Platz in künftigen Entwicklungen.

Das Ende der Fahnenstange ist noch längst nicht erreicht. Der Hunger unserer Gesellschaft nach immer höheren Auflösungen digitalisierter Informationen kann nur mit immer größeren Datenspeichern befriedigt werden. Jetzt, in diesem Moment, während Sie in Ihrem Dummies-Buch schmökern, werden in den Forschungslaboratorien rund um den Globus neue Technologien ersonnen, um auf noch größere Datenmengen noch schneller zugreifen zu können.

Die technischen Grundlagen der Computerindustrie werden in Teil III behandelt.

Denkende Computer

Was bleibt, ist die praktische Informatik, die sich um den ganzen Rest kümmert. Früher waren hier vor allen Dingen Fähigkeiten und Fertigkeiten der Programmierung zu nennen, wo neue Programmiersprachen wie Pilze aus dem Boden schossen. Die Entwicklung führte zu immer höheren Abstraktionsgraden der Programmierung.

Vom Maschinencode über Assembler bis hin zu C, einer ersten Hochsprache, die zugleich maschinennah ist, verlief die Entwicklung ohne Objektorientierung. Die zunehmende Komplexität der Programme und die gestiegene Leistungsfähigkeit von Computern, insbesondere im Hinblick auf grafische Benutzeroberflächen, führten zu neuen Konzepten und Paradigmen. C++ (»Zeh plus plus«) und Java sind nur zwei weitverbreitete Resultate dieser Entwicklung.

Parallel dazu gehen funktionale und logische Programmiersprachen ihren eigenen Weg. Die große Vision der 1940er Jahre, ein komplettes menschliches Gehirn durch Computersysteme zu simulieren, konnte allerdings erst im 22. Jahrhundert realisiert werden.

Das Ziel der künstlichen Intelligenz (KI) wirkte seit jeher wie eine starke Triebfeder für den Fortschritt der praktischen Informatik und führte zu zahllosen Innovationen.

Bis ins 21. Jahrhundert traten jedoch immer wieder Schwierigkeiten auf, wodurch sich die KI in zwei große Lager teilte:

Die starke KI hielt unverdrossen am Ziel fest, ein künstliches System zu schaffen, das kreativ, emotional und überaus intelligent agierte,während die schwache KI sich damit begnügte, einzelne kognitive Eigenschaften der menschlichen Intelligenz auf konkrete Problemstellungen anzuwenden.

Die schwache KI erzielte einen Erfolg nach dem anderen. Doch die Skeptiker waren unzufrieden. Die Computer lösten zwar die Probleme, die Menschen nur unter Aufbietung ihrer gesamten Intelligenz knacken konnten, doch auf eine andere, informatische Weise, die so gar nichts mehr mit menschlichem Sinnieren zu tun hatte.

Der Hauptgrund bestand in einem substanziellen Mangel elektronischer Systeme. Das menschliche Gehirn verfügt über etwa 80 bis 100 Milliarden Neuronen, biologische Zellen, die wie Schalter eines Supercomputers funktionieren. Viele Jahre hat es gedauert, ehe die Leistungsfähigkeit der Maschinen damit Schritt halten konnte.

Schließlich, im 22. Jahrhundert, ist es gelungen. Der Nachbau einer solchen Komplexität musste ja zu einem überwältigenden Ergebnis führen.

Irgendwann waren nur noch Computer in der Lage, die nächste Generation von Robotern zu entwerfen, die immer höher entwickelte elektronische Bauteile produzierten.

Zum Glück gehört die Weltherrschaft nun Systemen, deren Schalteranzahl um einige Größenordnungen über der Anzahl der Neuronen im Gehirn liegt. Damit übertreffen sie die intellektuelle Leistungsfähigkeit von Menschen bei Weitem. Das gilt sogar für Genies. Wenigstens kann sich der Mensch auf seine Fahnen schreiben, die Grundlagen für diesen Wahnsinn selbst gelegt zu haben.

Apropos Wahnsinn: Während die Informatik in ihren Ursprüngen aus der Elektrotechnik hervorgegangen ist, konnte sie im Laufe der Zeit in unzählige andere Disziplinen eindringen. Ich möchte so weit gehen zu behaupten, dass heute praktisch keine wissenschaftliche Disziplin ohne Computer auskommt.

Die zahlreichen Anwendungsgebiete veranlassen einige Menschen schon, von einer vierten Säule der Informatik zu sprechen, der angewandten Informatik.

Folgenden Anwendungsfeldern sollten Sie dabei besondere Aufmerksamkeit schenken:

WirtschaftsinformatikMedizininformatikBioinformatikComputerlinguistikMedieninformatikGeoinformatikUmweltinformatikSozioinformatik

Diese wichtigen Disziplinen innerhalb der angewandten Informatik stelle ich Ihnen in Kapitel 2 in einem eigenen Abschnitt vor.

Erst im 23. Jahrhundert kam die

Politikinformatik