Java, LEDs und ein RaspberryPi: Ein Projektversuch mit Erstsemestern Axel Langhoff, Michael Striewe, Michael Goedicke Universität Duisburg-Essen {axel.langhoff,michael.striewe,michael.goedicke}@paluno.uni-due.de Zusammenfassung Bei der Einführung von Studierenden in die Program- mierung stellt sich immer wieder das Problem, den Stoff attraktiv aufzubereiten und den Studierenden eine Möglichkeit zu geben, ihr Wissen auf eine moti- vierende Art anzuwenden. Für Studierende ohne Vor- kenntnisse ist die Einstiegshürde in eine vollwertige Programmiersprache hoch. Hinzu kommt die Schwie- rigkeit mit dem frisch erworbenen Wissen eigene Ide- en in ansehnliche Ergebnisse umzusetzen. Für Stu- dierende mit großem Vorwissen hingegen besteht die realistische Gefahr sich in diesen Veranstaltungen zu langweilen. Abbildung 1: LED-Board In dem hier vorgestellten Ansatz haben wir versucht, unseren Studierenden in Form eines LED-Boards eine Umgebung zur Verfügung zu stellen, die (1) im Sinne Bänder und ein R ASPBERRY P I1 , um die LEDs auf den einer Lernumgebung möglichst einfach zu verwenden Bändern anzusteuern. Da die LEDs auf den Bändern ist, (2) dem unterschiedlichen und im Verlauf der Vor- einen Abstand von etwa 3,5 cm haben, haben wir lesung wachsenden Kenntnisstand der Studierenden uns für unsere Installation für ein Feld von 12x12 gerecht wird, (3) sichtbare und schöne Ergebnisse der LEDs entschieden, das damit eine Fläche von etwa Programmieranstregungen der Studierenden ermög- 40 x 40 cm einnimmt. Als Träger für die Montage licht, (4) der Kreativität der Studierenden möglichst der LEDs dient eine handelsübliche Blech-Lochplatte wenig Grenzen setzt, und (5) die Motivation der Stu- aus dem Baumarkt, so dass die Kabelführung bequem dierenden steigert. Diesen Zielen liegt die Annahme auf der Rückseite des Boards erfolgen kann. Jeder zugrunde, dass eine motivierte Beschäftigung mit ei- LED kann unabhängig von den Farben der anderen nem ansprechenden Projekt den Studierenden hilft, LEDs ein individueller RGB-Farbwert zugewiesen wer- ihre Programmierkenntnisse zu vertiefen und zu festi- den, so dass sich ein großes und leuchtkräftiges 144- gen. Pixel-Farbdisplay ergibt (siehe Abbildung 1). Nach Neben dem LED-Board selbst berichten wir in die- anfänglichen technischen Schwierigkeiten beim Zu- sem Beitrag über unsere Erfahrungen mit der Verwen- sammenbau, die teilweise auf mangelnde Dokumenta- dung des LED-Boards in unserer Programmierungs- tion der verwendeten Komponenten zurückzuführen vorlesung, sowie die Akzeptanz und den Lernerfolg sind, konnten wir nach dem ersten Prototypen ein unter den Studierenden. zweites, baugleiches Board an einem Arbeitstag zu- sammenbauen. 1 Das LED-Board Um die direkte Ansteuerung der LEDs über die GPIO-Pins des R ASPBERRY P I vor den Studierenden zu Das von uns entwickelte LED-Board besteht aus- verbergen und die Ansteuerung der LEDs möglichst schließlich aus Komponenten, die im regulären Elek- einfach zu gestalten haben wir eine Java-Bibliothek tronikhandel problemlos erhältlich sind und ohne be- implementiert. Die Wahl fiel auf Java, da auch unsere sondere handwerkliche Qualifikation in der passenden Vorlesung für die das Board entwickelt wurde auf Ja- Form zusammengebaut werden können. Die beiden wesentlichen Bestandteile sind abschneidbare LED- 1 http://www.raspberrypi.org/ Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 93 sondern eigene Projekte realisieren können. Auf diese Weise erhofften wir drei Ziele zu erreichen: • Steigerung der Motivation der Studierenden auf- grund von eigener kreativer Tätigkeit, • Vertiefung der vorhandenen Programmierkennt- nisse durch praktische Anwendung, • Sensibilisierung für Themen, die über den Stoff der Vorlesung bzw. die vorhandenen Kenntnisse hinaus gehen und die sich aus den selbstgewähl- ten Zielsetzungen ergeben. Der letzte Punkt ist insbesondere wichtig, da er sowohl unerfahrene als auch erfahrene Studierende Abbildung 2: Emulator zum LED-Board. Die Größe anspricht: Unerfahrene Studierende können an ihren der Kreise korrespondiert mit der Helligkeit der LEDs eigenen Projekten feststellen, wofür sie die Inhalte der auf dem physischen Board. Mit den Schiebereglern Vorlesung benötigen, während erfahrene Studierende rechts kann die Helligkeit des Emulators und des an- erkennen können, dass auch ihre Fähigkeiten noch geschlossenen Boards kontrolliert werden. nicht umfassend sind. Beide Gruppen werden somit zum Lernen motiviert. 2.1 Erforderliche und trainierte va aufbaut. Diese Bibliothek bietet mehrere leicht ver- Fähigkeiten ständliche Methoden, um die einzelnen LEDs über ihre Koordinaten auf dem Board anzusteuern. Außerdem Die einfachste Verwendung des LED-Boards besteht ermöglicht die Bibliothek den Studierenden am hei- in der Darstellung von Standbildern. Die Farbwer- mischen PC Programme für das Board zu entwickeln te der LEDs können dazu theoretisch mit einem Be- und die Ergebnisse unabhängig vom Board in einem fehl pro LED „per Hand“ gesetzt werden. Einzig ein Emulator zu sehen und zu testen (siehe Abbildung 2). sehr rudimentäres Verständnis von Arrays ist hierzu Neben der Steuerung und Emulation des Boards wird erforderlich und die Ergebnisse wären weder beson- von der Bibliothek auch ein einfaches Interface zur ders interessant, noch lehrreich. Eine Abfolge von Verfügung gestellt, um Tastatureingaben auszuwer- unzusammenhängenden Bildern wäre als weitere Ver- ten und so die Entwicklung interaktiver Programme wendung denkbar, die erbrachte Programmierleistung zu ermöglichen. Dieses Interface, wie auch der Rest ginge aber nicht über eine reine Fleißarbeit hinaus. der Bibliothek, verbergen außerdem das notwendige Als strukturierendes Merkmal des Codes drängen sich Threadhandling vollständig vor dem Benutzer. in diesem Fall lediglich einzelne Methoden auf, die jeweils ein Einzelbild zeichnen und nacheinander auf- Die Bibliothek stellt keine weiteren Anforderungen gerufen werden. Die Inhalte einer typischen Anfän- an die Umgebung und kann somit ohne Umstände gervorlesung zur objekt-orientierten Programmierung durch Eintragung in den Java-Classpath in ein neues werden mit derartigen Projekte nur zum Teil abge- Java-Projekt eingebunden werden. Zu der Bibliothek deckt. Eine umfassende Festigung und Vertiefung des wurden eine kleine, an Anfänger gerichtete Anleitung gesamten Stoffes kann damit also nicht erreicht wer- sowie mehrere Beispielprogramme angeboten, um die den. Andererseits bietet die geringe Menge von not- Verwendung der Bibliothek zu demonstrieren. wendigen Kenntnissen auch schwächeren Studieren- den die Chance, einen sichtbaren Erfolg zu erzielen. 2 Einsatzziele des Boards in der Höhere Anforderungen stellen Animationen dar, die Lehre nicht aus einer Abfolge „von Hand“ gezeichneter Ein- zelbilder bestehen, sondern die durch eine dynami- Ziel der Entwicklung des LED-Boards war es, eine sche Erstellung bzw. Veränderung der Einzelbilder Lernumgebung zu schaffen, die insbesondere in Lern- erfolgen. Eine solche Animation erfordert mindestens veranstaltungen mit Erstsemestern eingesetzt werden das geschickte Zusammenspiel von Arrays und Schlei- kann. Das bedeutet, dass sowohl Studierende ohne fen. Als strukturierendes Merkmal des Codes bieten Vorkenntnisse, als auch Studierende mit Programmie- sich hier Klassen an, die jeweils einen Teil der Anima- rerfahrung aus Schule oder Freizeit angesprochen wer- tion (z.B. ein veränderliches grafisches Objekt) rea- den sollten, und dass das Board mit dem fortschreiten- lisieren und geeignete Methoden bereitstellen, um den Kenntnisstand im Laufe der Vorlesung mithalten Instanzen zu manipulieren (z.B. die Position des gra- sollte. Insbesondere war angestrebt, mit dem Board fischen Objekts zu ändern) und auf dem Board anzu- eine freie Umgebung anzubieten, in der die Studie- zeigen. Projekte dieser Art decken damit bereits einen renden keine vorgegebenen Aufgaben zu lösen haben, wesentlichen Teil einer typischen Anfängervorlesung 94 Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 zur objekt-orientierten Programmierung ab und ge- schirmausgabe. In wie weit sich dieser Effekt abnutzt, ben insbesondere anschauliche Beispiele für die dort konnte im Rahmen unserer bisherigen Erfahrungen vermittelten Kernkonzepte. nicht untersucht werden. Mit Hinzunahme der Tastaturunterstützung sind Als Nachteil des LED-Boards muss angesehen wer- auch interaktive Programme, insbesondere Spiele den, dass es mit Kosten für die Hardware verbunden denkbar. Die Reaktion auf Benutzereingaben erhöht ist und nicht in beliebiger Stückzahl vorgehalten wer- nochmal die Anforderung an die Programmstruktu- den kann. Andererseits ist dies aufgrund des verfüg- rierung, vor allem wenn es sich um kontinuierlich baren Emulators auch nicht notwendig. entgegengenommene Eingaben handelt bzw. das Pro- gramm im Hintergrund unabhängig von einer Eingabe 3 Einbettung in unsere fortschreiten soll. Da die Studierenden zur Verarbei- Lehrveranstaltung tung von Benutzereingaben auch Keyevents aus den Das LED-Board wurde bisher im Wintersemester awt-Bibliotheken von Java verarbeiten müssen, ent- 2013/14 und im Sommersemester 2014 jeweils in steht auch ein erster leichter Anknüpfungspunkt zur der Erstsemestervorlesung zur Programmierung an selbstständigen Arbeit mit API-Dokumentationen. Ins- der Universität Duisburg-Essen am Campus Essen ein- besondere gehen solche Projekte zumindest punktuell gesetzt. Der allgemeine Aufbau der Vorlesung sieht deutlich über den Umfang einer einer typischen Anfän- vor, dass die Studierenden neben 4 SWS Vorlesung gervorlesung zur objekt-orientierten Programmierung und 2 SWS Globalübung im Semesterverlauf sechs hinaus. Studierende, die solche Projekte gestalten zei- Testate ablegen, in denen Programmieraufgaben zu gen damit eine deutliche Motivation, mehr als nur bearbeiten sind und bei denen mindestens 400 von den notwendigen Stoff zum Bestehen der Klausur zu maximal möglichen 600 Punkten erworben werden lernen. müssen, um die Zulassung zur abschließenden Klau- 2.2 Abgrenzung zu anderen sur zu erwerben. Das LED-Board wurde in diesem (Lern-)umgebungen Konzept ergänzt, indem die Studierenden durch die erfolgreiche Bewältigung eines Programmierprojekts Von Lernumgebungen wie Greenfoot (Henriksen u. mit dem Board ebenfalls 100 Punkte erwerben konn- Kölling, 2004) unterscheidet sich das LED-Board da- ten. Ein Projekt konnte dabei sowohl von einzelnen durch, dass es mit seiner geringen Zahl an farbigen Studierenden, als auch von einer Gruppe aus bis zu LEDs zwar grundsätzlich weniger „hübsche“ Mög- drei Studierenden bearbeitet werden. Zusätzlich zu lichkeiten der Ausgabe bietet, den Nutzern insge- dieser formalen Einbindung des LED-Boards in die Vor- samt jedoch mehr Freiheiten in der Anwendung bie- lesung wurde ein „Publikumspreis“ ausgelobt, indem tet. Insbesondere macht es keine Vorgaben über ein an einem Vorlesungstermin am Ende des Semesters al- Welt-Modell wie beispielsweise Kara2 oder das Java- le teilnehmenden Studierenden ihr Projekt vorstellen Hamster-Modell3 und lässt damit auch anderen krea- und mittels Applaus durch ihre Kommilitonen bewer- tiven Ideen größeren Raum. Die bedeutendsten limi- ten lassen konnten. Für den ersten Platz wurde dann tierenden Faktoren sind die Leistungsfähigkeit des ein Sachpreis vergeben. R ASPBERRY P IS, die bei schnellen Bildwechseln zu Ru- ckeln führen kann, sowie die geringe Zahl an LEDs, Die erfolgreiche Projektteilnahme im formalen Sin- die keine detaillierten Bilder erlaubt. Letzteres kann ne schloss neben der Teilnahme an dieser Präsentati- jedoch auch als Vorteil angesehen werden, da sich on zur Demonstration eines lauffähigen Programms die Studierenden so auf algorithmisch und strukturell zudem die Teilnahme an einem anschließenden Co- anspruchsvolle Projekte konzentrieren können, und dereview ein. Dieses Codereview sollte einerseits si- weniger Mühe in optische Kosmetik investieren. cherstellen, dass die Studierenden ihren Code wirklich selbst erarbeitet hatten und bot andererseits eine Mög- Gegenüber der reinen Programmierung mit Ausga- lichkeit für die Lehrenden, den Teilnehmern Feedback be auf der Kommandozeile (Java, C++, . . . ) sowie zu ihrem Code und der Struktur ihrer Programme zu der Verwendung GUI-orientierter Sprachen wie Visu- geben. alBasic oder Delphi bietet das LED-Board den Vorteil, Die oben beschriebenen Teilnahmebedingungen, dass sich schnell vergleichsweise spektakuläre Effekte das LED-Board sowie die Java-Bibliothek wurden je- erzielen lassen, ohne sich dazu in APIs einzuarbei- weils gegen Mitte des Semesters in der Vorlesung ten, die den Rahmen einer Einführungsvorlesung übli- vorgestellt und den Studierenden zur Verfügung ge- cherweise sprengen bzw. Zeit für andere grundlegen- stellt. Zu diesem Zeitpunkt konnten wir ein Minimal- de Themen kosten. Dabei kommt auch zum Tragen, verständnis für die Programmierung und die in unse- dass ein physisches Board mit leuchtkräftigen LEDs im rer Veranstaltung verwendete Entwicklungsumgebung Hörsaal bzw. Übungsraum einen anderen optischen Eclipse voraussetzen. Gleichzeitig ergab sich dadurch Eindruck erzeugt als die Beamerprojektion einer Bild- eine Bearbeitungszeit für das Projekt von etwa sechs 2 http://www.swisseduc.ch/informatik/karatojava/ Wochen, wobei die Studierenden diesen Zeitrahmen greenfootkara/index.html durch einen späteren Start oder eine frühere Abgabe 3 http://www.java-hamster-modell.de/index2.html selbstständig verringern konnten. Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 95 Um einen hinreichenden Anspruch der Projekte zu WS 2013/14 SS 2014 gewährleisten, mussten alle Projekt-Ideen vorab mit Einzelteilnehmer 10 7 dem Projektbetreuer abgesprochen und von diesem ge- 2er-Gruppen 5 10 nehmigt werden. Die Schwelle ausreichender Komple- 3er-Gruppen 3 7 xität wurde allerdings bewusst sehr niedrig gehalten, Gesamtzahl Teilnehmer 29 48 um auch die schwächeren Studierenden ansprechen zu können. Einzige feste Vorgabe in beiden Semestern Tabelle 1: Teilnehmerzahlen in den beiden Projekt- war daher, dass ein bewegtes Bild auf dem LED-Board durchläufen im Wintersemester 2013/14 und Som- erzeugt werden musste. Aufgrund der Erfahrungen mersemester 2014. aus der ersten Durchführung haben wir uns beim zwei- ten Mal zusätzlich vorbehalten Projekte abzulehnen, die in dieser oder ähnlichen Formen schon von an- geringere Teilnehmerzahl im Wintersemester dürfte deren Studierenden angemeldet worden waren, da auf die spätere Vorstellung des LED-Boards zurückzu- sonst die Vorstellung am Ende des Semesters unter führen sein. Das Board befand sich zu dieser Zeit noch zu vielen ähnlichen Projekten gelitten hätte. Wurden in der Entwicklung und vor allem die Java-Bibliothek Vorschläge aufgrund dieser Kriterien abgelehnt, wur- erhielt in diesem Semester noch mehrere Updates. den vom Projektbetreuer in der Regel Anregungen Unter den in beiden Semestern eingereichten Pro- gegeben, wie die Projektidee geeignet abgewandelt jekten fand sich eine sowohl in Art und Idee, als werden konnte, um die Zulassungskriterien zu erfül- auch programmiererischer Komplexität und Schwie- len. Wir haben außerdem eine Liste von möglichen rigkeit breite Auswahl an Programmen. Von der nicht- Projekten bereit gehalten, falls Studierende gerne an interaktiven Anzeige einfacher Flaggen anlässlich der dem Projekt teilnehmen wollten, aber noch keine ei- 2014 stattfindenden Fußball-WM, die mit verschiede- genen Ideen hatten. Von diesem Angebot habe einige nen Animationen ineinander übergeblendet wurden, wenige Gruppen Gebrauch gemacht. über liebevoll animierte Landschaften, Feuerwerke, Um die Studierenden nicht darauf zu beschränken, interaktive Laufschriften (eine davon über Twitter ihre Programme am Emulator zu testen, wurde das steuerbar!) und Spiele wie Snake, 4 gewinnt, 2048 Board auch für „Live-Experimente“ im Rahmen ohne- und Tetris, bis zu einem ganzen Programmierungsf- hin mehrfach pro Woche stattfindender Tutorien zur ramework für das Board, dessen Fähigkeiten seine Verfügung gestellt. In diesen Tutorien standen schon Programmierer durch mehrere verhältnismäßig auf- vorher studentische Tutoren dafür bereit, Studieren- wändige Spiele demonstrierten, war deutlich sichtbar de individuell bei der Arbeit an Übungsaufgaben zu eine weite Spanne von Programmierungsanfängern betreuen, so dass der einzige Mehraufwand darin be- bis zu bereits erfahrenen Programmierern abgedeckt. stand, diese studentischen Tutoren in der Handhabung Es kann damit bereits an dieser Stelle festgehalten des LED-Boards zu schulen. Durch dieses Angebot werden, dass das Ziel, die Kreativität der Studieren- konnte insbesondere sichergestellt werden, dass die den nicht einzuschränken und gleichzeitig sowohl An- Studierenden eine Möglichkeit hatten, sich rechtzeitig fänger als auch Fortgeschrittene anzusprechen, voll mit Performanceunterschieden zwischen ihrem eige- erreicht wurde. Im Folgenden werden einige Aspek- nen PC und dem R ASPBERRY P I vertraut zu machen te zum Umgang mit dem Board allgemein und an und tutorielles Feedback zu ihrem Projekt zu erhalten. exemplarischen Projekten aus beiden Semestern im Außerdem wurde so eine Umgebung geschaffen in speziellen diskutiert. der Studierende sich gegenseitig bei der Arbeit am 4.1 Beispiel 1: Einfache Animation (SS Projekt beobachten konnten und auf diese Weise ins 2014) Gespräch kamen, um wechselseitig weiteres Feedback Beim ersten hier vorgestellten Projekt handelt es sich zum Projekt zu geben und zu erhalten. um eine einfache Animation. Ein Ballon bewegt sich vor vorbeiziehenden Wolken und einem statischen 4 Teilnehmerzahlen und Projekte Hintergrund langsam hin und her (siehe Abbildung Im Wintersemester 2013/2014 nahmen zum Zeit- 3). Das Projekt erfüllt damit die Minimalanforderun- punkt der Vorstellung des LED-Boards knapp 300 gen, ohne in seinem Anspruch an irgendeiner Stelle Studierende ernsthaft an der Vorlesung teil, von de- darüber hinaus zu gehen. nen 29 (verteilt auf 18 Gruppen zu einer bis drei Die Umsetzung erfordert einen sicheren Umgang Personen) erfolgreich ein Projekt mit dem LED-Board mit Arrays und Schleifen, ein Verständnis für die kor- durchführten. Im Sommersemester 2014 führten von rekte Zeichenreihenfolge bei sich verdeckenden grafi- etwa gleich vielen Vorlesungsteilnehmern 48 Studie- schen Objekten und bietet Möglichkeiten, einen struk- rende in 24 Gruppen erfolgreich ein Projekt mit dem turierten Programmaufbau zu üben. LED-Board durch (siehe Tabelle 1). Hinzu kamen in Im uns vorliegenden studentischen Quellcode lässt beiden Semestern weitere Anmeldungen, für die bis sich tatsächlich eine klare Strukturierung erkennen. zum Einsendeschluss jedoch gar keine oder keine zu- Der Code ist vollständig in einer Javaklasse unterge- friedenstellende Einreichung abgegeben wurden. Die bracht und durch Methoden in sinnvolle Einheiten 96 Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 Abbildung 3: Drei direkt aufeinander folgende Screenshots aus einer einfachen Animation mit einem bewegten Ballon vor vorbeiziehenden Wolken, siehe Abschnitt 4.1. gegliedert. Auch wenn mehr Strukturierung denkbar den. Aus Sicht des Programmierers ist es effizienter wäre, ist der verwendete Ansatz für das Problem völ- das letzte Schlagenglied zu entfernen und ein neues lig ausreichend und ein Grundverständnis für die Pro- Glied an den Kopf der Schlange zu setzen. Die mittle- grammierung deutlich aus dem Quellcode abzulesen. ren Schlangenglieder müssen dadurch nicht geändert Weitergehende Konzepte der Objektorientierung, die werden. Isst die Schlange einen Apfel, muss ein neues auch Thema der Vorlesung waren, fanden sich in die- Schlangenglied an die Schlange angehängt werden. sem Projekt nicht wieder. Die hier beschriebenen Mechanismen sind mit einer Projektumfang und Programmaufbau legen die Ver- Liste deutlich einfacher zu implementieren als mit mutung nahe, dass es sich bei den Studierenden um einem Array. Anfänger im Bereich der Programmierung gehandelt hat, die mit diesem Projekt Sicherheit erhalten woll- Sowohl Objekte und Klassen, als auch dynamische ten, indem sie in der Vorlesung erworbene grundle- Datenstrukturen wie Listen wurden in der Vorlesung gende Programmierfähigkeiten durch weitere Übung rechtzeitig eingeführt, um die Verwendung in einem festigen wollten. Insbesondere ist nicht zu erkennen, der studentischen Projekte zu ermöglichen. Außer- dass die Studierenden Kenntnisse von außerhalb der dem erfordert eine Implementierung des Spiels eine Vorlesung in das Projekt eingebracht haben oder sich einfache Gameloop, d.h. eine Schleife, die wiederholt für das Projekt zusätzliche Kenntnisse angeeignet und Nutzereingaben abfragt und die Spielwelt entspre- ausprobiert haben. chend anpasst. Zu beachten ist dabei, dass das Spiel beim Warten auf Eingabe nicht pausiert, sondern sich 4.2 Beispiel 2: Interaktives Spiel (WS der Spielzustand auch unabhängig von einer Eingabe 2013/2014) weiterentwickelt. Das zweite hier vorgestellte Projekt ist eine Implemen- tierung des Spiels „Snake“. Bei diesem Spiel bewegt Allen vier eingereichten Projekten war anzusehen, sich eine vom Spieler zu steuernde Schlange in den dass die Studierenden sich um eine geschickte Struk- vier Grundrichtungen über das Spielfeld und sammelt turierung ihres Codes bemüht hatten, was in einigen Äpfel auf, wodurch die Schlange immer länger wird. Fällen gut, in anderen weniger gut gelang. Die Projek- Das Spiel ist beendet, sobald die Schlange entweder te wurden in zwei bis zehn Klassen untergliedert und mit sich selbst oder dem Spielfeldrand kollidiert. Tat- in einem Fall auf mehrere Packages verteilt. In einem sächlich war die Spielidee so beliebt, dass allein im Projekt erfolgte ein Rückgriff auf die in der Vorlesung Wintersemester 2013/2014 vier verschiedene Teams vorgestellten Listenkonzepte. Implementierungen dieses Spiels eingereicht hatten. In allen vier Projekten ist es den Studierenden ge- Eine dieser Implementierungen ist beispielhaft in Ab- lungen, ein funktionierendes Snake-Spiel zu imple- bildung 4 wiedergegeben. mentieren. Neben der Basisfunktionalität fanden sich Für eine gute Implementierung von Snake bietet in allen Projekten zusätzliche Gimmicks wie Eingangs- sich der Einsatz von Objekten und Klassen an, insbe- und Abschlussanimationen, wählbare Schwierigkeits- sondere die Verwendung einer dynamischen Daten- grade und Punktzahlanzeigen, was die Motivation der struktur. Die Schlange besteht aus einer Folge von beteiligten Studierenden unterstreicht. Einzelpositionen, was die Verwendung eines Arrays oder einer Liste zum Verwalten der Einzelpositionen In einem der Projekte ist die selbstständige Verwen- nahelegt. Eine Fortbewegung der Schlange im Spiel- dung von Threads zu sehen, die anderen drei Projekte verlauf bedeutet aus Spielersicht, dass alle einzelnen verwenden keine über den Inhalt der Vorlesung hin- Schlangenglieder um ein Feld vorwärts bewegt wer- ausgehenden Konzepte. Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 97 Abbildung 4: Drei Screenshots aus aufeinander folgenden Spielsituationen im Spiel „Snake“, siehe Abschnitt 4.2 Abbildung 5: Ausgewählte Demonstrationen des studentischen Framework aus Abschnitt 4.3. Links: Ein Heli- koptershooter mit dem Spieler in grün, beweglichen Hindernissen in rot und Spielumgebung in grau. Rechts: Supermario, eingelesen aus einer Bilddatei. 4.3 Beispiel 3: Framework (WS 2013/2014) Quadtrees zeigen, dass die beiden Studierenden schon Das dritte hier vorgestellte Projekt hat unsere Erwar- vor unserer Programmierungsvorlesung umfangreiche tungen bei weitem übertroffen. Die dahinter stehen- praktische Erfahrungen gesammelt haben. den zwei Studierenden haben sich nicht damit zufrie- Der Aufwand für dieses Framework muss schon al- den gegeben ein Spiel zu schreiben, sondern haben lein aufgrund des Umfangs sehr hoch gewesen sein gleich ein ganzes Framework für das LED-Board an- und belegt, dass mit dem LED-Board auch fortgeschrit- gefertigt und dieses Framework an mehreren nicht tene Studierende angesprochen und motiviert werden trivialen Anwendungen und Spielen demonstriert. In können. Abbildung 5 sind zwei ausgewählte Beispiele zu sehen. Im Framework ist unter anderem Unterstützung für 4.4 Allgemeines zu den Projekten das Verarbeiten von Polygonen und Sprites zu finden. Die vorgestellten Projekte gewähren einen guten Ein- Des weiteren findet sich eine Kollisionserkennung für druck von der Bandbreite der abgegebenen Projekte. diese Objekte, wahlweise per Hitbox oder pixelba- Unter allen angenommenen und am Ende in der Vor- siert. Außerdem besteht die Möglichkeit, Bilder aus lesung präsentierten Programmen fanden sich natur- Bitmasken oder gespeicherten Dateien in üblichen gemäß auch ein paar schwächere Projekte, deren Ur- Grafikformaten auf dem Board darzustellen. Dabei heber vor allem zwecks Erwerb der Klausurzulassung unterstützt das Framework auch das Scrolling von teilnahmen. Der Anteil dieser Projekte an sämtlichen Bildern oder Masken, deren Auflösung größer als die präsentierten Projekten blieb allerdings mit unter ei- des LED-Boards ist. Zur Demonstration des Frame- nem Fünftel erfreulich gering. Insgesamt ungefähr ein works waren mehrere Programme beigelegt, die das Viertel der Anmeldungen führte allerdings gar nicht Framework nutzen und sehr gut strukturiert sind. Fra- erst zu Abgaben. mework und Demonstrationsprogramme bestehen aus Aus den Erfahrungen der Tutorien, des Codereviews insgesamt 95 Klassen, die in 26 Packages organisiert und des uns vorliegenden Quellcodes offenbarte sich sind. an vielen Stellen eine große Experimentierfreude. So Der hohe Organisationsgrad, die Komplexität und versuchten sich viele Studierende in der Verwendung die Verwendung fortgeschrittener Konzepte wie von Konzepten, die bis dahin nicht Teil ihres Studi- 98 Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 Projekt LOC Klassen Testatpunkte Spaß Training Preis Einfache Animation (SS 2014) 118 1 82% 66% 48% 21% Interaktives Spiel ((WS 2013/14) 302 3 Framework ((WS 2013/14) 4509 95 Tabelle 3: Motivation zur Teilnahme (Mehrfachnen- Durchschnitt aller Projekte 710 6 nungen möglich) Tabelle 2: Umfang ausgewählter Projekte und Durch- 5 Rückmeldung der Studierenden schnitt aller Projekte. Die LOC-Metrik berücksichtigt nur reine Codezeilen und ignoriert Leerzeilen und Neben persönlichem Feedback haben wir zum Ab- Kommentarzeilen. schluss der Projekte in beiden Semestern jeweils einen anonymen Umfragebogen zum LED-Board ausfüllen lassen. Gefragt wurden ausschließlich Studierende, ums waren. Vielfach wurden Threads verwendet, die die auch ihr Projekt vorgestellt hatten. Die hier prä- JavaAPI wurde mehrfach für die Generierung von Zu- sentierten Ergebnisse wurden aus insgesamt 71 aus- fallszahlen und für Filehandling verwendet und damit gefüllten Umfragebögen beider Semester zusammen- einhergehend war auch Exceptionhandling zu sehen. getragen. Gefragt wurde Ferner zeigten sich immer wieder Studierende offen • nach den Gründen zur Teilnahme an dem LED- für Vorschläge, die über ihr ursprüngliches Projektziel Projekt, hinausgingen. Nicht immer waren diese Experimente von Erfolg gekrönt, dennoch waren sie ein weiteres • ob sich das eigene Programmierverständnis nach Indiz für die Motivation. Umgekehrt scheiterten lei- eigener Einschätzung verbessert hat, der auch einige Studierende an ihren ursprünglichen Zielen und mussten sie herunterschrauben. In den Co- • ob die Teilnehmer für sich ein überdurchschnittli- dereviews zeigte sich zudem, dass auch in den Teams ches Klausurergebnis erwarteten, stets alle Beteiligten tatsächlich programmiert hat- ten. Es liegt nahe, dass dies zumindest zum Teil auch • wie sich die Motivation der Teilnehmer mit dem darauf zurückzuführen ist, dass das Board keine Mög- Projektverlauf entwickelt hat lichkeiten bietet, sich mit anderen Arbeiten (z.B. dem • und ob das Projekt die Erwartungen der Teilneh- Erstellen hübscher Icons) einzubringen. mer erfüllt hat. Allen Projekten war zu eigen, dass den Teilnehmern die Notwendigkeit guter Codestrukturierung unmittel- Außerdem bot der Umfragebogen Raum für freie Kom- bar vor Augen geführt wurde, wenn auch nicht alle mentare aller Art. Studierenden in der Lage waren, eine solche Struktu- 5.1 Gründe zur Projektteilnahme rierung mit ihren Mitteln zu erreichen. Einige Daten zum Umfang der oben vorgestellten Projekte gemes- Als mögliche Gründe für die Projektteilnahme waren sen in Codezeilen (LOC) sowie zum Organisationsgrad • Testatpunkte gemessen in der Zahl der Klassen sind in Tabelle 2 auf- geführt. Der in der Tabelle angegebene Durchschnitt • Spaß bezieht sich auf alle abgegebenen Projekte aus beiden Semestern. Dabei ist zu bemerken, dass sehr starke • Training der eigenen Fähigkeiten Unterschiede zwischen einzelnen Projekten auftragen: Drei Projekte mit je über 1000 LOC waren jeweils in • der Sachpreis für den ersten Platz nur einer Klasse realisiert, während fünf andere Pro- • und sonstiges jekte jeweils einen Schnitt von weniger als 50 LOC pro Klasse erreichten. gegeben, wobei Mehrfachnennungen möglich waren. In den Tutorien und spätestens im abschließenden Das zusammengefasste Ergebnis ist in Tabelle 3 an- Codereview konnten den Studierenden in den meisten gegeben. Insgesamt haben 82% der Teilnehmer den Fällen zahlreiche Hinweise gegeben werden, die ihren Erwerb von Testatpunkten als Grund genannt. Bemer- Code verbessern und vor allem den Sinn vieler in der kenswert ist dabei jedoch, dass viele Teilnehmer zum Vorlesung vorgestellten Konzepte an interessanten, da Zeitpunkt der Vorstellung ihrer Projekte ihre Klausur- von den Studenten selbst ausgedachten und gewähl- zulassung bereits hatten, und sie dennoch zu Vorstel- ten, Szenarien verdeutlichen. Softwarekonstruktion lung und Codereview gekommen sind. und wie man guten Code schreibt waren nur am Ran- Sehr erfreulich ist die hohe Zahl der Teilnehmer de Thema unserer Programmierungsvorlesung. Durch die Spaß am Board (66%) oder Training der eigenen das LED-Projekt konnten die meisten Teilnehmer den- Fähigkeiten (48%) als Motivation angegeben haben. noch in einem Maß für diese Problematiken sensibili- Zu untersuchen bleibt, aus welchen Gründen sich Stu- siert werden, das wir ohne das Projekt nicht erreicht dierende gegen eine Teilnahme am LED-Projekt ent- hätten. schlossen haben. Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 99 hoch fallend niedrig steigend 5.5 Erwartungen an das Projekt 46% 21% 6% 27% Auf einer Skala von 0 (gar nicht) bis 4 (vollständig) sollte angegeben werden, ob die Erwartungen der Tabelle 4: Motivationsverlauf Teilnehmer an das Projekt erfüllt wurden. Mit dem Mittelwert von ca. 3,0 können wir erfreulicherweise feststellen, den Erwartungen im Wesentlichen gerecht 5.2 Verbesserung des eigenen geworden zu sein. Programmierverständnisses 5.6 Freie Kommentare Die Verbesserung ihres eigenen Programmierverständ- nisses sollten die Teilnehmer auf einer Skala von 0 Neben der Umfrage sprechen vor allem die Einzel- (gar nicht) bis 4 (sehr stark) einschätzen. Über alle kommentare, die direkten Rückmeldungen an die Pro- Teilnehmer gemittelt hat sich hier ein Wert von ca. 2,3 jektbetreuer sowie die rege Teilnahme an dem Wettbe- ergeben. Für den Großteil der Teilnehmer erbrachte werb für eine große Akzeptanz des Projektes. Kritisiert das Projekt im subjektiven Eindruck also eine spürbare wurden von den Studierenden insbesondere techni- Verbesserung der eigenen Fähigkeiten. sche Aspekte wie z.B. die geringe Zahl von 12x12 LEDs und die Leistungsfähigkeit des R ASPBERRY P IS. Studierende, die bei der Motivation angegeben ha- Die Umfrageauswertung lässt insgesamt den ben, ihre eigenen Fähigkeiten trainieren zu wollen, Schluss zu, dass das Board und der zugehörige Emu- haben in der Kategorie „Verbesserung des eigenen lator gute Werkzeuge zum selbstständigen Training Programmierverständnisses“ im Schnitt ca. 2,6 ange- sind und von den Studierenden auch zu diesem Zweck geben, was signifikant über dem Gesamtschnitt von akzeptiert werden. 2,3 liegt. 5.3 Erwartungen an die Klausur 6 Ausblick und weiterer Einsatz In kommenden Programmierveranstaltungen werden Mit den Antwortmöglichkeiten „Ja“ und „Nein“ soll- wir sicherlich wieder einen Wettbewerb auf dem LED- ten die Teilnehmer einschätzen, ob sie ein überdurch- Board anbieten. Da das LED-Board fertiggestellt ist schnittliches Klausurergebnis erzielen werden. 45% und die Bibliothek von ihren Kinderkrankheiten be- erwarteten ein überdurchschnittliches Ergebnis, die freit, ist der durch den Wettbewerb entstehende Mehr- restlichen 55% nicht. Da die Umfrage anonym durch- aufwand für das Lehrpersonal sehr gering für den geführt wurde, kann leider nicht überprüft werden, deutlich positiven Effekt. ob die Erwartungen mit den tatsächlichen Klausurer- Neben der gegenwärtigen Verwendung ist es auch gebnissen übereinstimmen. denkbar, das Board oder zumindest den Emulator in 5.4 Motivationsverlauf die eigentliche Vorlesung und/oder die Übungen zu integrieren. Insbesondere Schleifen und Arrays lassen In der Frage nach dem Motivationsverlauf war eine sich an dem Board sehr anschaulich demonstrieren. der vier Möglichkeiten „hoch“, „fallend“, „niedrig“, Für Übungsaufgaben bieten sich Board und Emulator „steigend“ zu wählen. Die Ergebnisse sind in Tabelle 4 ebenso an. aufgeführt. Mit kleinen Anpassungen der LED-Bibliothek ist 73% der Studierenden gab einen dauerhaft hohen auch eine Einbindung in unserer automatisches oder mit der Zeit steigenden Motivationsverlauf an. In- Übungs- und Prüfungssystem JACK (Striewe u. a., teressant zu erfahren wäre für zukünftige Erhebungen, 2009) möglich. Sich auf automatisch auswertbare Auf- warum bei den übrigen 27% die Motivation gelitten gaben zu konzentrieren würde allerdings einen sehr hat. Es ist nicht ersichtlich, ob die Gründe dafür im großen Aufwand und eine starke Einschränkung der LED-Projekt selbst oder in äußeren Umständen wie Nutzungsmöglichkeiten des Boards bedeuten. z.B. Zeitdruck liegen. Neben dem Einsatz in der Erstsemestervorlesung Eine weitere Analyse der Daten zeigt, dass Teilneh- wurde das LED-Board auch schon mit interessierten mer die aufgrund von Spaß am Board oder um die Schülern in Workshops, fortlaufenden AGs oder ande- eigenen Fähigkeiten zu trainieren teilnahmen, leicht ren Veranstaltungen zur Studiengangswerbung in der überdurchschnittlich oft eine hohe oder steigende Mo- Informatik verwendet. tivation aufwiesen. Der Preis hatte dagegen keinen erkennbaren Einfluss auf die Motivation. Teilnehmer 7 Fazit die Testatpunkte als einen von mehreren Teilnahme- Insgesamt betrachten wir den Einsatz des LED-Boards gründen angegeben haben, wiesen im Schnitt einen als erfolgreich, da (1) das Board von den Studieren- geringfügig schlechteren Motivationsverlauf auf. Be- den wie erwartet einfach und ohne nennenswerte trachtet man die Teilnehmer, die ausschließlich der technische Probleme nutzbar war, (2) sowohl einfa- Testatpunkte wegen ein Projekt eingereicht hatten, che als auch anspruchsvolle Projekte auf dem Board weist sogar nur ein Drittel dieser Teilnehmer eine ho- realisiert wurden, (3) optisch ansprechende Ergeb- he oder steigende Motivation auf. nisse in einer wettbewerbsartigen Form im Hörsaal 100 Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 präsentiert werden konnten, (4) eine große Breite an verschiedenartigen Projekten realisiert wurde und (5) die Mehrheit der teilnehmenden Studierenden ei- ne hohe Motivation aufwies und durch ihre Arbeit belegte. Dem Aufwand bei der Vorbereitung des Boards steht somit insbesondere ein messbarer Erfolg bei der Stei- gerung der Motivation der Studierenden entgegen, der mindestens mit einem subjektiv höheren Lerner- folg verbunden ist. Literatur [Henriksen u. Kölling 2004] H ENRIKSEN, Poul ; KÖL - LING , Michael: greenfoot: Combining Object Visua- lisation with Interaction. In: OOPSLA ’04: Compa- nion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications. New York, NY, USA : ACM, 2004. – ISBN 1–58113–833–4, S. 73–82 [Striewe u. a. 2009] S TRIEWE, Michael ; B ALZ, Mo- ritz ; G OEDICKE, Michael: A Flexible and Modular Software Architecture for Computer Aided Assess- ments and Automated Marking. In: Proceedings of the First International Conference on Computer Supported Education (CSEDU), 23 - 26 March 2009, Lisboa, Portugal Bd. 2 INSTICC, 2009, S. 54–61 Axel Schmolitzky, Anna Sabine Hauptmann (Hrsg.): SEUH 2015 101