Beschreibung
Programmierung, die Umsetzung und Implementierung algorithmischer Verfahren zur Lösung konkreter Problemstellungen, kann als große Kunst angesehen werden, die Kreativität und Phantasie erfordert. Dabei kann sie auch als ingenieurmäßige Tätigkeit aufgefasst werden, die festen Regeln und etablierten Modellen folgt. Bei der intensiveren Beschäftigung mit der Tätigkeit des Programmierens stößt man bald auf Fragen nach dem Wesen dieser Tätigkeit und auch nach Grenzen algorithmischer Problemlösungsmöglichkeiten. Spätestens dann sollte man die Theoretische Informatik zu Rate ziehen, die zu vielen dieser Fragen Antworten bereit hält. Der vorliegende Text trifft eine (subjektive) Auswahl aus Themen der Theoretischen Informatik, die Grundlagen und Modelle der Programmierung behandeln. Auch wenn die direkte praktische Relevanz der dargestellten Inhalte nicht immer sofort sichtbar wird, so zählen diese doch zu den grundlegenden Bildungsinhalten, die jedem Informatiker und Wirtschaftsinformatiker vermittelt werden sollten. Zudem steht für die Ergebnisse gerade der Komplexitätstheorie außer Frage, dass sie einen unmittelbaren Einfluss auf die praktische Umsetzung und algorithmische Realisierung von Problemlösungen haben, auch wenn sie dem einen oder anderen sehr theoretisch erscheinen.