Programmieren lernen mit Snap – Definition, Inhalte und Ablauf
Ohne Vorkenntnisse Programmieren lernen? Dass das geht steht außer Frage, schließlich hatten wir für all unsere erlernten Fähigkeiten einst keinerlei Vorkenntnisse. Doch je nach Art des Lernens fallen die ersten Schritte entweder besonders leicht oder aber so schwer, als dass die Motivation für den Aufbau des Wissens nicht mehr ausreicht. Anfängern ohne Programmierkenntnisse ist daher damit geholfen, sich mit einer einfachen – z.B. einer grafischen – Programmiersprache an das Programmieren an sich heranzutasten und sich mit den damit verbundenen Prinzipien vertraut zu machen. Ein Beispiel für eine solche grafische Programmiersprache ist die von der kalifornischen Berkeley Universität entwickelte Sprache Snap.
Wie läuft ein Snap Kurs ab und welche Inhalte werden vermittelt?
Ein Kurs in der Programmiersprache Snap vermittelt die fundamentalen Strukturen beim Programmieren und lehrt die logischen Zusammenhänge herzustellen – und das auf eine spielerische Art und Weise. Programmierer Kurse mit Snap sind daher auf Personen abgezielt, die im Programmieren keinerlei Vorkenntnisse mitbringen. Sinnvoll ist das beispielsweise bei Schülern oder bei älteren Personen im Rahmen einer Umschulung in Richtung IT.
Die Dauer eines Snap Kurses variiert von Anbieter zu Anbieter – wobei es sogar möglich ist, Snap autodidaktisch zu lernen, z.B. über YouTube-Tutorials. Ein professionell begleiteter Snap Kurs hat ungefähr eine Dauer von 2 Monaten, wobei sämtliche Aspekte behandelt werden: Von einer einfachen sich bewegenden Grafik bis hin zur Datenbankanbindung.
Was ist Snap und warum ist es einfach zu lernen?
Snap ist eine erziehungsorientierte Programmiersprache für den fortgeschrittenen Informatik-Unterricht in der Schule oder für die Erwachsenenbildung und ist auch noch unter dem Namen BYOB bekannt. Es beschränkt sich seitens der Programmierung auf das Wesentliche und lässt den ganzen Syntax-Overhead, der bei den meisten klassischen Programmiersprachen wie C++, Java und auch PHP besteht, weg. Mehr noch: Sogar die Texteingaben beschränken sich auf ein absolutes Minimum. Damit gehen natürlich auch Möglichkeiten verloren - statt Funktionen, Klassen, Variablen, Templates und Co. beschreibt man das Programm hier über grafische Objekte und diesen zugeordneten Skripten, Variablen und Eventhandlern. Daher lässt sich trotz der einfachen Struktur funktional, prozedural und objektorientiert programmieren. Was heißt das für Einsteiger:
Wie ein Snap-Programm funktioniert
Wer z.B. ein Snap-Programm schreiben möchte, in welchem es möglich ist, einen Menschen mit vordefinierten Kleidungsstücken seiner Wahl anzukleiden, der erstellt die Grafiken für den Körper und die Kleidung und stattet diese dann mit Skripten aus, welche deren Verhalten beschreiben. Das Programmieren selbst läuft dabei deshalb grafisch ab, weil anstelle von Text bunte Blöcke mit verschiedenen Funktionen aneinandergehängt werden können – z.B. welche, die Bewegung beschreiben (Blau) oder welche, die Operationen beschreiben (Grün). Auch für Variablen, Sound, Kontrollelemente und Sensoren gibt es je eigene Blöcke. Besonders den Kontrollelementen (Gelb) kommt hinsichtlich der Interaktion eine wichtige Bedeutung zu, da sie z.B. auf Tastendrücke oder Mausklicks ansprechen und dann entsprechend die angehängten Blöcke ausführen. In der Praxis sieht das beim Kleidungsbeispiel so aus: Fashion Game Demo und Fashion Game Code.
Warum Snap und was kommt dann?
Wer Snap beherrscht bzw. sich die logische und strukturierte Denkweise, die für das Programmieren notwendig ist, angeeignet hat, der findet sich in anderen Programmiersprachen im Anschluss viel besser zurecht: Der Grund ist, dass die grundlegenden Paradigmen wie z.B. funktionale oder objektorientierte Programmierung bereits bekannt sind und auf viele andere Sprachen abgebildet werden können. Beim Erlernen einer Programmiersprache nach Snap kann man sich daher viel besser auf die neue Syntax konzentrieren. Diese ist, zumindest bei den gängigen Sprachen wie C++, Python oder Java, nun textbasiert und nicht mehr grafisch determiniert – zumindest nicht so direkt wie in Snap.
Softwareentwickler sein ist mehr als nur programmieren können
Wer sich eingehender mit dem Programmieren an sich beschäftigt, das wäre der nächste Schritt nach dem Lernen einer Sprache nach Snap, der wird feststellen, dass es im Bereich der Softwarearchitektur wieder sehr viele grafische Elemente gibt, anhand derer eine Software entworfen wird. Alleine die komplette Bandbreite der UML, der sogenannten Unified Modelling Language, umfasst mindestens 11 verschiedene Diagrammtypen zur Beschreibung von Software. Dazu zählen Klassendiagrame, Objektdiagramme, Kompositionsstrukturdiagramme und andere sogenannte Strukturdiagramme. Sie beschreiben die Struktur der Software, also den Aufbau. Andere Diagrammtypen beschreiben wiederum die Interaktion (Interaktionsdiagramm, …) oder das Verhalten (Zustandsdiagramm, Aktivitätsdiagramm, …). Zwar ist das grafische Level hier deutlich abstrakter als bei Snap – aber über spezielle Entwicklungsumgebungen lassen sich derartige Diagramme direkt in Code übersetzen, was einem ein wenig Programmierarbeit abnimmt.
Welche Sprache empfiehlt sich nach Snap konkret?
Diese Frage ist im Prinzip nur individuell zu beantworten, da die Wahl der Programmiersprache unter anderem vor allem davon abhängt, was Sie damit zu entwickeln gedenken. Wer im Rahmen einer Firma eine Umschulung macht, wird diese Frage wahrscheinlich gar nicht beantworten müssen. Wer komplett freiwillig lernt, der sollte sich wiederum selbst die Frage stellen, was er mit dem Programmier-Know-How später anfangen möchte:
Bei der Entwicklung von sehr hardwarenahem Code sollten Sie auf Programmiersprachen wie C++, C, Assembler oder auch VHDL setzen. Wer Webanwendungen entwickeln möchte, kommt um Javascript und PHP nicht herum, dazu gehört selbstverständlich auch noch HTML und CSS – also gleich ein ganzer Berg von neuen Sprachen, bei denen sich die ersten Erfolge aber schneller einstellen, als z.B. bei C. Warum? Weil in der Webentwicklung Grafiken eine sehr wichtige Rolle spielen und dies das sogenannte „Debugging“, also das erkennen und beheben von Programmierfehlern vereinfacht und schneller zu tatsächlich sichtbaren Ergebnissen führt.
Wer hingegen Windows-Anwendungen entwickelt, sollte sich C# genauer anschauen. Daneben gibt es noch Sprachen wie SQL für Datenbanken oder Skriptsprachen wie QlickView zur Programmierung von Business Intelligence Applikationen. Ende der Fahnenstange? Noch lange nicht! Die Liste von Programmiersprachen und ihren typischen Anwendungsfeldern lässt sich noch sehr lange fortführen, bis hin zu „Spaß“-Programmiersprachen wie Whitespace (hier wird nur mit Leerzeichen und Tabs programmiert) oder Chef (hier entstammen die Befehle einem Kochrezept).
Snap für pädagogische Aufgaben
Wer hingegen aus pädagogischer Sicht mit dem Programmieren zu tun hat, der kann sich gleich wieder dem Anfang zuwenden: Snap ist schließlich genau dafür konzipiert worden, Schüler oder ältere Menschen ohne Programmiervorkenntnisse an die Welt des Programmierens heranzuführen. Gerade im pädagogischen Bereich lässt sich mit Snap daher sehr viel anstellen!
Autor: Nils Reimers