Der Muffin-Algorithmus


2

https://youtu.be/fKE1OXrqG7A

1. Einführung

Leckere Muffins zu backen ist eine Kunst für sich. Man kann so Vieles falsch machen und so den köstlichen Geschmack der griffigen Teig-Kreation zerstören. Was viele nicht wissen: Das Backen eines Muffins stellt einen Algorithmus dar. Dieser entsteht als Lösung der Fragestellung "Wie backe ich leckere Muffins?".

2. Der Algorithmus

Wie kann ein solcher Muffin-Algorithmus aussehen? Letztendlich genauso wie jedes handelsübliche Rezept:

1.) Zum Zeitpunkt, an dem du die Abarbeitung des Rezepts beginnt, beginnt auch der Muffin-Algorithmus.

2.) Gib zuerst 100g Butter in eine Schüssel.

3.) Füge danach 280g Mehl hinzu.

4.) Öffne ein Päckchen Vanillezucker und schütte es in die Schüssel.

5.) Öffne ein Päckchen Backpulver und schütte es in die Schüssel.

6.) Schlage 4 Eier auf und gib sie zu den übrigens Zutaten.

7.) Füge nun 200g Zucker hinzu.

8.) Gieße die Zutaten in der Schüssel mit 200ml Milch auf.

9.) Verrühre die Zutaten.

10.) Ist der Teig nach dem Verrühren glatt?
10.1.) Falls ja: Fahre mit dem nächsten Schritt fort.
10.2.) Falls nein: Wiederhole den vorherigen Schritt.

11.) Setze m auf den Wert 1. Stelle dir vor, dass du die 12 Löcher einer Muffin-Backform durchnummeriert hast. Mit m kannst du die einzelnen Löcher adressieren.

12.) Gib den Muffin-Teig in Loch m der Muffin-Backform.

13.) Ist \(m < 12\)? (Sind also noch nicht alle Löcher der Muffin-Backform mit Teig gefüllt?)
13.1.) Falls ja: Erhöhe den Wert von \(m\) um \(1\) und wiederhole den vorherigen Schritt.
13.2.) Falls nein: Fahre mit dem nächsten Schritt fort.

14.) Backe die Muffins 25 Minuten bei 180°C im Backofen.

15.) Lasse die Muffins bei Raumtemperatur eine Stunde lang abkühlen.

Das Ablaufdiagramm des Algorithmus könnte wie folgt aussehen:

3. Mehrere Rezepte für ein Gericht

Wenn du ein neues Rezept entwickelst, löst du damit jedesmal ein Problem, nämlich das Kochen eines leckeren Gerichts. Wenn du ein Rezept für Schnitzel mit Pommes aufschreibst, gibst du durch deinen Schnitzel-mit-Pommes-Algorithmus eine Antwort auf die Frage "Wie koche ich ein leckeres Schnitzel mit Pommes als Beilage?". Du solltest bei der Formulierung des Algorithmus darauf achten, dass du möglichst genaue Angaben machst. "Eine Prise Salz" versteht jeder etwas anders und auch "ein Schuss Milch" ist lediglich eine qualitative Angabe ohne wirkliche Messbarkeit. Je genauer deine Angaben sind, desto wahrscheinlicher ist es, dass der Anwender des Algorithmus diesen auch richtig ausführt und zu dem gewünschten Ergebnis kommt. Einem Backroboter mitzuteilen, dass er doch "einen Schuss Milch" zum Teig hinzugeben solle, geht mit Sicherheit schief, da du ihm genau mitteilen musst, was unter einem "Schuss Milch" quantitativ (also in Zahlen) zu verstehen ist.

Genauso, wie es verschiedene Algorithmen zur Lösung eines Problems geben kann, gibt es verschiedenste Rezepte für ein und dasselbe Gericht. Diese können sich in der Zutatenliste, der Gewürzmischung, der Paniertechnik, der Bratzeit und vielem mehr unterscheiden.

Das Problem, das der Algorithmus löst, kann unterschiedlich ausgeprägt sein: Während es vielen nur auf den Geschmack ankommt, zählt für andere, dass bestimmte Zutaten aufgrund von Nahrungsmittelunverträglichkeiten nicht enthalten sind. Für jemanden mit einer Milcheiweißallergie oder einer veganen Lebensweise löst der vorgestellte Muffin-Algorithmus das Problem nicht zufriedenstellend. Es müssten z. B. Anpassungen in der Zutatenliste erfolgen, damit der Algorithmus effizient und zufriedenstellend nicht nur das Geschmacks-, sondern auch Verträglichkeitsproblem löst.

Achte beim Arbeiten mit und Entwerfen von Algorithmen darauf, dass sie tatsächlich eine Lösung für das gestellte Problem beschreiben und alle Teilaspekte berücksichtigen. Recherchiere ggf. im Vorfeld oder frage nach, aus welchen Teilen sich dein Problem zusammensetzt, denn so sparst du dir einiges an Modellierungsaufwand.

 

Community Artikel, geschrieben vor 2 Monate, 3 Wochen
andré dalwigk, verified
Student, Punkte: 4211
 

Klasse! Sehr,sehr gut!

Da fällt mir ein Zitat aus einem für Jugendliche geschriebenen Computerbuch aus den 80er Jahren (genau! C64-Zeiten!) ein:

»›Jay-Jay warf die Maschine an, seine Haare zurück und hieb in die Tasten. Ein unverständliches Zahlen- und Buchstabengewirr füllte nach und nach den Bildschirm. Nach zehn Minuten stöhnte Jay-Jay: OK, Mann, fertig. Er tippte RUN und lehnte sich zurück.Nichts passierte.‹
Kein Wunder, denn Jay-Jay hat alles falsch gemacht.«

Es geht dann in ernsthafterem Stil weiter, aber diese Stelle ist mir haften geblieben. Ein Absatz weiter steht dann zum Beispiel folgendes:

»Zur Programmentwicklung gehören diese Schritte:

* Problemanalyse
* Entwicklung des Lösungsverfahrens
* Flußdiagramm [sic! Alte Rechtschreibung]
* Wahl der Programmiersprache
* Programmieren
* Testläufe
* Programmkorrektur«

Beide Zitate sind aus von Randow 1985:43

Viele Grüße
jake2042

Literatur

von Randow, Gero, 1985: Das andere Computerbuch. Für Benutzer, Neugerige und Skeptiker. Dortmund: Weltkreis
  -   jake2042, verified kommentiert vor 2 Monate, 3 Wochen
Kommentar schreiben Diesen Artikel melden
0 Antworten