Algorithmenküche - Einführung algorithmisches Denken

Algorithmisches Denken mit der IoT2-Werkstatt ist wie Kochen und Puzzeln zugleich. Es hilft uns, größere Probleme zu lösen, indem wir sie in kleine, verständliche Schritte zerlegen. Nichts anderes machen wir beim Kochen in der Küche, wo wir komplizierte Rezepte in einfache Schritte zerlegen. 

Algorithmenküche - Intro

KI-generiert mit pipio.ai und ChatGPT

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Warum ist das nützlich?
Wer algorithmisch Denken kann, versteht wie Computerprogramme arbeiten und kann sie sogar selbst schreiben.

Wie fange ich an?
Eine einfache Programmierumgebung wie die IoT2-Werkstatt ist unsere ideale Versuchsküche. Mit Ardublock nutzen wir dabei eine grafische Oberfläche, bei der man Programme aus Puzzleteilen spielerisch einfach zusammensetzt, ohne gleich zu Anfang von verschiedenen Syntaxfehlern frustriert zu werden. Diese Puzzleteile werden dann von der IoT2-Werkstatt automatisch in richtigen C-Programmcode umgewandelt.

Sequenzen: das 3-Gänge-Menü der Informatik

KI-generiert mit pipio.ai und ChatGPT

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Sequenzen, Wiederholungen (Schleifen) und Fallunterscheidungen sind grundlegende Elemente der Algorithmenentwicklung. Ähnliche Strukturen kennen wir auch von unseren Kochrezepten, die wir typischerweise Schritt für Schritt abarbeiten. Dabei können Schritte auch wiederholt werden (z.B. drei Eier aufschlagen und in den Teig geben) oder bestimmte Abschnitte sind nicht immer nötig (ist noch Grünes an den Karrotten, dann abschneiden).  Diese Kontrollstrukturen erlauben eine flexible Reaktion auf wechselnde Zutaten und Kundenwünsche.

Kontrollstrukturen - Flexibler Ablauf

KI-generiert mit pipio.ai und ChatGPT

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Variablen und Datenmanagement

Variablen dienen als Speichergefäße für Daten. Ähnlich wie bei Schüsseln und Töpfen in der Küche können wir dort interessante Dinge zwischenspeichern und beim Kochen jederzeit darauf zugreifen. Typischerweise hat das jeweilige Gefäß einen eingängigen Namen, unter dem wir es ansprechen können (Salzfass, Mehlschütte, Honigtopf) und einen typischen Inhalt (Flaschen = Flüssigkeiten, Streuer = körnige Gewürze, Schütten = Pulver). 

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Modularisierung mit Unterprogrammen

Unterprogramme fassen Abschnitte zu neuen Teilrezepten zusammen, die an verschiedenen Stellen im Ablauf verwendet werden können. Beim Kochen kennen wir solche Ideen in Form von Grundrezepten. Ob wir einen Nusszopf backen oder einen leckeren Pflaumenkuchen mit Schlagsahne kreieren möchten - Grundlage bildet immer ein Unterprogramm für Hefeteig, dessen Rezept wir im Kochbuch nur an einer einzigen Stelle finden.  

  • Ein komplexes Beispiel ist die Übertragung der SOS-Nachricht im Morsecode, die durch Unterprogramme für Punkt und Strich realisiert wird.
KI-generiert mit pipio.ai und ChatGPT

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Wetterstation: Sensoren, Anzeigen und IoT-Cloud

Ein Grundprinzip der Informatik ist das EVA-Prinzip. Mit Eingabe, Verarbeitung, Ausgabe beschreibt es die Reihenfolge der Abarbeitung. Ähnlich wie in der Küche die Zutaten (Eingabe), die Herstellung (Verarbeitung) und Produkt (Ausgabe), können wir bei unserem Mikrocontroller von Eingangsgrößen (Sensoren), Algorithmus und Ausgangsgrößen(Aktoren) sprechen. Die Sensoren und Anzeigen auf unserer Platine haben wir bereits kennengelernt. Im letzten Kapitel wollen wir diese nutzen, um eine kleine IoT-Wetterstation zu bauen. Dabei werden wir unsere Daten Schritt für Schritt schließlich auch ins Internet bringen, von wo aus wir überall darauf zugreifen können und sie bei Bedarf auch weiterverarbeiten und visualisieren können.

KI-generiert mit pipio.ai und ChatGPT

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Fassen wir zusammen:

  • Befehlssequenzen sind eine Aneinanderreihung von Befehlen, die nacheinander ausgeführt werden.
  • Wiederholungen ermöglichen die mehrfache Ausführung von Befehlsblöcken. Es gibt Zählschleifen, die eine vorgegebene Anzahl an Durchläufen abarbeiten, und Solange-Schleifen, die Befehle wiederholen, solange eine Bedingung erfüllt ist.
  • Fallunterscheidungen testen eine Bedingung und führen Befehle nur dann aus, wenn die Bedingung zutrifft (Wenn-Dann-Prinzip). Es gibt auch Fallunterscheidungen mit Alternative (Wenn-Dann-Sonst), bei denen unterschiedliche Befehle ausgeführt werden, je nachdem, ob die Bedingung erfüllt ist oder nicht.
  • Variablen sind Speichergefäße für Daten. Sie werden deklariert, mit einem Wert versehen und können in Rechnungen verwendet werden.
  • Es gibt verschiedene Datentypen (Integer, Float, Boolean, String), für verschiedene Inhalte, die durch ein Schloss/Schlüssel-Prinzip unterschieden werden.
  • Neben Variablen gibt es Konstanten, deren Wert sich während der Ausführung nicht ändert.
  • Unterprogramme (Funktionen, Prozeduren) fassen mehrere Befehle zusammen. Es gibt eine Unterprogrammdeklaration zur Definition des Unterprogramms und einen Unterprogrammaufruf zur Ausführung an der gewünschten Stelle.
  • Unterprogramme können geschachtelt werden und ermöglichen den modularen Aufbau und Test von Programmen.
  • Unterprogramme aus fremden Quellen (Library, Bibliothek) lassen sich nutzen und sparen uns viel Arbeit.

 

 

 

 

 

back-to-top nach oben