Informatik für Dummies, Das Lehrbuch - Ernst Georg Haffner - E-Book

Informatik für Dummies, Das Lehrbuch E-Book

Ernst Georg Haffner

0,0
26,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

Sie studieren und müssen sich mit Informatik auseinandersetzen? Dann dürfen Sie 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: 1373

Veröffentlichungsjahr: 2023

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

Schummelseite

BINÄRE EINHEITEN

Bezeichnung

Menge

Anzahl an Bytes

1 Kibibyte

1024 Bytes

1.024 Bytes

1 Mebibyte

1024 Kibibytes

1.048.576 Bytes

1 Gibibyte

1024 Mebibytes

1.073.741.824 Bytes

1 Tebibyte

1024 Gibibytes

1.099.511.627.776 Bytes

1 Pebibyte

1024 Tebibytes

1.125.899.906.842.624 Bytes

1 Exbibyte

1024 Pebibytes

1.152.921.504.606.846.976 Bytes

1 Zebibyte

1024 Exbibytes

1.180.591.620.717.411.303.424 Bytes

1 Yobibyte

1024 Zebibytes

1.208.925.819.614.629.174.706.176 Bytes

HEXADEZIMALDARSTELLUNG

Binärdarstellung

Hexadezimaldarstellung

Binärdarstellung

Hexadezimaldarstellung

0000

0

1000

8

0001

1

1001

9

0010

2

1010

A

0011

3

1011

B

0100

4

1100

C

0101

5

1101

D

0110

6

1110

E

0111

7

1111

F

IEEE-754-NORMIERUNG

IEEE-75 4

32-Bit-Zahlen (float)

64-Bit-Zahlen (double)

Mantisse

 23

  52

Exponent

  8

  11

Bias

 127

 1023

kleinster Wert des Exponenten

−126

−1022

größter Wert des Exponenten

 127

 1023

ASCII: AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE

Wert

Zeichen

Wert

Zeichen

Wert

Zeichen

Wert

Zeichen

 0

NULL-Zeichen

32

64

@

96

'

 1

Beginn Kopfzeile

33

!

65

A

97

a

 2

Beginn Text

34

66

B

98

b

 3

Textende

35

#

67

C

99

c

 4

Ende der Übertragung

36

$

68

D

100

d

 5

Anfrage

37

%

69

E

101

e

 6

Bestätigung

38

&

70

F

102

f

 7

Klingel

39

71

G

103

g

 8

40

(

72

H

104

h

 9

41

)

73

I

105

i

10

Zeilenvorschub

42

*

74

J

106

J

11

Vertikaltabulatur

43

+

75

K

107

k

12

Seitenvorschub

44

,

76

L

108

l

13

Wagenrücklauf

45

-

77

M

109

m

14

Breitschrift

46

78

N

110

n

15

Enge Schrift

47

/ »slash«

79

O

111

o

16

Verbindungssteuerung

48

0

80

P

112

p

17

Gerätekontrolle 1

49

1

81

Q

113

q

18

Gerätekontrolle 2

50

2

82

R

114

r

19

Gerätekontrolle 3

51

3

83

S

115

s

20

Gerätekontrolle 4

52

4

84

T

116

t

21

keine Bestätigung

53

5

85

U

117

u

22

Synchronisierter Leerlauf

54

6

86

V

118

v

23

Ende des Übertragungsblocks

55

7

87

W

119

w

24

Abbruch

56

8

88

X

120

x

25

Ende des Mediums

57

9

89

Y

121

y

26

Ersetzen

58

:

90

Z

122

z

27

59

;

91

[

123

{

28

Dateitrennzeichen

60

<

92

\ »Backslash«

124

|

29

Gruppentrennzeichen

61

=

93

]

125

}

30

Aufnahmetrennzeichen

62

>

94

^

126

˜ »Tilde«

31

Einheiten Trennzeichen

63

?

95

_ »Unterstrich«

127

ZAHLENBEREICHE GANZZAHLIGER DATENTYPEN IN C

Datentyp

Größe in Bytes

Kleinste Zahl

Größte Zahl

char

1

–128

127

unsigned char

1

0

255

short

2

–32768

32767

unsigned short

2

0

65535

int

4

–32768

32767

unsigned int

4

0

65535

long

8

–32768

32767

unsigned long

8

0

65535

ZAHLENBEREICHE DER GLEITKOMMA-DATENTYPEN IN C

Datentyp

Größe in Bytes

Kleinste Zahl größer als null

Größte Zahl

float

4

double

8

LOGISCHE GATTER IN IEC-NORM

ZUGRIFFSKLASSEN IN C++

Art der Ableitung \ Zugriffsklasse

publicelement;

protectedelement;

privateelement;

classB: publicA

public

protected

Kein Zugriff

classB: protectedA

protected

protected

Kein Zugriff

classB: privateA

private

private

Kein Zugriff

RANGFOLGE DER OPERATOREN IN C

C-Operatoren, dem Rang nach geordnet, von der stärksten Bindung bis zur schwächsten

[] . () -> ++ -- (hinter dem Bezeichner)

! ∼ & * (Dereferenzierung) ++ -- (vor dem Bezeichner)

/ % * (Multiplikation)

+ -

<< >>

< <= > >=

== !=

&

^

|

&&

||

?:

= += -= *= /= %= &= ^= |= <<= >>=

RECHNEN MIT INFORMATION

Informationsgehalt I eines Zeichens z:

Entropie H einer Quelle Q:

CHOMSKY-HIERARCHIE DER SPRACHEN

 

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.

2. Auflage 2024

© 2024 Wiley-VCH GmbH, Boschstraße 12, 69469 Weinheim, Germany

All rights reserved including the right of reproduction in whole or in part in any form. This book published by arrangement with John Wiley and Sons, Inc.

Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Dieses Buch wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.

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: gonin – stock.adobe.comKorrektur: Claudia Lötschert

Print ISBN: 978-3-527-72024-8ePub ISBN: 978-3-527-84036-6

Ü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.

Inhaltsverzeichnis

Cover

Titelblatt

Impressum

Über den Autor

Inhaltsverzeichnis

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

Wechselseitige Impulse durch Hardware und Software

Disziplinen der Informatik

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

Festpunkt und Fließkomma

Kapitel 6: Heilen mit boolescher Algebra

Allheilmittel Algebra

Logische Verknüpfungen

Gesetze und Regeln

Stunde der Wahrheitstabellen

Digitale Vergatterung

Basis und Komposition

Stolpersteine der booleschen Algebra

Kapitel 7: Schalten und Walten

Entwurfsprobleme spielend lösen

Funktionen in Wahrheitstafeln

Normale Formen

Don't care? Ist mir doch egal!

Minimierung von Termen

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

Zähler mit Flipflops

Schiebung in den Registern

Kapitel 10: Mikroprogramme im Land der Automaten

Synchrone Automaten

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

Speicher für die Massen

Kapitel 14: Mit dem Bus zum BIOS

Organisation von Ein- und Ausschaltvorgängen

Unterbrechungen mit Interrupts

Fit trotz Ablaufinvarianz

Schnittstellen ohne Verletzungen

Eingabegeräte

Ausgabegeräte

Kapitel 15: Cache me if you can

Risiken reduzieren mit RISC

Pipelines ohne Öl

Parallele Welten

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

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

Strings und Tangas

Ein Strom von Streams

Argumente und Parameter

Kapitel 19: Auf was Sie beim Programmieren achten sollten

Reusability Reusability Reusability

Abstraktion als Universalwaffe

Wert eines Ausdrucks und Seiteneffekt

Ende des Arrays

Gefährliche Zeiger

Ressourcensparende Apps

Kapitel 20: Programme entwickeln mit System

Entwickeln in behaglicher Umgebung

Bibliotheken ohne Bücher

APIs effektiv nutzen

Design-Patterns für Apps

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

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

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

Teil VI: Eruption aus Java

Kapitel 25: Heißer Kaffee

Java für alle

Virtuelle Maschinen

Bezeichner und Variablen

Nicht einwickeln lassen

Kontrolle mit Struktur

Kapitel 26: Felder und mehr

Arrays

Iteration und Rekursion

Grafische Komponenten

Kapitel 27: Klasse Klassen

Objekte der Begierde

Kapseln mit Methode

Von Face zu Interface

Abstrakte Basisklassen

Casting von Typen

Vergleichen und Kopieren

Kapitel 28: Sammeln für Java

Collections verwenden

Mit Iteratoren klettern

Exceptions sinnvoll behandeln

Zugesicherte Assertions

Teil VII: Python – lassen Sie sich umschlingen

Kapitel 29: Pythonisch für Anfänger

Python und andere Schlangen

Grundlagen von Python

Unser erstes (richtiges) Python-Programm

Die wichtigsten Datentypen von Python

Kapitel 30: Die bunte weite Welt von Python

Umfassend begreifen

Zeichen in Ketten legen

Funkensprühende Funktionen

Ausnahmen in Python

Generatoren und Factory Functions

Oh weh – jetzt geht's um OOP

Kapitel 31: Python aus dem Körbchen locken

Module managen

Kapitel 32: Schlangenbeschwörer werden

Zeitmessungen

Die C-Extension von Python

Teil VIII: Datenstrukturen und Algorithmen für die Ewigkeit

Kapitel 33: 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 34: Elementare Datenstrukturen

Abstrakte Datentypen

Listige Listen

Stacks im Keller

Schlängelnde Queues

Doppelt gemoppelte Deques

Klang der Strings

Kapitel 35: Tabellen für alle Einsatzzwecke

Struktur von Tabellen

Sequenzielle Suche

Binäre Suche

Sortierverfahren

Für die ganz Eiligen: Quicksort

Völlig legal: HashTables

Hashing ohne Kollisionen

Kapitel 36: Wald und Bäume überblicken

Äste an Wurzeln

Binärbäume für die Informatiker

Traversierung als Spaziergang

Ordnung in den Laden bringen

Früchte der Syntaxbäume

Entscheidungsbäume

Kapitel 37: Jede Menge Graphen

Graphen vor Gericht

Erforschung von Graphen

Schmerzlose Adjazenz

Planierte Graphen

Langer Weg zum kürzesten Graphen

Teil IX: Computerarchitektur als Gesamtkunstwerk

Kapitel 38: Betriebssysteme

Rechte und Pflichten

Administratoren und DAUs

Prominente Vertreter

Ordnerstrukturen für Dateien

Tasks den Prozess machen

Nadel und Threads

Virtuelle Echtzeitanforderungen

Betriebssysteme für Handys und Tablets

Kapitel 39: Architektur von Software

Architekten für Programme

Gebäude mit drei Stockwerken

Anforderungsanalysen

Lasten- und Pflichtenhefte

Modellieren mit UML

Vorgehensmodell zur Softwareentwicklung

Agile Softwareentwicklung

Kapitel 40: Datenbanksysteme

Bank für Daten

Relationale Datenbanksysteme

SQL im Crashkurs

Offene Quellen

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

Kapitel 41: 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 42: 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 43: 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 44: Expertensysteme für Profis

Prolog

Expertenwissen

Diagnosen vom Elektronenhirn

Fallbasiertes Schließen

Vorhersagen treffen und reich werden

Kapitel 45: Kunstvolle neuronale Netze

Kopieren geht über Studieren

Vorwärts zu den verketteten Netzen

Rosenblatts Theorem

Fortschritt durch Backpropagation

Die Macht der Rückkopplungen

Grenzenlose Anwendungsfelder

Teil XI: Im Netz der Netze

Kapitel 46: Ganz nach Protokoll

Militärische Ideen

Tanz um die Redundanz

Schichten und Geschichten

Hubs, Switches und Router

Übersicht der wichtigsten Dienste

Kapitel 47: Gestalten und Gestaltung im Web

Webtechnologie für Insider

HTML bis XML

Unbegrenzte Möglichkeiten

Kapitel 48: Skriptsprachen

Geschälte Shell-Skripte

Kein bisschen umständlich: AWK

Perlentauchen mit Perl

Siegeszug von PHP

JavaScript

Vergessen Sie die Schlange nicht!

Kapitel 49: Socket- und Thread-Programmierung

Spaß mit Client und Server

Socken für die Sockets

Prozesse und Threads

Schutz durch Mutexe

POSIX-Standard

Eine eigene Bank bauen

Kapitel 50: Durchblick und Ausblick

Vom Web getrieben

Ad hoc statt lang geplant

Big Data für Big Brother

Im Nebel der Cloud

Weltweite Aussichten

Teil XII: Die praktischen Seiten der theoretischen Informatik

Kapitel 51: 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

Kapitel 52: 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 53: Logik und Korrektheit für Informatiker

Logische Aussagen

Prädikat wertvoll

Armer Gödel

Korrektheit von Programmen

Formale Verifikation ohne Schmerzen

Kapitel 54: Theorie für Unberechenbare

Algorithmen entschlüsseln

Anwerfen der Turing-Maschine

Berechenbare Turing-Programme

Halteproblem ohne Züge

Kapitel 55: 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

Teil XIII: Top Secret

Kapitel 56: Risiken und Manager

Grundfeste der Informationssicherheit

CIA-Triade

Ganz sichere Fakten über Risiken

Risikolebenszyklus

Wichtige Rollen und Dokumente

Information Security Policy

Internationale Sicherheitszertifizierungen

Kapitel 57: Angriffsarten und Schutzmaßnahmen

Offene und verborgene Bedrohungen

Einbrecher ohne Handschuhe

Soziales Hacken und Phishing

Der Mann in der Mitte und andere Angriffsmöglichkeiten

Technische Problemzonen

Protokollschwächen

Protokolle mit »S«

Per Tunnel in die Sicherheit

WLAN ohne böse Überraschung

Kapitel 58: 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 59: Alice und Bob im Wunderland der Zahlen

Dieser Abschnitt ist geheim

Wfstdimvfttfmvohtwfsgbisfo

Symmetrische Klassiker

One Time Pad

Paradox: Sichere Kommunikation über unsicheren Kanal

Aufbau von Kryptosystemen

Kapitel 60: Wände gegen Feuer

Moderne Sicherheitsinfrastrukturen

Filteranlage für Pakete

Besuch beim Statusinspektor

Stellvertreter-Systeme für und gegen alles

Eindringlinge geschickt identifizieren

Teil XIV: Der Top-Ten-Teil

Kapitel 61: (Fast) 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

Sprachmodelle und der Durchbruch der KI

Jetzt sind Sie am Zug!

Kapitel 62: 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

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Tabellenverzeichnis

Kapitel 2

Tabelle 2.1: Beispielprogramm

Tabelle 2.2: Befehlscodes

Kapitel 3

Tabelle 3.1: Wertetabelle von AND und OR

Tabelle 3.2: Wertetabelle NOT

Tabelle 3.3: Darstellung von OR als Kombination von AND und NOT

Tabelle 3.4: Beispielprogramm

Tabelle 3.5: Assemblercode

Tabelle 3.6: Werteverlauf von

ax

und Eingabe

Kapitel 5

Tabelle 5.1: Gegenüberstellung von analogen und digitalen Anzeigen

Tabelle 5.2: Übersicht binärer Einheiten

Tabelle 5.3: ASCII-Wertetabelle

Tabelle 5.4: Binärdarstellung einiger Zweierpotenzen

Tabelle 5.5: Binärdarstellung der Zahl 1723

Tabelle 5.6: Zifferntabelle für alle Kombinationen aus vier Bits

Tabelle 5.7: Zahlenräume für ausgewählte Stellenzahlen

Tabelle 5.8: Multiplikation von 24 · 75 mit russischer Bauernregel

Tabelle 5.9: Multiplikation von 75 · 24 mit russischer Bauernregel

Tabelle 5.10: Festlegungen der IEEE-Norm 754

Tabelle 5.11: Zahlenraum der IEEE-754 in Dezimalschreibweise

Kapitel 6

Tabelle 6.1: Wahrheitswerte der Konjunktion

Tabelle 6.2: Wahrheitswerte der Disjunktion

Tabelle 6.3: Alle unären booleschen Verknüpfungen

Tabelle 6.4: Wahrheitswerte ausgewählter binärer Verknüpfungen

Tabelle 6.5: Verknüpfungssymbole der booleschen Algebra

Tabelle 6.6: Wahrheitstabelle zum Rechenbeispiel

Tabelle 6.7: NAND und NOR als Basis

Kapitel 7

Tabelle 7.1: Bezeichner für Ein- und Ausgabevariablen

Tabelle 7.2: Muster der Wahrheitstabelle

Tabelle 7.3: Wahrheitstabelle unter Berücksichtigung der »Kindersicherung«

Tabelle 7.4: Wahrheitstabelle nach Berücksichtigung der physikalischen Beschränk...

Tabelle 7.5: Vollständige Wahrheitstabelle

Tabelle 7.6: Initiale Quine-McCluskey-Tabelle nullter Ordnung für y

1

Tabelle 7.7: Quine-McCluskey-Tabelle erster Ordnung

Tabelle 7.8: Quine-McCluskey-Tabelle zur Dominanzprüfung

Tabelle 7.9: Tabelle nach der Zeilendominanzprüfung

Kapitel 8

Tabelle 8.1: Wertetabelle für Auswahlnetz von vier Ausgängen

Tabelle 8.2: 1-Bit-Komparator-Wahrheitstabelle

Tabelle 8.3: Maßeinheiten für sehr kleine Zahlen

Kapitel 10

Tabelle 10.1: Mikroprogramm eines seriellen 4-Bit-Addierers

Tabelle 10.2: Fortgeschrittenes Mikroprogramm eines seriellen 4-Bit-Addierers

Kapitel 12

Tabelle 12.1: Registerspeicher für die Programmvariablen

Kapitel 13

Tabelle 13.1: Wahrheitstabelle bei Einzelbit-Adressierung

Tabelle 13.2: Wahrheitstabelle bei 8-Bit-Adressierung

Kapitel 16

Tabelle 16.1: Beispiel einer Mapping-Tabelle

Tabelle 16.2: Speicherorte der Variablen

Kapitel 18

Tabelle 18.1: Übersicht der wichtigsten funktionalen Konzepte

Kapitel 22

Tabelle 22.1: Atomare Datentypen in C

Tabelle 22.2: Zahlenbereiche der ganzzahligen Datentypen in C

Tabelle 22.3: Zahlenbereiche der Gleitkommazahlen-Datentypen in C

Tabelle 22.4: Funktionen zum Umgang mit Strings in C

Kapitel 23

Tabelle 23.1: Vorrang in C-Operatoren

Kapitel 24

Tabelle 24.1: Zugriff der abgeleiteten Klasse auf Elemente der Basisklasse

Kapitel 25

Tabelle 25.1: Auswahl an Wrapper-Klassen in Java

Kapitel 28

Tabelle 28.1: Übersicht wichtiger Collection-Klassen

Kapitel 33

Tabelle 33.1: Komplexitäten von Algorithmen

Kapitel 34

Tabelle 34.1: ADT Lineare Liste

Tabelle 34.2: ADT Stack

Tabelle 34.3: ADT Queue

Tabelle 34.4: ADT Deque

Tabelle 34.5: ADT String

Kapitel 35

Tabelle 35.1: Hashwerte modulo 100 – Beispiele

Kapitel 39

Tabelle 39.1: UML-Diagrammtypen

Kapitel 43

Tabelle 43.1: Beispiele und Gegenbeispiele für »Amseln« als Konzept

Kapitel 45

Tabelle 45.1: Wahrheitswerte der Konjunktion (AND)

Kapitel 46

Tabelle 46.1: Liste der sieben wichtigsten TCP-Dienste

Kapitel 51

Tabelle 51.1: Mögliche Codierung von Q

Tabelle 51.2: Unzulängliche Codierung für Q

Tabelle 51.3: Eine neue, präfixfreie Codierung für Q

Tabelle 51.4: Zeichen sortiert nach relativer Häufigkeit

Tabelle 51.5: Verfahren zum Finden der Trennlinie im Shannon-Fano-Algorithmus

Tabelle 51.6: Die resultierende Shannon-Fano-Codierung für Q

Tabelle 51.7: Zeichen sortiert nach relativer Häufigkeit

Kapitel 53

Tabelle 53.1: Suche nach der Schleifeninvariante

Kapitel 54

Tabelle 54.1: Turing-Programm

Kapitel 55

Tabelle 55.1: Vollständige Wahrheitstabelle

Kapitel 57

Tabelle 57.1: Unsichere und sichere Protokolle

Kapitel 58

Tabelle 58.1: Klassifikation von Malware

Kapitel 59

Tabelle 59.1: Zuordnung von Buchstaben zu ihrer Position im Alphabet

Tabelle 59.2: Erweiterte Zuordnung von Buchstaben zu ihrer Position im Alphabet

Tabelle 59.3: Verschlüsselung von INFORMATIK mit SONNE

Tabelle 59.4: Entschlüsselung von BCTCWFPHGP mit SONNE

Tabelle 59.5: Erste S-Box des DES

Tabelle 59.6: Verschlüsselung der »Dummies«

Tabelle 59.7: Verschlüsselung von »Niemals«

Kapitel 60

Tabelle 60.1: Beispiel zweier Firewall-Regeln

Illustrationsverzeichnis

Kapitel 2

Abbildung 2.1: Bedeutung der Schnittstelle für die Programmentwickl...

Abbildung 2.2: Abhängigkeit von Software und Hardware

Kapitel 3

Abbildung 3.1: Serienschaltung – AND-Verknüpfung

Abbildung 3.2: Parallelschaltung – OR-Verknüpfung

Kapitel 4

Abbildung 4.1: Ausgangslage

Abbildung 4.2: Türme von Hanoi mit vier Scheiben

Abbildung 4.3: Umsetzen von drei Scheiben von A nach B

Abbildung 4.4: Versetzen der Scheibe von A nach C

Kapitel 5

Abbildung 5.1: Analoges Signal

Abbildung 5.2: Digitalisierte Version des Signals

Abbildung 5.3: Tachometer mit analoger und digitaler Anzeige

Abbildung 5.4: Binärdarstellung der Zahl 43

Abbildung 5.5: Multiplikation von Dezimal- und Binärzahlen

Abbildung 5.6: Duale Multiplikation mit einer Zweierpotenz

Abbildung 5.7: Ganzzahlige Division von 75 durch 13

Kapitel 6

Abbildung 6.1: Unäre und binäre boolesche Operatoren

Abbildung 6.2: Serielle Gatterschaltung der Konjunktion

Abbildung 6.3: Parallele Gatterschaltung der Disjunktion

Kapitel 7

Abbildung 7.1: Prinzipieller Aufbau eines KV-Diagramms

Abbildung 7.2: KV-Diagramm mit allen markierten Feldern für x

3

= 1

Abbildung 7.3: KV-Diagramm mit markierten Feldern für x

2

= x

4

= 1

Abbildung 7.4: KV-Diagramm mit eingetragenen Mintermen

Abbildung 7.5: KV-Diagramme der Funktionen y

1

(links) und y

2

(recht...

Abbildung 7.6: Minimierungsblöcke der Funktionen y

1

und y

2

Abbildung 7.7: Weitere Minimierungsmöglichkeiten

Kapitel 8

Abbildung 8.1: Schaltbild einer Negationsschaltung

Abbildung 8.2: Transistorschaltung von AND

Abbildung 8.3: Transistorschaltung von OR

Abbildung 8.4: Unterschiedliche Symbole des Inverters NOT

Abbildung 8.5: Logische Gatter in neuer IEC-Norm

Abbildung 8.6: Decodiernetzwerk für vier Ausgänge

Abbildung 8.7: Multiplexer für zwei Eingänge

Abbildung 8.8: 1-Bit-Komparator-Schaltglied

Abbildung 8.9: 1-Bit-Halbaddierer-Schaltglied

Abbildung 8.10: 1-Bit-Volladdierer-Schaltglied

Abbildung 8.11: Schaltung mit Race Condition für x

Abbildung 8.12: KV-Diagramm mit (links) und ohne (rechts) Race Con...

Abbildung 8.13: Schaltung ohne Race Condition für x

Kapitel 9

Abbildung 9.1: Einfaches Schaltwerk mit einem logischen Gatter

Abbildung 9.2: Schaltwerk mit Flussrichtung der Information

Abbildung 9.3: Zustandsgraph des Halteglieds

Abbildung 9.4: Kritischer Lauf in einem Schaltwerk

Abbildung 9.5: Zustandsgraph ohne kritischen Lauf

Abbildung 9.6: Flanken eines Taktsignals

Abbildung 9.7: SR-Schaltbild mit NOR-Gattern

Abbildung 9.8: Symbol des SR-Flipflops

Abbildung 9.9: Schaltung eines Data Latch

Abbildung 9.10: Schaltsymbol des Data Latch

Abbildung 9.11: D-Flipflop Schaltung (links) und Schaltsymbol (rec...

Abbildung 9.12: Taktflankengesteuertes SR-Flipflop

Abbildung 9.13: Positiv-taktflankengesteuertes SR-Flipflop

Abbildung 9.14: JK-Flipflop

Abbildung 9.15: Synchroner 4-Bit-Ringzähler mit JK-Flipflops

Abbildung 9.16: 4-Bit-Schieberegister aus taktflankengesteuerten D...

Kapitel 10

Abbildung 10.1: Zustandsgraph des D-Flipflops als Mealy-Automat

Abbildung 10.2: Zustandsgraph eines Moore-Automaten

Abbildung 10.3: Serieller 4-Bit-Addierer

Abbildung 10.4: Serieller 4-Bit-Addierer als Mealy-Automat

Abbildung 10.5: Arbeitsweise von Operations- und Steuerwerk

Abbildung 10.6: Mikroprogrammiertes Steuerwerk

Abbildung 10.7: Mikroprogrammsteuerwerk mit sequenzieller Abarbeit...

Abbildung 10.8: Mikroprogrammsteuerwerk mit bedingten Sprüngen

Kapitel 11

Abbildung 11.1: Das EVA-Prinzip

Abbildung 11.2: Erweitertes EVA-Schema

Abbildung 11.3: Zusammenspiel der Komponenten eines Computers

Abbildung 11.4: Mainboard mit CPU und weiteren Komponenten

Abbildung 11.5: Lüfter und Kühllamellen

Abbildung 11.6: 256-MB-RAM-Speicherriegel zum Einstecken

Abbildung 11.7: Netzteil mit Kabelsträngen

Abbildung 11.8: Anschlüsse für interne Peripherie

Kapitel 12

Abbildung 12.1: Klassischer Aufbau einer CPU

Abbildung 12.2: Kommunikation auf den Bussystemen

Abbildung 12.3: Aufbau einer ALU

Abbildung 12.4: Abstraktionsschichten zur Hardware

Abbildung 12.5: Zugriffsebenen von der Anwendung bis zur Hardware

Kapitel 13

Abbildung 13.1: DIMM-Speicherriegel

Abbildung 13.2: Hauptplatine eines PC

Abbildung 13.3: Masken-ROM

Abbildung 13.4: In Gehäuse eingebaute Festplatte

Abbildung 13.5: Kamm einer Festplatte

Abbildung 13.6: Pyramide der Speichermedien

Kapitel 14

Abbildung 14.1: Trennlinie der Schnittstelle

Abbildung 14.2: Leitungsbahnen auf Folien im Inneren einer Tastatu...

Abbildung 14.3: Controller einer Computertastatur

Abbildung 14.4: Rückseite eines Tastatur-Controllers

Abbildung 14.5: Beispiel eines QR-Codes

Kapitel 15

Abbildung 15.1: Befehlsverarbeitung ohne und mit Pipelining

Kapitel 16

Abbildung 16.1: Verschachtelte Unterprogrammaufrufe

Kapitel 17

Abbildung 17.1: Unterschied zwischen statischem (links) und dynami...

Abbildung 17.2: Schritte zur Programmerstellung

Kapitel 18

Abbildung 18.1: Werfen und Fangen von Ausnahmen

Kapitel 19

Abbildung 19.1: Bedeutung der Abstraktionsbarriere für die Program...

Abbildung 19.2: Array von Lottozahlen

Kapitel 20

Abbildung 20.1: Der Software Development Lifecycle

Kapitel 21

Abbildung 21.1: Speicheradressen und Zeiger

Kapitel 22

Abbildung 22.1: Unterschied zwischen Arrays (oben) und Structures

Kapitel 23

Abbildung 23.1: Identität und Kopie

Abbildung 23.2: Zwei Zeiger innerhalb desselben Arrays

Kapitel 24

Abbildung 24.1: Klassenhierarchie im Wald

Kapitel 26

Abbildung 26.1: Swing Anwendung zur Umrechnung von Grad Celsius in...

Abbildung 26.2: Startansicht der Beispielanwendung

Abbildung 26.3: Ausgabe der Beispielanwendung

Kapitel 28

Abbildung 28.1: Elektronisches Vokabelheft in Java

Abbildung 28.2: Übersetzung von »Informatik«

Abbildung 28.3: Eingabe einer neuen Vokabel

Kapitel 29

Abbildung 29.1: Auswahl an Python-Umgebungen

Kapitel 31

Abbildung 31.1: Sinus- und Kosinusdarstellungen mit Matplotlib

Abbildung 31.2: Kurven mit Legende und Titel

Abbildung 31.3: Beispiel eines Scatter-Plots

Abbildung 31.4: Interpolation von Einzelpunkten mittels BSplines

Abbildung 31.5: Verteilung der Kelchblattgrößen von Schwertliliena...

Abbildung 31.6: Zufällige Schachposition nach dem ersten Zug von W...

Kapitel 32

Abbildung 32.1: Zeitvorteil durch Vektorisierung

Abbildung 32.2: Vergleich der Invers-Summen

Abbildung 32.3: Disassemblierung

Abbildung 32.4: Hilfe bei eingebauten Funktionen

Abbildung 32.5: Vergleich mit vektorisierten Summen

Abbildung 32.6: Vektorisierung auf NumPy-Array

Kapitel 33

Abbildung 33.1: Vergleich von 2·T(n) und f(n) für kleine n

Abbildung 33.2: Vergleich von 2·T(n) und f(n) für größere n

Kapitel 34

Abbildung 34.1: Lineare Liste als ADT

Abbildung 34.2: Der ADT Stack bei der Arbeit: Löschen eines Elements

Abbildung 34.3: Entfernen eines Elements aus einer Queue

Abbildung 34.4: »Wanderung« von Queue-Daten durch ein Array

Abbildung 34.5: Ringspeicher

Abbildung 34.6: Implementierung einer Deque als doppelt verkettete Liste

Abbildung 34.7: Suche eines Musters

m

in einem String

s

Kapitel 35

Abbildung 35.1: Struktur einer Tabelle mit Zeilen und Spalten

Abbildung 35.2: Tabelle mit Key und Inhalt

Abbildung 35.3: Abstrakte Tabelle mit Referenzen als Inhalt

Abbildung 35.4: Ausgangstabelle

Abbildung 35.5: Die Tabelle innerhalb des zweiten

while

-Durchlaufs

Abbildung 35.6: Die Tabelle innerhalb des dritten

while

-Durchlaufs

Abbildung 35.7: Anfangszustand

Abbildung 35.8: Verlauf des Selectionsort

Abbildung 35.9: Swaps für i = 0

Abbildung 35.10: Swaps für i = 1

Abbildung 35.11: Swaps für i = 2

Abbildung 35.12: Swaps für i = 3 bis i = 6

Abbildung 35.13: Tabelle nach dem ersten Tauschen

Abbildung 35.14: Tabelle am Ende der Phase 2

Abbildung 35.15: Nach der Phase 2 im rekursiven Quicksort-Aufruf

Abbildung 35.16: Swaps im zweiten Durchgang

Abbildung 35.17: Beispiel einer HashTable

Kapitel 36

Abbildung 36.1: Beispiel eines Verzeichnisbaums

Abbildung 36.2: Ein Baum von Bäumen

Abbildung 36.3: Traversierung in Pre-Order

Abbildung 36.4: Traversierungsreihenfolge in In-Order

Abbildung 36.5: Umgekehrte Reihenfolge der Post-Order-Traversierun...

Abbildung 36.6: Lösung zur Traversierungsaufgabe

Abbildung 36.7: Syntaxbaum

Abbildung 36.8: Entscheidungsbaum

Kapitel 37

Abbildung 37.1: Gerichteter Graph

Abbildung 37.2: Ungerichteter Graph

Abbildung 37.3: Zwei isomorphe Graphen

Abbildung 37.4: Planarer Graph mit fünf Knoten

Abbildung 37.5: Graph mit fünf Knoten auf Torus

Abbildung 37.6: Graph mit gewichteten Kanten

Abbildung 37.7: Minimaler Spannbaum zu Abbildung 37.6

Kapitel 38

Abbildung 38.1: Rolle des Betriebssystems in einem Computer

Abbildung 38.2: Prozessausführung ohne (oben) und mit (unten) Mult...

Abbildung 38.3: Zustandsübergänge eines Prozesses

Kapitel 39

Abbildung 39.1: Dreischicht-Architektur

Abbildung 39.2: V-Modell zur Softwareentwicklung

Kapitel 40

Abbildung 40.1: ER-Modell einer Datenbank

Abbildung 40.2: Beispielhaftes Datenbankschema mit zwei Tabellen

Abbildung 40.3: Datensätze zweier Tabellen

Abbildung 40.4: Verbessertes ER-Schema mit n:m-Beziehung

Abbildung 40.5: Datenbankschema mit n:m-Beziehung

Abbildung 40.6: Beispielhafte Datensätze einer n:m-Beziehung

Kapitel 41

Abbildung 41.1: Menschenähnliche Maschinen: Utopie, Schreckensbild...

Kapitel 42

Abbildung 42.1: Exemplarischer Problemraum

Abbildung 42.2: Zustandsgraph mit Kostenbeschriftung

Abbildung 42.3: Graph mit negativen Kantengewichten

Abbildung 42.4: Variantenbaum

Abbildung 42.5: Ausgefüllter Bewertungsbaum

Abbildung 42.6: Beschnittener Variantenbaum

Kapitel 43

Abbildung 43.1: Vereinfachtes Lernszenario

Abbildung 43.2: Im Inneren des lernenden Systems

Abbildung 43.3: Ein erster Entwurf zum Entscheidungsbaum

Abbildung 43.4: Finaler Entscheidungsbaum

Kapitel 44

Abbildung 44.1: GNU-Prolog-Konsole

Abbildung 44.2: Kriminalfall und seine Auflösung

Abbildung 44.3: Prolog als Datenbanksprache

Kapitel 45

Abbildung 45.1: Funktionsschema eines künstlichen Neurons

Abbildung 45.2: Ein KNN mit drei Ebenen

Abbildung 45.3: AND und XOR – mögliche und unmögliche lineare Sepa...

Abbildung 45.4: Tangentensteigung

Abbildung 45.5: Gradientenverfahren bei zwei Variablen

Abbildung 45.6: Die logistische Funktion als Squasher

Abbildung 45.7: Ausgangssituation bei einem inneren Neuron N

Abbildung 45.8: Direkte (links) und laterale (rechte) Rückkopplung...

Abbildung 45.9: Indirekte Rückkopplung

Abbildung 45.10: KNN mit Kontext-Layer

Abbildung 45.11: Fehlerkurve im Verlauf des Trainings

Kapitel 46

Abbildung 46.1: IPv4-Header gemäß RFC791

Abbildung 46.2: Protokollstapel, jeweils mit Header und Body

Abbildung 46.3: TCP-Header gemäß RFC 793

Abbildung 46.4: TCP-Handshake

Kapitel 47

Abbildung 47.1: URL in einem Browser

Abbildung 47.2: Beispiel einer

http

-Sitzung

Abbildung 47.3: Rumpf einer

http

-Antwort

Abbildung 47.4: Browseransicht einer XML-Datei ohne CSS

Abbildung 47.5: Zusammengeklappte Version der XML-Datei

Abbildung 47.6: XML-Datei mit CSS

Kapitel 48

Abbildung 48.1: Ausgabe des Perl-Skripts

Abbildung 48.2: Aufruf eines PHP-Skripts

Abbildung 48.3: Ausführung eines JavaScript-Programms

Kapitel 49

Abbildung 49.1: Konsolenausgabe des Servers

Abbildung 49.2: Clientsicht

Abbildung 49.3: Auszug des Bank-Programms

Kapitel 50

Abbildung 50.1: Kommunikation über Zwischenstationen in Ad-hoc-Net...

Kapitel 51

Abbildung 51.1: Säulen der Physik

Abbildung 51.2: Binärbaum der Standardcodierung

Abbildung 51.3: Präfixfreie Codierung der Quelle Q

Abbildung 51.4: Anfangszustand des Codebaums nach Shannon-Fano

Abbildung 51.5: Codebaum nach dem ersten Trennungsschritt

Abbildung 51.6: Zwischenschritt im Shannon-Fano-Algorithmus

Abbildung 51.7: Shannon-Fano-Binärbaum der Quelle Q

Abbildung 51.8: Codierung nach Shannon-Fano

Abbildung 51.9: Anfangszustand im Huffman-Algorithmus

Abbildung 51.10: Zustand nach der ersten Zusammenfassung

Abbildung 51.11: Baum nach dem zweiten Schritt

Abbildung 51.12: Vorletzter Schritt im Algorithmus

Abbildung 51.13: Finaler Codebaum nach Anwendung des Huffman-Algo...

Kapitel 52

Abbildung 52.1: Endlicher Automat über dem Alphabet { a,b,c }

Abbildung 52.2: Endlicher Automat mit zwei Zuständen

Abbildung 52.3: Chomsky-Hierarchie der Sprachen

Abbildung 52.4: Endlicher Automat für L

1

Kapitel 54

Abbildung 54.1: Unbegrenzter Speicher der Turing-Maschine

Abbildung 54.2: Anfangszustand der Turing-Maschine aus dem Beispie...

Abbildung 54.3: Zweiter Zustand der Turing-Maschine

Abbildung 54.4: Restliche Abarbeitung des Turing-Programms

Abbildung 54.5: Gleiche Turing-Maschine mit neuer anfänglicher Ban...

Kapitel 55

Abbildung 55.1: Teilmengenbeziehung der Komplexitätsklassen

Kapitel 56

Abbildung 56.1: Der Risikomanagement-Lebenszyklus

Abbildung 56.2: Risikoklassen gemäß Eintrittswahrscheinlichkeit un...

Kapitel 58

Abbildung 58.1: Warnung nach dem Download einer Textdatei aus dem ...

Abbildung 58.2: Warnung vor gefährlichem Plug-in in Firefox

Kapitel 60

Abbildung 60.1: Trennung von Netzwerken durch eine Firewall

Abbildung 60.2: Zweistufige Firewall-Architektur

Abbildung 60.3: Gemeinsamer Zugriff auf das Internet über einen Pr...

Orientierungspunkte

Cover

Titelblatt

Impressum

Über den Autor

Inhaltsverzeichnis

Einführung

Fangen Sie an zu lesen

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Seitenliste

1

2

3

4

5

9

10

11

35

36

37

38

39

40

41

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

83

84

85

86

87

88

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

118

119

120

121

122

123

124

125

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

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

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

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

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

302

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

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

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

461

462

463

464

465

466

467

469

470

471

472

473

474

475

476

477

478

479

480

481

482

483

484

485

486

487

488

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

580

581

582

583

584

585

587

588

589

590

591

592

593

594

595

596

597

598

599

600

601

602

603

604

605

606

607

608

609

610

611

612

613

614

615

616

617

618

619

620

621

622

623

624

625

626

627

628

629

630

631

632

633

634

635

636

637

638

639

640

641

642

643

644

645

646

647

648

649

650

651

653

654

655

656

657

658

659

660

661

662

663

664

665

666

667

668

669

670

671

672

673

675

676

677

678

679

680

681

682

683

685

686

687

688

689

690

691

692

693

694

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

721

722

723

724

725

726

727

728

729

730

731

732

733

734

735

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

773

774

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

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

853

854

855

856

857

858

859

860

861

862

863

864

865

866

867

868

869

870

871

872

873

874

875

876

877

878

879

880

881

882

883

884

885

886

887

888

889

890

891

892

893

895

896

897

898

899

900

901

902

903

904

905

906

907

908

909

911

912

913

914

915

916

917

918

919

920

921

922

923

924

925

927

928

929

930

931

932

933

934

935

936

937

938

939

940

941

942

943

945

946

947

948

949

950

951

952

953

954

955

956

957

959

960

961

962

963

964

965

966

967

968

969

970

971

972

973

974

975

976

977

979

980

981

982

983

984

985

986

987

988

989

990

991

992

993

994

995

996

997

998

999

1001

1002

1003

1004

1005

1006

1009

1010

1011

1012

1013

1014

1015

1016

1017

1018

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 ja ein Buch über afrikanische Wanderheuschrecken. Nun gut, dann dürfen Sie dieses Exemplar von 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 Buchs. 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 https://www.wiley-vch.de/ISBN9783527720248 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 noch vergesse. In diesem Buch verzichte ich auf die explizite weibliche und männliche Form von Leserinnen, Lesern, LeserInnen, Leser:innen und allen anderen Typen von Funktionen, Aufgaben und Dingen in der maximal unleserlichen Darstellung aller denkbaren Geschlechter. Ich spreche Sie daher, liebe Leserin, lieber Leser, stets in der einfachsten 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 Hauptzielgruppe dieses Buchs 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 wohl etwas 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 14 Teile aufgeschlüsselt, die selbst insgesamt 62 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 möchte ich Ihnen einen leicht verdaulichen Überblick über die gesamte Informatik verschaffen. 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++«ein. Dort erfahren Sie auch alles Wichtige zum objektorientierten Programmieren, das heutzutage bei keiner der großen Sprachen fehlen darf.

Teil VI: Eruption aus Java

Ähnlich dynamisch wie das komplette Internet hat sich auch die Programmiersprache »Java« entwickelt. Die grundlegenden Ideen werden in den insgesamt vier Kapiteln dieses Teils beleuchtet. Ich werde Ihnen erklären, was es mit Klassen, Strings und Collections auf sich hat. Zum Schluss zeige ich Ihnen auch, wie Sie sich auf Zusicherungen verlassen.

Teil VII: Python – lassen Sie sich umschlingen

In dieser zweiten Auflage Ihres Dummies-Buchs erwartet Sie ein eigener Teil zur inzwischen beliebtesten Programmiersprache der Welt: Python. In vier Kapiteln erhalten Sie zunächst einen leichten Einstieg in die Materie. Anschließend zeige ich Ihnen Möglichkeiten, die sich mit diversen Programmbibliotheken für Sie auftun. Das dritte Kapitel in diesem Teil widmet sich einigen Tipps und Tricks, damit Sie aus Python noch mehr herausholen. Spannend wird es auch, wenn ich Ihnen am Ende die C-Extensions zeige. Dann werden Sie verstehen, was alles hinter den Kulissen passiert, wenn Sie beispielsweise einen unscheinbaren, aber höchst effektiven Python-Befehl absetzen.

Teil VIII: 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 »Graphen« 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 IX: 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 Softwarelebens …

Teil X: 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 XI: Im Netz der Netze

Jeder benutzt es; nur die wenigsten wissen wirklich, was sie da tun. Ich meine das Internet. Dieser zehnte Teil Ihres für Dummies-Buchs 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 XII: 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 XIII: Top Secret

Gerade in den letzten Jahren ist »Informationssicherheit« zu einem der drängendsten und bedeutsamsten Bedürfnisse moderner Informationstechnologie geworden. 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 XIV: 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 hilfreichen 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 auftaucht, 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 selbst 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, ich hole Sie da wieder raus!

Mit dem Fernglas 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 meiner Worte erleichtern und vertiefen.

Dieses Buch soll Sie auch unterhalten. Die eine oder andere Anekdote finden Sie immer dann, wenn dieses Symbol erscheint. Aber bitte lesen Sie auch den Rest des Buchs: 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 …