KOOPERATION: Programmieren in der Schule: 8 Tipps für Lehrende

Bob Blume
I
7. April 2021
12 Kommentare
I
222 views

In jenen Gebieten, die mich persönlich interessieren und die zum Blog passen, in denen ich aber keine Expertise habe, kommt es immer mal wieder zu Kooperationen. Auch dieser Beitrag ist eine solche Kooperation, von der ich hoffe, dass sie gewinnbringend für jene Leserinnen und Leser des Blogs ist, die sich für die Themenbereiche Coding, Programmieren für Kinder und Robotik interessieren. Es handelt sich um eine bezahlte Partnerschaft. 

Nicht erst seit der Covid-Pandemie kommt dem Programmieren für Kinder eine besondere Rolle im Schulunterricht zu. Denn heute ist schon für die allermeisten Grundschulkinder der Umgang mit Handy, Tablet oder PC selbstverständlich, aber das selbstständige Programmieren eröffnet eine neue Dimension. Zum spielerischen Lernen gibt es inzwischen für Kinder jeden Alters die passenden Programmiersprachen, die ein kreatives Gestalten möglich machen. Auch die Teilnahme an dem Kurs Robotik Kinder verhilft zu einem intuitiven Einstieg in die digitale Welt.

Neben der Entwicklung der eigenen Persönlichkeit, geht es beim Programmieren auch um die computer- und informationsbezogenen Kompetenzen. Verschiedene Studien wie beispielsweise die ICILS (International Computer and Information Literacy Study) bescheinigen den deutschen Schüler*innen einen Nachholbedarf, da sie sich im internationalen Vergleich nur im Mittelfeld bewegen. Das liegt nicht nur an der digitalen Ausstattung der Schulen, sondern auch an der Motivation, sich mit Informatikthemen auseinanderzusetzen.

Die Evaluation der Universität Bamberg zeigt hingegen, dass Kinder und Jugendliche mit Informatikthemen durchweg begeistert werden können. Diese Erkenntnisse können auf den Unterricht in der Schule übertragen werden. Inzwischen gibt es eine Vielzahl von Apps und Programmiersprachen für unterschiedliche Altersgruppen, die im Unterricht angewendet werden können. Um hier den Überblick zu behalten, stellen wir im Folgenden 10 praktische Tipps für Lehrende zum Thema Programmieren zusammen:

1.  Scratch

Scratch ist nicht ohne Grund eine der bekanntesten Programmiersprachen für junge Schüler*innen, denn schnelle Erfolgserlebnisse sind hier garantiert. Geeignet ist Scratch für alle, die schon lesen und schreiben können. Eigene Geschichten und Spiele mit beweglichen Objekten können mit Hilfe von grafischen Programmierbausteinen fix zusammengebaut werden - da reichen die 45 Minuten Unterricht bis zum ersten Ergebnis locker. Scratch unterstützt die Schüler*innen dabei, kreative Problemlösungen zu finden, im Team zu arbeiten und logisch vorzugehen.

Auf der Webseite von Scratch sind viele Vorschläge für Programmierideen zu finden, die schon detailliert ausgearbeitet sind. Das beliebte Spiel „Pacman“ kann so beispielsweise in Scratch programmiert werden, ist allerdings eher eine Aufgabe für Fortgeschrittene, da mehrere Schulstunden für dieses Projekt aufgewendet werden müssten. Alle Abläufe der Programmierung werden hier gemeinsam durchgespielt: die Gruppe plant zunächst die Aufgaben und Arbeitsschritte, dann können Hintergrund und Spielfigur gezeichnet werden. In einer weiteren Unterrichtsstunde können die Aufgaben in Programmiercodes umgesetzt werden, bevor danach die Test- und Spielphase beginnt.

2. Raspberry Pi

Hinter dem Raspberry Pi verbirgt sich ein Einplatinencomputer in der Größe einer Scheckkarte. Nicht nur dieses „Miniformat“ eines PCs sorgt hier für Staunen, sondern auch seine Leistungsfähigkeit. Im Unterricht lassen sich mit Hilfe von Scratch oder Python verschiedenste Projekte realisieren. Zur Auswahl stehen dabei praktische Übungen, die Schüler*innen faszinieren wie z. B. der Bau einer Alarmanlage (Scratch). Oder doch lieber ein blinkendes Reaktionsspiel (Python) oder eine Wetterstation? Die Auswahl an Projekten ist bereits riesengroß, teilweise sind diese auch fächerübergreifend angelegt. Warum also nicht Chemie oder Physik mit den Informatikthemen verknüpfen?

3. Google Blockly Games

Auch Google bietet eine kostenfreie Programmiersprache für Schüler*innen an, und zwar Blockly Games. Verschiedene Spiele und Möglichkeiten, das Programmieren zu lernen, stehen hier im Mittelpunkt der Anwendung. Die Aufgaben werden desto schwieriger, je mehr Level schon bewältigt wurden. Für den Fall, dass sogar Lehrende Unterstützung benötigen, sind die Lösungen online abrufbar. Übrigens richtet sich Blockly Games an Schüler*innen zwischen 8 und 14 Jahren.

4. Pencil-Code

Wenn die Kreativität der Schüler*innen im Vordergrund des Unterrichts stehen soll, ist Pencil Code die ideale Programmierumgebung. Kunstwerke oder Musikstücke können hier leicht mit Hilfe von Programmierblöcken erstellt werden. Online-Videos, aber auch Manuals für Lehrende mit vielen praktischen Beispielen, stehen kostenfrei zur Verfügung. Einziger Wermutstropfen ist, dass das Programm in Englisch gehalten ist und sich deshalb erst für 10- bis 15-Jährige eignet.

5. Kodable

In Zeiten von Social Distancing darf auch eine App nicht in der Auswahl fehlen. Das Besondere an Kodable ist, dass direkt ganze Schulklassen unterrichtet werden können - das wird in den USA schon länger erfolgreich in Elementary Schools praktiziert. Die App Kodable beinhaltet mehrere kleine Spiele, mit denen 4- bis 10-jährige Schüler*innen leicht die ersten Programmieraufgaben lösen können, aber nebenbei auch Begriffe wie Syntax oder Variable verstehen lernen.

6. Arduino

Eine spannende Kombination aus Elektronik und Informatik bietet Arduino und ist somit das Richtige für alle, die ihre Bastelleidenschaft im Unterricht ausleben wollen. Arduino ist ein Mikrocontroller, mit dessen Hilfe die Steuerung von Displays, Lautsprechern oder auch Motoren programmiert werden kann. Eingesetzt wird dafür die Programmiersprache C, deren kleine Programme schnell geschrieben sind. Genau wegen dieser Funktionalität ist auch der Einsatz im Schulunterricht sinnvoll und im Netz sind unzählige Anleitungen für kleine Projekte wie Ampelschaltungen oder Lichtsteuerung vorhanden. Spannende, größere Anwendungen für Fortgeschrittene, wie der Bau eines eigenen 3D-Druckers, können mit Arduino ebenfalls umgesetzt werden.

7. Lego Mindstorms

Roboter aus der Lego Mindstorms-Serie können mit intuitiven Programmierungen zum Leben erweckt werden. Für Schüler*innen eignet sich Mindstorms EV3 mit einer Software, mit deren Hilfe kreative Lösungen entwickelt werden können. Lego Roboter gibt es in verschiedenen Schwierigkeitsstufen, sodass sowohl für Anfänger als auch für erfahrenere Programmierschüler*innen die richtige Anwendung dabei ist. In den Baukästen sind zumeist verschiedene Komponenten enthalten, sodass Fahrzeuge, vierbeinige Roboter, aber auch Roboter, die kämpfen oder tanzen können, zusammengebaut und programmiert werden können. Eine andere praktische Möglichkeit ist, mit Hilfe von Mindstorms EV3 eine Sortiermaschine zu bauen und so zu programmieren, dass die Lego-Elemente automatisch nach Farben sortiert werden können.

8. Schildkröten Akademie

Die spielerische Grafikprogrammierung in der Schildkröten Akademie eignet sich für Schüler*innen im Alter von 10 bis 18 Jahren. Im Mittelpunkt steht ein Schildkröte, deren Bewegungen durch den Programmcode ausgelöst werden. Zu jeder Aufgabe sind hier auch Hilfestellungen und der Lösungsweg angegeben, sodass Lehrende immer den Überblick behalten.

Ob für die Grundschule allgemein, den Informatik-Unterricht oder die Roboter AG – jede Alters- und Interessengruppe kommt hier auf ihre Kosten. Für den Erfolg der Wissensvermittlung ist die Wahl eines passenden praktischen Beispiels oft entscheidend. Durch ein solches Projekt, dessen Anwendung sich leicht erschließt und den Schüler*innen sinnvoll erscheint, kann das digitale Konzept überzeugend vermittelt werden. Programmieren ist so nicht länger nur etwas für „Fachidiot*innen“ oder „Nerds“, sondern alle Schüler*innen sollten im Rahmen der digitalen Teilnahme die Chance haben, von reinen Nutzenden zu Gestaltenden zu werden.

12 comments on “KOOPERATION: Programmieren in der Schule: 8 Tipps für Lehrende”

  1. Keine der genannten Anwendungen haben etwas mit dem wirklichen Programmieren ausserhalb der Schule etwas zu tun. Sie sind von der realen Welt möglichst weit weg entfernt. Zumal die Schule besser das Algorhitmisieren unterstützen sollte. Ich stelle mir grad vor, wie du bezw. dein Auto das Aufgebot zum TÜV erhält und welche Möglichkeiten sich daraus ergeben. Vorführen/nicht mehr vorführen=verschrotten. Oder doch Vorführen? Und wenns beim 1. Mal nicht durchkommt? Nachbessern? Oder jetzt verschrotten? ... Oder man stelle sich vor, die SchülerInnen dürften eine eigene PLE unterhalten und darin ... https://imnusshof.ch/wp/html5/

    Nein, es wird wohl nie was mit diesem Digitalen in der Schule.

    1. Ich kann diesem Kommentar ehrlich gesagt nicht so ganz folgen. Ist es verwunderlich, dass keine der genannten Anwendungen 1 zu 1 dem Programmieren "außerhalb der Schule" entspricht? Das ist doch gar nicht der Anspruch...
      Alle genannten Anwendungen werden in der Schule meistens in den Jahrgangstufen 3 -10 eingesetzt und sind daher selbstverständlich erstmal sehr spielerisch angelegt. Vor allem Scratch und Blocky werden eigentlich nur als Einstieg genutzt. Ich weiß nicht inwiefern es z.B. sinnvoll wäre mit Schüler:innen der Jahrgangstufe 5/6 (vor dem Hintergrund, dass dier Informatikunterricht in diesen Stufen denächst z.B. in NRW Pflicht ist) schon eine Sprache wie Python, Java oder C etc. anzufangen.
      Das ist dann doch eher etwas für die Jahrgangstufe 9/10 bzw. die Oberstufe. Dort werden dann auch weitere Programmierkonzepte thematisiert, die einer entsprechenden Hochsprache bedürfen.
      Des Weiteren frage ich mich, ob die Schule durch den Einsatz der genannten Anwendungen nicht das algorithmische Denken sehr wohl unterstützt?! Algorithmisches Denken ist nicht gleich Programmieren in einer "echten" Programmiersprache.
      Vor allem Scratch bietet vielen Schüler:innen spielerisch Einblicke darin, warum und wie man Schleifen oder if-else Verzweigungen zur Automatisierung nutzen kann.
      RasPi und Arduino regen übrigens zu spannenden Projekten an, die man sehr schön in der Mittelstufe usmetzen kann. Dann arbeitet man auch nicht nur auf Software-Ebene, sondern muss auch ein bisschen "Technik" verkabeln, wodurch die Hardware mit ins Spiel kommt.

      Meiner Meinung nach lernen Schüler:innen viel mehr, wenn man auf eine gute Visualisierung setzt und bei ihnen eine intrinsische Motivation entfacht. Das gelingt mit Spielen viel eher, als mit einer langweiligen Programmiervorlesung zu Java und Co.
      Letztere lassen sich dann später auch viel schneller lernen, wenn Konzepte wie Schleifen etc. schon bekannt sind.

      Das Beispiel mit dem Auto beim TÜV verstehe ich übrigens bis jetzt noch nicht wirklich. Das ist aus meiner Sicht weltfremd. Wer denkt denn algorithmisch über den Termin beim TÜV nach? Oder verstehe ich das Beispiel vollkommen falsch?

      1. “A programmer’s wife tells him to go buy some milk - and while he’s there to get eggs He hasn’t come back.”

        Hier: https://imnusshof.ch/wp/programming/ findest du den Algorithmus zum Beispiel mit dem Auto. Er könnte realistischer nicht sein.

        Hier: https://imnusshof.ch/wp/calculate/ findest du ein Beispiel einer Formel, wie sie vor lauter "Programmieren mit GrundschülerInnen" ganz in Vergessenheit geraten ist.

        Mich nervt zuerst einmal das Symbolbild zu diesem Artikel. Es hat mit Programmieren nichts zu tun. Das sind Beispiele von Auszeichnungssprachen.

        Freundliche Grüsse
        Beat Rüedi

  2. Zudem ist das Symbolbild irreführend. Mit HTML, Javascript, ... lässt sich bekanntlich darum nicht programmieren, weil sie keine Programmier-, sondern Auszeichnungssprachen sind.

    1. "Javascript, … keine Programmier-, sondern Auszeichnungssprache."

      Vielleicht schlagen Sie noch mal nach...

      Fakt ist, in der Schule geht es nicht darum die Schüler zu perfekten Programmierern zu machen, sondern Sie mit einem Grundverständnis für algorithmische Abläufe auszustatten. Auch wenn die aufgeführte Liste etwas wild sortiert ist (Scratch neben RaspberryPi... das eine schließt das andere ja nicht aus) können all diese Stichworte nützlich sein, um gute Unterrichtsprojekte zu gestalten.

      Wenn ich einer 7. Klasse mit einer der klassischen Programmiersprachen (C, Java, etc.) komme, dann verliere ich in der ersten Stunde 90% der Schüler für immer. Mit Scratch habe ich aber schon viele junge Menschen gespannt an Projekten basteln sehen und einen großen Teil davon zu mehr Wissen verholfen, als sie jemals über Programmierung und Algorithmen gelernt hätten. Die Scratch-Entwicklungsumgebung ist übrigens in Javascript programmiert.

      1. Der Name ist quasi Programm: JavaSript heisst darum JavaScript, weil es eine Scriptsprache ist.

        Kann es sein, dass Sie JavaScript mit der Programmiersprache Java verwechseln (passiert vielen anderen auch)?

    2. Ich unterrichte seit 12 Jahren Informatik. Davor war ich selber Softwareentwicklerin. Schüler von mir sind jedes Jahr im Bundeswettbewerb Informatik erfolgreich bist zum 1. Preis in der Endrunde. Inzwischen sind sehr viele meiner Schülerinnen und Schüler selber beruflich erfolgreich an Hochschulen und in IT-Berufen.

      Ja das hier in dem Artikel ist ein Auflistung von Werkzeugen und es ist auch mir unklar wen diese Liste ansprechen soll. Aber es ist gut gemeint und vielleicht kommt hier mal ein Ref vorbei ganz am Anfang seines Weges und findet Inspiration.

      Aber sie Herr Rüedi sind wirklich ein außergewöhnlich unglücklicher Mensch. Das berührt mich ein Stück weit. So beklagen Sie auf linkedin Ihren Aufenthalt " in den von mir als asozial bezeichneten, digitalen Medien" (Zitat) und spüren nicht, dass Sie ein Teil des Problems sind. Warum verbringen Sie ihre Zeit damit Leute mit guter Intension auf eine Weise, die sie selber im obigen Zitat beschrieben haben, nachweisen zu wollen, dass deren Tun schlecht sei? Was daran befriedigt Sie? Spielen Sie doch lieber eine Runde Gambe mit anderen alten Freunden alter Musik oder veröffentlichen noch ein WordPress oder Excel Video auf youtube. Was sie auf twittern treiben entzieht sich meiner Kenntnis, weil ich sie dort wohl schon vor Monaten blockierte ob der Qualität Ihrer Aussagen. Verschwenden Sie doch nicht Ihre letzten Jahre ans meckern und stänkern. Das Schicksal hat Ihnen diese Jahre geschenkt, die vielen anderen Menschen verwehrt geblieben sind. Seien Sie mal ein wenig glücklich und dankbar und lassen Sie es zu gütige und liebevolle Gedanken in ihr Herz zu lassen.

      Sie müssen Niemand beweisen, dass Sie schlau und überlegen sind und Andere belehren. Sie sind gut so wie Sie sind. Verzeihen Sie den Menschen, die Sie nicht geachtet und respektiert haben und so diese giftige Saat in ihrem Herzen ausgebracht haben. Das ist vorbei! Alles ist gut!

      Namaste!

  3. Ich versteh auch nicht die Kritik an den aufgezählten Vorschlägen. Wobei der Arduino von Haus aus ja in C/C++ programmiert wird und beim Raspberry Pi ist wahrscheinlich als erstes Python angesagt. Gerade wenn man noch nie vorher programmiert hat, bieten sich doch gut die "grafischen" Programmieroberflächen wie Scratch und Co. an. Die SuS können sich auf deise Weise gut mit den Grundstrukturen einer Programmiersprache vertraut machen.

    Ich unterrichte seit ein paar Jahren eine Berufsfachschule in Informatik fachfremd. Dabei mache ich das erste Halbjahr mit denen Scratch und im zweiten wird der Calliope Mini programmiert. Die meisten SuS können am Ende eigenständig kleinere Projekte und Spiele erstellen. Würde ich hier mit Dingen wie C/C++, Java, C# oder auch nur Basic, Python, Javascript usw. anfangen, würde die meisten SuS nach sehr kurzer Zeit aufgeben und der Rest des Schuljahres wäre für beide Seiten ein sehr frustrierendes Erlebnis.

    Ansonsten möchte hier noch ein paar Ergänzungen machen:
    Der Calliope Mini (bzw. die britische Originalversion: BBC Micro Bit) ist als Einstieg in Microcontrollerprogrammierung meiner Meinung nach weit aus besser geeignet als Arduino und Co.. Er hat schon relativ viele Sensoren und Aktoren direkt mit auf der Platine. Beim Arduino muss man eigentlich vorher erst einen kleinen E-Technikkurs machen und mit einem Sack voll Kleinbauteile, Steckbrettern usw. durch die Gegend laufen. Mittlerweile gibt es auch zahlreiche unterschiedliche Programmieroberflächen für das Teil. Die meisten sind zwar grafisch/Blockbasiert wie Scratch, aber wer unbedingt seine SuS mit einer textbasierten Sprache beglücken möchte, kann den Calliope auch in (Micro)python programmieren (siehe z.B. Tigerjython). Die meisten Programmieroberflächen laufen alleine über den Browser, ohne das irgendwelche Plug-Ins, Treiber oder sonst was installiert werden muss. Da es bei uns so gut wie unmöglich ist, irgendwelche Dinge mal so eben auf unseren Netzwerkrechner zu installieren, ist das fürmich ein wichtiges Kriterium. Wahrscheinlich nicht nur für meine Schule. Früher habe ich um mit einem Arduino in der Klasse zu arbeiten komplette Linuxsysteme auf einen Klassensatz ausrangierter uralt Laptops installiert. Wobei dann von irgendwelchen Leuten noch willkürlich Vorgaben über die Sicherheitekonfigurationen gemacht wurden, damit ich die alten Schätzchen überhaupt in Schülerhände geben durfte. Für soetwas ist mir heute meine Lebenzeit zu schade!

    Open Roberta Lab: Das ist die webbasierte Programmieroberfläche die ich größten Teils im Unterricht benutze (grafisch Blockbasiert so wie Scratch). Über die Obefläche kann man mittlerweile auch ein dutzend anderer Plattformen programmieren, unter anderem den Arduino.

    ESP32/ESP8089: Das ist eine gute Arduinoalternative. Ich habe zwar schon relativ lange nicht mehr im Unterricht mit dem Arduino gearbeitet (da zu viel Aufwand im Vorfeld). Aber sollte ich das in nächster Zeit noch mal tun, werde ich mir einen Klassensatz ESP32 besorgen. Der ESP32 lässt sich ebefalls in der Standardarduino IDE programmieren, allerdings auch in Micropython! Zusätzlich zu den Sachen die der Arduino auf der Platine hat, hat der ESP32 zusätzlich folgende Dinge fest eingebaut: Wifi-Modul, Bluetooth (klassich und low-energy), einen PIN als DAC, mehrere PINs als kapazitive Touchsensoren. Um den ESP über z.B. ein Handy und BT zu steuern kann man sich relativ schnell eine Handyapp über den MIT-Appinventor oder ähnlichem erstellen.

    GODOT: Dies ist eine (fast) voll ausgereifte 2D/3D Gameengine. Sie ist open Source und ist als freie Variante zu Unity3D und Unreal aufgestellt. Der Dokumentation ist gut und mittlerweile sind große Teile der Dokumention auch schon ins Deutsche übersetzte. Um einen Überblick zu kriegen, hier ist eine amerikanische Seite die sich an Highschoollehrer/schülerInnen richtet:
    https://kidscancode.org/godot_recipes/games/
    Programmiert wird in einer eigenen Scriptsprache die sich sehr nahe an Python anlehnt. Wem das zu "trivial" ist, kann das aber auch in C# tun. Die Engine selber kann in C/C++ umgeschrieben und erweitert werden. Mittlerweile gibt es auch einen webbasierte Oberfläche, die ich allerdings aber noch nicht ausprobiert habe. Man muss aber keine Treiber usw. nachinstallieren. Einziger Wermutstropfen ist, dass man externe Software nachinstallieren muss, wenn man die Programme für Android, iOS oder diverse Spielkonsolen kompilieren möchte.

  4. Eine weitere Ergänzung findet sich unter http://www.coderoom.de. Es handelt sich um eine browserbasierte Programmierumgebung, welche speziell für den Einsatz in Schulen entwickelt und optimiert wurde.

    CodeRoom läuft ohne Installation sofort auf allen Geräten, und bietet hunderte bestehende Lerninhalte zu Grundlagen und fortgeschrittenen Themen in den Programmiersprachen Python und JavaScript. Dabei verbindet die Plattform die Lehrenden und Lernenden in Echtzeit, und ermöglicht so ein zeitgemäßes Class-Room-Management.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Newsletter
warum lernen?
Kategorien
Bildung
Unterricht
Referendariat
Vermischtes
Literatur
Material
chevron-down