Informationssysteme

Werkzeuge für die Programmierausbildung

Programmieren ist eine der Grundfertigkeiten, die jeder Informatiker beherrschen sollte. Aber auch für die Allgemeinbildung kommt dem Programmieren eine nicht zu vernachlässigende Rolle zu, denn Programmieren trainiert Fähigkeiten, wie das Entwickeln von Problemlösungen oder das Ordnen von Gedanken. Im Rahmen dieses Projektes werden Werkzeuge entwickelt, die das Erlernen der Programmierung unterstützen. Kennzeichen aller dieser Werkzeuge ist eine Visualisierung der Ausführung der von den Programmieranfängern entwickelten Programme. Damit können die Programmieranfänger ihre Programme besser nachvollziehen und ihnen wird unmittelbar vor Augen geführt, welche Auswirkungen die eingesetzten Programmierkonzepte haben.

Hamster-Modell

Das Hamster-Modell ist ein spezielles didaktisches Modell zum spielerischen Erlernen der Programmierung. Programmieranfänger schreiben Programme, mit denen sie virtuelle Hamster durch eine virtuelle Landschaft steuern und gegebene Aufgaben lösen lassen. Zum Entwickeln, Ausführen und Testen der Programme dient der so genannte Hamster-Simulator, eine bewusst einfach gehaltene Programmentwicklungsumgebung. Der Hamster-Simulator unterstützt derzeit das Erlernen der imperativen, objektorientierten und parallelen Programmierung mit Java, der funktionalen Programmierung mit Scheme und der logikbasierten Programmierung mit Prolog. Aktuell wird er um Komponente zur Skriptprogrammierung mit Python und Ruby sowie zur visuellen Programmierung mit Scratch erweitert. Weitere Informationen finden sich unter www.java-hamster-modell.de.

Solist: Eine Entwicklungsumgebung für Mini-Programmierwelten

Das Hamster-Modell gehört wie „Karel der Roboter“ oder „Kara der Marienkäfer“ zu den so genannten Mini-Programmierwelten oder kurz Miniwelten. Miniwelten zeichnen sich dadurch aus, dass sie versuchen, die Abstraktion und Komplexität der Programmierkonzepte zu reduzieren und ihr Erlernen dadurch zu unterstützen, dass die Ausführung von Programmen visualisiert wird. Programmieranfänger beginnen nicht mit der Berechnung mathematischer Formeln sondern müssen in einer jeweils zur Verfügung gestellten Programmentwicklungsumgebung Hamster, Marienkäfer oder Roboter mit einem reduzierten Befehlssatz durch virtuelle Welten steuern. Um den Einsatz von Miniwelten zum Erlernen der Programmierung abwechselungsreicher gestalten zu können, haben wir mit Solist einen Generator für Miniwelten entwickelt. Aufbauend auf einer einfachen aber mächtigen Klassenbibliothek kann ein Lehrer mit Solist innerhalb kurzer Zeit eine neue Miniwelt entwickeln, dann automatisch eine Programmentwicklungsumgebung für diese Miniwelt generieren lassen und diese seinen Schülern zur Verfügung stellen. Weitere Informationen finden sich unter www.programmierkurs-java.de/solist.

Threadnocchio: Visualisierung von Java-Threads

Bedingt durch moderne Multicore-Technologien wird der parallelen Programmierung, d.h. der Entwicklung nebenläufiger Anwendungen, bereits in naher Zukunft eine weitaus höhere Bedeutung zukommen als dies heutzutage der Fall ist. Problem ist, dass die parallele Programmierung und ihr Erlernen weitaus komplexer sind als die herkömmliche sequentielle Programmierung. Diesem Problem versuchen wir damit Rechnung zu tragen, dass wir mit Threadnocchio eine einfache Programmentwicklungsumgebung entwickelt haben, die das Erlernen der parallelen Programmierung mit Java-Threads durch spielerische und visualisierende Elemente unterstützt. In Threadnocchio kann der Programmierer auf der Grundlage einer zur Verfügung gestellten Klassenbibliothek parallele Programme schreiben und den Threads Ikons zuordnen. Die durch die Ikons visualisierten Threads agieren während der Ausführung des Programms wie selbstständige Marionetten („Pinocchios“) auf einer Bühne, wodurch sich die Ausführung der parallelen Programme sehr gut nachvollziehen lässt und die Auswirkungen von bspw. Kommunikations- und Sychronisationsmechanismen dem Programmierer unmittelbar vor Augen geführt werden. Weitere Informationen finden sich unter www.programmierkurs-java.de/threadnocchio.

Objekt-Theater: Visualisierung von Java-Objekten

Die objektorientierte Programmierung hat sich heutzutage durchgesetzt. Programme bestehen aus Klassen, die die Struktur und das Verhalten bestimmter gleichartiger Objekte definieren. Diese interagieren durch Aufrufe von Methoden miteinander. Hauptvorteile der objektorientierten Programmierung sind eine hohe Wiederverwendbarkeit und eine einfache flexible Erweiterbarkeit existierender Programmteile. Bei der Ausbildung von Programmierern, bspw. in der Schule oder in der Hochschule, stellen die Schüler bzw. Studierenden häufig die Frage: Was sind denn eigentlich Objekte, was ist der Unterschied zu Klassen? Und genau hier setzt das von uns entwickelte Werkzeug Objekt-Theater an: Objekte werden durch Icons auf dem Bildschirm repräsentiert. Methodenaufrufe für die Objekte führen zu Manipulationen der Icons. Dadurch wird das Ablaufverhalten von objektorientierten Programmen visualisiert. Weitere Informationen finden sich unter www.programmierkurs-java.de/objekttheater.

Generator für Educational Programming Games

Eductional Programming Games (EPGs) sind Computerspiele, bei denen Programmierer Roboter, Fußballspieler oder Rennfahrer implementieren, die dann in einem speziellen Simulator gegeneinander Wettkämpfe austragen (Robocup, Robocode, …). Aufbauend auf Threadnocchio entwickeln wir derzeit ein Werkzeug für die Entwicklung neuer EPGs. Ein Programmierer kann aufbauend auf einer zur Verfügung gestellten Klassenbibliothek die Eigenschaften eines EPG implementieren und anschließend automatisch einen entsprechenden Simulator generieren lassen.

 

Mitarbeiter