200 likes | 401 Views
Objects first OO als OOM und OOP. Einstieg in den Ansatz. Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail. Die drei Phasen. Phase 2 Angeleitet Modellieren GUI kennen lernen Üben / GUI-Bibliothek Ereignisbehandlung
E N D
Objects first OO als OOM und OOP Einstieg in den Ansatz Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail
Die drei Phasen Phase 2 Angeleitet Modellieren GUI kennen lernen Üben / GUI-Bibliothek Ereignisbehandlung Darstellungs- und Übungsumgebung Phase 3 Vorgehensmodell eigenständig anwenden Projekt in Gruppenarbeit Softwareentwicklungs-werkzeuge und Bibliotheken Phase 1 Notationen, Grundkonzepte und Begriffe Real / Obj. mit CRC-Notation Objekte und Klassen in UML Explorationsumgebung Selbstständigkeit der Schüler schulte@inf.fu-berlin.de, IBBB 2007
Die Schritte der ersten Phase Schritt 1 Schritt 2 Schritt 3 Realbegegnung CRC-Modell Objektspiel Interaktives Objektdiagramm Klassendiagramm Aktivitätsdiagramme Schulte, AG DDI
Modelling Vormachen (modellieren) und erläutern Wissen im Kontext Scaffolding: Hilfestellung, etwa durch Teillösungen Ansteigende Vielfalt Ansteigende Komplexität Alte und Neue Grundlagen 1: Systemorientierung und Cognitive Apprenticeship Hardware 1. Automatisierung 2. Interaktion 3. Informations- verarbeitung Soft- ware Arbeits- Aufgaben Organisations- Strukturen 4. Vernetzung 5. Normen und Regulierung 6. Gesellschaftliche Wechselwirkungen Schulte, AG DDI
Alte und Neue Grundlagen 2: Programmieren lernen Novice mistakes: are the folk wisdoms correct? (1986, Spohrer, Soloway) ‘Dimensions of learning programming’ (du Boulay, 1989) ‘The novice programmers' syndrome of design-by-keyword’ (2003) McCracken-Study; Lister-Study (2001, 2004) “Not seeing the forest for the trees” (Lister et.al 2006) schulte@inf.fu-berlin.de, IBBB 2007
Zusammenfassung Das Beispiel sorgt für den roten Faden Verschiedene Abstraktions- stufen analysieren Werkzeug und Notation als Lernmedium SE-Methoden als U-Methoden • Während ein Beispiel auf verschiedenen Niveaus untersucht wird, entsteht Abwechslung für die SuS durch untersch. Medien und Methoden • Da diese sich an SE-Medien und Methoden anlehnen, lernen die SuS diese Inhalte gleich mit (Methodenlernen). • Durch Situierung nachvollziehbare Progression u. Kumulation schulte@inf.fu-berlin.de, IBBB 2007
Erste Phase, erster Schritt Schritt 1 Schritt 2 Schritt 3 Objektspiel Realbegegnung CRC-Modell 1a 1b 1c Interaktives Objektdiagramm Klassendiagramm Aktivitätsdiagramme schulte@inf.fu-berlin.de, IBBB 2007
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? schulte@inf.fu-berlin.de, IBBB 2007
Realbegegnung: Auswertung • Etwa: • Spieler: setzt auf ein Feld, hat Geld • Spielfeld: nimmt Betrag auf • Flasche: dreht sich • Bank: verwaltet Gewinn • Schiedrichter • Geld • Zufallsgenerator • … • 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 Im nächsten Schritt (1b)… • Vergleich mit ‘professionellem’ Entwurf schulte@inf.fu-berlin.de, IBBB 2007
Schritte 1b: CRC-Karten schulte@inf.fu-berlin.de, IBBB 2007
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? schulte@inf.fu-berlin.de, IBBB 2007
Schritt 1c: Objektspiel Feld nimmt Einsatz auf Feldgibt Einsatz ab Spielerbehalte Einsatz einkennt setzenden Spielerkennt nächstes Feldkennt seine Nummer Feld: otto Einsatz = 0 3Nummer = 1setzenderSpieler = ullinaechstesFeld = marc 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"). schulte@inf.fu-berlin.de, IBBB 2007
Objektspiel 1. Objekte erzeugen 2. Start des Objektspiels CRC-Karten (per OHP projiziert) Die Objekte des laufende Programms Benutzer Aktive Zuschauer schulte@inf.fu-berlin.de, IBBB 2007
Objektspiel Flaschendrehen Feld: Gesine Nummer: 3 Einsatz: 0 Feld: Uli Nummer: 2 Einsatz: 0 Feld: Albert Nummer: 5 Einsatz: 0 Feld: Michael Nummer: 6 Einsatz: 0 Flasche: Peter Nummer: 3 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 Spieler: Ira Vermögen: 5 Feld: Paul Nummer: 1 Einsatz: 0 NächstesFeld: Uli Setze 3 auf Markus schulte@inf.fu-berlin.de, IBBB 2007
Objektspiel Flaschendrehen Feld: Gesine Nummer: 3 Einsatz: 0 Feld: Albert Nummer: 5 Einsatz: 0 Feld: Michael Nummer: 6 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 Spieler: Ira Vermögen: 5 Feld: Uli Nummer: 2 Einsatz: 0 Flasche: Peter Nummer: 3 Einsatz: 0 2 Feld: Paul Nummer: 1 Einsatz: 0 Setze 3 auf Markus drehen 3 auswerten … schulte@inf.fu-berlin.de, IBBB 2007
Auswertung Objektspiel • Klassen: • Struktur eines Objekts • Haben keine Werte • … • Klassen sind Baupläne • Objekte: • Es kann mehrere geben • Haben Werte • Kennen einander • Objekte sind aktiv • Welche Unterschiede gibt es zwischen Objekten und Klassen? • 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 • Etwa: schulte@inf.fu-berlin.de, IBBB 2007
Ausblick I: Übergang zum Quelltext Feld: Paul Nummer: 1 Einsatz: 0 Feld: Gesine Nummer: 3 Einsatz: 0 Feld: Albert Nummer: 5 Einsatz: 0 Feld: Michael Nummer: 6 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 Spieler: Ira Vermögen: 5 Feld: Uli Nummer: 2 Einsatz: 0 Flasche: Peter Nummer: 3 Einsatz: 0 3. Setzen: Obj.-Spiel 4. Setzen: Debugger 5. Setzen: UML 1. Setzen: Spiel 2. Setzen: CRC schulte@inf.fu-berlin.de, IBBB 2007
Ausblick II: Mit Objektspieldiagrammenzum Quelltext 1: setze Vermögen 3: setzeSpieler 2: setze Einsatz Spieler: Ira Vermögen: 5 Setze 3 auf Markus • Klasse Spieler: • public void setzen (int betrag, Feld nFeld) • { • this.vermoegen=vermoegen-betrag; • nFeld.setzeEinsatz(betrag); • nFeld.gesetztVon=this; • } 2 Feld: Markus Nummer: 4 Einsatz: 0 Gesetzt von: 3 Ira • 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) schulte@inf.fu-berlin.de, IBBB 2007
Literatur • Skript (Version 0.01) http://www.coobra.cs.uni-kassel.de/fileadmin/se/LehrerFortbildung/OOM-Skript061108.pdf • Jürgen Börstler: Improving CRC-Card Role-Play with Role-Play Diagrams, OOPSLA'05 Addendum to the Proceedings (Educators' Syposium) • Foliensatz Objektspiel http://did.mat.uni-bayreuth.de/~matthias/veranstaltungen/ws2004/ook/ook8_print.pdf • Sekundarstufe 1: http://ddi.uni-paderborn.de/didaktik/Veroeffentlichungen/examensarbeiten/reinsch_thorsten_objektorientierter_einstieg.pdf http://life.upb.de schulte@inf.fu-berlin.de, IBBB 2007