Programmieren für angehende Pädagog:innen (mit Hilfe von Scratch)"
Einleitung
Dieser Lernpfad wurde 2022 als Teil des Modellprojekts "Informatik-Module für die Fachmittelschule Pädagogik" im Rahmen der IT-Bildungsoffensive (ITBO) des Kantons St.Gallen (Schweiz) entwickelt. Der Kanton hat uns erlaubt, die Unterlagen als Open Educational Resources mit der Lizenz CC-BY-SA zu veröffentlichen.
Der Lernpfad umfasst vier Einheiten (Teilmodule) zu je 2 Lektionen. Zu jeder Einheit steht eine Anleitung für die SuS (Schülerinnen und Schüler) und eine Handreichung für die Lehrperson zur Verfügung. Ausserdem sind die Vorlagen und Musterlösungen zu den Programmieraufgaben im Studio ITBO Programmieren auf dem Scratch-Portal veröffentlicht.
Einheit 1
Mit dem Teilmodul 1 lernen die SuS die Programmierumgebung Scratch und die Grundlagen des Programmierens anhand eines Beispielprojekts kennen. Sie realisieren ein Zündholzrätsel (Modellbildung). Ohne theoretischen Ballast verwenden sie dazu grundlegende Konzepte der objektorientierten Programmierung (Objekte, Objekteigenschaften, Aktionen/Methoden, Prozesskommunikation). Die SuS machen sich auch mit einer Scratch-Erweiterung vertraut (text-to-speech).
- Die SuS lernen die Programmierumgebung Scratch kennen und nutzen, um eigene Programmierprojekte zu eröffnen und zu verwalten.
- Sie lernen grundlegende Elemente der Programmiersprache Scratch kennen und wenden sie an, um erste einfache Programme zu «schreiben».
- Die SuS reflektieren die Erfahrungen, die sie beim Programmieren machen.
- Sie lernen (ganz ohne theoretischen Ballast) auch grundlegende Konzepte «professioneller» Programmierung kennen (Objekt- und Ereignisorientierung, Prozesskommunikation).
Einheit 2
Das Teilmodul 2 fokussiert auf das Konzept der Turtle-Grafik und den Einsatz von Scratch im Unterricht an der Primarschule. Anhand des Beispiels «Eigenschaften regelmässiger Vielecke» können die SuS das entdeckende Lernen mit Turtle-Grafik selbst nachvollziehen. Ausserdem lernen die SuS wesentliche «Grundbausteine» von Programmen (Sequenz, Wiederholung, bedingte Ausführung, Variablen) kennen und anwenden.
- Die SuS machen sich weiter mit Scratch vertraut.
- Sie lernen die «Grundbausteine» von Programmen kennen und anwenden (Sequenz, Wiederholung, bedingte Ausführung, Variablen).
- Die SuS verstehen das Konzept der Turtle-Grafik für das entdeckende Lernen im Primarschul-Unterricht.
- Sie setzen sich mit dem Programmieren von Turtle-Grafiken anhand eines konkreten Beispiels auseinander.
Einheit 3
Das Teilmodul 3 dient dazu, die SuS mit dem Entwurf und der Programmierung von multimedialen Geschichten / Animationen in Scratch vertraut zu machen.
- Die SuS analysieren eine einfache interaktive, multimediale «Geschichte». Sie ergänzen die «Geschichte» mit einer zusätzlichen Szene.
- Die SuS lernen, wie sie «Szenen» und «Szenenwechsel» entwerfen und umsetzen können.
- Sie erfahren, wie Animationen entworfen und realisiert werden können.
Einheit 4
Im Teilmodul 4 setzen sich die SuS mit der Simulation eines Rasenmähroboters auseinander. Dabei stützen sie sich auf das Block-Konzept, das ihre Arbeit wesentlich erleichtert und das Programm übersichtlicher macht. Anhand dieses Beispiels reflektieren die SuS die Problematik der Determiniertheit und Korrektheit von programmierten Problemlösungen.
- Die SuS verstehen eine Simulation als Möglichkeit für das Suchen nach einer Problemlösung.
- Sie analysieren und testen das zur Verfügung gestellte Beispiel der Simulation eines Rasenmäher-Roboters.
- Die SuS ergänzen das Simulationsbeispiel mit einem selbst entwickelten Algorithmus.
- Sie verstehen das Blockkonzept zur übersichtlichen Gliederung von Programmen.
Unterrichtsverlauf
Die SuS werden für den Unterricht ganz unterschiedliche Vorkenntnisse mitbringen und unterschiedliches Interesse am Programmieren zeigen. Einige Schüler:innen werden erklären, dass sie schon programmieren können. Andere werden skeptisch sein, ob sie das je lernen werden und ob sie das überhaupt brauchen.
Wenn die hohen Erwartungen an das Programmieren in der Schule (… logisches und kritisches Denken, Kreativität, Teamarbeit, ...) erfüllt werden sollen, müssen sich die SuS auf ihre je eigene Art mit den Inhalten des Moduls Programmieren auseinander setzen können.
Zu jedem Teilmodul gibt es eine Anleitung, mit der die SuS in Gruppen (idealerweise Zweier-, nötigenfalls Dreiergruppen) selbständig arbeiten können (student edition). Die Lehrpersonen finden so Zeit, sich intensiver mit den Schülerinnen und Schülern zu befassen, die schon Erfahrung mitbringen oder dem Programmieren skeptisch gegenüber stehen. Dazu steht den Lehrpersonen zu jedem Teilmodul ein Begleitdokument zur Verfügung (teacher edition). Die skeptischen Schüler:innen so zu unterstützen, dass sie ihre Vorbehalte als Ansporn empfinden, und die erfahrenen Schüler:innen zur (selbst-) kritischen Auseinandersetzung mit den Inhalten der Teilmodule (oder wenigstens der Teilmodule 2 und 3) zu motivieren, wären erstrebenswerte Ziele.
Eine formative Lernkontrolle macht unter diesen Umständen keinen Sinn. Hingegen würde ein kollaborativer Texteditor (z.B. https://edupad.ch) den SuS ermöglichen, ihre Fragen und Kommentare zu den Aufgaben und Reflexionen laufend zu notieren und untereinander zu diskutieren. Bei Bedarf könnte die Lehrperson verlangen, dass alle SuS mindestens drei relevante Fragen und/oder Kommentare einbringen müssen.
Zeitbedarf
Für die vier Teilmodule ist ein Zeitbedarf von je 2 Lektionen vorgesehen. Die Teile 1 und 2 bilden eine Einheit; deren Bearbeitung nimmt je nach Klasse vielleicht doch etwas mehr Zeit in Anspruch. In diesem Fall müsste eventuell auf Teilmodul 4 verzichtet werden.
Disposition
Warum programmieren?
Programmieren ist eine Tätigkeit, deren Ergebnis ein Computer-Programm ist. Das Faszinierende daran ist die Vielfalt an unterschiedlichen Aufgaben, die mit solchen Programmen gelöst werden können.
Warum sollen die angehenden Lehrpersonen programmieren lernen? Es gibt zahlreiche Quellen, die Antworten auf diese Frage liefern, zum Beispiel:
Programmieren [ist] so wichtig wie schreiben und lesen.
Quelle: https://www.fritzundfraenzi.ch/gesellschaft/programmieren-so-wichtig-wie-schreiben-und-lesen/
Beat Döbeli Honegger (Fachkern Medien und Informatik an der Pädagogischen Hochschule Luzern) gibt im Beitrag «Warum Informatik in der Schule?» eine differenziertere Antwort, indem er Informatik mit neun Argumenten zur Allgemeinbildung zählt:
- Konstruktionismus-Argument ("Der Computer als Schüler:in")
- Wissenschaftsargument ("Informatik gehört zur Allgemeinbildung, weil Informatik mit Simulation ein drittes Standbein in die Wissenschaft gebracht hat.")
- Denkobjektargument ("Der Computer als Denkobjekt")
- Problemlöseargument ("Informatikkenntnisse helfen auch beim Lösen von Problemen ausserhalb der Informatik.")
- Welterklärungsargument ("Um die heutige Informationsgesellschaft verstehen und erklären zu können, sind Informatikkenntnisse notwendig.")
- Konzeptwissenargument ("Informatikkenntnisse helfen, die Nutzung von ICT besser zu verstehen.")
- Arbeitstechnikargument ("Mit Informatik lässt sich das präzise Planen, Arbeiten und Kommunizieren im Team üben.")
- Motivations-/Interesseargument ("Mit Informatik lassen sich Schülerinnen und Schüler mit technischem Interesse ansprechen.")
- Berufswahl-Argument.
Programmieren ist ein Teilaspekt der Informatik. Das Modul «Programmieren» an der FMS Berufsfeld Pädagogik beschränkt sich auf folgende Ziele:
- Die Schülerinnen und Schüler der FMS Berufsfeld Pädagogik (kurz «SuS») werden später als Primarlehrpersonen eigene Ideen für den Unterricht entwickeln, wie Computerprogramme ihre Schülerinnen und Schüler beim Lernen unterstützen könnten. Sie sollen deshalb entsprechende Apps auch selbst programmieren können (z.B. ein mit der Zeit wachsendes Verzeichnis der Wörter, welche die Kinder in ihren eigenen Texten verwenden; das Verzeichnis fördert die Erweiterung des Wortschatzes der ganzen Klasse und die schwächere Primarschüler:innen können die korrekte Schreibweise der Wörter leicht «nachschlagen»).
- Primarschülerinnen und Primarschüler sollen den Computer als Werkzeug für das entdeckende Lernen in «traditionellen» Fächern wie Mathematik, Geometrie oder Geografie nutzen können. Dazu eignet sich der Turtle-Grafik-Ansatz von Seymour Papert (weiterentwickelt und aktualisiert von Yasmin B. Kafai / Quinn Burke). Die SuS der FMS sollen sich deshalb das Konzept von Turtle-Grafiken aneignen, damit sie es später den Primarschüler:innen erklären können. Als angehende Lehrpersonen werden sie dann auch in der Lage sein, selbst Aufgaben zu stellen, die Primarschüler:innen mit Turtle-Grafiken lösen können.
- Die SuS sollen auch verstehen, wie Programme und andere Unterrichtsmaterialien in Form von offenen Bildungsressourcen (Open Educational Resources, OER) veröffentlicht werden können, um Lehrkräften die Vorbereitung und Durchführung des Unterrichts zu erleichtern. Damit nützen sie Informatikanwendungen für zeitgemässe Formen der Kooperation.
«Passende» Programmierumgebungen
Welche Programmierumgebung eignet sich, um die genannten Ziele zu erreichen? Dazu seien einige Auswahlkriterien angeführt.
Die Programmierumgebung muss benutzerfreundlich sein, damit sich die SuS in der kurzen für das Modul «Programmieren» zur Verfügung stehenden Zeit mit den Grundlagen des Programmierens vertraut machen können.
Sie muss moderne Programmier-Konzepte unterstützen (z.B. Objekt- und Ereignisorientierung), damit die SuS damit auch anspruchsvolle Programmiervorhaben bewältigen können.
Die Programmierumgebung muss von Primarschüler:innen genutzt werden können. Und sie muss «Turtle-Grafiken» unterstützen (gemäss dem Konzept von Seymour Papert, 1967, damals realisiert mit der Programmiersprache Logo und Schildkröten – engl. turtles – als sich bewegende Objekte).
Die Programmierumgebung muss die blockbasierte Programmierung unterstützen. Die textbasierte Programmierung eignet sich für den Unterricht in der Primarschule nicht.
Idealerweise unterstützt die Programmierumgebung das kooperative (Weiter-) Entwickeln von Programmen.
Die Programmierumgebung sollte schon recht verbreitet sein. Mit einer grossen Nutzerschar («community») ist eher sichergestellt, dass die Umgebung laufend weiterentwickelt und auch an sich ändernde schulische Bedürfnisse angepasst wird.
Schulisch eingesetzte Software sollte möglichst allgemein verfügbar sein und es auch bleiben, damit Bildung für alle zugänglich ist. Idealerweise wird sie von personenunabhängigen Stiftungen oder auch Institutionen der öffentlichen Hand getragen. Damit sie nicht monopolisiert werden kann, sollte sie quelloffen programmiert sein.
Nachfolgend sind einige bekannte Programmierumgebungen, die im deutschsprachigen Raum für schulische Zwecke genutzt werden bzw. in Frage kämen, kurz beschrieben. Der Auswahl und der Reihenfolge der Programmierumgebungen liegt keine explizite Systematik zugrunde. Schliesslich wird die Wahl von Scratch als Programmierumgebung für den Unterricht an der Fachmittelschule Berufsfeld Pädagogik begründet.
Im Dokument Datei:ModulProgrammierenDisposition-v4.odt sind einige bekannte Programmierumgebungen, die im deutschsprachigen Raum für schulische Zwecke genutzt werden bzw. in Frage kämen, kurz beschrieben (XlogoOnline, Kara, Scratch, Snap!, ScratchKara, WebTigerJython). Der Auswahl und der Reihenfolge der Programmierumgebungen liegt keine explizite Systematik zugrunde.
Gewählte Programmierumgebung: Scratch
Für das Erreichen der Ziele des Moduls «Programmieren» an der FMS Berufsfeld Pädagogik eignet sich dieProgrammierumgebung Scratch sehr gut.
Scratch bietet mit der Unterstützung moderner Programmierkonzepte (Objekt- und Ereignisorientierung, Prozesskommunikation) eine Umgebung, die sich allgemein für das Programmieren an Mittelschulen eignet.
Scratch eignet sich aber auch speziell für das Programmieren mit Kindern, insbesondere für das entdeckende Lernen mit Turtle-Grafiken.
Scratch wurde 2007 entwickelt und wird mittlerweile an vielen Schulen in verschiedenen Schulstufen eingesetzt. Scratch ist kostenlos und in über 70 Sprachen verfügbar. Die Scratch-Community umfasst 42 Millionen Projektersteller:innen. Die Scratch Foundation, eine Non-Profit-Organisation, gewährleistet die längerfristige Verfügbarkeit und Weiterentwicklung von Scratch.
Zu Scratch gibt es auch eine grosse Auswahl an frei verfügbaren Unterrichtsmaterialien. Scratch ist webbasiert. Die Nutzer:innen von Scratch können deshalb mit irgendwelchen Geräten mit Internetanschluss (auch Tablets) auf ihre Projekte zugreifen. Die Nutzer:innen können Projekte auch austauschen und gemeinsam oder getrennt weiterentwickeln (remix).
Wer Scratch offline nutzen will, kann die Programmierumgebung lokal auf dem eigenen Gerät installieren. Es gibt die App für MS-Windows, macOS, ChromeOS und Android (Download-Seite). Für iOS und iPadOS (iPhone und iPad) gibt es keine Scratch-App.
Autoren: Bruno Wenk, Dieter Burkhard