Wie man einem Computer das Ausführen von Aufgaben beibringt

Computer werden zur Lösung verschiedener Klassen von Aufgaben eingesetzt. Dabei hängt der Intelligenzgrad eines Computers davon ab, wie genau die Abfolge der vom Computer auszuführenden Aktionen beschrieben ist. Da die Aufgaben sehr komplex sein können und von vielen Faktoren, Bedingungen, Ereignissen und externen Daten abhängen, sollte der Softwareentwickler all dies berücksichtigen und dem Computer in geeigneter Form beibringen.

Bevor ein Entwickler mit der eigentlichen Softwareentwicklung beginnt, sollte er nicht nur die Abläufe und Schritte der Aufgabenerfüllung detailliert und korrekt in einer für Computer verständlichen Sprache beschreiben, sondern auch die Anwendungsdomäne und die Kundenanforderungen an das zukünftige Softwareprodukt kennen.

Algorithmen sind ein bequemes und in der IT-Welt weitverbreitetes Mittel, um die Computer-Aufgaben zu formalisieren und zu beschreiben. Obwohl Algorithmen für Maschinen konzipiert sind, helfen sie, die Funktionsweise beliebiger Prozesse besser zu verstehen. Dies wird dadurch bedingt, dass Algorithmen nicht in einer Programmierhochsprache beschrieben werden, sondern in einer vom Menschen verständlichen Pseudosprache. Dies ist sozusagen die höchste Abstraktionsebene der Programmierung, bei der die Programmiersprache und die Implementierungswerkzeuge möglicherweise noch nicht in Betracht kommen.

Normalerweise wird ein Algorithmus so aufgebaut, dass er die Lösung eines Problems mit den Ausführungsschritten beschreibt, die auch für eine Person verständlich sind, die zuvor nicht mit der Lösung ähnlicher Probleme konfrontiert war. Ein aufgeschriebener Algorithmus reicht ihm aus, um das Problem und die Art seiner Lösung zu verstehen. Da sich Algorithmen ideal zur Implementierung in einer Programmiersprache eignen und dadurch für einen Computer verständlich werden, sind sie eine der wichtigsten Stationen bei der Entwicklung neuer Software. Die Softwarequalität wird in hohem Maße durch die Qualität des jeweiligen Algorithmus bestimmt, denn alle unbemerkten Algorithmusfehler werden dann zwangsläufig auch in den Programmcode einfließen.