Kara

Werbung
Ideenskizze zu einem Fortbildungs-(Lehrer) und Ausbildungs- Konzept zum
spielerischen Erlernen der Programmiersprache JAVA
Zielgruppe:
Primäre Zielgruppe sind Kinder und Jugendliche, die einen spielerischen und spannenden
Einstieg in die Welt der Programmierung erhalten sollen
Voraussetzungen:
Für alle oben genannten Zielgruppen werden keinerlei Erfahrungen in Programmierung
vorausgesetzt. Die Teilnehmer sollen ohne die komplexen Anforderungen einer professionellen
Entwicklungsplattform die grundlegenden Konzepte von Programmierung kennen lernen.
Professionelle Programmierumgebungen eignen sich im Unterricht nur schlecht für die ersten
Schritte, das die Bedienung der Entwicklungsumgebung und nicht die Lösung von
programmierbaren Problemen im Vordergrund steht. Neben der Vielfalt von Programmteilen
vie Programmeditor, Compiler Debugger und Bibliotheken hat der lernende auch noch die
hohen Hürden der Programmiersyntax zu überwinden. Dabei zeigt sich in der Praxis , dass die
modernen Programmiersprachen alles andere als intuitiv oder verständlich sind. Auch die
Methoden der objektorientierten Programmierung erschlagen die meisten Lerner zunächst
einmal mit den sehr aufwendigen Beschreibungen und Analysen der „Grossen Welt“ welche
auch nicht zum Erfahrungshorizont von Schülern gehört.
•
•
•
•
•
•
•
•
Aus den obigen Argumenten ergeben sich einige einfache Forderungen an
Programmierausbildungen:
Verwenden einer Programmiersprache mit kleinem, rasch überblickbarem und
anwendbarem Sprachumfang.
Visuelle Darstellung des Programmablaufs
Konkrete anschauliche Problemstellungen
Einfachste Entwicklungsumgebung
Geringe Turn around Zeiten
Nahtloser Übergang zu komplexeren Anforderngen
Nahtloser Übergang zu realen Programmiersystemen
In der Vergangenheit gab es schon einige Versuche diesen Anforderungen gerecht zu werden.
Meisten wurde im Zuge dieser Bemühungen eine eigen neue Programmiersprache und
Umgebung geschaffen. ( LOGO, Karel the Robot)
Die meisten dieser Miniumgebungen konnten nur einen teil der obigen Forderungen erfüllen.
Spätestens beim letzten Schritt zu den praxisbewährten Programmiersystemen versagten die
meisten Lösungen.
Zur Lösung dieses Problems wurde ein System zur Programmierung entwickelt welches sich in
hervorragendem Masse für die Ausbildung eignet. Eine der Kernannahmen sind:
•
Die Benutzung eines endlichen Automaten ist in der Komplexität deutlich geringer als
die einer Programmiersprache. Die ermöglicht gerade dem Programmieranfänger einen
leiten Einstig.
Johannes Georg Grosskamp
•
Komplexe Sprachkonzepte, wie die Trennung von Programm- und Datenspeicher für
Variablen sowie prozedurale Konzepte u.v.m. werden nicht benötigt.
•
Das Modell eines endlichen Automaten gehört zu unserer täglichen Lebenserfahrung
und wird daher sehr leicht verstanden uns akzeptiert.
Die grafische Entwicklungssumgebung
Das Kind dieser Bemühungen heißt Kara (entstammt der eth Zürick) und wird ausführlich im
„Informatik Spekrum“ Organ der Gesellschaft für Informatik e.V. Band 23 Heft 5 im Oktober
2000 vorgestellt. (Seite 309-315) Informationen zu Kara und kostenfrei Ressourcen werden im
Internet zur Verfügung stellt.
Kara ist ein Marienkäfer, der in einer einfachen grafischen Welt auf dem Bildschirm lebt. Er
kann programmiert werden, um in seiner Welt Aufgaben zu erledigen, zum Beispiel Kleeblätter
zu sammeln. Kara wird in einer grafischen "Entwicklungsumgebung" programmiert. Kara’s
Programme werden rein grafisch mit der Maus als endliche Automaten "zusammengeklickt".
Keine Syntax der verwendeten Sprache muss erlernt werden, Syntaxfehler gibt es nicht! Jedes
erstellte Programm kann sofort gestartet werden. Die Schüler/innen können sich von Anfang an
auf ihre Hauptaufgabe konzentrieren: Korrekte Programme zu schreiben, die genau das tun,
was von ihnen verlangt wird. Und darum sollte es beim Programmieren eigentlich gehen!
Die Lebenswelt
Der Editor
Ein Beispielprogramm zeigt die recht einfache Struktur der Aufgaben:
Johannes Georg Grosskamp
Aufgabe – Kara, der Blätterfetischist
Schreiben Sie ein Programm, das Kara bis zum nächsten Baum führt.
Liegt auf einem Feld ein Blatt, soll Kara es aufnehmen; liegt auf einem
Feld kein Blatt, eines hinlegen. Bei dem Baum angekommen ist das
Programm zu beenden.
Für den Einsatz im Unterricht stehen jetzt schon verschienste Unterstützungen zur Verfügung.
:
•
Ein Leitfaden, der sich an Lehrer/innen richtet . Er zeigt die Lernziele auf, die ein
Einsatz von Kara verfolgt, und gibt eine kurze Einführung in die Programmierung von
Kara. Dazu werden endliche Automaten anhand eines Geldautomaten kurz erklärt.
•
Folien für Lehrer/in-Vorträge. Kommentiert sind diese Folien im oben genannten
Überblick . Die Vorträge decken einiges an Stoff ab: ein Vortrag, der als Einführung
gedacht ist, einer zum Thema strukturiertes Vorgehen beim Programmieren sowie ein
Vortrag zu den Grenzen von Kara's Fähigkeiten.
•
Aufgabenblätter für die Schüler/innen. Zu jeder Aufgabe gibt es eine Musterlösung für
die Lehrer/innen. Diese Lösungen verraten auch, was der eigentliche Kern der Aufgabe
ist. Es hat Aufgaben unterschiedlichen Schwierigkeitsgrades; jede Aufgabe ist mit
ihrem Schwierigkeitsgrad versehen.
•
Es hat Welten für die Aufgaben, die zum Testen der Programme der Schüler/innen
gedacht sind. Für die Lehrer/innen hat es zusätzlich die Programme der
Musterlösungen, damit diese einfach ausprobiert werden können.
Die nächste Entwicklungsstufe auf dem Lernweg ist Lego-Kara.
LegoKara ist ein Roboter, der auf dem Lego Mindstorms Set basiert. LegoKara wird in der
Umgebung von Kara programmiert.
LegoKara ermöglicht es Schülerinnen und Schülern, ihre Karaprogramm an einem physischen
Roboter zu testen. Aus der virtuellen Bewegung von Kara am Bildschirm wird eine Bewegung
des LegoKara durch das Schulzimmer. So ist das Programmieren weniger abstrakt - und es
macht noch mehr Spass!
Johannes Georg Grosskamp
Der Vorgang des Programmierens wird wesentlich konkreter und anschaulicher als Lösung
eines real existierenden Problems. Ausserdem tauchen in dieser realen Welt Probleme auf, die
in der idealisierten, diskreten Welt von Kara keine Rolle spielen. ( z. B. Die Ungenauigkeit
eines Wendemanövers durch Reibungsverluste der Legoketten am Boden)
Das Ziel: Programmieren mit dem JAVA SDK
In bisherigen Ansätzen mussten die Schüler und Schülerinnen beim Übergang zu einer
Programmiersprache nicht nur Abschied von ihren grafischen Miniwelten nehmen, sondern
auch die geübten Programmierelemente aufgeben.
Um den Übergang wesentlich sanfter und nachvollziehbarer zu gestalten wird „JAVAKARA“
eingesetzt. Während Kara mit der Welt des Marienkäfers vertraut machte und eine grafische
Programmierung einführte, kann mit JavaKara der gleiche Marienkäfer in der vertrauten
Umgebung programmiert werden. Die Programmiersprache ist aber JAVA.
Die Schüler und Schülerinnen können sich anfangs darauf konzentrieren den Programmeditor
und Compiler JAVAC zu bedienen indem sie einfache Aufgaben aus der schon geleisteten
KARA Programmierung übertragen. Sind die ersten Hürden mit der Entwicklungsumgebung
genommen können komplexere Aufgaben erarbeitet werden und die verschiedensten
Sprachelement von Java eingeführt werden.
Um dabei am Anfang die Komplexität der objektorientierten Eigenschaften von Java
auszublenden und die Konzentration auf die in jeder Programmiersprache verwendeten Datenund Kontrollstrukturen zu lenken können in dieser Phase vorgefertigte Programmierschablonen
eingesetzt werden.
Die Programmierschnittstelle JAVAKARA stellt eine Klasse zur Verfügung die den zugriff auf
die Objekte KARA und dessen Welt ermöglicht. Die implementierten Methoden entsprechen
denen der grafischen Welt von KARA.
Sind die Beispiele und Übungen von KARA übertragen, sollten sich die Schüler und
Schülerinnen in die Lage versetzt sehen mit Hilfe von allgemeiner Ausbildungsliteratur die
noch fehlenden Schritte zum perfekten JAVA zu erarbeiten.
Das oben vorgestellte System eignet sich unserer Meinung nach in besonderes guter Weise zur
Aus- und Weiterbildung von Lehrern. Fachfremde Lehrer können in sehr praktischer
Orientierung die Grundlagen der Programmierung erarbeiten. Die Erarbeitung auf sehr
spielerische Art ermöglicht die Einführung telekooperativer Arbeitselemente in die
Ausbildung. Der geringe Sprachumfang und die einfache Programmierwelt ermöglichen eine
sehr kurze Einführung in die Programmierung in einem Präsenztraining. Anhand der
zukünftigen Unterrichtsmaterialien kann der Stoff selbst erlebt werde. Gleichzeitig kann schon
in dieser Phase die Zusammenarbeit und Weiterbildung mit Internetunterstützung eingeführt
werden. Dabei geht es nicht um das Abarbeiten komplexer Online Trainings via Internet. Eine
einfache Telekooperationsplattform wie z.B. BSCW (Basic Support for Cooperative Working)
stellt für diese Lernstoff ein gut Lernunterstützung dar. Ein Trainer der KARA in einem
Präsenztraining eingeführt hat, kann die Gruppenteilnehmer im Stoff sehr gut weiterführen. Die
Aufgabenstellungen in KARA sind sehr einfach formuliert und können ohne tiefgreifende
Erklrungen verstanden werden. Die Lösung der Aufgaben ist die Aufgabe der Einzelnen oder
von Kleingruppen, für die eine Präsenz im Klassenraum nicht erforderlich ist. Die Lösungen
können hervorragen in Heimarbeit bearbeitet werden, mit Kollegen diskutiert und mit dem
Trainer ausgetauscht werden. Hierbei kann der Trainer neben einer individuellen Betreuung
Johannes Georg Grosskamp
Einzelner auch neue Kooperationsformen der Lerner einüben. Mit der fortschreitenden
Sammlungen von Aufgabenlösungen kann eine solche Lerngruppe die ersten Bausteine von
Unterrichtsmaterialien zusammentragen, die mit den zukünftigen Schülern bearbeitet werden
können. Zusätzlich zu vorgefertigten Aufgaben können die Gruppen an das Erstelen von
eigenen Aufgaben herangeführt werden. Ziel ist die Schaffung einer kleinen
Arbeitsgemeinschaft, die sich während ihrer eigenen Programmierausbildung gleichzeitig einen
ständig wachsenden Aufgaben und Materialienpool erstellt.
Nutzen viele parallele Ausbildungsgruppen ein solches Konzept ist sicherlich Sinnvoll nach
einiger Zeit die Sammlungen verschiedener Gruppen zu Bibliotheken zusammenzufassen.
Eine gewisse Leistungskontrolle entsteht bei zu Einführung von LEGOKARA. Dieser Teil ist
wegen seiner Hardwareanforderungen nicht mehr in einem Fernlern Szenario zu leisten. Die
Übertragung der KARA Programme in reale Aufgabenlösungen eines Roboters bietet noch
einmal die Möglichkeit seinen Leistungsstand zu überprüfen und zu entscheiden ob der Schritt
in die JAVA Welt angegangen werden kann.
Die in der ersten Phase eingeführten Arbeitsformen der Telekooperation können ohne
Änderungen auch in der JAVA Ausbildung eingesetzt werden. In einer Präsenzphase werden
die technischen Probleme der Installation und Inbetriebnahme des JDK angegangen. BSCW
bietet mit seinen Kommunikationsmöglichkeiten, gerade nach diesem Trainingsabschnitt, eine
gute Unterstützungsplattform für Trainer und Teilnehmer, denn erfahrungsgemäss tauchen die
meisten Problemen mit JAVA schon in der Installationsphase auf. Hier können Teilnehmer sich
gegenseitig supporten und notfalls den Trainer einbinden.
Für die Erarbeitung der Programmiersprache JAVA mit Hilfe von KARAJAVA gelten die oben
genannten Abläufe und Ideen.
Nach dem Ende dieser Einführungseinheit sind die Teilnehmer in der Lage durch
Eigenstudium, CBT , WBT oder einen klassischen Programmierkurs ihre Kenntnisse in JAVA
zu vertiefen. Unserer Erfahrung nach wird aber die intensive Nutzung des Internets als
Kooperationsplattform dazu führen, dass die Teilnehmer die Netzressourcen NEWs Groups,
News Letter, JAVA Site´s etc. viel stärker nutzen lernen, und anhand von komplexer
werdenden Aufgabenstellungen in das Thema eindringen werden.
Da fast alle Programmieraufgaben sehr viel Zeit in Anspruch nehmen, auch wenn sie sehr
einfach sind, kann die natürliche Begrenzung der Arbeitszeit von Schülern durch die
Unterrichtsstunden dahingehend entgegengewirkt werden, dass auch im späteren Unterricht
internetgestützte Kooperationsformen eingeübt werden. Diese Schlüsselqualifikationen werden
als positiver Seiteneffekt gleich mit vermittelt.
Johannes Georg Grosskamp
Ablaufskizze JAVA programmieren lernen in
einem medienintergrieten Training
Telekooperationstechniken
Einführung
eingesetzte
Werkzeuge
KARA
KARA
Einführung
Entwicklungsumgebung
Aufgaben lösen mit
KARA
BSCW als
Kooperationsplattform im
Unterricht mit
KARA
BSCW
Dateien und Verzeichnisse
gemeinsam nutzen
1-3 Tage Präsenztraining
Themenblock
e-Mail Funktionen
Einrichten der
Entwicklungsumgenung auf dem
heimischen
Rechnern
Diskussionsgruppen
Internet Recherchen
BSCW
Dokumentenmanagement
Versionskontrolle
Johannes Georg Grosskamp
2-6 Wochen
tutoriell gestütztes Selbstlernen
KARA
Augaben
Erarbeiten von
Daten und
Programmstrukturen in KARA
LEGOKARA
Einführung in die
Robotik mit KARA
LEGOKARA
Entwicklungsumgebung
1-3 Tage
Präsenztraining
Lego Mind Storms
Not Quite C
NQC Tool
Teamorganisation
JAVA SDK 1.3
synchrone Kommunikation
Javakara
Entwicklungsklassen
shared Whiteboard
Aufbau einer
Beispiel und
Aufgabenbibliothek
Applikation sharing
BSCW
Unterstützung bei
Programmier- und
Einführungsproble
men
Johannes Georg Grosskamp
Daten veröffentlichen
Start einer dauerhaft arbeitenden
Arbeitsgruppe
Umsetzen der
Übungen aus Kara
in Javakara.
Erweiterung der
Übungen und des
Wissen.
Javakara
Entwicklungsklassen
2-6 Wochen
JAVA SDK 1.3
Einführung von
JAVAKARA
Einführung der
Klassen, Methoden
und Schablonen
1-3 Tage
Präsenztraining
optionale Selbstlernphase
Quellenachweis JAVAKARA:
Der Urvater von Kara ist "Karel, the Robot" (siehe [1],[2]). Die Idee wurde vielfach
aufgenommen ([3],[4],[5],[6],[7]) und im Unterricht eingesetzt. Die neue Idee zu Kara wurde
erstmals in [8] beschrieben.
[1] Pattis, Richard E. Karel the Robot: A Gentle Introduction to the Art of Programming. John
Wiley & Sons, 1981.
[2] Karel the Robot Homepage. http://www.mtsu.edu/~untch/karel/index.html
[3] Blaha, Georg; Köck, Martin; Lingl, Gregor; Mayer-Maly, Rita; Winterstein, Kurt. Werkzeug
Computer. Verlagsbuchhandlung Pichler, Wien 1986.
[4] Hermes, Alfred; Stobbe, Dieter. Informatik Eins. Ernst Klett Verlag, Stuttgart 1988.
[5] Hermes, Alfred; Sennholz, Klaus. Informatik betrifft uns. Ausgaben 3/92 und 3/94.
Bergmöser + Höller Verlag, Aachen.
[6] Hartmann, Werner; Reichert, Raimond. Grundkurs "Einsatz von Informatikmitteln" an
einem Gymnasium. http://educeth.ethz.ch/informatik/grundkurs/
[7] Bergin, Joseph; Stehlik, Mark; Roberts, Jim; Pattis, Richard. Karel++: A Gentle
Introduction to the Art of Object-Oriented Programming. John Wiley & Sons, 1997.
http://csis.pace.edu/~bergin/karel.html
[8] Nievergelt, Jürg. Roboter programmieren – ein Kinderspiel. Bewegt sich auch etwas in der
Allgemeinbildung? Informatik Spektrum, wird 1999 erscheinen. Verlag Springer.
[9] Boles, Dietrich. Der Java-Hamster. http://www-is.informatik.unioldenburg.de/~dibo/hamster/
Johannes Georg Grosskamp
Herunterladen