Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue...

19
Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail

Transcript of Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue...

Page 1: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

Einstieg in den Ansatz

Objects firstOO als OOM und OOP

Der Ansatz im SchnelldurchlaufAlte und neue Grundlagen

Die Einstiegsphase im Detail

Page 2: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 2

Phase 1

Notationen, Grundkonzepte und Begriffe

Real / Obj. mit CRC-Notation Objekte und

Klassen in UML

Explorationsumgebung

Phase 2

Angeleitet ModellierenGUI kennen lernen

Üben / GUI-BibliothekEreignisbehandlung

Darstellungs- und Übungsumgebung

Phase 3

Vorgehensmodell eigenständig anwenden

Projekt in Gruppenarbeit

Softwareentwicklungs-werkzeuge und

Bibliotheken

Selbstständigkeit der Schüler

Die drei Phasen

Page 3: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

Schulte, AG DDI 3

Die Schritte der ersten Phase

Realbegegnung ObjektspielCRC-Modell

Interaktives

Objektdiagramm

Klassendiagramm Aktivitätsdiagramme

Schritt 1

Schritt 3

Schritt 2

Page 4: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

Schulte, AG DDI 4

Alte und Neue Grundlagen 1: Systemorientierung und Cognitive Apprenticeship

• Modelling• Vormachen (modellieren)

und erläutern• Wissen im Kontext

• Scaffolding: Hilfestellung, etwa durch Teillösungen

• Ansteigende Vielfalt• Ansteigende Komplexität

Arbeits- Aufgaben

1. Automatisierung

2. Interaktion

4. V

ern

etzu

ng

3. Informations- verarbeitung

5. Normenund

Regulierung

6. Gesellschaftliche Wechselwirkungen

Hardware Soft- ware

Organisations- Strukturen

Page 5: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 5

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)

Page 6: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 6

Zusammenfassung

Das

Beispiel sorgt für den

roten Faden

Ver

schi

eden

e

Abs

trak

tion

s-

stuf

en

anal

ysie

ren

Werkzeug und Notation als Lernmedium

SE-Methoden alsU-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

Page 7: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 7

Erste Phase, erster Schritt

Realbegegnung ObjektspielCRC-Modell

Interaktives

Objektdiagramm

Klassendiagramm Aktivitätsdiagramme

Schritt 1

Schritt 3

Schritt 2

1a 1c1b

Page 8: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 8

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?

Page 9: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 9

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

Im nächsten Schritt (1b)…

• Vergleich mit ‘professionellem’ Entwurf

Etwa:•Spieler: setzt auf ein Feld, hat Geld•Spielfeld: nimmt Betrag auf•Flasche: dreht sich

•Bank: verwaltet Gewinn•Schiedrichter•Geld•Zufallsgenerator•…

Page 10: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 10

Schritte 1b: CRC-Karten

Page 11: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 11

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?

Page 12: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 12

Feld: otto

Einsatz = 0 3Nummer = 1setzenderSpieler = ullinaechstesFeld = marc

Schritt 1c: Objektspiel

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").

Schüler spielen in einer Art Rollenspiel die Objekte eines Programms nach

Feld

nimmt Einsatz auf Feldgibt Einsatz ab Spielerbehalte Einsatz einkennt setzenden Spielerkennt nächstes Feldkennt seine Nummer

Page 13: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 13

Objektspiel

1. Objekte erzeugen

CRC-Karten (per OHP projiziert) Die Objekte des laufende Programms

BenutzerAktive Zuschauer

2. Start des Objektspiels

Page 14: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 14

Objektspiel Flaschendrehen

Feld: GesineNummer: 3Einsatz: 0

Feld: UliNummer: 2Einsatz: 0

Feld: AlbertNummer: 5Einsatz: 0

Feld: MichaelNummer: 6Einsatz: 0

Flasche: PeterNummer: 3Einsatz: 0

Feld: PaulNummer: 1Einsatz: 0NächstesFeld: Uli

Feld: MarkusNummer: 4Einsatz: 0

Spieler: IraVermögen: 5

Setze 3 auf Markus

Page 15: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 15

Objektspiel Flaschendrehen

Feld: GesineNummer: 3Einsatz: 0

Feld: AlbertNummer: 5Einsatz: 0

Feld: MichaelNummer: 6Einsatz: 0

Feld: PaulNummer: 1Einsatz: 0

Feld: MarkusNummer: 4Einsatz: 0

Spieler: IraVermögen: 5

Feld: UliNummer: 2Einsatz: 0

Flasche: PeterNummer: 3Einsatz: 0

2

3

Setze 3 auf Markus

drehen

auswerten…

Page 16: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 16

• 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

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

Etwa:

Page 17: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 17

Ausblick I: Übergang zum Quelltext

Feld: Gesine

Nummer: 3Einsatz: 0

Feld: Albert

Nummer: 5Einsatz: 0

Feld: Michael

Nummer: 6Einsatz: 0

Feld: PaulNummer: 1Einsatz: 0

Feld: Markus

Nummer: 4Einsatz: 0

Spieler: Ira

Vermögen: 5

Feld: UliNummer: 2Einsatz: 0Flasche:

PeterNummer: 3Einsatz: 0

2. Setzen:CRC

1. Setzen:Spiel

3. Setzen:Obj.-Spiel

4. Setzen:Debugger

5. Setzen:UML

Page 18: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 18

Ausblick II: Mit Objektspieldiagrammenzum Quelltext

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)

Spieler: IraVermögen: 5

Setze 3 auf Markus

2

Feld: MarkusNummer: 4Einsatz: 0 Gesetzt von:

3Ira

3: setzeSpieler

Page 19: Einstieg in den Ansatz Objects first OO als OOM und OOP Der Ansatz im Schnelldurchlauf Alte und neue Grundlagen Die Einstiegsphase im Detail.

[email protected], IBBB 2007 19

Literatur

http://life.upb.de • 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