Original-URL des Artikels: https://www.golem.de/news/swift-playgrounds-im-test-apple-infiziert-kinder-mit-programmiertalent-1609-123424.html    Veröffentlicht: 27.09.2016 11:58    Kurz-URL: https://glm.io/123424

Swift Playgrounds im Test

Apple infiziert Kinder mit Programmiertalent

Google und Microsoft fördern den Programmiernachwuchs seit längerem, jetzt folgt Apple mit einer eigenen Lern-App. Wir haben mit Programmiercode Kristalle gesammelt und Schalter umgelegt und festgestellt: Der Lehrplan stimmt, aber die Umsetzung hakelt.

Seitdem das erste iPad erschienen ist, hat Apple es auch stets als Lernwerkzeug für Schüler propagiert. Interaktive Lerninhalte hat das Unternehmen bislang aber nicht bereitgestellt. Google und Microsoft kümmern sich hingegen über verschiedene Projekte mit mal mehr, mal weniger spielerischen Konzepten schon länger um den potenziellen Programmiernachwuchs. Mit der App Swift Playgrounds will Apple zur Konkurrenz aufschließen. Wir haben ausprobiert, ob wir damit spielerisch Programmieren lernen können.

Die App ist kostenlos, läuft aber nur auf iPads mit iOS 10. Wir installieren sie über iTunes auf einem iPad Pro. Der Download von knapp 270 MByte dauert einen Moment. Wir starten die App, und uns werden zwei Kurse sowie vier Herausforderungen angeboten. Wir starten den Einführungskurs - und müssen warten, denn der Kurs wird erst heruntergeladen. Das erstaunt uns in Anbetracht der App-Größe. Derzeit gibt es die App und die Kurse nur auf Englisch.

Jetzt können wir den Kurs öffnen und werden mit einer Slideshow begrüßt. Die acht animierten Folien stimmen uns auf das erste Kapitel des Kurses ein. Wir werden einem Avatar namens Byte vorgestellt, den wir mit zwei ebenfalls vorgestellten Funktionen durch einen Parkour steuern können. Schließlich dürfen wir auf "Start Coding" tippen und loslegen.

Der Kurs ist sinnvoll strukturiert

Dieses Prinzip wird auch in den weiteren Kapiteln fortgesetzt. Jedes Kapitel lehrt ein Programmier- oder Sprachenkonstrukt wie die "for"-Schleife oder "if"-Bedingungen. Am Anfang des Kapitels steht eine lebensnahe Einführung, gefolgt von verschiedenen Lektionen, in denen das behandelte Thema vertieft und geübt wird.

Mit dem Beginn einer Lektion wechselt die Ansicht. Links oben befindet sich ein Text. Er erläutert die Aufgabenstellung und das Lernziel. Darunter befindet sich ein Texteditor, rechts sehen wir die Figur Byte auf einer schwebenden Insel. Das spielerische Ziel jeder Lektion ist vor allem am Anfang stets gleich: Per Programmcode steuern wir Byte auf seiner Insel, dabei müssen eine vorgegebene Anzahl Kristalle aufgesammelt und Schalter umgelegt werden. Das Terrain, der abzulaufende Weg und die Größe der schwebenden Insel variieren dabei meist mit jeder Lektion.

Praktisch handelt es sich um eine Art Jump-'n'-Run-/Adventure-/Rätsel-Spiel, mit dem Unterschied, dass an die Stelle eines Joysticks die eingegebenen Programmierbefehle treten. Neu ist die Idee nicht, so können zum Beispiel Lernwillige schon seit längerem nach diesem Konzept die Bedienung von VIM lernen.

3D-Welt dient als Übungsterrain

Nachdem wir unsere ersten Befehle eingegeben haben, tippen wir auf "Run My Code". Es dauert einen Moment, bis unser Code tatsächlich ausgeführt wird. Dann läuft Byte los. Die 3D-Darstellung ist einfach, aber deutlich höher aufgelöst als das vermutliche Vorbild Minecraft. Im Laufe des Kurses nutzen wir gelegentlich die Möglichkeit, per Fingergeste die Darstellung einfach zu drehen und zu zoomen, um unseren Weg zu planen.

So arbeiten wir uns durch die Lektionen und Kapitel. Können wir zunächst nur den Avatar in einer vorgegebenen Welt bewegen, dürfen wir später auch die Welt selbst verändern. Die Aufgabenstellungen sind dabei durchaus repetitiv - langweilig wird uns aber nicht. Zum einen sind die einzelnen Lektionen zumeist in fünf bis zehn Minuten zu meistern. Zum anderen werden uns aber auch in jeder Lektion neues Wissen oder Details vermittelt.

Dabei geht es nicht nur um die Programmiersprache Swift selbst, stattdessen werden auch das Thema Debugging erklärt und algorithmisches Denken vermittelt. Die Aufgabenstellung betont dabei häufig, wie wichtig es ist, nicht einfach eine Lösung zu finden, sondern dabei möglichst effizienten Code zu schreiben. Statt einen - nicht vorhandenen - Highscore zu knacken, setzt das Lehrkonzept auf den inneren Antrieb und die persönliche Neugier.

Mussten wir in der ersten Lektion noch das ganze Programm eingeben, ändern oder ergänzen wir in späteren Lektionen auch bestehende Programme. Höhere Level sind deshalb auch nicht unbedingt schwerer zu lösen.

Texteditor ist keine gute Idee

Wir sind aber auch aus einem anderen Grund ganz glücklich darüber, komplexere Programme nur ergänzen statt sie komplett schreiben zu müssen.

Als wir am Anfang merkten, dass es sich beim Editor tatsächlich um einen richtigen Texteditor handelt und nicht um eine grafische Programmierumgebung wie Blockly, waren wir als alte Programmierprofis eigentlich ganz begeistert. Mit der Zeit merkten wir aber, wie unsinnig ein reiner Texteditor zum Programmieren auf einem Gerät und Betriebssystem ist, das komplett auf Touchbedienung ausgerichtet ist.


Zuerst verwendeten wir die iPad-Hardcover-Tastatur - bis wir die Autovervollständigung entdeckten. Die finden wir eigentlich gut, sie kann nicht nur Funktions- und Variablennamen ergänzen, sondern auch ganze Sprachkonstrukte und -elemente wie Klammern. Die Vervollständigung wird aber nicht wie bei IDEs üblich im Editor angezeigt und per Pfeiltasten und Enter ausgewählt - was schon an den fehlenden Pfeiltasten an der Cover-Tastatur scheitert. Die Vervollständigung ist stattdessen ein Teil der virtuellen Tastatur und zwingt uns deshalb, die Hand von der Hardwaretastatur zu nehmen und auf den Bildschirm zu tippen.

Mit einem Finger tippen statt mit zehn

So entscheiden wir uns, die reale Tastatur links liegenzulassen und die virtuelle zu nutzen, um unsere Arbeitswege etwas abzukürzen. Doch auch hier nervt schnell ein eigentlich praktisches Feature. Wer eine Funktion mit Parametern oder zum Beispiel eine "For"-Schleife nicht eintippt, sondern per Autovervollständigung einfügt, kann Integer-Parameter im Konstrukt einfach durch Antippen im Konstrukt eingeben. Dann öffnet sich ein kleiner Dialog zum Eingeben der Zahl. Ist aber dabei die virtuelle Tastatur offen, wird sie geschlossen.

Das ist an sich sinnvoll, denn sonst wäre vor Eingabemöglichkeiten der Code nicht mehr sichtbar. In der Praxis funktioniert das ganz leidlich bei Lektionen, in denen wir nur Parameter im bestehenden Code ändern sollen, bei freier Texteingabe macht es uns aber mit der Zeit wahnsinnig. Auf einen Parameter tippen wir auch dann häufiger, denn eine Cursor-Navigation per Pfeiltasten oder äquivalente Optionen stehen nicht zur Verfügung. Dass das Markieren und Kopieren von Codezeilen den iOS-Standards entspricht, dürften eingefleischte iOS-Nutzer hingegen eher begrüßen.

Freies Programmieren folgt dem Lernen

Trotz der Editor-Macken arbeiten wir uns durch die Lektionen. Nachdem wir schließlich so den ersten Kurs absolviert haben und auch wahlfrei diverse Lektionen des zweiten Kurses durchgegangen sind, werfen wir einen Blick auf die Herausforderungen. Dabei handelt es sich um fertige Programme, die wir ändern können und auch sollen. Echte Aufgabenstellungen fehlen hier, eher steht hier die Demonstration vollständiger Programme im Vordergrund.

Eher spielerischen Charakter und eine Art Miniaturreferenz der API erhalten wir, wenn wir einen neuen Playground öffnen - die Bezeichnung meint nichts anderes als ein neues Programmierprojekt. Dabei können wir neben einer leeren Datei auch Vorlagen aufrufen. Sie enthalten eine Reihe von Funktionsaufrufen, um insbesondere die Darstellung grafischer Elemente zu verdeutlichen. Diese Vorlagen sind deutlich näher an der klassischen Programmierung als der eher spielerische Umgang mit dem Avatar Byte in den Kursen.

Leider können wir unsere selbst erstellten Programme nicht als eigenständige Apps exportieren, was aus unserer Sicht technisch durchaus möglich wäre. In einem Menü finden wir die Möglichkeit, alle Quellcodes und Ressourcen des jeweiligen Playgrounds einzusehen. Die Playgrounds-App ist im Kern anscheinend nichts anderes als eine grafische Oberfläche für einen Swift-JIT-Compiler.

Fazit

Wir könnten uns die Sache einfach machen: Apple propagiert seine eigene Programmiersprache in einer proprietären App mit einem verbesserungswürdigen Editor und die Kursinhalte gibt es bislang nur auf Englisch - kurz: Die Installation lohnt nicht. Aber das ist die rein technische Sichtweise.

Aus didaktischer Sicht sind wir hingegen begeistert. Die Kapitel und Lektionen bauen sinnvoll aufeinander auf, können aber auch direkt ausgewählt oder übersprungen werden. Die Erklärungstexte sind lang genug, um ein Thema zu verstehen, aber kurz genug, um nicht zu langweilen.

Den Aufgabenstellungen gelingt der Mix aus neuem Wissen und Wiederholungen zur Festigung des neuen Wissens. Die Herausforderungen und die Playgrounds bieten Raum für eigene Programmierexperimente. Dabei lassen sie dem Anwender die Wahl, ob er bei null anfangen oder auf vorgegebenem Code aufbauen will. So macht Selbstlernen Spaß und führt zu Ergebnissen.

Wer seinem Nachwuchs Programmieren beibringen will, steht somit aktuell vor einem Zwiespalt. Als wir vor kurzem verschiedene Lernroboter-Konzepte testeten, haben sie uns technisch überzeugt, doch für Autodidakten fehlte es an hilfreichem Lernmaterial. Apple bietet das Material, macht uns aber mit der Technik nicht so glücklich. Wir sind gespannt, wann es dem ersten Hersteller gelingt, beides zusammenzuführen.  (am)


Verwandte Artikel:
Apple: Swift 4 erleichtert Umgang mit Strings und Collections   
(20.09.2017, https://glm.io/130158 )
Fortnite: Battle Royale auf der Playstation 4 gegen das iPhone   
(09.03.2018, https://glm.io/133246 )
Siri: Apple wird wegen Patentverletzung verklagt   
(11.03.2018, https://glm.io/133268 )
IT in der Schule: Die finnische Modellschule hat Tablets statt Schreibtische   
(15.12.2017, https://glm.io/131673 )
Autosaw: Roboter helfen beim Möbelbauen   
(28.02.2018, https://glm.io/133060 )

© 1997–2019 Golem.de, https://www.golem.de/