Algorithmenküche - Einführung algorithmisches Denken

Algorithmenküche - Intro

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.

Grundlagen des algorithmischen Denkens

Was ist das?
Algorithmisches Denken mit der IoT-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. 

Warum ist das nützlich?
Wer algorithmisch denken kann, versteht Computerprogramme besser und kann sie sogar selbst schreiben.

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

 

 

Kontrollstrukturen und Algorithmen

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 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). 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 und Datenmanagement

Variablen dienen als Speicherzellen für Daten. Ähnlich wie bei Schüsseln und Gefäßen 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). 

  • Variablen werden deklariert, mit einem Wert versehen und können in Rechnungen verwendet werden.
  • Es gibt verschiedene Datentypen (Integer, Float, Boolean, String), die durch ein Schloss/Schlüssel-Prinzip unterschieden werden.
  • Neben Variablen gibt es Konstanten, deren Wert sich während der Ausführung nicht ändert

 

 

 

Modularisierung mit Unterprogrammen

Unterprogramme fassen Befehle zu einem neuen Befehl zusammen, der an verschiedenen Stellen im Programm verwendet werden kann. 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 Hefeteig, dessen Rezept wir im Kochbuch nur an einer einzigen Stelle finden.  

  • 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 von Programmen.
  • Prozedurale Sprachen ermöglichen es, Programme modular aufzubauen, zu testen und Unterprogramme aus fremder Quelle einzubinden.
  • Ein komplexes Beispiel ist die Übertragung der SOS-Nachricht im Morsecode, die durch Unterprogramme für Punkt und Strich realisiert wird.

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.

 

 

 

3Gänge- Algorithmen kochen

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.

Kontrollstrukturen

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

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.

Unterprogramme

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.

Sensoren, Anzeigen und IoT-Cloud

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.

 

 

back-to-top nach oben