Kurs: Programmieren lernen mit Niki
-> gehe den Kurs Schritt für Schritt durch, bearbeite alle Aufgaben und schaue falls nötig zur Erklärung die angegebenen Videos (alle auf „YouTube.com/alexkueck11“ zu finden).
WEITERE Materialien zum Nachschlagen gibt’s auf der Materialien-Seite im Blog.
Alle Aufgaben zusammen gibst hier: Skript mit Aufgaben mit Projekt
____________________
Immer parallel beim Programmieren: Ergebnisse festhalten im Blog
Das Konzept – Die Spieleoberfläche
Video: Niki I – der Editor http://youtu.be/Fm9EBKxgahg
Aufgabe 1
- Starte Niki
- Wähle im Menü „Arbeitsfeld“ und gestalte folgende Arbeitsfläche
- Wähle im Menü „Start“ „Teach-in“ und lasse Niki über den Berg laufen.
- Halte alle Erkenntnisse, die du aus deinen Proben ziehst im Blog fest.
_______________
Das Programm
Video: Niki II – ein erstes Programm http://youtu.be/_Xdho8oHWkk
Der Compiler
deutsch/englisch übersetzen in „Computersprache: 000111000111111…..“
Prüfen, ob die korrekte Grammatik verwendet wurde und die richtige Rechtschreibung – bis auf jeden Punkt und jedes Semikolon muss alles perfekt sein, sonst gibt’s nen Fehler
Aufgabe 2
- Schreib das einfache Programm ab und drücke dann auf den kleinen grünen Pfeil – was passiert?
- Lösche das Semikolon nach vor oder den Punkt nach End – was passiert?
- Füge ein paar Änderungen ein, z.B. schreibe erneut vor; zwischen Begin und End – was passiert?
- Halte alle Erkenntnisse, die du aus deinen Proben ziehst im Blog fest.
_________________
Was bringt Niki mit (was kann er schon Befehle, die er versteht)
Aufgabe 3
- Schreib das einfache Programm um und füge ein paar Änderungen ein, indem du die nebenstehenden Befehle verwendest – was passiert?
- Was passiert, z.B., wenn Niki vor einer Wand steht und du den Befehl vor; eingibst?
- Halte alle Erkenntnisse, die du aus deinen Proben ziehst im Blog fest.
____________________
Sensoren, auf die er reagiert
Aber was soll Niki mit diesen Sensorwerten tun?
Sie sind sozisagen seine „Sinne“ – und wenn bestimmte Bedingungen dieser Sinne vorliegen, soll er entsprechend reagieren.
Z.B. soll er solange vor; ausführen, wie „vorne_frei“ ist.
__________________________
Programmstrukturen
Bedingungen
Ergeben sich aus den Sensorinformationen
_________________
Schleifen
Video: Niki III – Schleifen http://youtu.be/1nKKVg1ZP5k
While-Schleife (solange …. Tue…..)
WHILE vorne_frei do
BEGIN
Vor;
END;
-> solange die Bedingung (vorne_frei) erfüllt ist, wird immer wieder das ausgeführt, was zwischen Begin und End in der Schleife steht.
___________________
Verzweigungen
Video: Niki IV – Verzweigungen http://youtu.be/VoJ7bHxJPAg
Entweder – oder
IF vorne_frei THEN
BEGIN
vor;
END
ELSE
BEGIN
…
END;
Aufgabe 4
- Was passiert, z.B., wenn Niki vor einer Wand steht und du den Befehl vor; eingibst? Vermeide den Fehler, indem du Niki solange den „vor“ Befehl gibst, bis er vor einer Wand steht. Dann soll der sich nach links drehen.
- Jedes Mal, wenn Niki einen Schritt vor gemacht hat, soll er einen Krümel aufnehmen – aber nur wenn einer da ist – was passiert, wenn du nicht prüfst, ob einer da ist?
- Schreibe das ganze so um, dass er bei jedem Schritt prüft, ob ein Krümel da ist, dann aber alle aufnimmt, die da sind und nicht nur einen.
- Halte alle Erkenntnisse, die du aus deinen Proben ziehst im Blog fest.
______________________
Prozeduren
Video: Niki V – Prozeduren http://youtu.be/cbvpYG9f5wY
Teile des Hauptprogramms „auslagern“, um das Hauptprogramm übersichtlicher zu gestalten.
Der Name der Prozedur wird im Hauptprogramm geschrieben und beim Compilieren werden an Stelle des Namens alle in der Prozedur aufgeführten Befehle ausgeführt.
PROCEDURE test;
BEGIN
drehe_links;
drehe_links;
drehe_links;
END;
____________________
Aufgabe 5
- Folgendes Programm sei gegeben:
PROGRAM Test;
BEGIN
while vorne_frei do
BEGIN
vor;
END;
drehe_links;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
drehe_links;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
drehe_links;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
drehe_links;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
drehe_links;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
drehe_links;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
drehe_links;
vor;
drehe_links;
drehe_links;
drehe_links;
vor;
END.
- Was tut Nicki?
- Teile das Programm in sinnvolle Einheiten ein.
- Gibt es immer wiederkehrende Befehlssequenzen? Wenn ja, lagere sie jeweils in einer Prozedur aus.
- Halte alle Erkenntnisse, die du aus deinen Proben ziehst im Blog fest.
______________________________
Abschlussaufgabe
Suche dir eine der folgenden Aufgaben aus und programmiere sie mit Niki.
Alternativ kannst du dir auch selbst ein Problem ausdenken, welches Niki lösen soll. Es muss mindestens eine Schleife, eine Verzweigung und eine Prozedur enthalten.
- Labyrinth – lege auf dem Arbeitsfeld ein Labyrinth an und lasse Nicki hindurch laufen (für Könner: schreibe das Programm so allgemein, dass Nicki aus jedem Labyrinth herausfindet, welches einen Ein- und einen Ausgang hat).
- Niki als Walli: Niki soll einen abgegrenzten Bereich ablaufen und alle darin enthaltenen Krümel aufnehmen (für Könner: das Ablaufen soll in beliebigen Bereichen funktionieren, d.h. man kann das gleiche Programm auf verschieden Arbeitsfelder anwenden. Eine andere Erweiterung wäre, wenn in dem abgegrenzten Arbeitsfeld noch Hindernisse enthalten sind, die Niki umlaufen muss)
____________________
Kommentar verfassen