Spielend programmieren lernen

Programmierkurse für Kinder, Jugendliche und Erwachsene

User Tools

Site Tools


de:blog:2016:0806_kursleben

First PagePrevious PageBack to overviewNext PageLast Page

Title: Erfeuliches aus dem Kursleben Date: 2016-08-06 11:45 Modified: 2016-08-06 11:45 Status: draft Tags: kursleben, report Googleadsense: True Slug: 20160806_kursleben Authors: Horst JENS Summary: Erfreuliches aus dem spielend-programmieren Kursleben: Sommerkurse und Pyrogue

Kurzlink: Hashtag: #spielendprogrammieren

Sehr erfreulich entwickeln sich 2016 die spielend-programmieren Sommer-Programmierkurse für Jugendliche.

Neben guter Buchungslage freut mich vor allem die hohe Anzahl an “Veteranen” welche schon im Vorjahr einen Kurs besucht hatten und wieder kamen. In der ersten Augstwoche 2016 konnte ich erstmals einen reinen “Veteranen”-Kurs veranstalten da alle Teilnehmer schon von vergangenen Kursen Programmierererfahrung mitbrachten. Konsequenterweise beschäftigte sich dieser Kurs ausschließlich mit der Python-Erweiterung Pygame und ich konnte auf dem bereits im letzten Sommer angefangenem Projekt Pyrogue (pygame-Version) aufbauen.

neue Hardware

Am 9. März 2016 war es soweit, nach 10 Jahren unternehmerischer Tätigkeit erfüllte ich mir einen lange gehegten Wunsch: einen Satz identischer Laptops mit gutem Preis-Leistungsverhältnis, brauchbarer 3D-Karte, Linux-freundlicher Hardware und transportierbaren Abmessungen. Über die Firma Lapstore.de orderte ich schließlich 5 Stück gebrauchte Lenovo ThinkPad T410s und bin bisher ganz zufrieden. Zwar bringen die meisten meiner Programmierkursteilnehmer eigene Laptops mit, doch für vor-Ort-Schulungen, Workshops, Messen etc sind eigene Computer nach wie vor unverzichtbar. Die neuen Laptops ergänzen meine über die Jahre gewachsene Netbook-Sammlung und eröffnen neue technische Möglichkeiten.

5 neue (gebrauchte) Laptops

unboxing: 5 neue Gebraucht-Laptops

Woman Techmaker Vienna, Töchtertag

Auf der Woman Techmaker Vienna Konferenz am 12.3.2016 hielt ich einen kurzen Lightning-Talk zum Thema “Why girl's don't code (in my classroom). Ich präsentierte die Beobachtung dass zu meinen Programmierkursen für Jugenlidche weniger als 20% der Anmeldungen von Mächen kommen. Warum das so ist kann ich (noch) nicht beantworten, aber ich finde den Vortrag von Nino Nanitashvili interessant sowie die Antworten welche mir die Besucherinnen vom Wiener Töchtertag 2016 zu diesem Thema gegeben haben.

Wiener Töchtertag 2016, Firma spielend-programmieren

Besucherinnen beim Wiener Töchtertag

Raspberry Pi Display

Kursteilnehmer Simon (lernt gerade Objektorientiertes Dungeon-Crawler-programmieren mit Python) hatte viel Freude damit, im Kurs Dank meiner Hilfe das Touch-Display für seinen Raspberry Pi zum Laufen zu bringen. Trotz Anleitung waren wir eine volle Doppelstunde damit beschäftigt die Grafikausgabe vom externen Monitor auf das Display umzuleiten. An die genaue Vorgehensweise kann ich mich nicht mehr erinnern (wir benötigten mehrere Anläufe), wohl aber an das größte AHA-Erlebnis: Wenn der (externe) Monitor plötzlich mitten im Boot-Prozess dunkel wird, dann deshalb weil die Grafikausgabe am touch-Display funktioniert!

kursleben_simon_raspi3

Endlich geschafft: externes Touch-Display am Raspberry Pi!

Pygame und Github

Nach wie vor wird in meinen Programmierkursen sehr viel mit Python und Pygame gecodet. Eine Rolle spielt dabei mein -sich seit längerm im Dornröschenschlaf befindendes- ThePythonGameBook Projekt. Für eine (lange überfällige) komplette Überarbeitung des ThePythonGameBooks fehlt mir derzeit noch die Energie und die Zeit, allerdings dient ein Teil davon Pygame Template006 als Ausgangspunkt für diverse Forks von Kursteilnehmern, z.B.:

python/pygame Projekt von spielend-programmieren Kursteilnehmer

Pygame-Projekt Mini-RPG von Kursteilnehmer Paolo. P.

Prinzipiell versuche ich Kursteilnehmer dazu anzuhalten eigene Accounts auf Github zu verwenden.

Intensiv Kurs Osterferien

In den Osterferien (März 2016) gab es in bei spielend-programmieren einen gut besuchten Ferien-Intensivkurs.

Eher ungewöhnlich, aber eine nette Überraschung: Ein Intensiv-Kurs-Teilnehmer, der noch nie programmiert hatte, kam mit einem fertig ausgearbeitetem Spielkonzept in den Kurs, wo er auch gleich zwei Mitstreiter für sein Spielprojekt fand. Der Arbeitstitel ist (derzeit) KabarettCowboy, es geht um ein taktisches Geschicklichkeitsspiel mit starker Rythmus-Komponente und wird auch nach dem Ende des Osterferienkurses von Kursteilnehmern weiterentwickelt.

python/pygame Projekt von spielend-programmieren Kursteilnehmern

Pygame Projekt Kabarett-cowboy

Osterferien 2016 Intensivkurs

Intensivkurs-Teilnehmer entwickeln Kabarett-cowboy

Die nächsten Intensiv-Kurse bei Spielend-programmieren finden in den Sommerferien 2016 statt, Anmeldungen sind noch möglich.

Lehrerfortbildung Dornbirn: Python für Lehrer

Nach 10 Jahren Selbstständigkeit als Programmierkurs-Anbieter gelang es mir ersmals zu Ostern 2016, offiziell zu einer österreichischen Lehrerfortbildung als Referent eingeladen zu werden. Einen Monat später warte zwar noch auf die Bezahlung -ich nehme an solche Dinge brauchen seine Zeit. Nichtsdestotrotz freue ich mich sehr darüber auf eine offizielle Lehrerfortbildungsveranstaltung offiziell eingeladen worden zu sein.

Der Auftrag kam zu Stande weil Mag. Peter Broger, Landesschulrat in Vorarlberg, mehrmals auf den Knoppixtagen Weiz Kurzvorträge von mir hörte und mich deshalb an die HTL Dornbirn einlud, welche ich schon von den Linuxtagen Dornbirn kannte.

Mein Lightning-Talk auf den Knoppixtagen Weiz

Der Lehrer-Fortbildungskurs war gedacht für Informatik-LehrerInnen ohne besondere Python- bzw. Programmierkenntnisse. Überrascht hat mich die große Bandbreite vom Tätigkeitsfeld österreichischer Informatiklehrender: Je nach Schultyp und Schule und Lehrer bedeutet Informatikunterricht Unterschiedliches, von “Word und Excel” bis zu “C programmieren”.

Wir bekamen von der HTL Dornbirn einen EDV-Saal mit frisch installiertem Python3 (auf Windows) sowie Zugriff auf das W-Lan Netz der Schule. Viele Teilnehmer hatten eigene Laptops mit und arbeiteten sowohl auf ihren eigenen Computern als auch auf denen der Schule gleichzeitig. Zusätzlich brachte Mag. Peter Broger einen großen Koffer voller RaspberryPi2 Kleinrechner mit, welche bei den TeilnehmerInnen gut ankamen. Mein Eindruck war dass sich viele Lehrer für den Raspberry Pi interessierten aber noch wenige konkret mit damit gearbeitet hatten.

Der Seminarschwerpunkt verlagerte sich daraufhin in die Richtung “Python am RaspberryPi”, inklusive Installieren von Anwendungen mittles apt-get install im Linux-Terminal. Dank der anwesenden Mathematik-Lehrer ging ein Turtlegrafik-Programmierbeispiel zum Thema “schiefer Wurf” flott von der Hand und kam von allen meinen Programmierbeispielen am Besten an.

Python online?

Meine Vorbereitungen konzentrierten sich auf das Thema, Python online zu unterrichten ohne lokale Installation.

Ich hatte angenommen das lokales Installieren von Programmen wie Python3 im Schulbetrieb technisch und bürokratisch für einzelne Lehrer mühsam ist und deshalb relativ viel in Richtung “Python online unterrichten” vorbereitet. Eine wirklich zufriedenstellende Lösung habe ich nicht gefunden:

Es gibt zwar mehrere Websites zum Thema (Python)-Code online ausführbar machen, allerdings meist nur im Terminal. Das mag interessant sein für HTL-Schüler oder wirklich an Data-Science Projekten interessierte, ist aber eher trocken für Programmieranfänger.

Python-Turtle-Grafik ist mit einigen Tricks im Webbrowser darstellbar (via Javascript-Umsetztung), im Endeffekt macht man sich durch das Benutzen solcher Services von proprietären Firmen abhängig und muss mit Einschränkungen sowohl vom Befehlsumfang (keine volle Python-Kompatibilität) bzw. der Aktualität (nur Python2, kein Python3) leben.

Relativ gut gefallen hat mir Trinket welches eine Scratch-ähnliche visuelle Programmiersprache (mit Code-Blöcken), Python und HTML5 unterstützt, Turtle-Grafik im Browser erlaubt, halbwegs frei ist (Code auf Github, Premium-Modell für einige Features) und standardmäßig Python3 unterstützt.

Meine Standard-Tools um Programmieranfängern Python-Programmieren schnell zu unterrichten / zu demonstrieren bleiben turtle-Grafik und das (externe) easygui-Modul. Beide zusammen sind nur “offline”, bei einer lokalen Installation sofort verfügbar. Gerade hier glänzt der RaspberryPi, welcher (im Gegensatz zu Schulcomptern mit zentral administriertem Windows) jedem Nutzer volle Linux-Installationsrechte (root) mitgibt.

Ich rede über meine Erlebnisse als Wiener in Vorarlberg kurz im Biertaucherpodcast 250, ab Minute 32:17.

Unterrichten mit Smartphones und Pocket Code

Am 29. April war ich in einer Schule tätig: Ein befreundeter Lehrer hatte mich eingeladen, in der Polytechnischen Schule Wien 7 den ca. 15 jährigen Schülern zu zeigen wie sie mit ihren Smartphones Apps programmieren können. Zur Vorbereitung hätten sich die Schüler die Android-Apps "Pocket Code" und "Pocket Paint" auf ihren Smartphones installieren sollen, was in der Praxis scheiterte:

Die Smartphones der Schüler waren teils aus disziplinären Gründen vom Lehrkörper abkassiert worden, teils, von Schülern zu Hause vergessen worden, teils wegen unaufgeladener Akkus nicht benutzbar oder anderswertig unvorbereitet. Was gut funktionierte war der Internetzugriff: Alle Schüler konnten problemlos entweder über ihr eigenes Internet-Guthaben oder über das Schul-WLAN auf den Google Play Shop zugreifen und die beiden “Pocket” Apps in Sekundenschnelle installieren.

Die verbliebene Unterrichtszeit nutzte ich dazu (mit Tafel und Kreide) mit den Schülern ein kleines Geschicklichkeits-Spiel zu programmieren (eigentlich: zu wischen) bei dem eine fotografierte Spielfigur (Gesicht eines Mitschülers) auf einem fotografierten Untergrund (Foto von Tischplatte) balanciert werden muss. Pocket Coder erlaubt den Zugriff auf die Lage- und Beschleunigungs-Sensoren des Smartphones, und erlaubt daher ganz andere Spielideen als ein typisches Computerspiel.

Im Gegensatz zu anderen visual programming Systemen wie z.B. Scratch ist das “zusammenwischen” der Code-Bausteine bei Pocket-Code einen Tick umständlicher und mangels sichtbarer Einrückung weniger leicht intuitiv erlernbar als z.B. bei Scratch. Da die unterschiedlichen Android-Smartphones in der Praxis die Pocket-Code App an unterschiedlichen Stellen abstürzen lassen bzw. einfrieren ist das Unterrichten herausfordernd, man wünscht sich spontan das “Einheits-Android-Phone” für jeden Schüler. Dem gegenüber steht der Vorteil dass die Schüler wirklich problemlos zu Hause “weiterprogrammieren” können, es ist keinerlei zusätzliche Hardware, Software oder Internetzugang erforderlich. Nicht unterschätzen sollte man auch das Gefühl der Schüler, ihr eigenes Smartphone selbst programmiert zu haben (anstatt eine fremde Aufgabe auf einem fremdem Schulcomputer zu erfüllen). Alle beteiligten Schüler und Lehrer waren auf jeden Fall mächtig stolz auf ihre erste selbst-programmierte App und freuen sich schon auf den nächsten Workshop.

Google bewirbt Pocket Code

Auf den Wiener Linuxtagen 2016 (Ende April 2016) traf ich zwei Entwickler des free/libre Open Source RTS-Spiels 0.A.D. 0.A.D (“im Jahre Null Anno Domini”) ist ein freier Nachbau von “Age of Empires”, man spielt ein Volk der Antike, muss einen Wirtschaftskreislauf mit verschiedenen Rohstoffen in Schwung bringen, Siedlungen bauen, Gelände erkunden und gegen verfeindete Völker kämpfen.

0.A.D. Demovideo

0.A.D. glänzt nicht nur mit hervorragender Grafik (frei drehbare 3D-Kamera), guter Spielbarkeit und vielen Details: was mich extrem fasziniert ist der Fokus der Entwickler auf freier Software. Nicht nur der komplette Programmcode von 0.A.D. ist frei lizensiert, sondern auch alle “Assets” im Spiel - Grafiken, 3D-Modelle, Texturen und Musik- stehen under einer liberalen Creative-Commons-Lizenz. Nach einem Gespräch mit den am Linuxtag anwesenden 0.A.D. Entwicklern beschloss ich spontan 0.A.D. an einem Nachmittagsworkshop auszuprobieren.

Ich kaufte einen W-Lan Verteiler (Switch) und Lan-Kabel, installierte hastig auf meinen neuen Kurs-Laptops 0.A.D. (unter Linux mit einem Befehl installierbar) und eilte zum Workshop, wo ich für Kinder-Nachmittagsbetreuung gebucht war. Ein Spezielles Lernziel beim Workshop hatte ich nicht, es ging darum die Kinder bei einer gleichzeitig stattfindenden Vereinssitzung ruhig und sinnvoll zu beschäftigen. Die meisten Kinder kannte ich schon von einem früheren Workshop. Ich wusste ferner dass es am Veranstaltungsort kein W-Lan gab und ich nur offline arbeiten konnte.

Mein Plan war, anhand von 0.A.D. den Kindern den Aufbau eine Local-Area-Networks zu erklären, im Linux-Terminal den “Ping” Befehl auszuprobieren, das Thema interne Networkadressen kurz anzureißen und die Kinder dann miteinander eine lokale Partie 0.A.D. im Multiplayer-Modus spielen zu lassen. So ungefähr wie die guten alten Lan Partys in den 90er Jahren. Mein strategischer Plan ist es, 0.A.D. als Beispiel zu benutzen um per einfachen Änderungen in (Javascript)-Textfiles Modden (Veränderungen eines Spiels) zu üben, z.B. eine schwache Kampfeinheit plötzlich sehr stark zu machen. Außerdem sollte es mit 0.A.D. möglich sein, mit Blender selbst erstellte 3D-Figuren (z.B. eine Statue) ins Spiel einzubauen.

In der Praxis scheiterte ich gleich an mehreren Ebenen: Für die korrekte Vernetzung meiner neuen Laptops fehlte mir die Vorbereitungszeit, das Thema Ping (man tippt im Linuxterminal einen Ping-Befehl ein und schaut wieviel Millisekunden er braucht um von einem anderen Rechner “reflektiert” zu werden) erwies sich als nur mäßig spannend. Im Endeffekt starteten die Kinder 0.A.D. im Einzelspielermodus und “lernten” das Spiel von Grund auf korrekt zu bedienen (Kameraführung, Wirtschaftskreisläufe), was sich als fordernd genug erwies.

Kaum konnten die Kinder das Spiel einigermaßen bedienen wurde (im Spiel) ihr Dorf von einer computergesteuerten Armee niedergemacht: Das nächste Spiel starteten wir mit einem Computergegner auf der Schwierigkeitsstufe “Sandkasten”.

Der Detailreichtum des Spiels erwies sich als stark Lärm erregende: besorgte Erwachsene kamen zu den Kindern um zu fragen warum die Kinder so erregt schreien: Die Kinder hatten entdeckt dass eine Arbeiterin im Spiel (Rohstoff Nahrung) einem Schaf nicht nur nachlaufen kann, sondern es auch schlachtet. Diese Entdeckung “Woaaa, die Frau haut das Schaf! Aaaaaa, jetzt isst sie auch noch!” mussten sich die Kinder gegenseitig lautstark mitteilen.

Außer der Tatsache dass 0.A.D. Kinder aller Altersgruppen dank des Detailreichtums sehr fasziniert konnte ich noch keine komplizierteren Workshop-Pläne ausprobieren, aber ich arbeite daran.

Bisherige Beobachtungen: Weinende Kinder “Weil zu Hause streiten wir wer 0AD spielen darf” und kreative eigene Spielziele: Anstatt, um das Spiel zu “gewinnen” schnell eine eigene Armee aufzubauen hatten manche Kinder Spaß daran eine Armee von zivilen Arbeiterinnen gleichzeitig ein Gebäude errichten zu lassen bzw. die Zivilisten im Spiel zu micromanagen. Generell wirkte 0.A.D. durch die sehr gute Grafik und die sehr nahe heranzoombare Kamera: Die Kinder waren fasziniert davon dem eigenen, antiken Dorfleben zuzuschauen: mit zahllosen Steineklopfern, Holzfällern, Feldarbeitern, Jägern, Tieren und Arbeitselefanten gab es genug zu beobachten, zu kommentieren und ggf. zu steuern, lange bevor der Computergegner militärisch ins Spiel eingreift.

children playing 0.A.D.

Kinder fasziniert von 0.A.D.

Ich erzähle im Biertaucherpodcast Folge 254 über meine 0.A.D. Erlebnisse.

Mehr Fotos (alle creative-commons, CC-BY-SA lizensiert) gibt es im Flickr-Album von spielend-programmieren

/var/www/horst/spielend-programmieren.at/data/pages/de/blog/2016/0806_kursleben.txt · Last modified: 2017/10/12 10:05 by horstjens@gmail.com