18,99 €
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:
Seitenzahl: 419
Veröffentlichungsjahr: 2020
Vorkurs Informatik für Dummies
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
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
Cover
Inhaltsverzeichnis
Fangen Sie an zu lesen
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
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!
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
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 ...
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.
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 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
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.
