Modul 1

Grundlagen des Programmierens mit NEPO

Willkommen in Modul 1 »Grundlagen des Programmierens mit NEPO«. Was erwartet Euch in diesem Modul? Darüber geben Euch Valerie, Alexa und Chris im folgendem Video einen Überblick.

Keine Programmierkenntnisse? Kein Problem! Das Modul bietet einen niederschwelligen Einstieg, denn mit der Fraunhofer-Programmierplattform Open Roberta ist das Programmieren ganz einfach. Mit der blockbasierten Programmiersprache NEPO erstellen Nutzer*innen Programme per »drag and drop« und lassen sie von einem Roboter ausführen.

Aber was ist

programmieren eigentlich?

Programmieren bezeichnet die Tätigkeit, die es uns ermöglicht, Anweisungen zu erstellen oder in anderen Worten zu entwickeln. Um gewisse Handlungen auszuführen, braucht ein Computer detaillierte Anweisungen bzw. muss entsprechend programmiert werden. Was programmiert werden kann, reicht dann von einem Taschenrechner über Apps und Spiele bis zum Autopiloten eines Fahrzeugs. Dafür wird ein Programm in der sogenannten Programmiersprache geschrieben. Diese ist wiederum auch wichtig für den Umgang mit Künstlicher Intelligenz. Aber keine Angst! Dafür werden hier keine Vokabelhefte benötigt!

Wie bereits erwähnt beschäftigt sich dieser Kurs mit der intuitiven Programmiersprache NEPO, mit der im Handumdrehen einfache sowie anspruchsvolle Programme entstehen.

Wieso Ihr programmieren lernen solltet, ist ganz einfach zu erklären. Programmieren ist heutzutage ein mächtiges Werkzeug, das auch in anderen Fachbereichen nützlich ist – und nicht nur auf die Informatik beschränkt ist. Ihr habt damit die Möglichkeit, etwas Eigenes zu erstellen und Eure Ideen zu verwirklichen. Ihr könnt Programme entwickeln, die Euch das Leben oder die Arbeit vereinfachen, weil Ihr zum Programmieren nur einen Computer braucht. Programmieren kann Euch viele Vorteile verschaffen, einerseits für Eure persönliche Weiterentwicklung und andererseits für Eure berufliche Zukunft, denn das Programmieren ist in der digitalisierten Welt eine wichtige Fähigkeit, die von immer mehr Unternehmen gefordert wird.

Valerie klärt auf!

Zum ersten Mal programmieren! Diese Vorstellung macht viele nervös. Aber häufig ist der Einstieg in das Programmieren einfacher als erwartet. Schauen wir uns doch einmal an, was Euch die Informatikerin Valerie dazu sagen kann.

»Wie programmiere ich einen Roboter?«

NEPO und das Open Roberta Lab bieten einen super Einstieg in die Welt der Programmierung und Robotik. Die NEPO-Programmierblöcke lassen sich nach dem Baukastenprinzip im Open Roberta Lab zusammenstecken: von den ersten einfachen Schritten bis hin zur Programmierung intelligenter Roboter mit vielerlei Sensoren und Fähigkeiten – im »Lab« sind der Kreativität keine Grenzen gesetzt.
» www.open-roberta.org

Diese sogenannten visuellen Programmiersprachen sind sehr anschaulich, weshalb man sich keine Sorgen um Tippfehler machen muss. Außerdem sind die Roboter- und Mikrocontroller-Simulationen im Open Roberta Lab besonders praktisch, um das eigene Programm zu veranschaulichen und Programmierkonzepte zu erlernen – selbst ohne eigenen Roboter.

» Open-Roberta-Simulation

NEPO mag zwar einfach aussehen, jedoch handelt es sich dabei um eine vollwertige Programmiersprache. Die hier gelernten Konzepte lassen sich somit auch auf andere Programmiersprachen übertragen wie zum Beispiel Python, Java oder C/C++. 

Wenn Ihr bereits Erfahrung mit der Programmierung habt, dann ist bestimmt der Quellcode-Editor für Euch interessant, dort kann das Programm unter anderem in der jeweiligen Sprache bearbeitet werden. Weitere Informationen dazu findet Ihr hier:
» Quellcode-Editor

© Fraunhofer IAIS

Roboterautos und moralische Probleme?

Das »Autonome Fahren« ist ein anschauliches Beispiel für das Programmieren und bildet den Rahmen unserer Programmierprobleme in diesem Modul.

Wer zunächst grundsätzlich mehr über dieses Thema erfahren möchte, findet im folgenden Dokument alle Informationen rund um das Autonome Fahren in Kurzfassung.

📒 Anleitung: Autonomes Fahren

 

Moral Machine

Mit der zunehmenden Automatisierung von Fahrzeugen kommt auch die Frage auf, wie wir ihnen eine Art Moral beibringen können? Zum Beispiel: Wenn es im alltäglichen Verkehr zu einem Unfall kommt, reagiert der Mensch intuitiv: Er bremst oder ruckt am Lenkrad. Aber wie ist das bei einem eigenständig fahrenden Fahrzeug? Der Fahrcomputer muss eine Entscheidung treffen, die auf zuvor einprogrammierten Optionen beruht. Wie Menschen zu moralischen Entscheidungen stehen, die von intelligenten Maschinen getroffen werden, damit befasst sich die Plattform Moral Machine.

Klickt Euch gerne durch die verschiedenen Dilemmasituationen und versetzt Euch in die Intelligente Maschine hinein. Wie würdet Ihr das Fahrzeug programmieren? Vielleicht bemerkt Ihr dabei, dass dieses Thema gar nicht mal so einfach zu behandeln ist.

» Außerdem interessant: Sollte Künstliche Intelligenz über Leben und Tod entscheiden?

Was soll das selbstfahrende Auto machen?

Quelle: https://www.moralmachine.net/hl/de

Einführung in das Programmieren im Open Roberta Lab

Bevor Ihr mit dem Programmieren loslegen könnt, macht Euch zunächst mit dem Open Roberta Lab bekannt. Klickt Euch dafür einfach durch die kurze Einführung und verschafft Euch im Anschluss einen eigenen Überblick, indem Ihr Euch durch die vielfältigen Features klickt.
» Einführungstour Open Roberta Lab

Die erste Programmieraufgabe – Quadratfahrt

Im Open Roberta Lab können wir unser eigenes Autonomes Fahrzeug programmieren. Zu Beginn wollen wir mit einer einfachen Fahrt um den Block starten. Dafür verwenden wir eine simulierte Version des »LEGO Mindstorms EV3«-Roboters. Öffnet jetzt das Open Roberta Lab und schaut aufmerksam durch die einzelnen Kategorien und Programmierblöcke. Findet Ihr passende Blöcke, um den Roboter im Quadrat fahren zu lassen?

✏️ Übung: Quadratfahrt

💡 Lösung: Quadratfahrt

🎓 Guide für Ausbildende: Quadratfahrt

Wie kann ich mein Programm speichern, damit es nicht verloren geht?

Habt Ihr erfolgreich Euer erstes Programm erstellt? Glückwunsch! Damit das Programm nicht verloren geht, speichert es ab. Dazu gibt es im Open Roberta Lab zwei Möglichkeiten:

      1. »exportiere Programm«
        Öffnet das Menü unter »Bearbeiten« und wählt »exportiere Programm« aus

         

      2. In der Cloud speichern und von überall darauf zugreifen. Wie das geht, erfahrt Ihr in diesem Dokument:
        📒 Anleitung: Accounts erstellen

Insbesondere für Lehrpersonen ist die Gruppen-Funktion des Open Roberta Labs praktisch. Sie ermöglicht das einfache Teilen und Einsehen von Programmen, die Gruppenmitglieder erstellt haben. Wie Gruppen genutzt werden können, erfahrt Ihr hier:
📒 Anleitung: Gruppe erstellen

Nun muss das Fahrzeug an der Ampel halten können, um den nächsten Schritt in Richtung Verkehrstauglichkeit zu machen!

 

2. Programmieraufgabe: Autonomes Fahren

Ihr habt bereits erfolgreich die erste Fahrt um den Block gemeistert. Nun trauen wir uns mit dem simulierten Roboter in den Straßenverkehr. Im folgenden Video erfahrt Ihr, wie Ihr ihn programmieren könnt, sodass er an einer roten Ampel hält und bei Grün wieder weiterfährt. Wir werden dafür das erste Mal Sensoren benutzen, um auf die Umwelt zu reagieren.

Wer das Problem lösen möchte, kann dafür auch die unten gelisteten Arbeitsblätter benutzen. Die Arbeitsblätter können zudem im Unterricht eingesetzt werden. Es gibt eine Version für Auszubildende und eine für Ausbildende:

✏️ Übung: Autonomes Fahren

💡 Lösung: Autonomes Fahren

🎓 Guide für Ausbildende: Autonomes Fahren

Gespräch mit Roberta-Leiter Thorsten Leimbach

In diesem Video erklärt Euch Thorsten Leimbach, der Leiter der Roberta-Initiative am Fraunhofer IAIS, warum Programmier-Kompetenzen immer wichtiger werden. Außerdem stellt er noch einmal die Features des Open Roberta Labs vor und geht darauf ein, wie sich Berufsschüler*innen in einer digitalen Welt behaupten können.

Next Step: Cruise Control 1.0

3. Programmieraufgabe

Wir sind mit dem Programmieren schon ziemlich weit gekommen. Wir können schon mittels Sensoren mit der Umwelt interagieren. Nun wollen wir das Fahren mit dem EV3 noch ein bisschen bequemer machen. Stellen wir uns vor, wir sind mit dem EV3 auf der Autobahn und wollen ganz bequem die Geschwindigkeit des Autonomen Fahrzeugs mit einem Knopfdruck ändern und angezeigt bekommen, wie schnell wir aktuell fahren.

Dazu müssen wir unserem Autonomen Fahrzeug auch ein Art Gedächtnis geben. Aber wie geht das? An dieser Stelle kommen sogenannte Variablen zum Einsatz. Im folgenden Dokument erfahrt Ihr, was genau Variablen sind, wozu sie benutzt werden und wie Ihr sie im Open Roberta Lab anlegt.

📒 Anleitung: Variablen

Ihr könnt nun gerne schon mal selbst im Open Roberta Lab ausprobieren, wie Ihr die Geschwindigkeit regelt. Um die Geschwindigkeitsangabe müssen wir uns noch keinen Kopf machen, darum kümmern wir uns später. Habt Ihr bereits eigene Ideen? Wie könnte dieser Code aussehen?

Hinweise findet Ihr in den folgenden Dokumenten:

✏️ Übung: Cruise Control 1.0

💡 Lösung: Cruise Control 1.0

🎓 Guide für Ausbildende: Cruise Control 1.0

Cruise Control 2.0

Jetzt, da Ihr bereits ein Programm geschrieben habt, welches die Geschwindigkeit auf Knopfdruck ändern kann, fehlt uns lediglich die Ausgabe der Geschwindigkeit. Bisher ist uns unser Tempo noch ungewiss und da wir nicht gleich negativ mit unseren Fahrzeug auffallen wollen, setzen wir auch hier wieder unsere Programmierkenntnisse ein. 

Dafür gibt es wieder Hinweise:

✏️ Übung: Cruise Control 2.0

💡 Lösung: Cruise Control 2.0

🎓 Guide für Ausbildende: Cruise Control 2.0


Der Code ist recht lang geworden. Wow!
Um den Code übersichtlicher zu gestalten, können wir sogenannte Funktionen verwenden. Außerdem ermöglichen sie uns, den selben Code immer wieder zu verwenden, anstatt ihn immer wieder neu zu erstellen.

Wenn Ihr tiefer in die Welt der Funktionen eintauchen wollt, dann wird Euch die folgende Anleitung helfen:

📒 Anleitung: Funktionen

🎉 Glückwunsch!

Wenn Ihr es noch nicht gemacht habt, dann wird es allerhöchste Zeit, dass Ihr Euch auf die Schultern klopft. Ihr habt unglaublich viele wichtige Programmier- und Robotikkonzepte kennengelernt und erfolgreich verwendet. Unter anderem Sensoren, Variablen, Funktionen sowie Kontrollstrukturen wie Schleifen und Ausführbefehle.

Damit seid Ihr jetzt schonmal gut darauf vorbereitet, falls Ihr künftig in Eurem Beruf mit dem Programmieren in Berührung kommt. Außerdem seid Ihr einem vertieften Verständnis für Künstliche Intelligenz sehr viel näher gekommen, womit wir uns weiter im 3. Modul beschäftigen werden.

Aber halt, das war noch nicht alles!

Das Open Roberta Lab bietet mehr als zehn verschiedene Roboter und Microcontroller an. Ihr habt bisher nur die Open Roberta Sim mit dem EV3-Roboter kennengelernt. Ein weiterer Roboter, der in verschiedenen Bereichen eingesetzt wird, ist der NAO.

Wer von Euch schafft es, den NAO in der Open Roberta Simulation so zu programmieren, dass er seinen Stift in die Box auf dem Tisch fallen lässt?
✏️ Übung: NAO Stift in die Box legen

Weiter geht es mit Modul 2, wo Ihr lernt, wie Ihr komplexe Probleme systematisch lösen und programmieren könnt und damit sogar den Berufsalltag erleichtert.

Modul 1: Abschluss Quiz

Ihr möchtet ein Zertifikat für den Kurs erhalten? Dann macht das folgende Abschluss Quiz. Wenn 80% der Fragen richtig beantwortet wurden, lässt sich das Zertifikat herunterladen.

1 / 10

Was ist eine Variable?

2 / 10

Was ist das besondere an einer Funktion?

3 / 10

Schleifen

4 / 10

Mit wie vielen Sensoren ist der EV3 ausgestattet?

5 / 10

Der »warte bis«-Block …

6 / 10

Was passiert wenn man auf das Plus beim Startblock drückt?

7 / 10

In welcher Ansicht kannst du dein Programm Abspielen lassen?

8 / 10

Moral Machine beschäftigt sich mit…

9 / 10

Wie viele Stufen des Autonomen fahrens gibt es?

10 / 10

Wie heißt der Leiter der Roberta Initiative?

Your score is