Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail Die drei Phasen Phase 1 Phase 2 Phase 3 Notationen, Grundkonzepte und Begriffe Angeleitet Modellieren GUI kennen lernen Vorgehensmodell eigenständig anwenden Real / Obj. mit CRCNotation Objekte und Klassen in UML Üben / GUI-Bibliothek Ereignisbehandlung Projekt in Gruppenarbeit Explorationsumgebung Darstellungs- und Übungsumgebung Softwareentwicklungswerkzeuge und Bibliotheken Selbstständigkeit der Schüler [email protected], IBBB 2007 2 Die Schritte der ersten Phase Schritt 1 Realbegegnung Schritt 2 CRC-Modell Objektspiel Interaktives Objektdiagramm Schritt 3 Klassendiagramm Schulte, AG DDI Aktivitätsdiagramme 3 Alte und Neue Grundlagen 1: Systemorientierung und Cognitive Apprenticeship • Modelling • Vormachen (modellieren) und erläutern • Wissen im Kontext 1. Automatisierung 2. Interaktion 3. Informationsverarbeitung Hardware ArbeitsAufgaben 6. Gesellschaftliche Wechselwirkungen Schulte, AG DDI OrganisationsStrukturen 5. Normen und Regulierung etwa durch Teillösungen 4. Vernetzung Software • Scaffolding: Hilfestellung, • Ansteigende Vielfalt • Ansteigende Komplexität 4 Alte und Neue Grundlagen 2: Programmieren lernen Novice mistakes: are the folk wisdoms correct? (1986, Spohrer, Soloway) ‘Dimensions of learning programming’ (du Boulay, 1989) McCracken-Study; Lister-Study (2001, 2004) ‘The novice programmers' syndrome of design-bykeyword’ (2003) [email protected], IBBB 2007 “Not seeing the forest for the trees” (Lister et.al 2006) 5 Zusammenfassung • Während ein Beispiel auf verschiedenen Niveaus untersucht wird, entsteht Abwechslung für die SuS durch untersch. Medien und Methoden • Da diese sich an SEMedien und Methoden anlehnen, lernen die SuS diese Inhalte gleich mit (Methodenlernen). • Durch Situierung nachvollziehbare Progression u. Kumulation [email protected], IBBB 2007 6 Erste Phase, erster Schritt Schritt 1 Realbegegnung 1a Schritt 2 CRC-Modell Objektspiel 1b 1c Interaktives Objektdiagramm Schritt 3 Klassendiagramm [email protected], IBBB 2007 Aktivitätsdiagramme 7 Schritt 1a: Realbegegnung • Mini-Überblick: • Programmieren mit Objekten, • Zunächst lernen wir ein Einstiegs-Beispiel kennen: Flaschendrehen • Freiwillige spielen vor: Papierzettel als Felder, Spieler setzen, Flasche wird gedreht. Frage: wie auswerten? [email protected], IBBB 2007 8 Realbegegnung: Auswertung • Zum Thema: Das Beispiel als objektorientiertes Programm: Welche Objekte könnte es geben? Was hätten die für Aufgaben? • Typische Antworten sind… • Sammeln, ggf. CRC-ähnlich an Tafel notieren Etwa: •Spieler: setzt auf ein Feld, hat Geld •Spielfeld: nimmt Betrag auf •Flasche: dreht sich •Bank: verwaltet Gewinn •Schiedrichter •Geld •Zufallsgenerator •… Im nächsten Schritt (1b)… • Vergleich mit ‘professionellem’ Entwurf [email protected], IBBB 2007 9 Schritte 1b: CRC-Karten [email protected], IBBB 2007 10 Auswertung CRC-Modell • Mit Schülerlösung vergleichen (->CRC-Modell untersuchen) • Dabei nebenbei Syntax der CRC-Karten einführen, etwa: wieso haben die Karten zwei Spalten? • Schülerlösung loben • Ergebnis erster Schritt: • • Erste Annäherung an objektorientiertes Denken, nur statisch, keine Unterscheidung Klasse-Objekt M.E.: Hier nicht OOA üben Überleitung zum nächsten Schritt: Frage aufnehmen/lenken: Funktioniert diese seltsame vorgegebene Lösung? [email protected], IBBB 2007 11 Schritt 1c: Objektspiel Schüler spielen in einer Art Rollenspiel die Objekte eines Programms nach Vorbemerkung: Schülerinnen und Schüler, die die Rolle eines Objektes übernehmen, erhalten eine Klassenkarte (CRC-Karte) sowie zusätzlich eine Objektkarte, auf denen das notwendige Wissen des Objekts zu jedem Zeitpunkt notiert werden kann. Spielregeln • ein Akteur startet „von Außen“ das Spiel (Anwendungsfälle) • nur verbale Kontaktaufnahmen zu anderen Objekten sind erlaubt, • nur mit den Begriffen der Verantwortlichkeiten arbeiten ( "reden" ), • nur mit den Beteiligten Kontakt aufnehmen, • ausschließlich auf der Objektkarte notwendige Zustände notieren ( "keine Gedächtnisleistung des Rolleninhabers"). [email protected], IBBB 2007 Feld nimmt Einsatz auf Feld gibt Einsatz ab Spieler behalte Einsatz ein kennt setzenden Spieler kennt nächstes Feld kennt seine Nummer Feld: otto Einsatz = 0 3 Nummer = 1 setzenderSpieler = ulli naechstesFeld = marc 12 Objektspiel 1. Objekte erzeugen CRC-Karten (per OHP projiziert) 2. Start des Objektspiels Die Objekte des laufende Programms Aktive Zuschauer [email protected], IBBB 2007 Benutzer 13 Objektspiel Flaschendrehen Spieler: Ira Feld: Paul Vermögen: 5 Setze 3 auf Markus Nummer: 1 Einsatz: 0 NächstesFeld: Uli Feld: Michael Nummer: 6 Einsatz: 0 Feld: Uli Flasche: Peter Nummer: 2 Einsatz: 0 Nummer: 3 Einsatz: 0 Feld: Albert Feld: Gesine Nummer: 5 Einsatz: 0 Nummer: 3 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 [email protected], IBBB 2007 14 Objektspiel Flaschendrehen Feld: Paul Spieler: Ira Vermögen: 5 2 Nummer: 1 Einsatz: 0 Feld: Michael Nummer: 6 Einsatz: 0 Setze 3 auf Markus Feld: Uli Flasche: Peter Nummer: 2 Einsatz: 0 Nummer: 3 Einsatz: 0 Feld: Albert Feld: Gesine Nummer: 5 Einsatz: 0 Nummer: 3 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 3 [email protected], IBBB 2007 drehen auswerten … 15 Auswertung Objektspiel • Welche Unterschiede gibt es zwischen Objekten und Klassen? Etwa: Klassen: •Struktur eines Objekts •Haben keine Werte •… •Klassen sind Baupläne Objekte: •Es kann mehrere geben •Haben Werte •Kennen einander •Objekte sind aktiv • Wie funktioniert ein objektorientiertes Programm? • Etwa: Zunächst werden Objekte erzeugt und mit Startwerten belegt. Danach warten sie auf Eingaben durch den Benutzer und arbeiten die Aufträge ab. Dabei ändert sich [email protected], IBBB 2007 16 Ausblick I: Übergang zum Quelltext 3. Setzen:Feld: Paul 1 Obj.-SpielNummer: Einsatz: 0 Spieler: Ira Vermögen: 5 Feld: Michael Feld: Uli Nummer: 6 Einsatz: 0 Nummer: 2 Einsatz: 0 Flasche: Peter 4. Setzen: Debugger Nummer: 3 Einsatz: 0 Feld: Albert Feld: Gesine Nummer: 5 Einsatz: 0 Nummer: 3 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 5. Setzen: UML 1. Setzen: Spiel 2. Setzen: CRC [email protected], IBBB 2007 17 Ausblick II: Mit Objektspieldiagrammen zum Quelltext Setze 3 auf Markus Spieler: Ira Vermögen: 5 2 3: setzeSpieler Feld: Markus Nummer: 4 Einsatz: 0 3 Gesetzt von: Ira 1: setze Vermögen 2: setze Einsatz Klasse Spieler: public void setzen (int betrag, Feld nFeld) { 1. this.vermoegen=vermoegen-betrag; 2. nFeld.setzeEinsatz(betrag); 3. nFeld.gesetztVon=this; } Kommentare: • vorgegebenen Quelltext untersuchen (Puzzle, Lückentext …) • vorher Programm mit (grafischem) Debugger ausführen • vorher Aufbau einer Klasse besprechen (CRC->UML->Quelltext) • später evtl.: if (nFeld.gesetztVon == null && betrag <= vermoegen) [email protected], IBBB 2007 18 Literatur http://life.upb.de [email protected], IBBB 2007 • Skript (Version 0.01) http://www.coobra.cs.unikassel.de/fileadmin/se/LehrerFortbildung/O OM-Skript061108.pdf • Jürgen Börstler: Improving CRC-Card RolePlay with Role-Play Diagrams, OOPSLA'05 Addendum to the Proceedings (Educators' Syposium) • Foliensatz Objektspiel http://did.mat.unibayreuth.de/~matthias/veranstaltungen/ws 2004/ook/ook8_print.pdf • Sekundarstufe 1: http://ddi.unipaderborn.de/didaktik/Veroeffentlichungen/ examensarbeiten/reinsch_thorsten_objektor ientierter_einstieg.pdf 19