(Das Wichtigste zuerst)
K
 
(74 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
<div class="hinweisInfo">
 
<div class="hinweisInfo">
Sie sind Lehrer und möchten sich informieren, wie die Engine in den '''Informatik-Unterricht''' integriert werden kann? Dann sind Sie hier richtig!
+
* '''Die hier angebotenen Unterrichts-Materialien setzen die NEUE Version 3.2 vom April 2017 voraus. Bitte laden Sie alle Projekt-Vorlagen neu herunter!'''
 +
* Lieb gewonnene, ältere Materialien finden Sie derzeit noch auf der Schüler-Ansicht.
 
</div>
 
</div>
 +
[[Datei:Pacman.png|200px]][[Datei:OneButtonBob.png|250px]][[Datei:FlappyBird.png|230px]]
  
== Das Wichtigste zuerst ==
+
== Unterrichtsmaterial ==
 
+
<div class="hinweisInfo">
* Die '''Core-Engine''' ist zur Entwicklung von 2D-Spielen gedacht und setzt bereits elementare Programmier-Kenntnisse voraus. Alle Features der Core-Variante werden in unserem [[Tutorials|Tutorial-Bereich]] detailliert beschrieben.
+
Die Unterrichtseinheiten, welche auf der Web-Präsenz zu finden sind, stellen erprobte und bewährte Sequenzen dar, welche von unterschiedlichen Lehrern ersonnen und angefertigt wurden und stetig weiter entwickelt werden.  
* Die '''EDU-Variante''' wurde speziell für Schüler ohne Grundkenntnisse entwickelt. Sie stellt eine "abgespeckte" und methodisch aufbereitete Variante der Core-Engine dar. Der Umgang mit der Edu-Variante wird in unserem [[Unterrichtskonzept|Unterrichts-Bereich]] beschrieben.
+
</div>
* '''Version 2.x''' ist '''veraltet''' und sollte im Unterricht nicht mehr verwendet werden!
+
*Es gibt ein [[Unterrichtskonzept|durchgängiges Unterrichts-Konzept]], das versucht, den '''Lehrplan der 10. Jahrgangsstufe des bayerischen Gymnasiums linear''' abzudecken.  
* '''Aktuell und stabil''' ist derzeit die '''Version 3.x'''. Diese Version wird für Unterrichtszwecke "eingefroren" um Irritationen im Unterricht nach Änderungen zu vermeiden.
+
*Ein neueres, [[modulares Konzept|modulares Unterrichts-Konzept]] unterstützt ein relativ freies, '''kreatives Vorgehen''', bei dem nach einem knappen Start-Skript die restlichen Inhalte in nahezu beliebiger Reihenfolge behandelt werden können.
* '''Version 4''' ist derzeit '''in Entwicklung''', wird viele neue Features enthalten und vor Allem den bekannten syntaktischen Inkonsistenzen den Garaus machen.
+
*Ein dritter, ganz neuer Ansatz verfolgt das [[Physical Computing]] mit dem Arduino '''auf JAVA-Basis'''.
* Die im Unterrichtsbereich angebotenen Materialien beziehen sich auf die Version 3.x.
+
----
 
+
''Darüber hinaus gibt es Zusatz-Material für höhere Jahrgangsstufen. Man kann mit diesem Material aber auch sehr gut überdurchschnittliche Lernende fördern.''
== Am Anfang war die Idee ==
+
*[[Datenbankanbindung mit JAVA]]
 
+
*[[Netzwerk-Programmierung]]
Spiele programmieren war schon immer ein Thema, das Schüler im Informatik-Unterricht angesprochen hat.
+
----
Aber nur all zu schnell war die erste Begeisterung bei den Schülern verflogen und der Frust bzgl. technischer Schwierigkeiten überwog.
+
''Am anderen Ende des Leistungs-Bereichs gibt es auch einen Ansatz für die ganz Kleinen:''
Die Engine Alpha selbst entstand ursprünglich aus vielen - oft wie oben beschrieben missglückten - Unterrichtseinheiten in verschiedenen Jahrgangsstufen. Das Ziel war das '''Eliminieren von sprachspezifischen, technischen Schwierigkeiten''' indem diese in sprechend benannte Klassen mit einfachen Schnittstellen quasi unsichtbar "verpackt" wurden. Immer wiederkehrende Probleme und Aufgaben wurden in einem '''Baukasten-Prinzip''' zusammengetragen.
+
* [http://engine-alpha.org/files/Arduino/Snap4Arduino/Snap4Arduino.pdf Snap4Arduino]
Immer wiederkehrende Verständnis-Probleme der Schüler trugen nach und nach zur methodisch und didaktisch immer weiter aufbereiteten und auf das Wesentliche bzgl. eines Verstehens der zugrunde liegenden Konzepte reduzierten '''[[EDU-Version|EDU-Variante]] der Engine Alpha''' bei.
+
(bald mehr verfügbar)
Rund um diese recht einfachen Bausteine entstanden über mehr als 10 Jahre Unterrichtseinheiten, welche sich zu bewähren schienen. Immer mehr Kollegen, aber auch Referendare, Studenten und Schüler brachten und bringen kreative Ideen mit ein.
 
  
 
== Das didaktische Konzept ==
 
== Das didaktische Konzept ==
  
Grundlegende Idee hinter dem Aufbau der '''EDU-Variante''' der Engine Alpha ist, dass die Schüler in jeden Themen-Bereich sukzessive vom ersten grundlegenden Verständnis des Prinzips über vertiefte Betrachtungen hin zum technischen Verständnis angeleitet werden ''können''. Kein Schüler muss technische Details aus der Java-API kennen um dem Unterricht zu folgen, auch der Lehrer zunächst nicht. Möchte man nicht nur den vorbereiteten Unterrichtseinheiten folgen sondern selbst kreative Ideen umsetzen, so sollte man sich mit der eigentlichen (nicht EDU) ''[[Game Engine|Engine Alpha]]'' auseinander setzen. Dies geschieht am einfachsten, indem man neben den [[Tutorials|Code-Beispielen]] im Wiki auch besonders den freien Quellcode der EDU-Variante der ''Engine Alpha'' durchliest. Er zeigt schon mehr technische Details bzgl. der zugrunde liegenden Prinzipien, aber hält die rein technischen Java-Details noch außen vor. Diese Ebene reicht, um mit der Engine Alpha seiner Phantasie als Schüler und insbesondere als Lehrer freien Lauf zu lassen.
+
*Die Engine Alpha setzt auf frühe grafische bzw. physikalische Erfolge durch '''frühe Anwendung von Vererbung und Referenzen'''. Das macht den Code am Anfang kürzer und übersichtlicher und ermöglicht von der ersten Stunde an ansprechende, motivierende Projekte.
 +
*Dadurch wird bei den Lernenden immer auch die eigene '''Kreativität''' angeregt, was diese in eine '''produktive Arbeits-Haltung''' versetzt und dadurch ihre Ansprüche an sich selbst und ihr Software-Produkt erhöht.
 +
*Durch das vorliegende Material kann bei den Lernenden eine maximale '''Binnen-Differenzierung''' statt finden. Die '''Anschaulichkeit''' der Ergebnisse sorgt für '''Verminderung der Frust-Erlebnisse'''.
 +
*Die Engine Alpha bewährt sich '''seit fast 10 Jahren''' und wird '''stetig nach den Bedürfnissen der Lernenden weiter entwickelt''' und um Lern-Material bereichert.
  
Für technisch sehr interessierte Schüler oder Lehrer stellt der Quellcode der eigentlichen (nicht EDU) ''[[Game Engine|Engine Alpha]]'' einen großen und weitläufigen Fundus dar für Prinzipien, welche später in der Oberstufe oder auch erst im Studium vermittelt werden. Der Code ist durchgängig äußerst ausführlich und verständlich [[Dokumentation|dokumentiert]]. Man findet sehr viele bekannte [[Software Pattern in der Engine Alpha|Code-Patterns]] (Singleton, Observer, Composite, ...) in funktionierenden Code-Beispielen vor.
+
== Urheberrecht ==
  
== Unterrichtsmaterial ==
+
Das Unterrichtsmaterial von [[Michael Ganshorn]] unterliegt prinzipiell dem '''Urheberrecht'''.
 
 
Die Unterrichtseinheiten, welche auf der Web-Präsenz zu finden sind, stellen erprobte und bewährte Sequenzen dar, welche von unterschiedlichen Lehrern ersonnen und angefertigt wurden. Stetig werden sie bei jedem weiteren Einsatz - basierend auf Kritik und Anregung von Schülern und Lehrern - immer wieder ergänzt und verbessert.
 
 
 
Es gibt ein durchgängiges [[Unterrichtskonzept]], das versucht, den Lehrplan der 10. Jahrgangsstufe des bayerischen Gymnasiums abzudecken. Entsprechend gibt es auch einige angeleitete Unterrichtsprojekte über mehrere Stunden, welche von den Schülern in Einzel- oder auch Gruppenarbeit bewerkstelligt werden können. Einheiten zur Vertiefung einzelner Themengebiete (Vererbung, Arrays, ...) sind ebenso vorhanden.
 
 
 
Eine gesteigerte Motivation der Schüler setzt allerdings voraus, dass jeder Lehrer die Aufträge der Schüler ausführlich selbst durchgeführt haben muss um im Unterricht souverän auf z.B. Compiler-Meldungen oder bei Fragen bzgl. der konkreten Realisierung in Java reagieren zu können.
 
 
 
Jeder, der dieses Material benutzt ist ausdrücklich dazu aufgerufen, Kritik, Erfahrungen, Anregungen, Zusatzmaterial, etc. an uns zurück zu [[Feedback|senden]] und damit selbst aktiv zur Erweiterung und Qualitätsverbesserung dieser Unterrichtssequenzen beizutragen.
 
 
 
Alle Projekt-Vorlagen, von denen im Unterrichts-Skript gesprochen wird, können vom Lehrer auch selbst angefertigt werden. Hierzu lädt man sich die [https://github.com/engine-alpha/edu-klassen/archive/master.zip EDU-Klassen] herunter und löscht in dem Projekt die Klassen, die nicht benötigt werden.
 
 
 
Das Unterrichts-Material von [[Michael Ganshorn]] unterliegt prinzipiell dem '''Urheberrecht'''.
 
  
 
Der Autor gesteht allerdings folgende Rechte ohne weitere Nachfrage zu:
 
Der Autor gesteht allerdings folgende Rechte ohne weitere Nachfrage zu:
* Absolut jeder darf das Unterrichts-Material für den '''persönlichen Gebrauch''' unentgeltlich verwenden.
+
* Absolut jeder darf das Unterrichtsmaterial für den '''persönlichen Gebrauch''' unentgeltlich verwenden.
* Jede '''Lehrkraft einer staatlichen oder staatlich anerkannten Schule''' steht es frei, die Unterrichts-Materialien ihren Schülern unentgeltlich und unverändert zur Verfügung zu stellen. Voraussetzung hierfür ist ein Verweis auf die ursprüngliche Web-Seite.
+
* Jeder '''Lehrkraft einer staatlichen oder staatlich anerkannten Schule''' steht es frei, die Unterrichtsmaterialien ihren Schülern unentgeltlich zur Verfügung zu stellen. Voraussetzung hierfür ist ein Verweis auf unsere Web-Seite (engine-alpha.org).
* Jede darüber hinausgehende '''kommerzielle Verwendung des Unterichts-Materials''' oder auch Teilen davon (außer unterrichtliche Nutzung in staatlichen oder staatlich anerkannten Schulen - z.B für Verlage / Autoren) bedarf einer ausdrücklichen Genehmigung durch den Autor, die bei Interesse gerne individuell ausgehandelt wird.
+
* Jede darüber hinausgehende '''kommerzielle Verwendung des Unterrichtsmaterials''' oder auch Teilen davon z.B für Verlage / Autoren bedarf einer ausdrücklichen Genehmigung durch den Autor, die bei Interesse gerne individuell ausgehandelt wird.
* '''Veränderungen des Unterrichts-Materials''' sind zulässig und erwünscht, allerdings muss eine kostenfreie Kopie an den Autor zurück fließen.
 
 
 
''Bei Verstößen behalte ich mir rechtliche Schritte vor!''
 
 
 
== Einstieg als Lehrer ==
 
 
 
* [[Engine im Unterricht|Vor- und Nachteile der Engine-Nutzung im Unterricht]]
 
* Es gibt verschiedenene [[Engine-Arten|Arten der Engine]] mit verschiedenem Anspruchsgrad, beginnend bei grundlegendem Wissen über Klassen/Objekte, aber ohne echte Programmierkenntnisse.
 
 
 
== Unterrichtskonzept für die 10. Klasse ==
 
  
* Hier geht's zum [[Unterrichtskonzept]]
+
''Bei Verstößen behalten wir uns rechtliche Schritte vor!''
  
 
== Beispielprojekte ==
 
== Beispielprojekte ==
  
Hier eine kleine Auswahl von angeleiteten Projekten:
+
Hier eine kleine Auswahl von älteren, angeleiteten Projekten:
  
 
* '''Projekt: Ping-Pong'''
 
* '''Projekt: Ping-Pong'''
Zeile 72: Zeile 54:
 
** [http://engine-alpha.org/files/noNedOnline/Projekt_Kamele.pdf Kamele-Anleitung als PDF]
 
** [http://engine-alpha.org/files/noNedOnline/Projekt_Kamele.pdf Kamele-Anleitung als PDF]
 
** [http://asg-passau.xen-host.de/Inf-10/Kamele_Vorlage.zip Kamele_Vorlage als BlueJ-Projekt]
 
** [http://asg-passau.xen-host.de/Inf-10/Kamele_Vorlage.zip Kamele_Vorlage als BlueJ-Projekt]
 +
 +
== FAQs ==
 +
 +
Wo gehobelt wird, da fallen Späne. Deshalb ereignen sich immer wieder einmal Situationen, in denen die Engine-Alpha (vermeintlich) nicht richtig funktioniert. Für die häufigsten "Probleme" haben wir hier die Lösungen zusammen getragen.
 +
----
 +
'''Wie finde ich die Version der verwendeten Engine-Alpha heraus?'''
 +
 +
''Doppel-klicken Sie auf die engine.alpha.jar. Es sollte ein Fenster erscheinen mit der Versions- und Build-Nummer. Wenn kein solches Fenster erscheint, versuchen Sie es mit Rechts-klick und "öffnen mit". Wählen Sie Java Runtime. Sollte auch das nicht klappen, so verwenden Sie eine sehr alte Version!''
 +
----
 +
'''Das Grafik-Fenster bleibt schwarz oder grau'''
 +
 +
Ich erzeuge ein Objekt, das eigentlich im Grafik-Fenster angezeigt werden sollte, aber es erscheint nicht. Ich sehe nur in BlueJ die entsprechende Objekt-Karte.
 +
 +
''Starten Sie die Java-Virtual-Machine neu. Klicken Sie hierzu in BlueJ mit der rechten Maus-Taste auf den schraffierten Balken (links unten) und anschließend mit der linken Maus-Taste auf das erscheinende Fähnchen.''
 +
----
 +
'''Ich erhalte ständig unerklärliche NullPointerExceptions'''
 +
 +
Immer wenn ich mein Spiel starte werden in der BlueJ-Konsole NullPointerExceptions angezeigt. Oft bleibt das Spiel stehen, bevor es eigentlich beginnt.
 +
 +
''Der Grund ist in der Regel die Verwendung einer alten Version der EDU-Klasse SPIEL. Diese startet den Ticker sofort nach der Initialisierung. Wenn Sie viele Objekte im Konstruktor Ihres Spiels erzeugen, dann werden diese möglicherweise in der Methode tick() angesprochen, bevor sie erzeugt wurden. Laden Sie sich eine aktuelle Vorlage herunter, bei welcher der Ticker NICHT von alleine startet. Nun müssen Sie allerdings den Ticker als LETZTEN Befehl im Konstruktor selbst starten.
 +
----
 +
'''Einige Grafik-Objekte reagieren nicht / falsch auf Methodenaufrufe'''
 +
 +
Der Compiler meldet keine Fehler und ich finde auch keine Logik-Fehler. Methoden-Aufrufe zum Ändern / Anzeigen der Farbe, Größe, des Mittelpunkts etc. haben anscheinend keine Wirkung.
 +
 +
''Bitte verwenden Sie nur Methoden, die genau so in den Klassen-Karten erwähnt werden.'' (Unter der Haube existieren aus historischen Gründen auch noch anders lautende Methoden-Signaturen.)
 +
----
 +
'''Vererbung ganz am Anfang - geht das gut?'''
 +
 +
''Aus tiefster Überzeugung und jahrelanger Praxis heraus JA! Probieren Sie es einfach einmal aus ...''
  
 
== Kontakt ==
 
== Kontakt ==
Zeile 78: Zeile 90:
 
Interessierte '''Lehrer''' können sich wenden an:
 
Interessierte '''Lehrer''' können sich wenden an:
  
{{Person|OStR Michael Ganshorn|Adalbert-Stifter-Gymnasium Passau|mike ''underscore'' gans ''at'' yahoo ''dot'' de|400px}}
+
{{Person|StD Michael Ganshorn|Adalbert-Stifter-Gymnasium Passau|mike ''underscore'' gans ''at'' yahoo ''dot'' de|400px}}

Aktuelle Version vom 5. August 2018, 12:13 Uhr

  • Die hier angebotenen Unterrichts-Materialien setzen die NEUE Version 3.2 vom April 2017 voraus. Bitte laden Sie alle Projekt-Vorlagen neu herunter!
  • Lieb gewonnene, ältere Materialien finden Sie derzeit noch auf der Schüler-Ansicht.

Pacman.pngOneButtonBob.pngFlappyBird.png

Unterrichtsmaterial

Die Unterrichtseinheiten, welche auf der Web-Präsenz zu finden sind, stellen erprobte und bewährte Sequenzen dar, welche von unterschiedlichen Lehrern ersonnen und angefertigt wurden und stetig weiter entwickelt werden.

  • Es gibt ein durchgängiges Unterrichts-Konzept, das versucht, den Lehrplan der 10. Jahrgangsstufe des bayerischen Gymnasiums linear abzudecken.
  • Ein neueres, modulares Unterrichts-Konzept unterstützt ein relativ freies, kreatives Vorgehen, bei dem nach einem knappen Start-Skript die restlichen Inhalte in nahezu beliebiger Reihenfolge behandelt werden können.
  • Ein dritter, ganz neuer Ansatz verfolgt das Physical Computing mit dem Arduino auf JAVA-Basis.

Darüber hinaus gibt es Zusatz-Material für höhere Jahrgangsstufen. Man kann mit diesem Material aber auch sehr gut überdurchschnittliche Lernende fördern.


Am anderen Ende des Leistungs-Bereichs gibt es auch einen Ansatz für die ganz Kleinen:

(bald mehr verfügbar)

Das didaktische Konzept

  • Die Engine Alpha setzt auf frühe grafische bzw. physikalische Erfolge durch frühe Anwendung von Vererbung und Referenzen. Das macht den Code am Anfang kürzer und übersichtlicher und ermöglicht von der ersten Stunde an ansprechende, motivierende Projekte.
  • Dadurch wird bei den Lernenden immer auch die eigene Kreativität angeregt, was diese in eine produktive Arbeits-Haltung versetzt und dadurch ihre Ansprüche an sich selbst und ihr Software-Produkt erhöht.
  • Durch das vorliegende Material kann bei den Lernenden eine maximale Binnen-Differenzierung statt finden. Die Anschaulichkeit der Ergebnisse sorgt für Verminderung der Frust-Erlebnisse.
  • Die Engine Alpha bewährt sich seit fast 10 Jahren und wird stetig nach den Bedürfnissen der Lernenden weiter entwickelt und um Lern-Material bereichert.

Urheberrecht

Das Unterrichtsmaterial von Michael Ganshorn unterliegt prinzipiell dem Urheberrecht.

Der Autor gesteht allerdings folgende Rechte ohne weitere Nachfrage zu:

  • Absolut jeder darf das Unterrichtsmaterial für den persönlichen Gebrauch unentgeltlich verwenden.
  • Jeder Lehrkraft einer staatlichen oder staatlich anerkannten Schule steht es frei, die Unterrichtsmaterialien ihren Schülern unentgeltlich zur Verfügung zu stellen. Voraussetzung hierfür ist ein Verweis auf unsere Web-Seite (engine-alpha.org).
  • Jede darüber hinausgehende kommerzielle Verwendung des Unterrichtsmaterials oder auch Teilen davon z.B für Verlage / Autoren bedarf einer ausdrücklichen Genehmigung durch den Autor, die bei Interesse gerne individuell ausgehandelt wird.

Bei Verstößen behalten wir uns rechtliche Schritte vor!

Beispielprojekte

Hier eine kleine Auswahl von älteren, angeleiteten Projekten:

FAQs

Wo gehobelt wird, da fallen Späne. Deshalb ereignen sich immer wieder einmal Situationen, in denen die Engine-Alpha (vermeintlich) nicht richtig funktioniert. Für die häufigsten "Probleme" haben wir hier die Lösungen zusammen getragen.


Wie finde ich die Version der verwendeten Engine-Alpha heraus?

Doppel-klicken Sie auf die engine.alpha.jar. Es sollte ein Fenster erscheinen mit der Versions- und Build-Nummer. Wenn kein solches Fenster erscheint, versuchen Sie es mit Rechts-klick und "öffnen mit". Wählen Sie Java Runtime. Sollte auch das nicht klappen, so verwenden Sie eine sehr alte Version!


Das Grafik-Fenster bleibt schwarz oder grau

Ich erzeuge ein Objekt, das eigentlich im Grafik-Fenster angezeigt werden sollte, aber es erscheint nicht. Ich sehe nur in BlueJ die entsprechende Objekt-Karte.

Starten Sie die Java-Virtual-Machine neu. Klicken Sie hierzu in BlueJ mit der rechten Maus-Taste auf den schraffierten Balken (links unten) und anschließend mit der linken Maus-Taste auf das erscheinende Fähnchen.


Ich erhalte ständig unerklärliche NullPointerExceptions

Immer wenn ich mein Spiel starte werden in der BlueJ-Konsole NullPointerExceptions angezeigt. Oft bleibt das Spiel stehen, bevor es eigentlich beginnt.

Der Grund ist in der Regel die Verwendung einer alten Version der EDU-Klasse SPIEL. Diese startet den Ticker sofort nach der Initialisierung. Wenn Sie viele Objekte im Konstruktor Ihres Spiels erzeugen, dann werden diese möglicherweise in der Methode tick() angesprochen, bevor sie erzeugt wurden. Laden Sie sich eine aktuelle Vorlage herunter, bei welcher der Ticker NICHT von alleine startet. Nun müssen Sie allerdings den Ticker als LETZTEN Befehl im Konstruktor selbst starten.


Einige Grafik-Objekte reagieren nicht / falsch auf Methodenaufrufe

Der Compiler meldet keine Fehler und ich finde auch keine Logik-Fehler. Methoden-Aufrufe zum Ändern / Anzeigen der Farbe, Größe, des Mittelpunkts etc. haben anscheinend keine Wirkung.

Bitte verwenden Sie nur Methoden, die genau so in den Klassen-Karten erwähnt werden. (Unter der Haube existieren aus historischen Gründen auch noch anders lautende Methoden-Signaturen.)


Vererbung ganz am Anfang - geht das gut?

Aus tiefster Überzeugung und jahrelanger Praxis heraus JA! Probieren Sie es einfach einmal aus ...

Kontakt

Hinter dem Unterrichts-Konzept mit der Engine-Alpha steht mittlerweile eine sehr aktive Gemeinde von Lehrern, Studenten und Schülern. Interessierte Lehrer können sich wenden an:

StD Michael Ganshorn
Adalbert-Stifter-Gymnasium Passau
mike underscore gans at yahoo dot de