breakplaining: Algorithmen //1865

Auf dem Radio habe ich letzte Woche gehört, dass eine Studie ergeben hat, dass nur 10 Prozent der Bevölkerung wissen, was ein Algorithmus ist.
Dieses Ergebnis veranlasst mich, in meinen eigenen Worten und hoffentlich verständlich zu erklären, was Algorithmen sind (obwohl ich den leisen Verdacht habe, dass meine Leser eigentlich durchaus zu diesen zehn Prozent gehören).

Unter einem Algorithmus versteht man eine Folge von Anweisungen, deren Befolgung ein definiertes Problem löst. Häufig meint man damit auch die Formulierung dieser Anweisungen so, dass sie für Computer verständlich sind und von diesen ausgeführt werden können. Diese Erstellung der Anweisungen und deren computergerechter Formulierung ist Aufgabe von Softwareentwicklern, die dazu Programmiersprachen nutzen.

Im Alltagsleben lassen sich beispielsweise Bastelanleitungen oder Kochrezepte als Algorithmen begreifen, auch wenn nicht jeder einzelne Handgriff detailliert beschrieben wird. Die Anleitung, wie man für eine bestimmte Speise etwa Kartoffeln schält oder Eischnee schlägt, wäre dann eine Subroutine.
Wenn man weiß, wie man Kartoffeln für Kartoffelpüree schält, dann kann man den gleichen Algorthmus auch nutzen, um Kartoffeln für Pommes frites zu schälen (mal davon abgesehen, dass man für letzteres große Kartoffeln bevorzugen sollte – aber das ist wieder ein anderes Thema). Diese Teilaufgabe ist nämlich identisch.
Und so setzen sich Algorithmen oft aus mehreren Teilen zusammen, die einzeln auch in anderen Kontexten wiederverwendet werden können.
Auch wenn das Ergebnis eines Rezeptes grundsätzlich reproduzierbar sein soll, ist es dennoch bisweilen nötig, Anpassungen an die äußeren Bedingungen zu machen. So kann es sein, dass man eine Auswahl aus optionalen Zutaten treffen muss, oder die Mengenangaben auf die tatsächlich benötigte Anzahl der Portionen umrechnen muss.

Als Entwickler von Algorithmen hat man zunächst die Vorgabe (bzw. Spezifikation), welches Ziel erreicht werden soll. Dann macht man sich Gedanken über das Wie.
Beispielsweise habe ich ja das Progrämmchen, mit denen ich Blogstatistiken erstellen kann. Der Algorithmus sieht vor, dass eine (oder mehrere) WordPress-Export-Dateien geladen werden. Dann wird der XML-Text geparst. Auf bestimme Token hin werden die einzelnen Kommentatoren identifiziert und ein Zähler für jeden abgegebenen Kommentar hochgezählt.
Wie das im Einzelnen geht, muss haarklein im Sourcecode geschrieben sein. Man muss dem Computer wirklich jede Kleinigkeit erklären, was er machen soll. Die Zusammensetzung der Anweisungen und Subroutinen bildet den Algorithmus ab.

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

40 Antworten zu breakplaining: Algorithmen //1865

  1. Der Emil schreibt:

    Naja, aber ob wir Leser mit geparst und Token und Sourcecode etwas anfangen können?

    Ansonsten: Nicht schlecht, Herr Specht.

    Gefällt 1 Person

  2. zugschlus schreibt:

    Und dann gab es noch den Landtags-Abgeordneten in einem ungenannt bleiben sollenden Bundesland, der in einem Presse-Interview vorgeschlagen hat, dass man über eine Kennzeichnungspflicht von Software, die Algorithmen enthält, nachdenken sollte.
    Der schuldet mir eine Tasse Kaffee und einen 27-Zoll-Monitor.

    Gefällt 1 Person

  3. Talianna schreibt:

    Der Algorithmus, des sich der Rhythmus, wo jeder mitmuss.

    Pardon.

    (Frei nach meinem Mathelehrer damals in der Schule, bei dem war‘s der Logarithmus.)

    Gefällt 1 Person

  4. Pendolino70 schreibt:

    Klar und verständlich für mich, der zu den 90 % gehört, die das nicht so einfach erklären können.
    Kartoffeln für Pommes zu schälen ist unnötig, da bei der Verwendung grosser Kartoffeln der Anteil Pommes mit Haut nicht derart gross ist, dass er stört.

    Gefällt 1 Person

  5. Plietsche Jung schreibt:

    Kannst du das in einem Flowchart etwas genauer darstellen ? 🙂
    Folgt dann auch noch eine Erklärung von Variablendeklarationen, pre- und postchecked loops, Sprungmarken und Breakpoints ? Peeks und Pokes lasse ich mal weg …

    Like

  6. ednong schreibt:

    Müsste es nicht eher heißen:
    „Unter einem Algorithmus versteht man eine Folge von Anweisungen, deren Befolgung ein definiertes Problem lösen soll.“
    Also wenn man so die Umsetzung so vieler sieht ..

    Like

  7. Pingback: breakplaining: Fourier //1876 | breakpoint

  8. Pingback: Registriert am falschen Ort //1882 | breakpoint

  9. Pingback: Up .. Down .. //1888 | breakpoint

  10. Pingback: Wenn die Glocken erklingen //1908 | breakpoint

  11. Pingback: Twitteropia //2058 | breakpoint

  12. Pingback: Zum #PiTag: Ein Weg zu pi //2074 | breakpoint

  13. Pingback: breakplaining: Hex //2111 | breakpoint

  14. Pingback: 29 h..ust* //2112 | breakpoint

  15. Pingback: Die Formel //2158 | breakpoint

  16. Pingback: Fortschritt. Oder nicht? //2289 | breakpoint

  17. Pingback: Theorie und Praxis des Zufalls //2306 | breakpoint

  18. Pingback: Die Körbe von Hanoi //2347 | breakpoint

  19. Pingback: Wieder Ärger mit PHP //2675 | breakpoint

  20. Pingback: Die Rückseite des Möbiusbandes //2679 | breakpoint

  21. Pingback: #Blogparade: Werte und Handeln //2807 | breakpoint

  22. Pingback: (Kein) Fraktionszwang //2846 | breakpoint

  23. Pingback: Die größten Kartoffeln //2977 | breakpoint

  24. Pingback: I’m A Bairbie Girl //2980 | breakpoint

  25. Pingback: breakplaining: Sortierung //3000 | breakpoint

Hinterlasse einen Kommentar