Blog: MJ

Sind Programmfehler unausweichlich?

In jedem größeren Softwareprojekt stellt sich früher oder später die Frage, ob unentdeckte Fehler im Code schlummern und den korrekten Ablauf des eigentlich gewünschten Prozesses in bestimmten Situationen sabotieren. Unter dem Wikipedia-Stichwort Programmfehler findet man hierzu die Aussage, dass als stabil geltende Programme durchaus eine Fehlerdichte von bis zu einem Fehler je 2000 Programmzeilen aufweisen können.

Welche Bedeutung dem Thema zukommt, wird klar, wenn man an die Unfallgefahren in sicherheitskritischen Bereichen und auch die immensen wirtschaftlichen Schäden denkt, die durch Programmfehler entstehen. In der Informatik wird daher über Fehlererkennung und -vermeidung intensiv geforscht und ein großes Sortiment an Lösungsansätzen steht bereits zur Verfügung, wobei man in der Praxis nur eine Verringerung der Fehlerhäufigkeit und keinen hundertprozentigen Schutz erwarten kann. Das liegt auch daran, dass die Fehlerdetektion eine Definition des korrekten Prozessablaufs für alle möglichen Eingabedaten benötigt und diese in vielen Fällen gar nicht präzise vorliegt.

Einen gewissen Sonderfall spielen in dieser Hinsicht Programme der numerischen Mathematik, mit denen Darstellungen von mathematischen Objekten (Zahlen, Mengen, Funktionen, ...) berechnet werden sollen. Da hier sowohl das Ziel als auch der Algorithmus präzise in mathematischer Sprache formulierbar sind, ist die Fehlerfreiheit prinzipiell mit mathematischer Strenge beweisbar. Bei maschineller Prüfung dieses Korrektheitsbeweises und anschließender automatischer Übersetzung des Algorithmus in die gewünschte Programmiersprache, entsteht Programmcode, der frei von syntaktischen und logischen Fehlern ist.

Im Projekt $\mmath$ werden genau solche Compiler entwickelt, wobei sich die zugrunde liegende formale Sprache sehr eng an übliche mathematische Notationen anlehnt. Ausgehend von Grundalgorithmen, deren Korrektheit angenommen wird (analog zu den Axiomen einer Theorie), können dann immer komplexere Algorithmen mit beweisbaren Eigenschaften konstruiert werden.

Eine Absicherung nach unten erhält man ganz im Sinne des axiomatischen Ansatzes von Hilbert dadurch, dass auch die Grundalgorithmen sukkzessive auf immer weniger und möglichst elementare Basisalgorithmen zurückgeführt werden können (Axiomatisches Denken, David Hilbert, Mathematische Annalen, Vol. 78, pp. 405-415, Springer, 1917).

Reine und angewandte Mathematik

Innerhalb der Mathematik spricht man informell und etwas diffus von einem reinen und einem angewandten Zweig, wobei je nach Standpunkt auch etwas deutlicher gefärbte Einteilungen mitschwingen können: So werden Themen der reinen Mathematik von Angehörigen des angewandten Zweigs schon mal als lebensfern, abgedreht und unnötig eingestuft, während angewandte Fragestellungen aus der reinen Perspektive wegen eines geringeren Abstraktionsniveaus oder unpräzisen Begriffsbildungen auch als unmathematisch oder elementar gelten können.

Während solche pointierten Meinungen zum Teil auf die menschliche Eigenart zurückgehen, den eigenen Standpunkt aufwerten zu wollen, so stellt sich doch die Frage, ob sich die beiden Zweige objektiv in ihrer benutzen Arbeitsweise unterscheiden. Read more…

Schul- und Hochschulmathematik

Eine typische Szene aus dem Wintersemester: Erwartungsvolle Studienanfänger und -anfängerinnen sitzen in den ersten Mathevorlesungen und an den ersten Übungsblättern. Aber irgendwie hakt und klemmt es, die Anforderungen sind ungewohnt, die Aufgaben schwierig, neue Inhalte kommen zu schnell, Überforderung und Frust stellen sich ein und schon nach der Weihnachtspause ist deutlich mehr Platz im Hörsaal. Nach der ersten Klausur ist dann oft weniger als die Hälfte der Studierenden übrig und die ehemals gewohnten 13 bis 15 Punkte aus den Mathearbeiten sind vielleicht durch ein gerade noch bestanden oder sogar eine 5.0 ersetzt worden.

Wie kann es eigentlich sein, dass selbst sehr gute schulische Leistungen in Mathematik kein Erfolgsgarant in diesem Fach an der Uni sind? Wieso helfen die erlernten Techniken aus der Schule so wenig an der Uni? Es sieht fast so aus, als hätten Mathematik an Schule und Uni neben der Fachbezeichnung nicht viele Gemeinsamkeiten, aber worin besteht denn genau der Unterschied? Read more…