cover.eps

image

image

image

image

Title page image

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

  1. Auf einen Blick
    1. Einführung
    2. Teil I: Informatik zum Verlieben
      1. Kapitel 1: Informatik im Schnelldurchlauf
      2. Kapitel 2: Was die Informatik im Inneren zusammenhält
      3. Kapitel 3: Im Dschungel von Bits und Bytes
      4. Kapitel 4: Wie Informatiker denken
    3. Teil II: Schöne neue digitale Welt
      1. Kapitel 5: Fingertechnik
      2. Kapitel 6: Heilen mit boolescher Algebra
      3. Kapitel 7: Schalten und Walten
      4. Kapitel 8: Fangen mit Schaltnetzen
      5. Kapitel 9: Schaltwerke der Menschheitsgeschichte
      6. Kapitel 10: Mikroprogramme im Land der Automaten
    4. Teil III: Besichtigung der Maschinenhalle
      1. Kapitel 11: EVA und die Vertreibung aus dem Paradies
      2. Kapitel 12: Alle Macht der Zentraleinheit
      3. Kapitel 13: Speicher im ganzen Haus
      4. Kapitel 14: Mit dem Bus zum BIOS
      5. Kapitel 15: Cache me if you can
    5. Teil IV: Sprachen für Computer
      1. Kapitel 16: Warum alles so kompliziert ist
      2. Kapitel 17: Programmiersprachen und Werkzeuge
      3. Kapitel 18: Bestandteile einer Programmiersprache
      4. Kapitel 19: Auf was Sie beim Programmieren achten sollten
      5. Kapitel 20: Programme entwickeln mit System
    6. Teil V: C und andere Vitamine
      1. Kapitel 21: Wer A sagt, muss auch C sagen
      2. Kapitel 22: C als Muttersprache
      3. Kapitel 23: Fiese Tricks in ANSI C
      4. Kapitel 24: Abheben mit C++
      5. Kapitel 25: Apps mit Objective-C und Swift
    7. Teil VI: Eruption aus Java
      1. Kapitel 26: Heißer Kaffee
      2. Kapitel 27: Felder und mehr
      3. Kapitel 28: Klasse Klassen
      4. Kapitel 29: Sammeln für Java
      5. Kapitel 30: Apps mit Android
    8. Teil VII: Datenstrukturen und Algorithmen für die Ewigkeit
      1. Kapitel 31: Algorithmen für den Hausgebrauch
      2. Kapitel 32: Elementare Datenstrukturen
      3. Kapitel 33: Tabellen für alle Einsatzzwecke
      4. Kapitel 34: Wald und Bäume überblicken
      5. Kapitel 35: Jede Menge Graphen
    9. Teil VIII: Computerarchitektur als Gesamtkunstwerk
      1. Kapitel 36: Betriebssysteme
      2. Kapitel 37: Architektur von Software
      3. Kapitel 38: Datenbanksysteme
    10. Teil IX: Künstliche Intelligenz gegen natürliche Dummheit
      1. Kapitel 39: Führung durch die Asservatenkammer
      2. Kapitel 40: Spielend suchen und finden
      3. Kapitel 41: Lärmende Systeme
      4. Kapitel 42: Expertensysteme für Profis
      5. Kapitel 43: Kunstvolle neuronale Netze
    11. Teil X: Im Netz der Netze
      1. Kapitel 44: Ganz nach Protokoll
      2. Kapitel 45: Gestalten und Gestaltung im Web
      3. Kapitel 46: Skriptsprachen
      4. Kapitel 47: Socket- und Threadprogrammierung
      5. Kapitel 48: Durchblick und Ausblick
    12. Teil XI: Die praktischen Seiten der theoretischen Informatik
      1. Kapitel 49: Komprimierte Information
      2. Kapitel 50: Formulare für formale Sprachen
      3. Kapitel 51: Logik und Korrektheit für Informatiker
      4. Kapitel 52: Theorie für Unberechenbare
      5. Kapitel 53: Mittel gegen theoretische Komplexe
    13. Teil XII: Top Secret
      1. Kapitel 54: Risiken und Manager
      2. Kapitel 55: Angriffsarten und Schutzmaßnahmen
      3. Kapitel 56: Vierbeiniger Besuch aus Troja
      4. Kapitel 57: Alice und Bob im Wunderland der Zahlen
      5. Kapitel 58: Wände gegen Feuer
    14. Teil XIII: Der Top-Ten-Teil
      1. Kapitel 59: Zehn bedeutende Meilensteine der Informatik
      2. Kapitel 60: Die zehn schlimmsten Irrtümer der Informatik
    15. Stichwortverzeichnis

Einführung

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

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

Zu diesem Buch

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

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

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

Konventionen in diesem Buch

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

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

  int fakultaet(int n);

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

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

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

Törichte Annahmen über den Leser

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

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

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

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

Wie dieses Buch aufgebaut ist

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

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

Teil I: Informatik zum Verlieben

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

Teil II: Schöne neue digitale Welt

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

Teil III: Besichtigung der Maschinenhalle

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

Teil IV: Sprachen für Computer

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

Teil V: C und andere Vitamine

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

Teil VI: Eruption aus Java

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

Teil VII: Datenstrukturen und Algorithmen für die Ewigkeit

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

Teil VIII: Computerarchitektur als Gesamtkunstwerk

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

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

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

Teil X: Im Netz der Netze

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

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

Teil XI: Die praktischen Seiten der theoretischen Informatik

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

Teil XII: Top Secret

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

Teil XIII: Der Top-Ten-Teil

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

Symbole in diesem Buch

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

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

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

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

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

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

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

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

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

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

image 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

image

IN DIESEM TEIL …

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