Algorithmus für Süßkartoffelsuppe

Eine meiner liebsten Beschäftigungen ist es, anderen Menschen Dinge beizubringen – Informatik-Dinge. Besonders viel Spaß macht es, wenn die Zielpersonen meiner Erläuterungen mit diesen auch auf längere Sicht etwas anfangen können. Juristen, seien Sie nun praktizierende, lehrende oder forschende Juristen, werden in Ihrer Zukunft immer mehr mit dem Computer zu tun haben. Versteht mich nicht falsch, in allen Bereichen unseres Rechtssystems werden Computer bereits ausgiebig eingesetzt, denn ohne EDV wären viele Tätigkeitsbereiche auch heute schon nicht mehr zu bewältigen. Jedoch taucht die Informatik immer häufiger nicht mehr nur als reine EDV auf, sondern verlangt nach einem tieferen Verständnis.

Ich würde gerne meinen Teil zur Bildung dieses Verständnisses beitragen. Um einen ersten Schritt hin zu einem wachsenden Verständnis zu wagen, soll heute erklärt werden, warum Computerprogramme das tun, was sie tun.

„Programme werden programmiert“. Dieses grundlegende Wissen hat es mittlerweile in die Allgemeinbildung geschafft. Um durch Programmieren ein solches Programm zu schaffen, sollten wir zuerst, zumindest oberflächlich, verstehen, was ein Programm überhaupt ist.

Ganz allgemein gesehen ist ein Computerprogramm eine Sequenz aus Deklarationen und Instruktionen. Das bedeutet, grob übersetzt, ein Programm ist eine Abfolge von Festlegungen und Befehlen. Was haben nun Algorithmen damit zu tun?

Ein Algorithmus ist, wie auch in diesem Artikel angedeutet, die Definition einer Problemlösung. Diese Definition findet allgemein, das heisst nicht in einer spezifischen Form, statt und muss nur ein paar Kriterien genügen:

Ein Algorithmus…
… beschreibt eine Folge von Schritten, …
… wann welcher dieser Schritte ausgeführt wird und …
… zu welchem Zeitpunkt diese Ausführung der Schritte gestoppt wird.

In der Informatik gibt es einen wichtigen Grundsatz, den wir uns, so wie es die Rechtswissenschaften auch gerne tun, aus dem Lateinischen entliehen haben: „Divide et impera“ (lat. für Teile und Herrsche). Dieser Ausspruch findet sehr häufig Anwendung. Ist in einem Algorithmus ein einzelner Schritt zu komplex, um ihn zu beherrschen, definieren wir einen neuen Algorithmus. Dieser beschreibt den Schritt genauer und wird wieder in den ursprünglichen Algorithmus integriert. Auf diese Weise wird das Problem immer einfacher. Es ist sogar häufig so, dass die ersten Beschreibungen einer Problemlösung sehr allgemein sind und gar nicht direkt programmiert werden können. Erst nach mehreren dieser Vereinfachungsschritte wird der Algorithmus so genau, dass man ihn überhaupt umsetzen kann.

Ein schönes Beispiel für Algorithmen und den obigen Grundsatz gibt uns die Küche.

Algorithmus für Süßkartoffelsuppe mit Erdnüssen

  1. Eine Zwiebel, eine Knoblauchzehe und drei Süßkartoffeln putzen, schälen und würfeln.
  2. Die Zwiebel und die Knoblauchzehe in einem Topf mit Olivenöl anschwitzen.
  3. Die Süßkartoffeln in einen Topf geben und mit Gemüsebrühe knapp bedecken. Das Ganze köcheln lassen.
  4. Wenn die Süßkartoffeln weich sind, die Erdnüsse hinzugeben und die Suppe püriert.
  5. Eine Dose Kokosmilch unterrühren.
  6. Mit Salz, Pfeffer und Limettensaft abschmecken und servieren.

Für jemanden, der wirklich gar keine Ahnung vom Kochen hat, muss man vielleicht erklären, wie man Knoblauch putzt oder Zwiebeln anschwitzt. Dies könnte man wieder mit einem Algorithmus tun.

Der Algorithmus kann, wie unser Rezept, auf Deutsch geschrieben werden. Er könnte aber auch in jeder anderen Sprache geschrieben werden. Wichtig ist nur, dass das ausführende System, in dem Fall unseres Rezeptes der Mensch, den Algorithmus versteht.

Da nur die oben genannten Kriterien erfüllt sein müssen, ist es auch egal, wie wir diese Schritte aufschreiben, ob nun in Prosa, Versform, als Aufzählung oder eben als Programmcode. Das Festhalten als Programmcode bietet den Vorteil, dass mit geeigneter Software auf dem Computer dieser Programmcode in maschinenlesbaren Code umgewandelt werden kann. Das Umwandeln nennt man Kompilierung.

Zusammenfassend kann man also sagen, dass ein Programm die Umsetzung eines Algorithmus mit dem Ziel ist, den Computer diesen Algorithmus ausführen zu lassen. Dieses Umsetzen wird auch Implementation genannt.

Im nächsten Artikel werden wir uns etwas näher an die eigentliche Programmierung heranwagen. Dann könnt ihr bald schon selbst etwas programmieren!

Hilfreiche Kommentare, Feedback oder weiterführende Kritik sind immer gerne gesehen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.