Objects first OO als OOM und OOP

Slides:



Advertisements
Ähnliche Präsentationen
Dynamische WEB-Applikationen
Advertisements

M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
Anwendungen des OODM auf die ADB / NDB
Institut für Umweltschutz in der Berufsbildung e.V. Folie 1 ALBATROS Ziele Jahreskonferenz 2004 Ziele der Albatros-Jahreskonferenz 2004 Objectives of the.
Lösung 5.1Schleifen 1.while (x < 5)if (x < 5) thenwhile Bif B then { do {{do { x = x + 1; x = x + 1; A A }}}} while (x < 5) while B do {x = x + 1;do {A.
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Java: Objektorientierte Programmierung
JTree Richard Göbel.
Java: Grundlagen der Objektorientierung
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS 07 Prof. Albert Zündorf
3. Klassendiagramme in Java implementieren
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
Informatikunterricht mit Java
UML Begleitdokumentation des Projekts
Unified Modeling Language Einführung zu UML Was ist „UML“?
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Delphi II - OOP IFB Fortbildung
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
Kapitel 4: Die Schule Deutsch 1
Eine Kooperation von ACDCA, GeoGebra und mathe online Franz Embacher
Gerne will ich euch einladen zu feierlichen Rituale - Rituale haben das Besondere, die ursächlich Kraft in sich - wurden stets zur Förderung des menschlichen.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 0: Einführung Prof.
Mentoratsveranstaltung 3 vom – Uhr Formative Lernkontrollen.
Interaktive Karten zur Visualisierung statistischer Daten mit Descartes Vortrag von Annette Eicker GIS - Seminar WS 2000/01.
Intelligente selbständige Roboter Science Fiction oder Science
Powerpoints bestellen-Mail an In ein paar Sekunden kommen Sie in die Welt der MAGIE !
Thema: Gruppenpuzzle Referenten: Carina Thiery Anke Britz
Herzlich willkommen zum 2. Tag!
Hallo Allerseits, um im Sprachunterricht zu verwenden, brauchte ich zwei Felder nebeneinander, auf denen per Zufallsgenerator zwei Begriffe aus einer vorgegebenen.
OOD – Object Oriented Design II
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Server.
Unified Modeling Language Repetition / Einführung zu UML
Formale Sprachen und Automaten
Wochenplanunterricht
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Zwischenmenschliche Beziehungen
Module, Klassen, Verträge
Performer PRIMUS ® und PRIMUS 50plus ® Generationen -Versorgung.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
UML-Kurzüberblick Peter Brusten.
30. April 2004 Wie arbeiten Bibliotheken in anderen Ländern? II Bibliotheken in den Vereinigten Staaten - Libraries in the USA.
Design Patterns Ein Muster (pattern) ist eine Idee, die sich in einem praktischen Kontext als nützlich erwiesen hat und dies auch in anderen sein wird.
Objektorientierte Modellierung mit UML
Frage des Tages 22:40 Uhr ist... a) vierzig nach zehn. b) zwanzig vor elf.
Das Entwurfsmuster Model-View-Controller
4. Modellieren und Diagrammarten
Objects first mit BlueJ und Greenfoot
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
Informatik Softwareentwicklung – 4.2 Diagramme
 Präsentation transkript:

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

Selbstständigkeit der Schüler Die drei Phasen Phase 1 Notationen, Grundkonzepte und Begriffe Real / Obj. mit CRC-Notation Objekte und Klassen in UML Explorationsumgebung 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 Wesentliche Neuerung: Lernreihenfolge gegenüber herkömmlichen Vorgehen uzmgedreht: Hier vom Verständnis und Überblick hin zu IMplementationsdetails, sonst umgekehrt. Gleichzeitig Versuch, Schüler möglichst früh in authentischen Szenarien selbst aktiv werden zu lassen In den Phasen übernehmen die Werkzeuge jeweils unterschiedliche didaktische Funktionen Auf den folgenden Folien die drei Phasen im Detail Selbstständigkeit der Schüler schulte@inf.fu-berlin.de, IBBB 2007

Die Schritte der ersten Phase Realbegegnung CRC-Modell Objektspiel Interaktives Objektdiagramm Schritt 2 Schritt 3 Klassendiagramm Aktivitätsdiagramme Schulte, AG DDI

Scaffolding: Hilfestellung, etwa durch Teillösungen 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 1. Automatisierung 2. Interaktion 3. Informations- verarbeitung Hardware Soft- ware Arbeits- Aufgaben Organisations- Strukturen 4. Vernetzung Didaktisches Grundproblem: Punkte 1+6 zu weit auseinander Typischer Unterricht: 1 + 2 ? Hubwieser: 3? Schülerinteressen: 4 ? Unterschiede 5 + 6: Punkt 5 ist das bereits geregelte, fasslich gewordene Gesellschaftliche Implikatuion, etwa das Datenschutzgesetz Zu 6 gehört mE die Erkenntnis, dass Technik gestaltet: und Informationstechnik gestaltet in erheblichem Maße unser Zusammenleben 5. Normen und Regulierung 6. Gesellschaftliche Wechselwirkungen Schulte, AG DDI

Alte und Neue Grundlagen 2: Programmieren lernen ‘Dimensions of learning programming’ (du Boulay, 1989) Novice mistakes: are the folk wisdoms correct? (1986, Spohrer, Soloway) McCracken-Study; Lister-Study (2001, 2004) “Not seeing the forest for the trees” (Lister et.al 2006) ‘The novice programmers' syndrome of design-by-keyword’ (2003) Novice mistakes: are the folk wisdoms correct? (1986, Spohrer, Soloway) Die meisten Fehler nicht konstruktbasiert, sondern ‘Planfehler’: Probleme, Einzelteile zusammenzusetzen ‘Dimensions of learning programming’ (du Boulay, 1989) Programmieren lernen umfasst versch. Dimensionen, u.a. “Notional machine” ‘The novice programmers' syndrome of design-by-keyword’ (2003) Nur oberflächliche Problemanalyse McCracken-Study; Lister-Study Problem Problemlösen; oder schon vorher “Not seeing the forest for the trees” (Lister et.al 2006) Soloway Spohrer: (1) yes, a few bug types account for a large percentage of program bugs, and (2) no, misconceptions about language constructs do not seem to be as widespread or as troublesome as is generally believed. Rather, many. bugs arise as a result of plan composition problems- difficulties in putting the “pieces” of a program together [see sidebar)-and not as result of construct-based problems, which are misconceptions schulte@inf.fu-berlin.de, IBBB 2007

Werkzeug und Notation als Lernmedium Zusammenfassung Das Beispiel sorgt für den roten Faden 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 Werkzeug und Notation als Lernmedium Verschiedene Abstraktions- stufen analysieren SE-Methoden als U-Methoden Vorgefertigte Teile benutzen (Modelling und Scaffolding): (Visuellen) Quelltext analysieren nachdem dessen Funktionalität auf verschiedenen Niveaustufen erprobt wurde. -> Syntax und Semantik entdecken; Formalisierungs- und Abstraktionsstufen entdecken Nicht nur einzelne Bäume, sondern auch den Wald sehen: Funktionalität mit Anwendungsfall verbinden Komplettes, sinnvolles Beispiel untersuchen Komplexitätsreduktion per Unterrichtsmethodik, exemplarischer Analyse und Werkzeugunterstützung Niveaustufen = (implizit) Schritte des Softwareentwicklungsprozesses, Verbindungen und Unterschiede thematisieren (kurze) Diskussionen von Gestaltungsalternativen nicht unterdrücken schulte@inf.fu-berlin.de, IBBB 2007

Erste Phase, erster Schritt Realbegegnung CRC-Modell Objektspiel 1a 1b 1c Interaktives Objektdiagramm Schritt 2 Schritt 3 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 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 … 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 Schüler spielen in einer Art Rollenspiel die Objekte eines Programms nach Feld nimmt Einsatz auf Feld gibt Einsatz ab Spieler behalte Einsatz ein kennt setzenden Spieler kennt nächstes Feld kennt seine Nummer 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"). Feld: otto Einsatz = 0 3 Nummer = 1 setzenderSpieler = ulli naechstesFeld = marc 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 Aktive Zuschauer Benutzer schulte@inf.fu-berlin.de, IBBB 2007

Objektspiel Flaschendrehen Spieler: Ira Vermögen: 5 Feld: Paul Nummer: 1 Einsatz: 0 NächstesFeld: Uli Setze 3 auf Markus Feld: Michael Nummer: 6 Einsatz: 0 Feld: Uli Nummer: 2 Einsatz: 0 Flasche: Peter Nummer: 3 Einsatz: 0 Feld: Albert Nummer: 5 Einsatz: 0 Feld: Gesine Nummer: 3 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 schulte@inf.fu-berlin.de, IBBB 2007

Objektspiel Flaschendrehen Spieler: Ira Vermögen: 5 Feld: Paul Nummer: 1 Einsatz: 0 2 Setze 3 auf Markus Feld: Michael Nummer: 6 Einsatz: 0 Feld: Uli Nummer: 2 Einsatz: 0 Flasche: Peter Nummer: 3 Einsatz: 0 Feld: Albert Nummer: 5 Einsatz: 0 Feld: Gesine Nummer: 3 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 drehen 3 auswerten … schulte@inf.fu-berlin.de, IBBB 2007

Auswertung Objektspiel 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: Klassen: Struktur eines Objekts Haben keine Werte … Klassen sind Baupläne Objekte: Es kann mehrere geben Haben Werte Kennen einander Objekte sind aktiv schulte@inf.fu-berlin.de, IBBB 2007

Ausblick I: Übergang zum Quelltext 3. Setzen: Obj.-Spiel 4. Setzen: Debugger Spieler: Ira Vermögen: 5 Feld: Paul Nummer: 1 Einsatz: 0 Feld: Michael Nummer: 6 Einsatz: 0 Feld: Uli Nummer: 2 Einsatz: 0 Flasche: Peter Nummer: 3 Einsatz: 0 Feld: Albert Nummer: 5 Einsatz: 0 Feld: Gesine Nummer: 3 Einsatz: 0 Feld: Markus Nummer: 4 Einsatz: 0 5. Setzen: UML 1. Setzen: Spiel 2. Setzen: CRC schulte@inf.fu-berlin.de, IBBB 2007

Ausblick II: Mit Objektspieldiagrammen zum Quelltext Setze 3 auf Markus 1: setze Vermögen Klasse Spieler: public void setzen (int betrag, Feld nFeld) { this.vermoegen=vermoegen-betrag; nFeld.setzeEinsatz(betrag); nFeld.gesetztVon=this; } Spieler: Ira Vermögen: 5 2 3: setzeSpieler 2: setze Einsatz 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