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.

Advertisements

Über Anne Nühm (breakpoint)

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

25 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 …

    Gefällt mir

  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 ..

    Gefällt mir

  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

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.