Vorkurs Informatik für Dummies - Hans Werner Lang - E-Book

Vorkurs Informatik für Dummies E-Book

Hans Werner Lang

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

Möchten Sie Informatik studieren und sich vorbereiten, um peinliche Wissenslücken zu vermeiden? Dann ist dieses Buch genau das richtige für Sie! Es verschafft Ihnen einen verständlichen und strukturierten Einblick in die Grundlagen der Informatik. Von der notwendigen Mathematik über erste Programmierschritte mit Python und Java bis zu Kryptografie, Datenbanken und Theoretischer Informatik ist alles dabei. Der Autor kennt die typischen Probleme und Verständnishürden der Erstsemester und hilft Ihnen, einen guten Start ins Informatikstudium zu finden. Und dazu brauchen Sie außer Schulmathe und Interesse für Informatik keinerlei Vorkenntnisse. Also los geht?s, starten Sie gut vorbereitet ins Studium.

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

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 419

Veröffentlichungsjahr: 2020

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.



Vorkurs Informatik für Dummies

Schummelseite

WICHTIGE BEGRIFFE VON A BIS Z

Algorithmus:

Eine Schritt-für-Schritt-Anleitung, um ein bestimmtes Problem zu lösen, zum Beispiel eine Datenfolge zu sortieren (Teil II).

Boolesche Algebra:

Das Rechnen mit Nullen und Einsen, aufgefasst als die Wahrheitswerte false und true. Eine boolesche Algebra ist eine mathematische Struktur mit bestimmten Regeln (Kapitel 12).

Code:

Ein Code ist eine Menge von Codewörtern, die Information enthalten. Die Ziele der Codierung sind unterschiedlich: möglichst viel Information pro Codewort oder Informationserhaltung auch bei Fehlern (Teil IV).

Datenbank:

Die Idee einer Datenbank ist, alle Daten als eigenständige Ressourcen aufzufassen. Eine relationale Datenbank besteht aus Tabellen, die im mathematischen Sinne Relationen darstellen (Kapitel 25).

Endlicher Automat:

Ein (zunächst nur gedachtes) Gerät, das ein Eingabewort abarbeitet und dabei verschiedene interne Zustände annimmt. Der letzte dabei erreichte Zustand entscheidet darüber, ob das Eingabewort einer bestimmten Sprache angehört (Kapitel 29).

Funktion:

In der Mathematik bildet eine Funktion einen Argumentwert auf einen Funktionswert ab. Auch in der Programmierung übernimmt eine Funktion einen Argumentwert und berechnet einen Funktionswert (Kapitel 3).

Grammatik:

Ein System von Ersetzungsregeln, um die Wörter einer Sprache zu bilden. Die kontextfreien Grammatiken sind für Programmiersprachen geeignet (Kapitel 30).

Halteproblem:

Keine Turingmaschine kann berechnen, ob eine beliebige andere Turingmaschine, einmal gestartet, irgendwann hält oder unendlich lange weiterläuft (Kapitel 28).

Induktion:

Mathematische Beweismethode, um eine Behauptung für alle natürlichen Zahlen zu beweisen (Kapitel 19).

Java:

Populäre professionelle Programmiersprache – in diesem Buch für Programmbeispiele verwendet (Teil I).

Klasse:

In der Programmierung das Modell für die Erzeugung von Objekten. In der Klasse wird festgelegt, welche Art von Daten die Objekte enthalten und welche Methoden darauf anwendbar sind (Kapitel 4).

Logik:

Die Grundlage der Mathematik und der Informatik. In der formalen Logik lässt sich in ähnlicher Weise rechnen wie in der Arithmetik. Angewendet wird dies in logischen Schaltungen im Computer (Kapitel 12).

Menge:

Der grundlegendste Begriff in der Mathematik – und in der Informatik. Auch eine Programmiersprache oder eine Turingmaschine sind nichts anderes als bestimmte, spezielle Mengen (Kapitel 13).

Nichtdeterminismus:

Ein scheinbar geheimnisvolles Konzept in der theoretischen Informatik – bei näherer Betrachtung aber einfach eine Beschreibung möglicher Aktionen (Kapitel 29).

O-Notation:

Erleichtert es, die Zeitkomplexität von Algorithmen zu klassifizieren und zu vergleichen. Konstante Faktoren werden bei dieser Betrachtungsweise vernachlässigt (Kapitel 8).

Protokoll:

Eine Regelung für mehrere Akteure, wer wann was macht. Die wichtigste Anwendung in der Informatik sind Netzwerkprotokolle (Kapitel 26).

Quantor:

In der Logik werden die Quantoren (es gibxft) und (für alle) verwendet, um ein Prädikat in eine Aussage zu verwandeln (Kapitel 12).

Relation:

Eine Relation ist eine Teilmenge eines kartesischen Produkts von Mengen. Eine relationale Datenbank (Kapitel 25) besteht aus Relationen (Kapitel 14).

Sprache:

Eine bestimmte Teilmenge der Menge aller Wörter über einem Alphabet. In der Informatik wird zunächst nur die Syntax der Sprache betrachtet, nicht was die Wörter der Sprache bedeuten (Kapitel 29).

Turingmaschine:

Gedankliches Modell eines einfachstmöglichen Computers. Die Turingmaschine liest und schreibt Zeichen auf einem Arbeitsband. Obwohl sie so einfach ist, kann sie alles berechnen, was berechenbar ist (Kapitel 31).

Unendlichkeit:

Etwas, das in der Informatik eigentlich nicht vorkommt. Eine Datenfolge beispielsweise kann nicht unendlich lang sein, aber dafür nahezu beliebig lang – nur begrenzt durch sämtlichen Cloud-Speicher der Welt.

Verknüpfung:

Mithilfe einer Verknüpfung wird zwei Operanden ein Ergebnis zugeordnet: . Außer der Verknüpfung für Zahlen gibt es viele weitere Verknüpfungen, zum Beispiel für Aussagen oder für Mengen (Kapitel 15).

Wahrheitstafel:

Nichts anderes als die Wertetabelle einer booleschen Funktion. Die Gültigkeit von logischen Formeln lässt sich mit Wahrheitstafeln in einfacher Weise zeigen (Kapitel 12).

Zeitkomplexität:

Laufzeit eines Algorithmus als Funktion in Abhängigkeit von der Problemgröße . Meist wird die Komplexitätsklasse von angegeben, zum Beispiel (Kapitel 8).

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 2021

© 2021 Wiley-VCH GmbH, 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.

Fachkorrekur: Reinhard VöllerCoverfoto: AdobeStock_58599450_contrastwerkstattKorrektur: Isolde Kommer

Print ISBN: 978-3-527-71727-9ePub ISBN: 978-3-527-82709-1

Inhaltsverzeichnis

Cover

Titelblatt

Impressum

Einleitung

Über dieses Buch

Konventionen in diesem Buch

Was Sie nicht lesen müssen

Törichte Annahmen über den Leser

Wie dieses Buch aufgebaut ist

Symbole, die in diesem Buch verwendet werden

Wie es weitergeht

Teil I: Programmieren

Kapitel 1: Programmieren in Java

Wertzuweisung

Numerische Datentypen und Operationen

Bedingte Anweisung

Datentyp boolean

Kommentare

Zum Üben

Kapitel 2: Programmschleifen, Datenfolgen und Zeichenketten

While-Schleife

Programmschleifen entwerfen

For-Schleife

Arrays

Strings

Zum Üben

Kapitel 3: Funktionen

Funktionen definieren und aufrufen

Funktionen mit mehreren Parametern

Funktionen ohne Parameter

Funktionen ohne Rückgabewert

Rekursive Funktionen

Zum Üben

Kapitel 4: Objektorientiert programmieren

Klasse und Objekt

Bruchrechnung

Methoden

Objektorientierung in Java

Zum Üben

Teil II: Algorithmen

Kapitel 5: Algorithmus

Typische Anweisungsformen

Algorithmisch denken

Kapitel 6: Binäre Suche

Suchstrategie

Algorithmus binäre Suche

Zum Üben

Kapitel 7: Einfaches Sortieren

Minimum einer Datenfolge bestimmen

Selectionsort

Kapitel 8: Zeitkomplexität von Algorithmen

Zeitkomplexität

O-Notation

Zum Üben

Kapitel 9: Mergesort

Divide-and-Conquer-Strategie

Implementierung

Untere Schranke für das Sortieren

Zum Üben

Kapitel 10: Kürzeste Wege in einem Graphen

Idee des Verfahrens

Umsetzung in einen Algorithmus

Kapitel 11: Kürzeste Rundreise

Problem des Handlungsreisenden

Die Mengen P und NP

NP-vollständige Probleme

Teil III: Mathematik

Kapitel 12: Logik

Logische Aussagen

Allgemeingültige Aussagen

Logik im Alltag

Prädikate

Zum Üben

Kapitel 13: Menge

Mengen bilden

Teilmenge

Die leere Menge

Potenzmenge

Mengen verknüpfen

Zum Üben

Kapitel 14: Relation

Kartesisches Produkt

Relation als Teilmenge eines kartesischen Produkts

Relationen anschaulich darstellen

Eigenschaften von Relationen

Ordnungsrelation und Äquivalenzrelation

Operationen auf Relationen

n

-stellige Relationen

Wozu brauchen wir das?

Zum Üben

Kapitel 15: Abbildung

Abbildung als spezielle Relation

Funktion

Verknüpfungen

Eigenschaften von Abbildungen

Bijektive Abbildung

Folgen

Zum Üben

Kapitel 16: Graph

Knoten und Kanten

Pfad

Baum

Ungerichteter Graph

Markierte Graphen

Zum Üben

Kapitel 17: Teilbarkeit und Modulo-Rechnung

Teilbarkeit

Modulo-Rechnung

Zum Üben

Kapitel 18: Gruppen, Ringe und Körper

Die Gruppenaxiome

Ring

Körper

Zum Üben

Kapitel 19: Beweistechniken

Direkter Beweis

Beweis durch Widerspruch

Gaußsche Summenformel

Beweis durch Induktion

Zum Üben

Teil IV: Codierung

Kapitel 20: Boolesche Funktionen

Boolesche Funktionen darstellen

Boolesche Funktionen minimieren

Anwendung

Zum Üben

Kapitel 21: Zahlendarstellung

Zahlensysteme zur Basis

b

Zwischen Zahl und Darstellung hin und her rechnen

Programme

Zahlensysteme zu anderer Basis

Ganze Zahlen im Binärsystem

Kommazahlen im Binärsystem

Zum Üben

Kapitel 22: Einfache Codes

Blockcodes

Hamming-Abstand

Fehlererkennung

Kapitel 23: Daten komprimieren

Konstruktion des Huffman-Baums

Konstruktion des Huffman-Codes

Zum Üben

Kapitel 24: Fehler erkennen mit CRC

Idee des Verfahrens

Der CRC-Algorithmus

Erkennung von Fehlern

Zum Üben

Teil V: Praktische Informatik

Kapitel 25: Datenbanken

Datenbankrelationen

Schlüssel

Datenbankentwurf

Datenbankanfragen

Index

Datenbankmanagementsystem

Zum Üben

Kapitel 26: Computernetze

Adressen

Protokoll

Protokolle in der Informatik

Kapitel 27: Verschlüsseln mit öffentlichem Schlüssel

Diffie-Hellman-Schlüsselvereinbarung

Public-Key-Verschlüsselung

Berechnungsverfahren

Zum Üben

Teil VI: Theoretische Informatik

Kapitel 28: Berechenbarkeit

Das Halteproblem

Praktisch nicht berechenbar

Kapitel 29: Reguläre Sprachen

Regulärer Ausdruck

Endlicher Automat

Simulation eines nichtdeterministischen endlichen Automaten

Teilmengenkonstruktion

Endliche Automaten und reguläre Sprachen

Sprachen, die nicht regulär sind

Zum Üben

Kapitel 30: Kontextfreie Grammatik und Stackautomat

Kontextfreie Grammatik

Eine Sprache erzeugen

Stackautomat

Erkennung von Wörtern

Zum Üben

Kapitel 31: Sprachklassen und Turingmaschinen

Hierarchie der Sprachklassen

Die Sprachklassen

0

und

1

Turingmaschine

Mit Turingmaschinen erkennbare Sprachen

Kapitel 32: Parser und Compiler

Grammatik als Ausgangspunkt

Parser für arithmetische Ausdrücke

Compiler für arithmetische Ausdrücke

Basisfunktionen für Parser und Compiler

Zum Üben

Teil VII: Top-10-Teil

Kapitel 33: Vier mal sieben

Die 7 elementarsten Begriffe

Die 7 verrücktesten Dinge

Die 7 cleversten Algorithmen

Die 7 bedeutendsten Informatik-Pioniere

Teil VIII: Anhang

A: Lösungen zu den Übungsaufgaben

Teil I: Programmieren

Teil II: Algorithmen

Teil III: Mathematik

Teil IV: Codierung

Teil V: Praktische Informatik

Teil VI: Theoretische Informatik

B: Zum Weiterlesen

Literaturverzeichnis

Stichwortverzeichnis

End User License Agreement

Orientierungspunkte

Cover

Inhaltsverzeichnis

Fangen Sie an zu lesen

Seitenliste

1

2

5

6

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

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

88

89

90

91

92

93

94

95

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

115

116

117

118

119

120

121

122

123

124

125

126

127

129

130

131

132

133

134

135

136

137

139

140

141

142

143

144

145

146

147

149

150

151

152

153

154

155

156

157

158

159

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

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

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

249

250

251

252

253

254

255

256

257

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

286

287

289

290

291

292

293

294

295

296

297

299

300

301

302

303

304

305

306

307

309

310

311

312

313

314

315

316

317

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

337

338

339

341

345

346

347

348

349

Einleitung

Über dieses Buch

Dieses Buch gibt Ihnen einen Überblick über die verschiedenen Teilgebiete der Informatik.

Ziel dieses Buches ist es, Ihnen einerseits eine Fülle von genialen Ideen der Informatik – ich wünschte, ich selbst hätte sie gehabt – zu unterbreiten. Und andererseits, Ihnen bereits einige Grundfertigkeiten im Umgang mit Informatik beizubringen. Zum Beispiel das Programmieren, oder auch das Verständnis der nötigen Mathematik.

Dieses Buch ist dazu gedacht, den Übergang von der Schulinformatik zur Hochschulinformatik zu erleichtern. Dazu gehört auch der Übergang von der Schulmathematik zur Hochschulmathematik. Denn Mathematik ist ein wesentlicher Bestandteil Ihres Informatikstudiums.

Aber auch wenn Sie Informatik nicht als Schulfach hatten, erleichtert Ihnen dieses Buch den Einstieg in ein Informatikstudium.

Und falls Sie noch gar nicht wissen, ob Sie Informatik studieren wollen, dann lassen Sie sich von den Ideen der Informatik begeistern!

Konventionen in diesem Buch

Sie werden in diesem Buch viele neue Begriffe lernen, die wissenschaftlich exakt definiert sind. Besonders hochgestochene Begriffe, dies zu Ihrer Beruhigung, sind nicht dabei. Schade eigentlich, denn warum Wenn-Dann-Beziehung sagen, wenn man auch Implikation sagen könnte …

Zu jeder neuen Definition finden Sie praktische Beispiele, sodass es Ihnen leichtfällt, die neuen Begriffe zu verinnerlichen.

Dieses Buch ist ein Fachbuch, und daher enthält es auch Formeln. In Formelsprache lassen sich bestimmte Sachverhalte unmissverständlich formulieren. Leider heißt unmissverständlich nicht notwendigerweise verständlich. Aber immerhin sind Formeln leichter zu verstehen, wenn sie vertraute Zeichen enthalten wie statt seltsamer Zeichen wie .

Vielleicht kennen Sie von Dummies-Büchern die lockeren oder hintersinnigen Überschriften wie etwa »Die Letzten werden die Ersten sein« in einem Kapitel über die Funktionsweise eines Stack-Speichers. In diesem Buch werden Sie dergleichen vielleicht vermissen, aber dafür fällt es Ihnen leichter, zu einem bestimmten Thema noch einmal etwas nachzuschlagen.

Jedes Kapitel schließt mit einem kleinen Abschnitt zum Üben ab. Machen Sie davon Gebrauch! Mit ein bisschen Übung gelingt alles viel besser. Überprüfen Sie, ob Sie alles verstanden haben, und gehen Sie dann guten Gewissens zum nächsten Kapitel über.

Was Sie nicht lesen müssen

Der mittlere, ziemlich lange Teil handelt von der Mathematik, die Sie in der Informatik brauchen. »Nicht lesen« wäre hier der falsche Ratschlag, vielleicht eher »nicht alles auf einmal lesen« oder besser »zuerst nur überfliegen und später lesen«.

Die Mathematik hilft Ihnen, die Dinge klarer zu sehen. Beispielsweise werden Sie sicherlich irgendwie ahnen, was eine Datenbank ist, aber wenn Sie den mathematischen Begriff der Relation kennen, wissen Sie plötzlich, was eine Datenbank ist.

Vielleicht entscheiden Sie sich auch dafür, dass Sie mit Datenbanken zunächst einmal nichts zu tun haben wollen. Dann lassen Sie dieses Kapitel aus. Die einzelnen Kapitel sind im Wesentlichen unabhängig voneinander – außer Mathematik, die überall vorkommt, und außer Programmieren, das in mehreren Kapiteln wieder aufgegriffen wird.

Wenn Sie in der Schule Differential- und Integralrechnung gehabt haben, so haben Sie etwas fürs Leben gelernt – aber nicht für Ihr Informatik-Studium. Denn in der Informatik kommt Differential- und Integralrechnung nicht vor, dafür umso mehr »diskrete« Mathematik wie zum Beispiel Graphentheorie, Gruppentheorie, Zahlentheorie. Bilden Sie sich in diesen Gebieten weiter – den Einstieg dazu finden Sie in diesem Buch.

Törichte Annahmen über den Leser

Sie interessieren sich für Informatik. Sie haben keine Abneigung gegen Zahlen – zumindest nicht gegen die Zahlen 0 und 1.

Vielleicht haben Sie auch schon ein wenig Programmiererfahrung, dann sind die kleinen Programmstücke für Sie keine schwere Kost. Wenn Sie aber noch nie programmiert haben, dann sind es vielleicht Appetithäppchen, um damit anzufangen.

Auf jeden Fall erhalten Sie einen ersten Einblick in die Ideen der Informatik. Vieles davon wird Ihnen von Nutzen sein, wenn Sie

an einem Informatik-Kurs in der Schule teilnehmen,

überlegen, ob Sie Informatik studieren wollen,

ein technisches Fach mit Informatik-Anteilen studieren oder

Informatik im ersten Semester studieren.

Und das Schöne ist: Das, was Sie hier lernen, ist bereits sehr konkret. Sie brauchen es nicht später noch einmal »richtig« zu lernen.

Wie dieses Buch aufgebaut ist

Sieben Teile, sieben Themen – grob abgegrenzte Themen, die Sie im Informatikstudium erwarten. Nicht alles davon kommt gleich im ersten Semester dran, aber nicht deswegen, weil es für das erste Semester noch zu schwer wäre, sondern nur, weil die Stundenzahl des Semesters begrenzt ist.

Teil I: Programmieren

Zunächst lernen Sie das Handwerk: das Programmieren. Die Programmiersprache ist Java. Aber die Kunst des Programmierens ist weitgehend unabhängig von der Programmiersprache. Alles, was Sie hier lernen, ist auf andere Programmiersprachen übertragbar.

Jeder große Künstler ist zuerst ein guter Handwerker. Ein gutes Programm zu schreiben, ist wie gute Literatur zu schreiben: schwer. Nur zu erreichen durch vielfaches Überarbeiten, aber dann mit Freude zu lesen. Programme werden von Computern ausgeführt, aber von Menschen gelesen. Deswegen reicht es nicht, dass ein Programm »läuft«, sondern es muss sorgfältig strukturiert und gut dokumentiert sein, sodass es für andere Menschen (und auch für Sie selbst nach einem halben Jahr) verständlich ist.

Teil II: Algorithmen

Sie wenden nun Ihre Programmierkenntnisse auf das Programmieren von Algorithmen an. Zuerst schreiben Sie Programme zum Suchen und Sortieren, dabei stützen Sie sich auf bekannte Algorithmen. Sie lernen dabei Strategien für den Entwurf von Algorithmen kennen, und Sie untersuchen die Effizienz von Algorithmen.

Viele Probleme lassen sich mithilfe von Graphen modellieren. Sie programmieren einen Algorithmus, der den kürzesten Weg von nach in einem Graphen findet. An einem ganz ähnlich gelagerten Problem, die kürzeste Rundreise durch Städte zu finden, werden Sie sich dagegen die Zähne ausbeißen – höchstwahrscheinlich jedenfalls, denn bisher hat noch niemand einen effizienten Algorithmus zur Lösung dieses Problems gefunden.

Teil III: Mathematik

Dieser Teil liegt ungefähr in der Mitte des Buches, denn Mathematik ist zentral in der Informatik.

Sie erleben erst einmal eine Flut von mathematischen Begriffen: Aussage, Prädikat, Menge, Potenzmenge, Relation, Abbildung, Graph, Baum, Gruppe, Körper ...

Zu diesen Begriffen müssen Sie eine Vorstellung gewinnen, eine Anschauung, ein Gefühl, damit Sie sie anwenden und sinnvoll damit arbeiten können. Warum? Nun, diese mathematischen Grundlagen bringen Ordnung in die Wissenschaft der Informatik. Staunen Sie darüber, wo überall in den Anwendungsgebieten der Informatik diese elementaren mathematischen Begriffe wieder auftreten.

Die Mathematik ist nicht dazu gedacht, Ihnen das Leben schwer zu machen, sondern im Gegenteil: Ihnen das Leben leicht zu machen. Denn jede gute Praxis beruht auf einer guten Theorie, und diese wiederum beruht meistens auf Mathematik.

Und einmal überspitzt gesagt: Je virtuoser Sie mit den oben erwähnten Begriffen umgehen, desto ernster werden Sie in Ihrem Beruf als Informatiker oder Informatikerin genommen.

Teil IV: Codierung

In diesem Teil geht es im weitesten Sinne um die Darstellung von Information im Computer. Sie rechnen mit einzelnen Bits, also Nullen und Einsen, in boolescher Algebra, dies ist die Grundlage alles dessen, was der Computer macht. Und Sie lernen, wie Zahlen im Binärsystem im Computer dargestellt werden.

Dann komprimieren Sie Bitfolgen auf die kleinstmögliche Länge, ohne dass Information verloren geht. Woher Sie wissen, wann die kleinstmögliche Länge erreicht ist? Dies sagt Ihnen die Theorie, Sie haben ja den dritten Teil dieses Buches gelesen.

Und Sie erkennen sogar Fehler in übermittelten Bitfolgen. Wie das? Woher wissen Sie, wie die korrekte Bitfolge lautet? Lassen Sie sich überraschen!

Teil V: Praktische Informatik

Sie erhalten einen Einblick in zwei Gebiete, die in der Praxis der Informatik überragende Bedeutung haben: die Speicherung von Daten in Datenbanken und die Kommunikation von Daten in Computernetzen. Darüber hinaus geht es um die Sicherheit der Kommunikation.

Wie das Geld auf einer richtigen Bank, so die Daten in einer Datenbank: Die Daten müssen einerseits sicher aufbewahrt werden, aber sie müssen auch so aufbewahrt werden, dass Sie jederzeit an sie herankommen. Um diesen zweiten Aspekt geht es vorzugsweise in diesem Teil, nämlich wie sich die Daten nach außen hin präsentieren und wie Sie mit der sehr einfachen Datenbanksprache SQL darauf zugreifen.

Das Internet kennt jeder, aber wie es funktioniert, ist den meisten ein Rätsel. Hier im Ansatz eine Vorstellung zu entwickeln, ist der erste Schritt. Alles Weitere sind zum großen Teil technische Einzelheiten, spezifiziert in unzähligen Normen und Normungsvorschlägen. Hier soll es nur um die wesentlichen Ideen gehen und die grundsätzliche Schichtenarchitektur des Internet.

Wie aber lässt sich die Sicherheit der Kommunikation im Internet gewährleisten? Hier kommt die Kryptografie ins Spiel. Durch Verschlüsselung lassen sich Daten vor dem Zugriff durch unbefugte Dritte schützen.

Teil VI: Theoretische Informatik

Hier geht es um das Wesentliche, was Informatik letztlich ausmacht: die systematische Manipulation von Zeichen.

Heruntergebrochen auf das einfachstmögliche Gerät, das dazu in der Lage ist, landen Sie bei der Turingmaschine. Die Turingmaschine ist benannt nach dem englischen Mathematiker Alan Turing, der dieses bemerkenswert einfache gedankliche Gerät bereits 1936 entworfen hat. In der Informatik geht man davon aus, dass eine Turingmaschine alles berechnen kann, was überhaupt berechenbar ist. Das Verrückte ist: Es gibt Probleme, die einfach zu formulieren sind, aber nicht berechenbar sind.

Aber es geht auch um weniger Fundamentales, so zum Beispiel um die Definition von Programmiersprachen durch Grammatiken. Und es geht um Praktisches, nämlich einen Compiler zu programmieren – noch nicht gleich für ganze Programmiersprachen, sondern erst einmal nur für arithmetische Ausdrücke. Hört sich kompliziert an, ist es aber nicht. Sie werden überrascht sein, dass Sie dies an einem halben Nachmittag hinbekommen.

Teil VII: Top-Ten-Teil

Der Top-10-Teil ist hier ein Top-7-Teil: Sie erfahren endlich, welche von allen den Dingen, die Sie gelernt haben, die sieben wichtigsten sind. Im Anschluss finden Sie die Lösungen zu den kleinen Übungsaufgaben, sodass Sie nachschauen können, ob Sie das Gleiche herausbekommen haben. Und Sie finden ein paar Buchvorschläge zum Weiterlesen, wenn Sie für die Informatik Feuer gefangen haben ...

Symbole, die in diesem Buch verwendet werden

Neben diesem Symbol finden Sie eine wichtige Tatsache, wie etwa eine Definition oder einen Lehrsatz.

So wichtig eine genaue Definition auch ist – verstehen lässt sie sich viel leichter anhand eines Beispiels.

Vorsicht: Bevor Sie in eine Falle tappen, lesen Sie lieber diesen kleinen Abschnitt.

Solange Sie selbst noch keine umfassenden Erfahrungen haben, empfinden Sie den einen oder anderen Tipp bestimmt als hilfreich.

Wie es weitergeht

Lesen Sie einfach los! Aber lesen Sie nicht mehr weiter, wenn Sie merken, dass Sie nicht mehr folgen können (falls dies einmal vorkommt). Dann gehen Sie noch einmal ein Stück zurück.

Es lohnt sich auf jeden Fall, die Übungsaufgaben am Ende jedes Kapitels zu lösen und sich dadurch kleine Erfolgserlebnisse zu gönnen. Schauen Sie erst hinterher bei den Lösungen nach und vergleichen Sie, ob Sie richtig gelegen haben.

Tippen Sie auch die Programmstücke ab und lassen Sie diese mit Ihren eigenen Eingabewerten laufen! Abtippen ist zum Lernen besser als Copy-and-paste – es ist wie zu Fuß zu gehen, man bekommt mehr mit als beim Autofahren.

Also, liebe Leserin und lieber Leser, ich lade Sie ein, in den folgenden Kapiteln auf Entdeckungsreise zu gehen in die Welt der Informatik, unbekannte Kontinente zu erkunden, aber vielleicht auch Urlaub in schon vertrauten Gegenden zu machen.

Ich wünsche Ihnen viel Freude beim Lesen und Lernen!

Bitte und Danke sagen

Bitte senden Sie Kommentare, Lob und Kritik sowie Hinweise auf Fehler an [email protected].

Danke sage ich allen, die mir beim Schreiben dieses Buches wertvolle Anregungen gegeben haben. Ich danke auch dem Kollegen Reinhard Völler, der als Fachkorrektor zum Schluss noch wichtige Hinweise gegeben hat.

Teil I

Programmieren

IN DIESEM TEIL…

Programmieren ist das Handwerk der Informatik. Ganz gleich, ob Sie Anwendungssoftware entwickeln, Webseiten gestalten, Hardware-Chips entwerfen, Datenbanken abfragen, Computernetze konfigurieren – immer benutzen Sie eine formale Sprache, eben die für den jeweiligen Zweck dienliche Programmiersprache, um dem Computer zu sagen, was er tun soll.

Wie Sie wissen, gibt es eine ganze Reihe von Programmiersprachen. Welches ist nun die richtige Programmiersprache, um Software zu entwickeln? Die einen schwören auf die Programmiersprache C, die anderen lehnen C grundsätzlich ab und bevorzugen Java, wieder andere glauben, dass Python besser ist als Java.

Aber, und das ist die gute Nachricht, die Kunst des Programmierens ist weitgehend unabhängig von der verwendeten Programmiersprache.

Im Folgenden lernen Sie Programmieren von der Pike auf. Das stimmt nicht ganz: Wirklich lernen können Sie Programmieren nur durch viel Üben.

Die verwendete Programmiersprache ist Java, aber alles, was Sie dann gelernt haben, können Sie ohne viel Mühe auf andere Programmiersprachen wie C oder Python übertragen.