In den deutschsprachigen Kantonen und Pädagogischen Hochschulen laufen derzeit die Vorbereitungen zur Einführung des
Lehrplans 21 (
Biblionetz:w02172) auf Hochtouren, insbesondere auch für das neue Modul "Medien und Informatik". Eine nicht zentrale, aber trotzdem nicht ganz unwichtige Frage ist die nach Programmierumgebungen.
Als Diskussionsbasis in verschiedenen Kontexten habe ich mich mal hingesetzt und meine diesbezüglichen Überlegungen etwas strukturiert. Es handelt sich somit um eine Konkretisierung der allgemeinen Frage
Welche Programmiersprache eignet sich für die Schule? (
Biblionetz:f156) auf die aktuelle Situation in der Schweiz und dem bevorstehenden Lehrplan 21.
(direkt kommentiert werden kann dieser Text drüber bei
Google Docs)
1. Worum geht es?
In den deutschsprachigen Kantonen der Schweiz wird in den kommenden Jahren der
Lehrplan 21 eingeführt werden. Der darin enthaltene Modullehrplan
Medien und Informatik (
Biblionetz:t17600) enthält ab der 5. Klasse Kompetenzbeschreibungen, die mit einer Programmierumgebung erworben werden müssen.
Der Lehrplan 21 macht keine Aussagen oder Empfehlungen zu konkreten Programmierumgebungen. Somit stellt sich die Frage, ob jede Lehrperson sich selbst eine oder mehrere Programmierumgebungen auswählen soll oder ob übergeordnete Stellen (Schulen, Gemeinde, PHs, Kantone) Empfehlungen oder Vorgaben machen sollen.
Informatik ist nicht gleich Programmieren: Programmieren ist eine wichtige Arbeitsweise in der Informatik, aber nicht mit ihr gleichzusetzen. Die nachfolgenden Überlegungen sind somit nicht dazu gedacht, alle Kompetenzbeschreibungen im Kompetenzbereich Informatik des Modullehrplans
Medien und Informatik abzudecken.
2. Wie sieht die Ausgangslage aus?
- Benötigt wird eine Programmierumgebung für die 5./6. Klasse Primarschule und die Sekundarstufe I (7.-9. Klasse): Das Modul "Medien und Informatik" enthält ab der 5. Klasse Kompetenzbeschreibungen, welche den Einsatz einer Programmierumgebung erfordern.
- Allgemein- und nicht Berufsbildung: Ziel des Modullehrplans "Medien und und Informatik" ist die Vermittlung grundlegender Konzepte, nicht die Schulung einer bestimmten Programmiersprache.
- In der 5./6. Klasse keine Fachlehrpersonen: In den wenigsten Fällen wird "Medien und Informatik" auf der Primarschulstufe durch eine Fachlehrperson erteilt werden.
- Derzeit wenig bis kein Informatikvorwissen bei den Lehrpersonen: Die wenigsten Lehrpersonen in der Volksschule verfügen aktuell über Informatikkompetenzen.
- Beschränkte Ressourcen zur Weiterbildung von Lehrpersonen, die "Medien und Informatik" unterrichten werden: Aufgrund der hohen zeitlichen Belastung von Lehrpersonen und der angespannten Finanzlage werden Lehrpersonen vermutlich meist nicht sehr umfangreich für das Erteilen von "Medien und Informatik" weitergebildet werden können.
- Derzeit wenig kohärentes, zum Modullehrplan "Medien und Informatik" passendes Unterrichtsmaterial: Informatik in der Volksschule, insbesondere in der Primarschule ist ein relativ neues Thema im deutschsprachigen Raum. Da die Verbindung von Medien und Informatik in einem gemeinsamen Modullehrplan bisher einzigartig ist, fehlen entsprechendes Unterrichtsmaterial oder gar Lehrmittel weitgehend.
- Heterogene Infrastrukturvoraussetzungen in den Schulen: Schweizer Volksschulen sind je nach Kanton und Gemeinde sehr unterschiedlich mit Computern ausgestattet. Sowohl bezüglich Gerätetypen (Desktops, Notebooks, Tablets) als auch bezüglich Betriebssystemen (Windows, Mac, Linux, Android, iOS, ChromeOS) besteht eine grosse Heterogenität.
3. Warum braucht es Empfehlungen?
- Weil die meisten Lehrpersonen bisher über wenig Informatik-Kompetenzen verfügen, wären sie mit der Auswahl selbst überfordert.
- Weil bisher wenig stufenspezifisches Unterrichtsmaterial existiert, fördern konkrete Umgebungsempfehlungen die Nutzbarkeit des zu entwickelnden Materials.
4. Eine oder mehrere Umgebungen?
Ziel des Modullehrplans "Medien und Informatik" ist nicht das Erlernen einer konkreten Programmiersprache, sondern die Vermittlung grundlegender Konzepte der Informatik. Dazu gehören auch Konzepte der Programmierung. Insofern wäre es wünschenswert, wenn Schülerinnen und Schüler unterschiedliche Programmierumgebungen kennen lernen würden um zu erfahren, dass mit verschiedenen Sprachen programmiert werden kann und welche Konzepte bei vielen Programmiersprachen ähnlich sind.
Angesichts der geringen Stundendotation (kantonal unterschiedlich geregelt, jedoch höchstens 19 Jahreslektionen während vier Jahren ab der 5. Klasse) ist jedoch die Einführung mehrerer Programmierumgebungen innerhalb der obligatorischen Unterrichtszeit nicht realistisch. Aus diesem Grund empfiehlt es sich, pro Schulstufe (5./6. Klasse sowie Sekundarstufe I) primär auf eine Programmierumgebung zu setzen.
Ähnliche Überlegungen gelten auch bei der Frage, ob auf der Primarschulstufe die gleiche Programmierumgebung wie auf der Sekundarstufe I verwendet werden soll. Vermutlich ist es angesichts der geringen Stundendotation sinnvoll, auf der Sekundarstufe die bereits in der 5./6. Klasse verwendete Programmierumgebung aufzubauen.
- Motivierend: Informatik ist ein für die Volksschule neues Thema, das ausserhalb der Schule mit einem Imageproblem kämpft (nerdig, schwierig, langweilig). Eine im Modul "Medien und Informatik" eingesetzte Programmierumgebung sollte diesen Eindruck korrigieren und sowohl im Unterricht Spass machen als auch Schülerinnen und Schüler motivieren, sich ausserhalb des Unterrichts mit ihr zu beschäftigen.
- Leichter Einstieg: Angesichts des Alters der Schülerinnen und Schüler sowie des Wissensstands der Lehrpersonen ist ein leichter Einstieg mit raschen Ergebnissen innert kurzer Zeit wichtig.
- Vielseitig verwendbar:Da in den meisten Fällen wie oben beschrieben im Wesentlichen nur eine Programmierumgebung zum Einsatz kommen wird, sollte diese möglichst vielseitig verwendbar sein.
- Sprachumfang/Ausrichtung: Die Programmiersprache sollte möglichst verschiedenartige Programmierprojekte ermöglichen. Dies schliesst explizit auch Projekte in anderen Fächern mit ein.
- Technische Verfügbarkeit: Die Programmierumgebung sollte auf möglichst vielen Geräten und Betriebssystemen einsetzbar sein.
- Lizenzrechtliche Verfügbarkeit: Damit Schülerinnen und Schüler Hausaufgaben erledigen und bei Interesse private Projekt verfolgen können, sollte die Programmierumgebung auch zu Hause legal nutzbar sein (kostenlos oder durch die Schule lizenziert).
- Längerfristig verfügbar: Um die Investitionen in die Erarbeitung von Unterrichtsmaterial und die Schulung von Lehrpersonen zu sichern, sollte die längerfristige Verfübarkeit der Programmierumgebung gesichert oder mindestens wahrscheinlich sein.
- Mächtig: Die Programmierumgebung sollte zwar für den Einstieg möglichst einfach sein, aber zur Vertiefung und für besonders Interessierte nicht zu stark einschränken, sondern auch komplexere Projekte ermöglichen.
- Enaktiv: Sowohl zur Motivation, zur Förderung der vielseitigen Verwendbarkeit und auch zur altersgerechten Konkretisierung abstrakter Konzepte insbesondere in der Primarschule sollte die Programmierumgebung die einfache Einbindung von Sensoren und Aktoren erlauben. Damit werden (auch fächerübregreifende) spannende Projekte möglich (Robotik, Spiele, Experimente).
5.1 Didaktisierte oder professionell genutzte Sprache?
Bei Programmierumgebungen lassen sich derzeit zwei Arten unterscheiden: Einerseits Umgebungen für die professionelle Entwicklung von Programmen, andererseits didaktisch gestaltete Umgebungen für Lehr- und Lernzwecke.
Professionell genutzte Sprachen sind ab einem gewissen Alter der Schülerinnen und Schüler motivierender. Angesichts des geringen Vorwissens und der geringen Stundendotation ist jedoch eine didaktisierte Sprache vorzuziehen.
Idealerweise lässt sich eine didaktisierte Programmierumgebung finden, mit der sich auch möglichst alltagsnahe Projekte realisieren lassen.
5.2 Textbasierte Sprache oder Blocksprache?
Professionelle Anwendungsentwicklung geschieht derzeit zumeist mit textbasierten Programmiersprachen. Insbesondere für Lehr- und Lernzwecke wurden blockbasierte Programmierumgebungen entwickelt, die Syntaxfehler verunmöglichen und die Programmstruktur auch zu einem gewissen Grad visualiseren.
Blockbasierte Sprachen haben oft mit dem Vorwurf zu kämpfen, sie entsprächen nicht dem "echten" Progammieren und werden deshalb häufig nur als Vorstufe zur Verwendung einer "ernsthaften" Programmiersprache betrachtet.
Auch sonst unterscheiden sich textbasierte und blockbasierte Programmierungebungen in didaktischer Hinsicht:
Blockbasierte Programmierumgebungen arbeiten meist mit Paletten aller verfügbarer Befehle der Sprache. Dies erlaubt einerseits ein exploratives Entdecken der Möglichkeiten einer Programmiersprache, kann aber zu Beginn auch abschreckend oder ablenkend wirken. In textbasierten Sprachen fehlt meist eine sofort sichtbare Liste aller verfügbarer Befehle, so dass Schülerinnen und Schüler nur die wenigen Befehle kennen und nutzen, die ihnen bereits erklärt worden sind.
Um das entdeckende Lernen im und vorallem auch ausserhalb des Unterrichts zu fördern, wird für das Modul "Medien und Informatik" eine blockbasierte Programmierumgebung empfohlen.
Bereits jetzt sind erste Umgebungen verfügbar, in denen sich textuelle und grafische Befehle mischen und ineinander umwandeln lassen. Es ist zu erwarten, dass diese Entwicklung bei didaktisierten Programmierumgebungen weitergehen wird.
6. Empfehlung: Scratch & scratchkompatible Sprachen
6.1 Was ist Scratch?
Scratch (
http://scratch.mit.edu) ist eine am MIT spezifisch für Kinder und Jugendliche entwickelte, kostenlos verfügbare blockbasierte/grafische/visuelle Programmierumgebung. Die erstmals 2007 veröffentliche Programmierungebeung setzt die von LOGO, Karel etc. ausgehende Tradition von auf dem Aktorprinzip beruhenden Lernumgebungen für den Einstieg ins Programmieren fort.
Scratch stellt nicht die Programmierung als Lerngegenstand, sondern das kreative und soziale Konstruieren von algorithmisch gesteuerten Artefakten ins Zentrum:
- Multimedial: Direkt in der Entwicklungsumgebung integriert lassen sich Bilder importieren, erstellen und bearbeiten sowie Töne importieren, aufnehmen und bearbeiten.
- Sozial: Teil der Programmierumgebung ist die Plattform ScratchR, auf der Programmierprojekte publiziert und weiterentwickelt werden können.
Verfügbarkeit und Kompatibilität:
- Scratch Version 1.4 ist als Download für Windows, Mac OS und Linux verfügbar.
- Scratch-Version 2.0 läuft in jedem Browser, der Flash ausführen kann.
- Im Mai 2016 wurde Scratch 3.0 angekündigt, das in jedem Browser mit Javascript-Unterstützung laufen und auf die Nutzung mit mobilen Geräten ausgerichtet sein soll.
6.2 Warum Scratch?
- Leichter Einstieg: Die blockbasierte Programmierung, zahlreiche Tutorials, Beispiele direkt in der Entwicklungsumgebung, einstellbare Sprache für Umgebung und Programmbefehle erleichtern den Einstieg.
- Vielseitige Verwendbarkeit: Scratch lässt sich dank integrierter Audio- und Bildbearbeitung für multimediale Projekte und zur Entwicklung einfacher Spiele und dank zahlreicher kompatibler Hardware auch zum Messen und Steuern in der realen Welt nutzen. Damit ist Scratch in vielen Fächern und Themengebieten einsetzbar.
- Breite, kostenlose Verfügbarkeit: Scratch ist frei verfügbar, auf den meisten Betriebssystemen lauffähig und es stehen web-basierte Programmierumgebungen zur Verfügung, so dass keine client-seitigen Software-Installationen und Konfigurationen nötig sind. Mit der angekündigten Version 3 wird auch kein Flash-Player mehr notwendig sein.
- Langfristige Verfügbarkeit: Die Entwicklung am MIT, die erfolgte Gründung einer Stiftung und die grosse Verbreitung der Sprache dürften dazu führen, dass sie relativ lange verfügbar bleiben dürfte.
- Mächtigkeit: Trotz ihrer kindlichen Erscheinungsweise lassen sich mit Scratch alle im Lehrplan 21 vorgesehenen Kompetenzen im Bereich der Programmierung vermitteln. Die mit Scratch verwandte Programmierumgebung Snap! wird sogar in Hochschulinformatik-Lehrveranstaltungen verwendet.
- Enaktivität: Die zahlreich verfügbaren scratch-kompatiblen Hardware-Erweiterungen ermöglichen stark enaktive Projekte und Herangehensweisen.
- Motivierend: Durch die multimedialen Möglichkeiten, die vielen bereits vorhandenen Projekte auf der Plattform, die vielseitige Verwendbarkeit, die zahlreichen kompatiblen Hardwareerweiterungen ist Scratch sehr motivierend.
Ich bin interessierte an Rückmeldungen und Kommentaren, am einfachsten direkt im Text in
Google Docs
Interessante Ausführungen - auch ich sehe Scratch als eine tolle ikonische Programmierumgebung mit wenigen Zugangsbarrieren dar. Allerdings gibt es in meinem Augen einen Nachteil - die Objektorientierung tritt etwas stark in den Hintergrund.
Ich gehe daher beim Unterrichten den Weg → Objects first (Einführung der Objektorientierung anhand von Vektorgrafiken) → Programm
ObjectDraw - Grenze - Methoden müssen in die Befehlszeile einzeln eingegeben und mit Enter bestätigt werden → Lösung EOS (Einfache Objektorientierte Sprache) - es lassen sich Befehle → Programm! Sus initalisieren einige Objekte (Rad1,Rad2,Autoteile…), belegen Attributwerte und bewegen Sie über Methoden → Wechsel zu Scratch um nun den Focus aus Programmstukturen zu legen und ein v.a. optisch sehr tolles Ergebnis zu erzielen! Ich weiß der Wechsel v.a. zu EOS kostet 1-2 Doppelstunden, aber dafür sehen die Schüler auch das die echte Welt der Informatik mit viel Aufwand verbunden ist und uns der Fortschritt zum Glück einiges davon abnimmt. Wie sehen Sie das Problem - die Objektorientierung mehr zu betonen?
--
TobiasH - 21 May 2016
Zum Kommentieren ist eine Registration notwendig.
Kategorien:
IsaBlog,
IsaInformatik
--
AegidiusPluess - 20 May 2016