Das CoderDojo Kassel und lerneProgrammieren.de haben ein kleines Mentorenhandbuch entwickelt, für alle Menschen die Kindern und auch Erwachsenen Programmieren beibringen wollen. In dieser Präsentation zeigen wir ein paar Tipps, wie man mit Scratch die Grundlagen der Programmierung vermittelt. Aber auch Gruppenübungen für die man keinen Computer braucht werden beschrieben. Somit kann jeder zum Mentor für die Grundlagen der Programmierung werden. Egal ob Lehrkraft oder Elternteil. Um es zu lehren kann man sich die Grundlagen auch hier schnell selbst beibringen.
2. 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
3. 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
4. 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!
Nicht Fachbegriffe erklären,
Anwendung erklären mittels
Beispielen aus dem echten Leben
Verständniskontrolle mittels
Beispiel
5. lerneProgrammieren(); 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
6. 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
9. lerneProgrammieren(); www.lerneProgrammieren.de
Befehle
• 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.ä.)
tuWas();
10. lerneProgrammieren(); www.lerneProgrammieren.de
Befehle in Scratch
• 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….
tuWas();
11. lerneProgrammieren(); www.lerneProgrammieren.de
Operationen
• Werte miteinander kombinieren
– Arithmetisch, Vergleiche, Zuweisung, Logik
– Operationen haben immer ein Ergebnis
• Beispiel: Kopfrechnen, Taschenrechner, Waage
1 + 1;
Das ist eine
Operation mit
Zahlenergebnis
Das ist eine
Operation mit
Wahrheitsergebnis
(WAHR/FALSCH)
13. lerneProgrammieren(); www.lerneProgrammieren.de
Operationen
• 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…
1 + 1;
14. lerneProgrammieren(); www.lerneProgrammieren.de
Variablen
• Werte und Ergebnisse merken
– Daten speichern und laden
– Es gibt verschiedene Datentypen
– Eine Variable hat immer einen Namen
• Beispiel: PostIt, Hausaufgabenheft, Wörterbuch
5
Damit kann man
sich Zahlen
merken
15. lerneProgrammieren(); www.lerneProgrammieren.de
Variablen
• 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
5
16. lerneProgrammieren(); www.lerneProgrammieren.de
Variablen
• 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
5
17. lerneProgrammieren(); www.lerneProgrammieren.de
Bedingungen
• 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
alter > 18
?
Befehle werden nur ausgeführt
wenn eine Bedingung erfüllt ist
18. lerneProgrammieren(); www.lerneProgrammieren.de
Bedingungen
• 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.
alter > 18
?
19. lerneProgrammieren(); www.lerneProgrammieren.de
Bedingungen
• 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
alter > 18
?
20. lerneProgrammieren(); www.lerneProgrammieren.de
Wiederholungen
• 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
zielErreicht == false
Befehle werden wiederholt!
21. lerneProgrammieren(); www.lerneProgrammieren.de
Wiederholungen
• 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.
zielErreicht == false
22. lerneProgrammieren(); www.lerneProgrammieren.de
Wiederholungen
• 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
zielErreicht == false