Der erste Band der Informatik erklärt die grundlegenden Konzepte: Programmierung, Algorithmen und Datenstrukturen. Nach einer Einführung zum Aufbau von Rechnersystemen und zur Darstellung von Informationen folgt ein Einstieg in die Programmierung mit der Sprache Python. Dabei werden grundsätzliche Prinzipien von Programmiersprachen erläutert, darunter Schleifen, Rekursion, imperative, funktionale und objektorientierte Programmierkonzepte. Einige konkrete Projekte werden in Python realisiert, so etwa zur Datenbeschaffung im Internet und deren Aufbereitung oder zum Umgang mit diversen Sensoren und zur Steuerung externer Geräte mit dem Raspberry-Pi. Dem Objektorientierten Programmieren und insbesondere der Programmiersprache Java ist ein eigenes Kapitel gewidmet. Diese Sprache und ihre Infrastruktur unterstützen besonders die professionelle Entwicklung großer Projekte. Auch die neuesten Konzepte von Java (Lambdas, Ströme und Funktionale) werden anschaulich erläutert. Das letzte Kapitel behandelt klassische Algorithmen und Datenstrukturen: Such- und Sortieralgorithmen, Listen, Bäume, Graphen, Maps, und diverse andere Datentypen zum effi zienten Speichern, Wiederauffi nden und Transformieren von Daten. Diese werden mit ihren Vor- und Nachteilen und anhand von Java-Programmen dargestellt.
Der zweite Band ist technischen Themen gewidmet – insbesondere der Rechnerarchitektur, Betriebssystemen, Rechnernetzen und speziell dem Internet. Das Ziel des ersten Kapitels ist es, ein grundsätzliches Verständnis für den Aufbau eines Computers zu vermitteln, angefangen bei den Transistoren, den damit realisierten logischen Schaltkreisen, den Speichergliedern bis zur CPU, dem „Herz“ des Computers, und den Maschinenprogrammen, die diese Technik zum Leben erwecken. Im folgenden Kapitel werden die grundsätzlichen Aufgaben von Betriebssystemen erläutert. Rechner sind heute fast immer mit einem Netzwerk verbunden. Das Konzept einer dezentralen Rechnerversorgung mit Servern, die die Rolle eines zentralen Datei-Verwalters übernehmen wird im dritten Kapitel behandelt. Ein nächster naheliegender Schritt besteht darin, verschiedene Netze untereinander zu verbinden. So entstand auch das Internet: dieses Thema wird im vierten und letzten Kapitel dieses Buches ausführlich behandelt. Grundlage der Kommunikation im Internet sind die TCP/IP Protokolle. Auf diesen baut das WorldWideWeb auf, das die Infrastruktur für das heutige Internet mit seinen vielfältigen Diensten wie z. B. EMail, ftp, Internet Telephonie, etc. bereitstellt. Die Grundlagen der Gestaltung und Programmierung von Web Dokumenten mit HTML5 und JavaScript sowie die universelle Datenaustauschsprache XML und deren Möglichkeiten sind ein wichtiger Teil dieses Kapitels, das mit einem kurzen Abriss sozialer Netzwerke endet.
Der dritte und letzte Band der Buchreihe Informatik ist der Theoretischen Informatik gewidmet. Nach einer allgemeinen Diskussion formaler Sprachen, deren Beschreibungen und Grenzfällen der Erkennbarkeit werden die regulären Sprachen behandelt, welche in der lexikalischen Defi nition von Programmiersprachen ihre wichtigste Anwendung finden sowie die kontextfreien Sprachen, mit denen man die Syntax von Programmiersprachen definiert. Aus theoretischer Sicht befriedigend ist die eindeutige Entsprechung zwischen Sprachbeschreibung und Spracherkennung - den regulären Sprachen entsprechen die endlichen Automaten und den kontextfreien Sprachen die Stackmaschinen. Weitere Stufen der Chomsky-Hierarchie werden nur kurz behandelt, da sie in der Praxis von geringerer Bedeutung sind. Stattdessen zeigt ein eigenes Kapitel zum Thema Compilerbau weitere Techniken auf, die aus einer Sprachbeschreibung einen Parser, also das komplette »front-end« eines Compilers, entstehen lassen. Der Begriff des »Algorithmus« wird anhand verschiedener Maschinenmodelle erklärt und bestätigt wird auch die Churchsche These, dass jede vernünftige Defi nition von »Berechenbarkeit« auf die gleiche Klasse von Funktionen führt. Die Grenzen des algorithmisch Machbaren werden anhand des Halteproblems und des Satzes von Rice klar abgesteckt. Das abschließende Kapitel zur Komplexitätstheorie erkundet unter den lösbaren Problemen die Grenze zwischen denen, die mit einem vertretbaren (polynomiellen) Aufwand lösbar sind und solchen, deren Lösung nicht wesentlich effi zienter ist, als ein systematisches Ausprobieren von Lösungskandidaten. Dieses Kapitel führt den Leser zu dem bekanntesten noch ungelösten Problem der Theoretischen Informatik: P = NP?
Das Buch richtet sich an alle Einsteiger, die sich ernsthaft mit Informatik beschäftigen wollen, sei es zum Selbststudium oder zur Begleitung von Vorlesungen.
Prof. Dr. Heinz-Peter Gumm
ist Professor für Theoretische Informatik in Marburg. Nach dem Studium in Darmstadt und Winnipeg (Kanada) von 1970 bis 1975 und der Habilitation 1981 folgten Professuren in Hawaii, Kalifornien und New York. Seine Forschungsgebiete sind Formale Methoden, Allgemeine Algebren und Coalgebren.
Prof. Dr. Manfred Sommer
ist emeritierter Professor für Praktische Informatik in Marburg. Nach dem Studium in Göttingen und München von 1964 bis 1969, war er Assistent am ersten Informatik-Institut in Deutschland an der TU München. Es folgten zehn Jahre bei Siemens in München und von 1984 bis 2014 war er Informatik-Professor in Marburg.