Wie löst man Probleme?


Wir verstehen als Aufgabe und Tätigkeit eines Informatikers nicht in erster Linie das Schreiben von Programmen , sondern das Lösen von Problemen , sowohl von eigenen wie auch von solchen der Anwender; also über eine Problemanalyse zu einem Systementwurf zu kommen. Dazu gibt es zwar kein durchgängiges Verfahren, jedoch eine Reihe von bewährten Strategien und nützlichen Tipps.

Eine große Schwierigkeit in der Praxis besteht darin, daß viele Problembereiche außerordentlich umfangreich und komplex sind; man braucht also Strategien zur Beherrschung der  Komplexität. Dabei ist es hilfreich, nicht nur ein einzelnes Problem anzugehen, sondern zu versuchen, eine ganze Problemklasse zu lösen. So hat man einen besseren Wirkungsgrad und erhält im Idealfall wiederverwendbare Bausteine.

Häufig beobachtet man, daß ein allgemeineres Problem leichter und eleganter lösbar ist als ein spezielles (das damit auch  gelöst ist). Der Grund dafür ist die dabei vorgenommene Abstraktion, also das Weglassen von für die spezielle Instanz spezifischen Einzelheiten; man überblickt so das Wesentliche besser (das ist Theorie).

Den Instanzen aus einer Problemklasse kann man jeweils ein geeignetes ganzzahliges Größenmaß zuordnen (oft gibt es mehrere davon). Damit lautet unsere Grundstrategie:

Für das einzelne Teilproblem kommen, sofern es nicht direkt lösbar ist, jeweils zwei Vorgehensweisen in Frage: Beides wird durch Modula 2 gut unterstützt. Wir zeigen dies an einem ausführlichen Beispiel .


zurück | Inhalt | Index | vor | Vorlesung

Klaus Lagally, 22. Februar 2000, 19:36