Den Algorithmus verstehen So lernen Sie, wie Algorithmen funktionieren – in drei Schritten

Algorithmen geben die Befehle für alle digitalen Prozesse. Nur wenn wir sie verstehen, können wir in der modernen Welt selbstbestimmt leben – und mögliche Gefahren frühzeitig erkennen. 

Quelle: Fotolia

Wenn man sich die digitalen Errungenschaften der letzten 20 Jahre vor Augen hält, fallen einem sofort die ungeheuren Fortschritte in der Leistungsfähigkeit der Rechner und der Netze, und die geradezu grenzenlose Datenfülle auf. Dagegen sind die Algorithmen, die im Innern der digitalen Geräte ablaufen und alle digitalen Prozesse steuern, unsichtbar und daher für viele Menschen auch unverständlich; schon das Wort klingt unheimlich. Und wenn man sie schon nicht sehen und anfassen kann, so lassen sich zumindest Mutmaßungen über sie anstellen: Algorithmen wissen alles, manipulieren unsere Entscheidungen oder treffen die Entscheidungen gleich selbst, bringen Finanzmärkte durcheinander, beeinflussen Wahlen…  Algorithmen machen vielen Menschen Angst. Es wird Zeit für das einzig mögliche Gegenmittel: Aufklärung.

Zur Person

Ich möchte den Mythos Algorithmus zurück auf den Boden der Tatsachen holen und das algorithmische Denken in den Kontext digitaler Bildung und Aufklärung stellen. Dazu zunächst eine elementare, nicht formale Definition:

Ein Algorithmus ist eine eindeutige Handlungsvorschrift, die aus endlich vielen präzise formulierten, wohldefinierten Einzelanweisungen besteht, zur Lösung eine Problems oder einer Problemklasse.

Man verlangt von einem Algorithmus auch, dass nach endlich vielen Einzelschritten das betreffende Problem gelöst ist (oder als unlösbar erkannt wird). Ein Computerprogramm ist ein in einer Programmiersprache formulierter Algorithmus, jede Software setzt sich aus einzelnen Algorithmen zusammen.

Das Verständnis für Algorithmen unterscheidet sich von der Fähigkeit zu programmieren insofern, als dass Algorithmen die Substanz dessen ausmachen, was digital (im Rechner oder in beliebigen anderen digitalen Geräten) passiert. Demgegenüber bleibt die Fähigkeit des Programmierens formal, wenn sie nicht durch ein Verständnis für Algorithmen fundiert wird. Wenn umgekehrt die Algorithmen nicht programmiert und auf Rechnern ausgeführt werden, bleibt ihre Kenntnis ein Stück weit abstrakt. Algorithmen sind unabhängig von einer konkreten Programmiersprache und können in verschiedenen Programmiersprachen codiert werden; in der Regel ist eine bestimmte Programmiersprache für einen Algorithmus aber mehr oder weniger geeignet.

Um zu zeigen, wie Algorithmen aufgebaut sind, erkläre ich Ihnen drei praktische Beispiele. Damit möchte ich deutlich machen, dass algorithmisches Denken gar nicht so abstrakt ist, wie es scheint.

1. Beispiel Sortieren.  Jeder Mensch hat eine Vorstellung davon, wie Objekte sortiert werden können, seien es Spielkarten oder Namen (z.B. alphabetisch) oder Zahlen (z.B. in aufsteigender Reihenfolge). Nun stellen wir einem Rechner die Aufgabe, eine Sortierung, sagen wir von Namen einer Namensliste, vorzunehmen und wollen dafür einen einfachen Algorithmus entwerfen. Dazu nehmen wir an, dass der Algorithmus beim Vergleich von zwei Namen der Liste entscheidet, welcher Name vor den jeweils anderen platziert  wird.

Wir fangen vorne bei der Liste an, vergleichen den ersten mit dem zweiten Namen, ordnen die beiden alphabetisch, vergleichen dann den (eventuell neuen) zweiten mit dem dritten Namen, ordnen die beiden alphabetisch, vergleichen den (eventuell neuen) dritten mit dem vierten, und fahren so fort, bis wir das Ende der Liste erreicht haben. Die neu entstandene Liste ist dann noch nicht vollständig alphabetisch geordnet (das wäre ein Zufall) – aber wir stellen fest, dass der letzte Name in der Liste wirklich an der richtigen Stelle steht! Es ist der letzte im Alphabet. Warum ist das so? Das ist eine kleine Denksportaufgabe.

Inhalt
Artikel auf einer Seite lesen
© Handelsblatt GmbH – Alle Rechte vorbehalten. Nutzungsrechte erwerben?
Zur Startseite
-0%1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%19%20%21%22%23%24%25%26%27%28%29%30%31%32%33%34%35%36%37%38%39%40%41%42%43%44%45%46%47%48%49%50%51%52%53%54%55%56%57%58%59%60%61%62%63%64%65%66%67%68%69%70%71%72%73%74%75%76%77%78%79%80%81%82%83%84%85%86%87%88%89%90%91%92%93%94%95%96%97%98%99%100%