Einige Leser haben sicherlich meine bisherigen Gastbeiträge gelesen, die netterweise auf Geograffitico (danke, Jürgen!) veröffentlicht wurden. Jetzt wurde mir die große Ehre zuteil, auf Scienceblogs.de mein eigenes Blog – Von Bits und Bytes – betreiben zu dürfen.
Der Titel lässt vermuten, dass es hier zum größten Teil um Computer gehen wird; immerhin entspricht das auch ungefähr dem Bild, welches die Öffentlichkeit von der Informatik hat – Informatiker machen „irgendetwas mit Computern”. Jeder mitlesende Informatiker wird sicherlich die Verzweiflung kennen, die ihn befällt, wenn ein lieber Verwandter oder Bekannter mal wieder mit einem Computerproblem ankommt, denn „du hast doch Informatik studiert, da kennst du dich doch mit Computern aus.” Natürlich hat Informatik etwas mit Computern zu tun, aber oft genug auf höchst indirekte Art und Weise und nicht so, wie die Aussage in der Regel gemeint ist. Ich möchte mit diesem Blog versuchen, diese Dichotomie aufzuklären und etwas zum allgemeinen Verständnis der Informatik beitragen. Ich möchte vermitteln, was Informatik eigentlich genau ist.
Um das Problem „Computer ist gleich Informatik?” anschaulich zu erklären, ist zu Anfang ein Zitat des bekannten Informatikers Edsger Wybe Dijkstra angebracht: “In der Informatik geht es genauso wenig um Computer wie in der Astronomie um Teleskope.” Fleißige Leser von Astrodicticum Simplex werden sicher wissen, was gemeint ist. Ohne ein Teleskop lässt sich schlecht Astronomie betreiben, da irgendwo die ganzen Informationen über das Universum ja herkommen müssen; Teleskope sind somit ein essentieller Bestandteil der Astronomie. Beobachten des Himmels allein reicht aber nicht (zumindest für die Astronomie; wer sich an imposanten Anblicken erfreut, hat es hier natürlich einfacher) – zusätzlich zur Arbeit mit dem Teleskop sind Formeln, Theorien und Modelle erforderlich, mit denen die beobachteten Dinge verstanden und erklärt werden können. Teleskope liefern die Eingangsdaten für die Berechnungen und erlauben, die bestimmten Modelle an der Wirklichkeit zu überprüfen. Für den Schritt dazwischen aber sind sie nicht notwendig. Der gemeine Astronom wird sich zudem sicherlich auch selten mit dem Zusammenbau von, der Erforschung neuer und der Bedienung bestehender Teleskope beschäftigen, insbesondere, wenn wir hier von den großen Anlagen wie dem VLT reden (ich hoffe, ich habe den astronomischen Alltag hier nicht allzu falsch wiedergegeben; aber Florian wird mich hoffentlich darauf hinweisen, wenn doch).
Die Informatik folgt hier einem ähnlichen Schema. Der Computer ist das Werkzeug, welches die Basis für die Arbeit als Informatiker darstellt; auf ihm können die erdachten Algorithmen umgesetzt, die geschriebenen Programme ausgeführt und die neu entwickelten Modelle ausprobiert werden. Nur wenige Informatiker jedoch werden selber Computer zusammenschrauben, ständig neue Betriebssysteme installieren, Viren beseitigen und was sonst noch alles dem Kompetenzbereich von Informatikern zugerechnet wird. Sicher, wir können derartige Aufgaben ab und zu „besser” als Menschen erledigen, die nicht so viel mit Computern zu tun haben. Aber ehrlich – nur, weil wir Informatik studiert haben, heißt das nicht, dass wir alles am Computer können.
Wenn es nun aber in der Informatik nicht (nur) um Computer geht, worum dann? Grob habe ich das ja schon bei der Diskussion darüber, warum Informatik nicht zwangsläufig Mathematik ist, umrissen. Im Wesentlichen lässt sich die Informatik in die drei Teilgebiete technische, theoretische und praktische Informatik unterteilen.
Die technische Informatik beschäftigt sich mit allem, was irgendwie mit Hardware, also den physikalischen Komponenten eines Computersystems, zu tun hat. Das kann entweder ganz konkret der Entwurf neuer Hardware-Bausteine (etwa Prozessoren, Grafikkarten, Festplatten, …) sein, aber auch die Planung, der Zusammenbau und die Wartung von ganzen Computersystemen. Doch nicht nur der Umgang mit der Technik gehört dazu – auch die systemnahe Programmierung, also die Programmierung von Software, welche unmittelbar mit der zugrundeliegenden Hardware zu tun hat, kann in den Bereich der technischen Informatik eingeordnet werden. Ich muss allerdings gleich zu Anfang gestehen, dass ich von dieser Thematik allgemein weniger Kenntnisse besitze und sie daher in diesem Blog vermutlich zu kurz kommen wird. Wer hierzu ein gutes Blog kennt, möge es mir doch bitte mitteilen, damit ich es hier direkt verlinken kann.
Die theoretische Informatik erforscht – wie sollte es auch anders sein – die Grundlagen der Informatik. Der Leser sollte sich hier allerdings nicht vom Begriff „Grundlagen” in die Irre führen lassen; tatsächlich ist die theoretische Informatik ein sehr umfangreicher und fast schon eigenständiger Themenkomplex, der zwar mit der praktischen Informatik einige wichtige Berührungspunkte und Überschneidungen besitzt (wobei in eben diesen Bereichen eine Unterscheidung manchmal schwierig ist), aber teilweise losgelöst von dieser existiert. Die untenstehende Abbildung (anklicken zum Vergrößern) zeigt einige der zur theoretischen Informatik gehörenden Gebiete. Die Berechenbarkeitstheorie beschäftigt sich dabei mit der Frage, ob ein Problem überhaupt mit einer Maschine lösbar ist; in der Komplexitätstheorie wird dann gefragt, wie komplex, also schwierig es ist, ein bestimmtes Problem zu lösen (an dieser Stelle sei bereits einmal auf das bekannte P=NP-Problem hingewiesen, welches bestimmt später noch einen eigenen Blog-Eintrag bekommt); die formalen Sprachen schließlich beschreiben den formalen Aufbau einer Sprache (was sich darunter vorgestellt werden kann, werden wir irgendwann später auch noch sehen) und können für verschiedene Zwecke eingesetzt werden, etwa die Definition von Programmiersprachen, formale Beweise und ähnliches. Weitere wichtige Bereiche der theoretischen Informatik sind die formale Logik, Programmverifikation, Kryptographie, Graphtheorie, Typtheorie und auch die Behandlung von Quantencomputern. Diese Liste ist nicht vollständig – eine exakte Definition, was theoretische Informatik alles umfasst, ist wie so oft nicht eindeutig möglich.
Die praktische Informatik schließlich umfasst all die Themen, die sich mit der Lösung konkreter Probleme beschäftigen. Auch hier ist eine exakte Eingrenzung schwierig, da keine formale Definition existiert; ich lege daher meine ganz persönliche Definition zugrunde (mitlesende Informatiker mögen mir das bitte durchgehen lassen): ich rechne all das zur praktischen Informatik, was im Grunde auf Programmierung (gleich welcher Art) hinausläuft. Das ist natürlich eine sehr allgemeine Beschreibung, welche sehr viele Thematiken umfasst. Beispiele hierfür sind etwa die Beschreibung von Datenstrukturen zur Speicherung und Repräsentation von Informationen, die Entwicklung von Algorithmen für die verschiedensten Zwecke (etwa zum Sortieren von Daten oder zur Lösung von Optimierungsproblemen), Programmiertechniken im Allgemeinen und Softwaretechnik im Speziellen, die Entwicklung von Betriebssystemen, die Verwaltung von Datenbanken, künstliche Intelligenz, Bildverarbeitung (zum Beispiel Gesichtserkennung auf Bildern), Computergrafik (dazu zählen auch die beliebten Computerspiele) und so weiter, und so weiter. Man sieht – das Feld ist praktisch unerschöpflich.
Manche Leute nennen noch ein viertes Teilgebiet der Informatik, nämlich die angewandte Informatik. Hierunter gruppieren sie alles, was interdisziplinär ist, also große Überschneidungen mit anderen Fachbereichen besitzt. Beispiele hierfür sind etwa die Bioinformatik, Geoinformatik, Medieninformatik, Wirtschaftsinformatik oder Umweltinformatik. Ich persönlich finde diese Einteilung ein wenig ungünstig, da es sich hier genau wie bei der praktischen Informatik am Ende darum dreht, ein konkretes Problem mittels Programmierung zu lösen. Ich werde daher bei der initial genannten Einteilung bleiben und sämtliche interdisziplinären Ansätze einfach der praktischen Informatik zuschlagen. Da ich vor allem im praktischen Gebiet zu Hause bin, wird es zudem dementsprechend auch den Großteil der Blogartikel ausmachen, wobei ich natürlich versuchen werde, auch die anderen Themengebiete so oft wie möglich anzuschneiden.
Ich hoffe, ich kann mit diesem Blog die Geheimnisse der Informatik etwas lüften und euch, den Lesern, einige Einblicke in diese spannende Wissenschaft geben!
[1] erstellt von Darkone via Wikimedia Commons
[2] erstellt von Paeng via Wikipedia
Kommentare (38)