Für Lehrpersonen

Tags: primalogo

Projekt: Stadt aus individuellen Häusern

Projekt Stadt.jpg

Mit PrimaLogo lassen sich einzelne Programme als Unterprogramme über ein "Hauptprogramm" beziehungsweise ein übergeordnetes Programm öffnen. So können alle Lernende einer Klasse ein eigenes Haus als Programm erstellen und mit einem "Hauptprogramm" werden diese Häuser in zufälliger Reihenfolge zu einer "Stadt" zusammengefasst.

Hier ein Beispiel zum > Importieren.

 

Was wird gebraucht?

Die Lernenden erstellen ein Programm mit einem vorgegebenen Namen, beispielsweise To Haus1 - die Nummer ist dabei einzigartig (To Haus2To Haus3...). Sie können dabei individuell vorgehen, zwei Dinge sind aber für alle gleich: Der Ausgangspunkt der Schildkröte ist immer gegen oben zeigend und am Ende von To Haus1 muss die Schildköte bei allen ausgerichtet werden - auf der Grundlinie eine Distanz von 10 nach rechts fahren und anschliessend wieder nach oben zeigen. 

Diese Programme werden alle in dasselbe Editor-Blatt (K1, K2...) kopiert. Anschliessend braucht es die Möglichkeit, zufällige Haus-Programme auszuwählen und in einer Reihe anzuordnen. Weiterhin braucht es ein Ausrichten nach einer Reihe Häuser für eine nächste, unter der ersten gezeichneten, Reihe. 

 

To stadt :laenge :anz  Der Name des "Hauptprogramms: "Stadt". :laenge sagt, wieviele Häuser in der Reihe gezeichnet werden und :anz sagt, wieviele Reihen untereinander sind.   
 make "reihenzahl 180 Die Reihenzahl wird am Anfang festgelegt und legt fest, wieviel nach unten die zweite Reihe gegenüber der ersten Reihe ist.
 repeat :anz [ Innerhalb der pinken repeat-Klammer ist mit dem Parameter :anzahl die Reihe drin. 
 repeat :laenge [ Innerhalb der orangen repeat-Klammer ist die zufällige Ausgabe der Hausx-Programme der Lernenden in einer Reihe.
 make "r (random 3)+1 Die Zeile legt fest, dass es eine Variable r gibt, in der eine Zufallszahl von 1 bis 3 ist (die Klammern und das +1 sind nötig, weil die random 3 -Funktion eine Zahl von 0 bis 2 ausgibt). 
 if :r=1 [haus1] 
if :r=2 [haus2] 
if :r=3 [haus3]
Hier wird mit if abgefragt, ob die oben mit random festgelegte Variable 1, 2 oder 3 ist - je nachdem wird dann das entsprechende Programm Haus1Haus2 oder Haus3 ausgeführt.
 ] Die orangen repeat-Klammer wird geschlossen - eine Reihe von :laenge Häusern ist gezeichnet
 home  Home setzt die Schildkröte an den Startpunkt zurück (ähnlich dem Befehl cs). Dabei wandert sie nicht, wie bei fd, sondern wird einfach versetzt. 
pu  Pen-Up, damit die am Startort stehende Schildkröte keine Linie vom ersten Haus der ersten Reihe zum ersten Haus der zweiten Reihe zeichnet. 
 rt 180 fd :reihenzahl rt 180 pd  Die Schildkröte dreht sich, wandert um die Anfangs festgelegte :reihenzahl nach unten und dreht sich wieder mit dem Kopf nach oben: Die Ausgangssituation für jedes Haus.
 make "reihenzahl :reihenzahl+180  Weil die Schildkröte nach der orangen Klammer jeweils an den Startpunkt gesetzt wird, und erst von dort aus an den Ausgangspunkt einer neuen Reihe wandert, muss für jede Reihe nach der zweiten die :reihenzahl um jeweils 185 erhöht werden. So wird bei jedem Durchgang (für jede Reihe) die Schildkröte nach dem home-Befehl weiter nach unten versetzt (180, dann 360, dann 540 usw.)
]  Die pinke repeat-Klammer wird geschlossen, wenn der ihr vorangehende Parameter :anz erreicht ist - die Anzahl Reihen der Stadt also erreicht ist
end  Das Programm wird beendet.

 

Für eine ganze Klasse passen sich folgende Dinge an:

  • Der random-Befehl wird auf die Anzahl Häuser erhöht und alle Namen der Haus-Programme müssen jeweils eine eigene Zeile mit "if :r=1 [haus1]" bekommen. 
  • Das Ausrichten mit :reihenzahl 180 (360, 540 usw)  ist je nach Höhe der Häuser zu wenig - einfach die Zahl erhöhen - und zwar sowohl die Startzahl als auch die Addition.

 

So sieht der Logo-Programm-Code aus

To stadt :laenge :anz
make "reihenzahl 180
repeat :anz [
repeat :laenge [
make "h (random 3)+1
if :h=1 [haus1] 
if :h=2 [haus2] 
if :h=3 [haus3]
]
home
pu
rt 180 fd :reihenzahl rt 180 pd
make "reihenzahl :reihenzahl+180
]
end

☰ Informatik – Programmieren

Programmieren

Programmieren

BeeBot & BlueBot

BeeBot & BlueBot

5./6. Programmieren - PrimaLogo [extern]

5./6. Programmieren - PrimaLogo [extern]

7./9. Programmieren - TigerJython

7./9. Programmieren - TigerJython

☰ PrimaLogo – Navigation

5./6. Programmieren - PrimaLogo

5./6. Programmieren - PrimaLogo

Programmierumgebung XLOGO

Programmierumgebung XLOGO

Für Lehrpersonen

Blog

Blog

☰ LEIS (LEGO Education Innovation Studio)

LEGO Education Innovation Studio (LEIS)

LEGO Education Innovation Studio (LEIS)

Mögliche Einsatzgebiete von LEGO

Mögliche Einsatzgebiete von LEGO

WeDo 2.0 - erfinden und erkunden

WeDo 2.0 - erfinden und erkunden

EV3 - entwickeln und verbessern

EV3 - entwickeln und verbessern

Roberta - Lernen mit Robotern

Roberta - Lernen mit Robotern

☰ MINT-entDENKEN

MINT - Philosophie

MINT - Philosophie

MINT-entDENKungs-RAUM

MINT-entDENKungs-RAUM

☰ Medien und Informatik 1+2

Einleitung

Einleitung

Bild - Fotografie und Grafik

Bild - Fotografie und Grafik

Film

Film

Audio

Audio

Web

Web

Layout

Layout

Urheberrecht, Datenschutz, Datensicherheit

Urheberrecht, Datenschutz, Datensicherheit

Kommunizieren und Kooperieren

Kommunizieren und Kooperieren

Lernen mit Medien

Lernen mit Medien

Medienpädagogik

Medienpädagogik

Datenstrukturen und Digitalisierung

Datenstrukturen und Digitalisierung

Algorithmen (Computional Thinking)

Algorithmen (Computional Thinking)

Informatiksysteme

Informatiksysteme

Informatik, Mensch und Gesellschaft

Informatik, Mensch und Gesellschaft

Informatikdidaktik

Informatikdidaktik

SMI - Spezialistinnen Medien und Informatik

SMI - Spezialistinnen Medien und Informatik

Aktualisiert am 04.09.2018

Kontakt: mit.ivp@phbern.ch