zum Inhalt springen

Programme – analog und digital

Programmierte Technik im Alltag

Kinder sind im Alltag ständig mit programmierten Geräten konfrontiert und gehen wie selbstverständlich damit um. Neben offensichtlich programmierten Hilfsmitteln, wie Handys, Tablets und Computern, gehören auch Fahrstühle, automatische Türen und andere Automaten dazu, die uns den Alltag mit Hilfe von programmierter Technik erleichtern.

In den wenigsten Fällen ist jedoch ein Verständnis dafür vorhanden, welche Prozesse und Programme die jeweiligen Funktionen im Hintergrund steuern und wie diese programmiert werden. Die Annahme, dass beispielsweise eine Lichtschranke fast magisch eine Tür öffnet, soll ersetzt werden, durch eine Vorstellung darüber, wie viele Einzelschritte/-befehle zum Ausführen dieser Funktion nötig sind. Von der Frage, wie nah der Fußgänger sein muss, damit das Programm startet bis hin zu der Frage, wie lange das Programm wartet, bis die Tür wieder schließt bestimmt das Programm jeden Teilschritt der Aktion.

Grundlagen des Programmierens

Die Funktionen, die von programmierter Technik ausgeführt werden, basieren auf Programmen (Codes), die dem Computer ermöglichen, ein spezifisches Problem zu lösen bzw. eine Aufgabe zu erfüllen. Diese Programme sind (Daten-) Vereinbarungen zwischen dem/der ProgrammiererIn und dem jeweiligen Gerät. Die geforderten Instruktionen werden in Form von Algorithmen, eindeutigen Handlungsvorschriften (Befehlsketten), in der entsprechenden Programmiersprache vermittelt. Den Prozess, diese Befehlsstrukturen festzulegen, bezeichnet man als Programmieren (Kodieren/Coding).

Offline-Coding

Unter dem Begriff Offline-Coding sammeln sich Konzepte, die das Programmieren ohne digitales Endgerät simulieren. Das Ziel ist es, durch einen spielerischen Zugang, SuS eine grundlegende Vorstellung des jeweiligen Teilbereichs des Programmierens zu ermöglichen. Abstrakte informatische Themen wie Algorithmen, binäre Codes, Schleifen uvm. sollen in der analogen Lebenswelt der SuS erlebbar gemacht werden. Da es sich bei Programmen um eindeutige Handlungsvorschriften handelt, liegt der Übertrag zu anderen Bereichen aus dem Alltag der Kinder nahe, die ebenfalls eindeutiger Handlungsvorschriften bedürfen. So führt zum Beispiel jedes Backrezept, bei korrekter Befolgung der Anweisungen zu einem leckeren Kuchen. Auch Anleitungen für Bausätze, Brettspiele, uvm. sind Beispiele für analoge Programme und Algorithmen. Diese sind in einer formalen Sprache verfasst, die jedem, der diese beherrscht, das Backen, Zusammenbauen oder Spielen ermöglicht

Programmiersprachen

Eine Programmiersprache ist so eine formale Sprache zur Formulierung von Datenstrukturen und Algorithmen, also der Rechenvorschriften, die von einem Computer ausgeführt werden können. In der vorliegenden UE müssen Befehle (Befehlskarten) analog in Folgen zusammengefügt werden, um einem Roboter (Spielfigur oder MitschülerIn) die gewünschte Anweisung mitzuteilen, die ihn durch das Labyrinth bewegt. Diese Folgen heißen Programme.

Die Programmiersprache, mit der die Kinder hier arbeiten, besteht zunächst nur aus drei einfachen Befehlen, die von der Lehrperson vorgegeben sind („Gehe vorwärts“, „Drehe rechts“ und „Drehe links“). Diese präzisen Anweisungen ermöglichen es, den Roboter an jeden Punkt der verschiedenen Labyrinthe zu navigieren. Eine Kombination dieser Befehle ist das Programm, mit dem der/die ProgrammiererIn seinen/ihren Roboter programmiert, um das Ziel zu erreichen, nämlich den Schatz einzusammeln. Dafür müssen die SuS den Weg, den der Roboter zurücklegen soll, in seine Einzelbewegungen zerlegen. Über diese Modellierung werden Kleinschrittigkeit und Komplexität dieser zunächst „einfachen“ Abläufe sichtbar und vermitteln so einen Eindruck davon, wie präzise ProgrammiererInnen vorgehen. So besteht beispielsweise das einfache Ziel, links abzubiegen schon aus den zwei Einzelbefehlen „Drehe links“ und „Gehe vorwärts“.

Schleifen

Im Laufe der Reihe können sogenannte Schleifen (auch „Wiederholung“ oder englisch loop) helfen, das Programm zu verkürzen, indem wiederholende Befehle in einer Wiederholungsschleife zusammengefasst werden („Wiederhole _______ X mal“). Schleifen, die keine Schleifenbedingung (X) definiert haben, sind Endlosschleifen. In der vorliegenden Unterrichtsreihe wird eine Schleife im Programm vom Computer als ein Befehl verstanden.

Funktion

Ähnlich können weiterführend über Funktionen auch eigene Befehle von den Kindern erfunden werden, indem eine Kombination verschiedener Befehle als neuer Befehl definiert wird. Die Programmiersprache wird somit erweitert. Sobald sich die Programmierer/Kinder auf eine Definition geeinigt haben, kann dieser neue Befehl nun von allen, die mit dieser Programmiersprache arbeiten, genutzt werden.

Beispiele:

  1. „Drehe um“ = fkt. {„Drehe rechts“, „Drehe rechts“}
  2. „Zack“ = fkt. {„Gehe vorwärts“, „Drehe links“, „Gehe vorwärts“, „Drehe rechts“}

Bugs/Programmierfehler

Eine wichtige Aufgabe eines Programmierers (hier der Kinder) ist es darüber hinaus, Programmfehler oder Softwarefehler, sogenannte Bugs (englisch für Käfer) zu finden und zu reparieren. Ein solches Fehlverhalten von Computerprogrammen tritt bspw. auf, wenn der/die ProgrammiererIn  eine bestimmte Festlegung nicht oder falsch umgesetzt hat. Die Kinder erkennen innerhalb dieser Reihe einen Bug spätestens beim Ausprobieren daran, dass der Roboter in eine falsche Richtung läuft und/oder sich in einer Ecke des Feldes festfährt. Das Programm muss dementsprechend umgeschrieben werden.