Spielend programmieren lernen

Programmierkurse für Kinder, Jugendliche und Erwachsene

User Tools

Site Tools


de:blog:2015:1116_schulworkshop

Title: Programmier-Workshop in evangelischem Gymnasium Wien Simmering Date: 2015-11-16 10:15 Modified: 2015-11-16 10:15 Tags: report, teaching, python, code, Schule, kursleben Slug: 20151116_schulworkshop Authors: Horst JENS Googleadsense: True Summary: Programmier-Workshop in evangelischem Gymnasium Wien Simmering

Kurzlink: http://goo.gl/4hBskM Hashtag: #spielendprogrammieren

Programmier-Workshop

Als Firma spielend-programmieren freue ich mich immer über Kontaktaufnahmen von engagierten LehrerInnen die mich in Ihre Schulen zu Workshops oder Vorträgen einladen.

So geschehen im Rahmen der Gamecity Wien, wo mich zwei sehr interessierte Schülerinnen des evangelischen Gymnasiums Wien Simmering (auf Gamecity-Lehrausflug in Begleitung ihrer EDV-Lehrerin Edith VYSKOCIL) über die Möglichkeiten eines Workhops vor Ort an der Schule befragten.

Prinzipiell mache ich im Raum Wien an jeder Schule die danach fragt einen Probe-Workshop gratis.

Erfreulicherweise ist das evangelische Gymnasium Wien (welches ein Werkstättenkonzept mit Berufsausbildung anbietet) mit guten EDV-Säälen ausgestattet und die 14-15 jährigen SchülerInnen haben einen EDV-Block-Unterricht von mehreren Stunden am Stück.

Wie ich im Rahmen eines ersten Besuchs herausfand ist auf allen Rechnern ein Dual-Boot-System installiert (Linux und Windows) und die SchülerInnen wussten sogar das Linux-root passwort. Beim ersten Besuch wollte ich eigentlich nur die EDV-Räum anschauen um festzustellen ob ich Software installieren kann oder z.B. mit mitgebrachten Knoppix-USB-Sticks arbeiten muss. Da die die Überprüfung des EDV-Saals meine Erwartungen übertraf hielt ich einen spontanen Scratch-Programmierworkshop, bei dem ein Zombie-Ballerspiel entwickelt wurde.

zombiegame mit scratch

Den “richtigen” Workshop hielt ich am Dienstag, dem 10. November und er dauerte volle 4 Stunden. Die versammelten circa 10 SchülerInnen (2 davon Mädchen) hatten durch die Scratch-Stunde etwas Programmiererfahrung aber keine Vorkenntnisse durch systematischen Programmierunterricht in einer Programmiersprache.

(Im Gegensatz zu etwas vorausblickenden Ländern wie Estland oder England gibt es in Österreich keine Pläne für verpflichtenden Programmierunterricht. Eigentlich gut für mich als Unternehmer, aber schade für die Republik)

Durch das Werkstättenkonzept mit Spezialisierung auf EDV-Admin war die Gruppe nicht mit Schülern anderer Gymnasien zu vergleichen. Sie hatten vielleicht keine Programmiererfahrung, aber zumindest EDV-Erfahrung, wie ich erfreut an Parametern wie Tippgeschwindigkeit, Umgang mit Texteditoren etc. feststellen konnte.

Unterrichten mit Linux

Zu meiner großen Freude konnte ich den ganzen Workshop auf den Linux-Installationen des EDV-Saals abhalten. Zu meiner weniger großen Freude waren die Linux-Maschinen doch nicht so gleich installiert wie erwartet (meine Erwartungshaltung an österreichische Schul-EDV-Sääle ist eher bescheiden) sondern einige Maschinen waren “gleicher”: Mein Vortrags-PC verweigerte z.B. ein apt-get update Kommando, wie sich später herausstellte weil das LAN-Kabel nicht eingesteckt war.

Auch einige SchülerInnen mussten den PC wechselen bzw. konnten einige Kommandos nicht ausführen weil z.B. die tkinter-Bibliothek nicht auf allen PC's installierbar war.

Trotzdem war das Arbeiten aus Sicht eines Workshopleiters sehr angenehm: Mit nur 3 Befehlen hatten (fast) alle SchülerInnen einen funktionierend Code-Editor (geany), eine aktuelle Python-Version sowie eine Idle-Shell bzw. ein Terminal.

Cäsars Code

Um an das Thema Verschlüsselung welches von Frau VYSKOCIL mit den SchüerInnen erarbeitet wurde anzuschließen programmierte ich “zum Aufwärmen” einen kleinen Cäsars Code Ver-/Ent-schlüsseler in Python.

cäsars code
Bildquelle: Wikipedia

Mein Ziel war kein umfassender Programmier-Grundkurs sondern ein Ausprobieren möglichst vieler verschiedener Programmierbeispiele um zu sehen was gut ankommt. Das Verschlüsselungs-Programm wurde schrittweise im Kurs entwickelt und ausprobiert, die finale Version konnte via Github-Gist kopiert werden.

Es war schön zu sehen dass die SchülerInnen die Inhalte nicht einfach passiv konsumierten sondern recht intelligente Fragen stellten und selbstständig ausprobierten (z.B. was passiert wenn ein Buchstabe mit einem ganzen Wort verschlüsselt wird).

Turtle Grafik

Anschließend wollte ich etwas “anschauliches” herzeigen und ließ die SchülerInnen Spiralen mit pythons eingebauter Turtle-Grafik erzeugen. Mein Ziel war dabei nicht so sehr das Erklären der Programmierkonzepte sondern die SchülerInnen dahin zu bringen auf der offiziellen python-Dokumentation zum Turtle Modul die Befehlsbeschreibungen zu verstehen und selbstständig einzusetzen. Was auch mehr oder weniger gelang. Neben Veränderung von Farbe (ich kam aus Zeitmangel nicht dazu auch das random-Modul zu erklären wie ich das in den spielend-programmieren Kursen mache) entpuppte sich das Umwandeln der dreieckigen “Turtle” in eine Schildkröte mit turtle.shape('turtle') als populär sowie das unsichtbar machen der turtle mit turtle.hideturtle().

python turtle grahics

python turtle grahics

python turtle grahics

Die SchülerInnen hatten sichtlich Spaß daran Grafiken zu erzeugen, aber mein Verdacht ist dass sie nicht sehr genau wussten was sie taten sondern damit experimentierten, die Parameter innerhalb der Schleife zu verändern. Zumindest hoffe ich das, den ein SchülerInnen brachte es fertig eine Schleife zu programmieren die (anfangs) ein Hakenkreuz-ähnliches Gebilde erzeugte. (Es verschwand zum Glück von selbst je länger das Programm lief).

roguelike

text rogulike
Beispiel für ein Text-Roguelike

Aufbauend auf meinen guten Erfahrungen mit den [spielend-programmieren Sommerkursen] wollte ich anschließend ein roguelike Spiel im Textmodus mit Python programmieren, um den SchülerInnen ein Gefühl für den Unterschied zwischen programmieren mit Scratch und dem programmieren mit einer “echten” Programmiersprache wie Python zu geben.

Der Spielheld (die SchülerInnen tauften ihn spontan “Kevin”), symbolisiert durch einen Klammeraffen, fristete sein Dasein zuerst in einem ein-dimensionalem Dungeon (ein Text-String) und konnte sich nur nach links und rechts bewegen (das dafür zuständige Programm hatte circa 10 Zeilen und wurde von den SchülerInnen sehr schnell abgetippt). Ich verzichtete darauf den Mechanismus des Indexing von Textstrings genauer zu erklären; mein Ziel war es die SchülerInnen dazu zu bringen das Programm selbstständig zu verändern.

Schon hier zeigte sich das was meiner Meinung nach gute Programmier(schüler) auszeichnet: sich nicht mit dem Vorgegebenem zufrieden geben sondern selbstständig nach Erweiterungen und Lösungen suchen.

................@..................b..................................
Kevin (links) in seinem eindimensionalem Dungeon sieht ein Brot (rechts)

Einige SchülerInnen fanden heraus was passiert wenn Kevin “über den Rand der Welt” wandert, andere bauten Tasten ein um ihn in größeren Schritten zu bewegen.

Anschließend zeigte ich wie man das (immer noch ein-dimensionale) Labyrinth mit Essen bestückt und wie Kevin dazu gebracht werden kann, einen Essens-Zähler anzuzeigen und herumliegendes Essen aufzuheben.

Hier fingen die SchülerInnen an selbstständig verschiedene Essens-Sorten einzubauen (mit unterschiedlichem Nährwert) sowie sehr liebevoll ausgestaltete Textbeschreibungen einzufüggen (“hmmm, lecker Döner liegt am Boden”)

Ich kam noch dazu Kevin's Dungeon auf 2 Dimensionen zu erweitern (wie schon im Sommer gelernt kann man Kinder eine Zeit lang damit beschäftigt halten einen 2-dimensionalen Dungeon im Texteditor zu “zeichnen”. Außerdem eine sehr gute Gelegenheit den Sinn der “Einfüge”-Taste (Überschreibmodus/Einfügemodus) zu erklären). Gegen Ende des Workshops baute ich noch Mauern ein, in die Kevin nicht hineinlaufen kann. Zu einem ausgefeilten Combat-System mit verschiedenen, beweglichen Gegnern kamen wir nicht mehr, der Workshop war schon aus.

Der Workshop-Programmcode befindet sich auf Github/Gist, die SchülerInnen hatten ihn zum teil stark erweitert (komplexere Food-Clock, Fallen etc.).

/var/www/horst/spielend-programmieren.at/data/pages/de/blog/2015/1116_schulworkshop.txt · Last modified: 2017/10/12 09:40 (external edit)