1 / 20

Spiele im Wirtschaftsinformatik-unterricht am WG

Spiele im Wirtschaftsinformatik-unterricht am WG. Ein Erfahrungsbericht aus der JG 2. StD Jan Wölfer - Willy-Hellpach-Schule, Heidelberg - Fachberater Wirtschaftsinformatik am RP Karlsruhe. Spiele im WINF-Unterricht im WG. Warum sind Spiele ein sinnvolles Thema?

kina
Download Presentation

Spiele im Wirtschaftsinformatik-unterricht am WG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spiele im Wirtschaftsinformatik-unterricht am WG Ein Erfahrungsbericht aus der JG 2 StD Jan Wölfer - Willy-Hellpach-Schule, Heidelberg - Fachberater Wirtschaftsinformatik am RP Karlsruhe

  2. Spiele im WINF-Unterricht im WG Warum sind Spiele ein sinnvolles Thema? • Weil Schüler(innen) auf diese Weise besonders motiviert werden • Weil gewisse Probleme in den klassischen BWL-Zusammenhängen einfach nicht auftreten • Weil bei solchen Projekten oft anspruchsvollere Lösungen erreicht werden als bei auf das berufliche Profil bezogenen Themen

  3. Verbindliche Grundlage: Pflichtenheft Zu Projektbeginn wird ein Pflichtenheft erstellt: • Genaue Beschreibung der geforderten Funktionalität • Verbindlicher Zeitplan mit Prozessphasen und Meilensteinen • Umfang der Abgabemappe • Gewichtung der Einzelbewertung der einzelnen Teilbereiche.

  4. Das erste Spiel – Ein Würfelspiel • Die Regeln für dieses Spiel sind folgende: • Man würfelt und addiert die gewürfelten Augen • Man kann nach jedem Wurf entscheiden, ob man die bis dahin erreichten Punkte stehen lassen will oder weiter würfeln will • Wenn man eine 6 würfelt sind die Punkte verfallen und die Spielrunde beendet StD Jan Wölfer - Willy-Hellpach-Schule, Heidelberg - Fachberater Wirtschaftsinformatik am RP Karlsruhe

  5. Projektphasen und Meilensteine: • Spielentwurf (OOA)Die Teams formulieren besondere Eigenschaften, die ihr Würfelspielprogramm besitzen soll. Diese werden in einem Textentwurf festgehalten. • UML-Modellierung (OOD)Erstellung eines Aktivitäts- und eines Klassendiagramms (der dabei von einer Entwicklungsumgebung bereits erzeugte Code bleibt unberücksichtigt) • OOPProgrammierung der Fachklassen und der GUI-Klasse(n) • TestphaseDie Teams lassen ihre Software von den anderen Teams testen und geben sich gegenseitig konstruktives Feedback.

  6. In die Projektbewertung fließen ein: • Form mit 10 %Das äußere Erscheinungsbild der Abgabemappe, Elemente wie Deckblatt, Seitenzahlen, Kopf-/Fußzeile, Inhaltsangabe, Anhang • Einleitender Text mit 10%Eine Beschreibung des Entwurfs, der Motivation bestimmte Funktionalitäten umzusetzen, eine selbstkritische Würdigung der eigenen Arbeit. Außerdem eine Reflexion über Probleme, die bei der Erstellung auftraten und wie diese bewältigt wurden • UML-Diagramme mit 30 % • GUI-Design mit 20 % • JAVA-Quellcode mit 30%

  7. Vorgabe der Klasse Würfel (optional) Je nach Leistungsfähigkeit des Kurses kann die Klasse „Würfel“ den SchülerInnen vorgegeben werden. import java.util.Random; public class Wuerfel { public int wuerfeln(){ Random r = new Random(); return 1 + r.nextInt(6); } }

  8. Erweiterung um Klasse Spiel Eine Klasse, die unter Verwendung der Klasse Würfel die Funktionalität des Spieles umsetzt, kann auch genau so heißen.

  9. Erweiterung um Klasse Spiel public void starteNeuesSpiel(){ this.punktestand = 0; } public int macheNeuenWurf(){ this.letzterWurf = this.meinWuerfel.wuerfeln(); if (this.letzterWurf == 6){ this.punktestand = 0; } else { this.punktestand += this.letzterWurf; } return this.letzterWurf; }

  10. Erweiterung um Klasse Spiel (Forts.) public String beendeSpiel(){ String antwort = "Sie konnten den Highscore von " + this.highscore + " nicht überbieten."; if (this.punktestand > this.highscore){ antwort = "Herzlichen Glückwunsch, sie konnten den alten Highscore von " + this.highscore + " überbieten! Neuer Highscore: " + this.punktestand; this.highscore = this.punktestand; } return antwort; }

  11. Speichern von Highscores Je nach Leistungsfähigkeit des Kurses (oder Zeitpunkt der Durchführung) kann das Projekt zunächst als Umsetzung in 2-Schichten-Architektur oder in 3-Schichten-Architektur mit der Option zum Speichern von Highscores ausgeschrieben werden. Die Option erreichte Punktestände zu speichern wird oft auch ohne dass dies eine konkrete Anforderung ist, von Teams realisiert. Manche Gruppen suchen im Internet nach solchen Techniken und kommen dann auf so Lösungen wie das Abspeichern eines .txt-Files, der zu Programmbeginn gelesen wird und somit als der bestehende Highscore dem Spieler angezeigt wird. Auch wenn der Code dazu meist aus dem Netz weitgehend übernommen wird, stellt es eine besondere Leistung da einen solchen erfolgreich in das eigene Projekt einzubinden.

  12. Anbindung an eine relationale DB Auch nach Abschluss des Projektes ohne die Forderung der Anbindung an eine Datenbank, bietet sich diese funktionale Erweiterung an dieser Stelle an, da die Motivation diese zusätzliche Funktion zu realisieren an dieser Stelle höher ist als beispielsweise beim Abspeichern von Artikelstammdaten. Die Umsetzung der Datenbankanbindung unter Berücksichtigung der Anforderungen der 3-Schichten-Architektur bei gleichzeitiger Wahrung des Fachklassenkonzepts erfordert die Einführung einer weiteren Klasse, die als Dienstklasse die Übergabe der Daten von Fachklasse an Datenbank und zurück organisiert.

  13. Anbindung an eine relationale DB Bei dem Design der Datenbank stellt sich das Problem, was ein geeigneter Primärschlüssel für die Tabelle Highscores wäre. Die Option eine sich automatisch erhöhende Ganzzahl als Primärschlüssel zu wählen, ist möglich. Eleganter ist es jedoch, die Systemzeit zu ermitteln und diese als Schlüsselattribut zu verwenden. Um diese in JAVA zu ermitteln, muss die Klasse Date aus java.util importiert werden. Unter Verwendung dieser lässt sich folgende Methode erstellen: public String ermittleZeitpunkt(){ Date d = new Date(); return d.toString(); } Methode liefert:"Wed Feb 23 09:43:39 CET 2011"

  14. Klasse DB_Zugriff Die Dienstklasse DB_Zugriff, die die Verbindung zu der Datenbank herstellt, hat in diesem Beispielprojekt die folgende Struktur:

  15. Projekt Roulette Für leistungsstarke Kurse bietet sich auch noch ein anderes Spiel-Projekt an: Das Roulettespiel. Bei der Vorgabe der geforderten Funktionalität ist zu überlegen ob man wirklich alle Optionen zum Setzen, die das Roulette beispielsweise in einem Casino vorsieht, umgesetzt werden müssen, oder ob man diesbezüglich eine Reduktion der Komplexität vornimmt, die jedoch den eigentlichen Spielwert nicht allzu negativ beeinflussen sollte.

  16. Projekt Roulette • Folgende Fragen haben enorme Auswirkungen auf die Komplexität der Lösung: • 1 oder n Einsätze pro Spiel? • 1 oder n Spieler, die parallel an einem Tisch spielen?

  17. Mögliche Lösung: Aus Eingabefeldern werden Einsatzfelder • Um auf der GUI die Einsätze auf dem Tisch so zu platzieren, dass sie dort liegen, wo auch die Jetons im echten Roulette liegen würden, müssen Eingabefelder auf der GUI vorgehalten werden. • Damit diese Eingabefelder ihren Inhalt an Objekte der Klasse Einsaetze übergeben können, bilden wir eine Unterklasse von JTextField, die wir Einsatzfeld nennen • Einsatzfelder unterscheiden sich von Eingabefeldern dadurch, dass sie ein Assoziationsattribut zu einem Objekt der Klasse Einsatz besitzen. • Diese Objektreferenz wird den Einsatzfeldern über einen parametrisierten Konstruktor bei der Erzeugung übergeben

  18. Von Zahlen zu Gewinnen • Im Zentrum des Spiels steht die Zahl, die bei einem Roulettespiel geworfen wird. • Jeder Zahl sind Eigenschaften zugewiesen, so wie ihr Zahlenwert, gerade/ungerade, hoch/tief, schwarz/rot, etc. • Jeder Eigenschaft ist eine Quote zueigen um die der Einsatz erhöht zurückgegeben wird, der auf diese Eigenschaft gesetzt wurde. • Die Summe aller durch erfolgreiche Einsätze quotierten Beträge bildet den Gewinn eines Spielers in einem Spiel, der mit der Summe der geleisteten Einsätze saldiert werden muss.

  19. Die Klasse Zahl • Folgende Attribute sind in der Klasse Zahl definiert: • Jeder Zahl sind Eigenschaften zugewiesen, so wie ihr Zahlenwert, gerade/ungerade, hoch/tief, schwarz/rot, etc. • Jeder Eigenschaft ist eine Quote zueigen um die der Einsatz erhöht zurückgegeben wird, der auf diese Eigenschaft gesetzt wurde. • Die Summe aller durch erfolgreiche Einsätze quotierten Beträge bildet den Gewinn eines Spielers in einem Spiel, der mit der Summe der geleisteten Einsätze saldiert werden muss.

  20. Vielen Dank für Ihr Interesse!

More Related