Mentorenhandbuch Scratch www.lerneProgrammieren.de By Arkadius Roczniewski lerneProgrammieren();
www.lerneProgrammieren.de
Inhalt • • • •
Beispielaufbau Scratchkurs Methodik Skills für Coder Übersicht der Grundelemente – – – –
Elemente: Folgestrukturen, Variablen, Bedingungen, Wiederholungen Erklärungen der Elemente Gruppenspiele Programmiersprachen • Scratch: Elemente und Oberfläche
• Mögliche Kleinprojekte mit Scratch lerneProgrammieren();
www.lerneProgrammieren.de
Beispielaufbau Scratchkurs • Vorstellung Scratch – Was ist das und was kann man damit machen? – Onlineeditor: http://scratch.mit.edu/ – Offlineedtor: http://scratch.mit.edu/scratch2download/
• Projektvorstellung: – Was wollen wir heute mit Scratch machen?
• Durchführung – – – –
Scratch installieren und einrichten Scratchoberfläche erklären Einführungsprojekt durchführen Eigentliches Projekt umsetzen
• Ergebnisvorstellung lerneProgrammieren();
www.lerneProgrammieren.de
Methodik • Bisherige „Lebens“-Erfahrung der Teilnehmer nutzen • visuelle Erklärungen • bildliche Beispiele (Metaphern) • Übungen langsam und redundant • Teilnehmer spielen lassen • Kreativität unbedingt fördern! lerneProgrammieren();
Nicht Fachbegriffe erklären, Anwendung erklären mittels Beispielen aus dem echten Leben
Verständniskontrolle mittels Beispiel www.lerneProgrammieren.de
Links für Methodik •
Was die meisten Schulen nicht lehren – https://youtu.be/nKIu9yen5nc
•
Changing Education Paradigms – https://youtu.be/zDZFcDGpL4U
•
Lesen, Schreiben und Programmieren (Mitch Resnick, Erfinder von Scratch) – https://youtu.be/42_30Rgf6F0
•
Flipping the Classroom – http://kata.coderdojo.com/wiki/Flipping_the_Classroom
•
Kids teaching Kids – http://kata.coderdojo.com/wiki/Sugata_Mithra_-_Kids_teaching_Kids
•
An Opensource Movement – http://kata.coderdojo.com/wiki/An_Opensource_Movement
•
Deschooling Society (Scary School Nightmare) – https://youtu.be/ZUoYAj7Nosg lerneProgrammieren();
www.lerneProgrammieren.de
Skills für Coder • Welche Skills muss ein Coder erlangen? – Syntax einer Programmiersprache – Grundelemente und Logik von Programmiersprachen – Probleme erkennen – Problemlösung überlegen – Lösung auf begrenzten Wortschatz(Programmiersprache) abstrahieren – Fehlersuche und -behebung lerneProgrammieren();
www.lerneProgrammieren.de
Grundelemente • • • • • •
Befehle Operationen Variablen 5 Bedingungen ? Wiederholungen Scratch: Ereignisse & Sensoren tuWas();
1 + 1;
alter > 18
zielErreicht == false
lerneProgrammieren();
www.lerneProgrammieren.de
Befehle
tuWas();
• Folgestruktur ein Befehl nach dem anderen • Möglich: Neue Befehle aus Vorhandenen erstellen • Beispiel für Folgestruktur: TV-Programm, Stundenplan, Wegbeschreibung, Anleitung Das ist ein Befehl!
lerneProgrammieren();
www.lerneProgrammieren.de
Befehle
tuWas();
• Gruppenübung: Schreibe eine Wegbeschreibung für deinen Nachbarn • Ziel: von Punkt A im Raum zu Punkt B im Raum • Hindernis: Verwende nur die Befehle geradeAus() und dreheLinks() • Wegbeschreibung aufschreiben und Nachbar führt diese aus. (Bei 3 Leuten, kann der dritte diese Vorlesen o.ä.) lerneProgrammieren();
www.lerneProgrammieren.de
Befehle in Scratch
tuWas();
• Scratchbefehle – Bewegung, Aussehen, Klang, Malstift
• Übungen – Führe den Roboter zur Fahne (siehe Bild) – (Scratch Surprise) Lass die Figur etwas überraschendes machen • z.B. Ändere die Farbe und bewege die Figur nach oben…. lerneProgrammieren();
www.lerneProgrammieren.de
Operationen
1 + 1;
• Werte miteinander kombinieren – Arithmetisch, Vergleiche, Zuweisung, Logik – Operationen haben immer ein Ergebnis
• Beispiel: Kopfrechnen, Taschenrechner, Waage Das ist eine Operation mit Zahlenergebnis
lerneProgrammieren();
Das ist eine Operation mit Wahrheitsergebnis (WAHR/FALSCH) www.lerneProgrammieren.de
Operationen
1 + 1;
• Gruppenübung: Wieder Wegbeschreibung aber Rechenaufgaben einbauen wie – Rechne 1 + 3 – 5 ist größer als 6 (Ja/Nein Wahr/Falsch)
• Ziel: Ergebnisse von Operationen erhalten – Wichtig für Variablen lerneProgrammieren();
www.lerneProgrammieren.de
Operationen
1 + 1;
• Scratch Operationen – Erst bei Bedingungen oder Schleifen notwendig
• Übungen: – Rechne eine bestimmte Aufgabe und lass die Figur das Ergebnis sagen – Lass die Figur sich nur bewegen, wenn eine Zahl größer ist als… lerneProgrammieren();
www.lerneProgrammieren.de
Variablen
5
• Werte und Ergebnisse merken – Daten speichern und laden – Es gibt verschiedene Datentypen – Eine Variable hat immer einen Namen
Damit kann man sich Zahlen merken
• Beispiel: PostIt, Hausaufgabenheft, Wörterbuch lerneProgrammieren();
www.lerneProgrammieren.de
Variablen
5
• Gruppenübung: Wegbeschreibung mit Rechenaufgaben, Ergebnisse müssen auf verschiedene Zettel(mit Namen) geschrieben werden, die gespeicherten Daten müssen wieder abgerufen werden. – Für bestimmte Befehle werden Punkte gezählt und auf einen Zettel geschrieben, am Ende des „Programms“ wird diese Punktzahl vorgelesen
• Ziel: Speichern und Laden von Informationen unter einem Platzhalter lerneProgrammieren();
www.lerneProgrammieren.de
Variablen
5
• Scratch Variablen – Punkte vergeben, Lebenspunkte einer Figur, Kraftpunkte, Aktuelles Level
• Übung: – Zähle gesammelte Punkte, z.B. wenn sich zwei Figuren berühren – Ist ein Level geschafft, erhält der Spieler einen Punkt lerneProgrammieren();
www.lerneProgrammieren.de
Bedingungen ?
alter > 18
• Kontrollfluss nach Wahrheitswert steuern – Wahrheitswert verstehen (Ja/Nein, Wahr/Falsch) – Wenn (Wahr) dann … sonst (Falsch) …
• Beispiel: Alternativroute, Umleitung, Vertretung(-slehrer), Ersatzteil – Wenn (wandVorDir = Ja) dreheLinks • Sonst geradeAus
lerneProgrammieren();
Befehle werden nur ausgeführt wenn eine Bedingung erfüllt ist www.lerneProgrammieren.de
Bedingungen ?
alter > 18
• Gruppenübung: Wegbeschreibung mit Alternativen einbauen. Zum Beispiel: Wenn Wand vor dir, dann dreheLinks. Wenn Stuhl vor dir, steig auf Stuhl ansonsten geheGeradeAus. – Tip: Hier können die Variablen vom Merkzettel verwendet werden z.B. Wenn Ergebnis1 größer 8 dann gehe 8 Schritte
• Ziel: Befehle nur unter bestimmten erfüllten Bedingungen ausführen.
lerneProgrammieren();
www.lerneProgrammieren.de
Bedingungen ?
alter > 18
• Wenn Bedingung erfüllt – Berührung erkannt, Spielende erkannt, Punkte vergeben
• Beispiele zum üben – Beende das Programm, wenn der Spieler den Bösewicht berührt. – Spieler sagt „Hurra“, wenn er das Ziel erreicht lerneProgrammieren();
www.lerneProgrammieren.de
Wiederholungen
zielErreicht == false
• Befehle bei Wahrheitswert wiederholen – Absolut zählen (for 0-10 Zählen) – Wenn (Wahr) wiederhole … sonst aufhören.
• Beispiel: – Wenn keine Wand vor dir gehe Gerade aus – Wenn Knopf gedrückt, bewege dich Befehle werden wiederholt! lerneProgrammieren();
www.lerneProgrammieren.de
Wiederholungen
zielErreicht == false
• Gruppenübung: – In Wegbeschreibung Anwiesungen wie: Wiederhole GeradeAus bis Wand erreicht. Wiederhole „Trepperaufgehen“ bis nächste Etage erreicht. • Tip: Variablen auch hier nutzbar: wiederhole „Ball sammeln“ bis „Ball aufgesammelt“
• Ziel: Befehle wiederholen solange ein Bedingung erfüllt ist, oder bis eine Bedingung erfüllt ist. lerneProgrammieren();
www.lerneProgrammieren.de
Wiederholungen
zielErreicht == false
• Wenn Bedingung erfüllt (oder unendlich) – Wiederhole Befehle in Wiederholung – Wenn etwas immer und immer wiederholt werden muss
• Beispiel: – Beschleunige solange Pedal gedrückt – Bewege Gegner solange Spiel läuft lerneProgrammieren();
www.lerneProgrammieren.de
Weitere Scratch Elemente Damit kann man • Events • Sensoren • Eigene Blöcke lerneProgrammieren();
dein Programm von aussen starten
Berühren sich zwei Objekte auf der Bühne? Wenn du Befehle zusammenfassen willst www.lerneProgrammieren.de
Scratch Oberfläche Kostüme/Sounds Hauptmenü Stage/Bühne
Skripte/Blöcke
Code/Programmierbereich Sprites/Figuren/Objekte lerneProgrammieren();
www.lerneProgrammieren.de
Weitere Links • Scratch Kurs – http://lerneprogrammieren.de/scratch-kurs/
• Weitere Ideeen unter: – http://scratch.mit.edu/starter_projects/ – http://kata.coderdojo.com/wiki/ScratchTastic
lerneProgrammieren();
www.lerneProgrammieren.de
Scratchprojekte • Roboterspiel V1: http://scratch.mit.edu/projects/42992634/ – Aufgabe 1: http://scratch.mit.edu/projects/49688262/ – Aufgabe 2: http://scratch.mit.edu/projects/49688490/
• Roboterspiel V2: http://scratch.mit.edu/projects/49696240/ – Vorlage: http://scratch.mit.edu/projects/49730756/ lerneProgrammieren();
www.lerneProgrammieren.de