Dies ist ein weiterer Gastbeitrag des Informatikers Marcus Frenkel. Diesmal geht es um das Beziehungen von Informatik und Mathematik.
Darauf angesprochen, was sich eigentlich unter Informatik konkret vorgestellt werden muss und darf, wird vielen Leuten eine Antwort schwer fallen. Selbst gestandene Informatiker können darauf sicherlich nicht immer sofort eine Antwort geben. Die häufigsten Vermutungen liegen wahrscheinlich irgendwo im Bereich von „irgendetwas mit Computern”, „etwas mit Programmieren” oder auch „viel mit Mathematik”. All diese Antworten sind im Prinzip absolut korrekt, spiegeln dabei allerdings nicht die volle Wahrheit wider. Die Thematiken „Computer” und „Programmieren” sind interessante Themen, heute aber soll es um den „mathematischen” Aspekt der Informatik gehen, sprich: ist die Informatik wirklich so von Mathematik durchsetzt, wie es oft behauptet wird?
Das erste nichttriviale Problem ergibt sich dabei schon bei der Frage danach, was Mathematik eigentlich ist und was sie alles umfasst. Eine eindeutige Definition dafür ist nicht vorhanden, da uns die Mathematik praktisch überall begegnet; mal eindeutiger, mal weit weniger klar ersichtlich.
Das zweite Problem der Diskussion über Mathematik in der Informatik ergibt sich teilweise aus dem ersten und betrifft die Abgrenzung zwischen Mathematik und Informatik. Die Frage hier ist: wann ist etwas „noch” Mathematik und ab wann muss „schon” von Informatik gesprochen werden? Der Grund hierfür ist, dass in der modernen Informatik sehr viele Themengebiete bearbeitet werden, welche sich stark an Mathematik erinnernder oder aus ihr hervorgegangener Techniken bedienen; teilweise wird auch „echte” Mathematik für Einsatzzwecke zweckentfremdet, welche außerhalb der Informatik wenig Sinn haben. Gute Beispiele hierfür sind etwa Simulationen von physikalischen, chemischen oder betriebswirtschaftlichen Prozessen, die Verwendung von Heuristiken und Statistiken in Berechnungen oder ganz allgemein die Auswertung großer Datenmengen.
Bei einer sehr lockeren Definition der Grenzen ist in der Informatik praktisch alles Mathematik; das gleiche gilt dann allerdings auch für sämtliche Naturwissenschaften, für die Wirtschaftswissenschaften, sogar Philosophie und Sprachwissenschaften wären dann mathematisch angehaucht. Für diesen Beitrag soll daher die folgende (nicht formale!) Definition gelten:
Alles, was nur im Rahmen der Informatik (also im Zusammenhang mit Rechenmaschinen und nur von der Informatik betrachteten Themen) sinnvoll betrachtet werden kann, soll im Weiteren allein der Informatik zugerechnet werden; alles andere der Mathematik.
Informatik – eine Fallunterscheidung
Ähnlich wie die meisten Wissenschaften besteht die Informatik aus sehr vielen verschiedenen Teilgebieten, die verschiedener nicht sein könnten. Im Folgenden sollen einige dieser Gebiete vorgestellt und in Beziehung zur Mathematik gesetzt beziehungsweise ihr „mathematischer” Anteil etwas erläutert werden. Die Auswahl der Gebiete ist dabei relativ willkürlich und keineswegs erschöpfend!
Die absolute Grundlage für die Informatik bildet natürlich die Rechenmaschine, der Computer. Der Begriff „Rechenmaschine” ist hierbei allerdings ein wenig mit Vorsicht zu genießen: im Grunde rechnet ein Computer nicht direkt, sondern verknüpft „Zahlen” auf einer logischen Ebene miteinander (die vermehrte Benutzung der Anführungszeichen weißt hier auch bereits unauffällig darauf hin, dass viele Begriffe lediglich bessere Analogien für das sind, was eigentlich geschieht; darum soll es aber ein andermal gehen). Ein Computer „rechnet” zwar, er tut dies allerdings keineswegs bewusst mathematisch, sondern logisch oder „auf Bitebene”, wie der Informatiker sagt. Da dies alles mehr oder weniger durch die Ausnutzung der Elektrizität geschieht, steckt in der Hardware-nahen Informatik neben etwas Basis-Mathematik vor allem sehr viel Physik und eine gehörige Portion Ingenieurskunst.
Noch weniger Mathematik findet sich in der klassischen EDV; die Einrichtung, Wartung und Reparatur von Software und Hardware auf und in Heimcomputern, Servern und artverwandten Geräten kann zum größten Teil mathematikfrei stattfinden. Sie ist auch nicht Teil eines üblichen Informatik-Studiums; von einem Informatiker zu erwarten, dass er perfekt mit Computern umgehen kann, da er „doch Informatik studiert hat”, ist in etwa so, als würde von jedem Astronomen erwartet werden, dass er Teleskope reparieren kann. Das heißt natürlich nicht, dass die EDV unwichtig oder einfach wäre – sie ist nur nicht Teil der akademischen Informatik und auch recht fern von der Mathematik.
Anders sieht das dann wieder beim Thema der Programmierung aus. Hier gilt: je nach Anwendungsfeld kann der Anteil der Mathematik sehr hoch oder praktisch nicht vorhanden sein. Insbesondere Programme, die Probleme aus anderen Fachgebieten lösen sollen, besitzen einen großen mathematischen Anteil und werden dementsprechend auch oft Mathematikern, Physikern, Ingenieuren und so weiter geschrieben. Natürlich gibt es auch Programme mit keinem bis geringem mathematischen Anteil (und wenn es ihn gibt, dann oft nur in grundlegender Form). Derartige Anwendungen werden oft genug von Informatikern geschrieben; auch eine etwas stärkere Verwendung der Mathematik (zum Beispiel für Statistikprogramme) kann vom gemeinen Wald-und-Wiesen-Programmierer gut gehandhabt werden, oft genug auch, ohne dass er die mathematischen Grundlagen kennt (muss er auch nicht – benutzen reicht).
Die gerade getätigten Aussagen müssen allerdings an dieser Stelle gleich wieder relativiert werden. Viele der verwendeten Algorithmen und Programmbestandteile verwenden Strukturen, die zwar nicht in die klassische Mathematik gehören, oft aber aus dieser abgeleitet wurden. So sind nicht wenige Probleme mathematisch geprägt und beeinflusst, ohne dass „echte” mathematische Techniken (mit Bezug auf die eingangs vereinbarte Definition!) genutzt werden. Ein bekanntes Beispiel hierfür sind etwa die künstlichen neuronalen Netze, die in kurzer Zeit extrem viele Berechnungen durchführen, diese aber auf einer sehr niedrigen Ebene (das Thema ist so spannend, dass es einen eigenen Blog-Beitrag verdient). Auch die evolutionären Algorithmen bedienen sich in der Theorie eines Gradientenverfahrens, ohne dass dies explizit mit mathematischen Formalismen ausgedrückt werden muss (auch dieses Thema ist interessant genug für einen späteren Beitrag). Als letztes Beispiel (auch hier gilt: die Liste ist bei weitem nicht erschöpfend) seien noch die verschiedensten Datenstrukturen genannt, die überall in der Informatik vorkommen, mathematisch notiert werden können, aber in der reinen Mathematik kaum bis keine Bedeutung haben (für den
Kenner: Beispiele sind etwa die B- und AVL-Bäume, Hashtabellen oder Heaps). Andere Probleme sind demgegenüber wieder stark mathematisch geprägt, können aber auch nur durch Computer sinnvoll gelöst werden; insbesondere die digitale Daten- und Signalverarbeitung (zum Beispiel in der Sprachverarbeitung) sind hierfür gute Beispiele.
Eine vollkommen andere Sicht auf den Zusammenhang zwischen Informatik und Mathematik erfordert die Theorie der Programmiersprachen selber (welche sich substantiell vom eigentlichen „programmieren” unterscheidet – aber dazu vielleicht später irgendwann einmal etwas). Eine Programmiersprache dient dazu, einen gewünschten Sachverhalt derart auszudrücken, dass er durch den Computer verarbeitet werden kann. Oft genug geht es dabei um mathematische Ausdrücke, die aber, in einer Programmiersprache geschrieben, erheblich von der bekannten Notation abweichen können. Die Entwicklung einer Programmiersprache ist hierbei ein Kunstwerk für sich, welches in großen Teilen auf der Logik (die wiederum als Teilgebiet der Mathematik betrachtet werden kann) aufbaut. Besonders bemerkenswert sind auch die sogenannten logischen Programmiersprachen, welche direkt die Beschreibung logischer Probleme erlauben.
Auch die theoretische Informatik hat einen ganz speziellen Zusammenhang mit der Mathematik, da sie ebenfalls sehr formal arbeitet und sich oft auf mathematische Konstrukte (etwa die Gruppentheorie) stützt. Gleichzeitig besitzt sie aber auch ganz eigene Formalismen, die zwar mathematisch wirken, aber nur im Bereich der Informatik sinnvoll anwendbar sind. Dennoch ist die theoretische Informatik wohl der Teil der Informatik, der noch die größten Überschneidungen mit der Mathematik besitzt.
Und die Erkenntnis?
Die genannten Beispiele zeigen verschiedene Möglichkeiten auf, wie Informatik und Mathematik zusammenspielen können. Die wichtige Erkenntnis ist, dass die Informatik durchaus mathematisch ist – allerdings ihre ganz eigene „Mathematik” besitzt, die mit dem klassischen Mathematik-Begriff nur noch in Teilen zusammenhängt. Ein Fakt wurde bisher dabei auch noch unterschlagen, ist aber derart wichtig, dass er nicht vernachlässigt werden darf: Mathematiker können meist frei von Beschränkungen (etwa in Bezug auf Laufzeit oder Speicherverbrauch) ihre Lösungen notieren, wobei der Algorithmus zur Lösung eines Problems nicht selten auf „triviale” Weise notiert werden kann. Ein Informatiker hat es an dieser Stelle weitaus schwieriger, da er sowohl verschiedensten Einschränkungen unterliegt (ein Computer kann zum Beispiel nicht bis unendlich zählen – er besitzt eine „größte Zahl”, die er speichern kann) als auch ein an sich simples Problem kompliziert lösen muss. Ein beliebtes Beispiel hierfür: die Sortierung einer Menge von Zahlen. Für den Mathematiker lässt sich eine sortierte Menge natürlicher Zahlen trivial ausdrücken (mitlesende Mathematiker werden mich für diese Schreibweise unter Umständen steinigen wollen; ich bitte, es mir nachzusehen, da dies die Notation aus Sicht eines Informatikers ist):
Ein Informatiker muss an dieser Stelle eine gehörige Menge an Gehirn- und Rechenleistung investieren, um das gleiche Ergebnis zu erzielen.
Die große Frage ist: wann ist etwas noch Mathematik und ab wann muss von Informatik gesprochen werden. Dieses Problem ist unter anderem historisch gewachsen, da die Informatik ursprünglich aus der Mathematik erwachsen ist und auch viele der frühen (und praktisch alle großen) Informatiker eigentlich Mathematiker, Physiker oder Ingenieure waren und dementsprechend ihre „mathematische” Sicht auf die Dinge hatten. Eine starke Vermischung dieser beiden Tätigkeitsfelder ist also beileibe nicht wunderlich. Jedoch hat sich die Informatik im Laufe der letzten Jahrzehnte sehr schnell weiterentwickelt und ist, man möchte fast sagen, erwachsen geworden. Wo genau die Grenze zu ziehen ist, bleibt indes weiterhin unbestimmt; auch in vielen Jahren wird noch der Satz zu hören sein: „Informatik hat viel mit Mathematik zu tun.” Aber Mathematikmuffel dieser Welt, lasst euch davon nicht einschüchtern. Und um ein großer Informatiker zu werden, muss man nicht zwangsläufig ein guter Mathematiker sein. Viel wichtiger sind die Fähigkeit des abstrakten und strukturierten Denkens und das Vermögen, formale Notationen zu benutzen.
Kommentare (21)