Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Matthias Spohrer · TU München 10. Präsenzveranstaltung 02.06.2003 – TU Stammgelände Innenstadt Nachqualifizierungskurs für Informatiklehrkräfte.

Ähnliche Präsentationen


Präsentation zum Thema: "Matthias Spohrer · TU München 10. Präsenzveranstaltung 02.06.2003 – TU Stammgelände Innenstadt Nachqualifizierungskurs für Informatiklehrkräfte."—  Präsentation transkript:

1 Matthias Spohrer · TU München 10. Präsenzveranstaltung – TU Stammgelände Innenstadt Nachqualifizierungskurs für Informatiklehrkräfte

2 Matthias Spohrer · TU München Seite 2 Tagesordnung 1.Infos und Neuigkeiten 2.Objektorientierte Modellierung 3.Haskell-Übungen

3 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 3 Infos – Termin im KM Abbrecherquote München TU ca. 1-3 München LMU ca. 5-7 Passau 2 Erlangen 2 Würzburg 4 Summe: bei 120 Anfängern ca , d.h. mehr als 10% Lehren... Algorithmik-Teil wird überarbeitet (insbes. Mathematischer Hintergrund) Algorithmik-Teil wird ausgedehnt (Faktor 1,5), die anderen Teile entsprechend gekürzt Fester Tag auch im ersten Jahr (Dienstag), Schreiben vom KM an die Schulen Auswahlgespräche für Nichtmathematiker Ursachen Evaluation...

4 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 4 Infos – Kurs 03/05 Anmeldungen (Stand ) München 31 Passau 4 Erlangen 7 Würzburg 12 Anmeldeschluss Fraglich, welche Kurse überhaupt zustande kommen... Lehren... Algorithmik-Teil wird überarbeitet (insbes. Mathematischer Hintergrund) Algorithmik-Teil wird ausgedehnt (Faktor 1,5), die anderen Teile entsprechend gekürzt Fester Tag auch im ersten Jahr (Dienstag), Schreiben vom KM an die Schulen Auswahlgespräche für Nichtmathematiker Ursachen ???

5 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 5 Infos – Klausur Termin: Donnerstag, HS 0220 Arbeitszeit: 10 – 12 Uhr Hilfsmittel: Duden 5 Aufgaben à 20 BE oder 80 BE entsprechen 100% oder Auswahlmöglichkeit 4 aus 5 Minimalziel: mehr als 32 BE Stoff Zustandsmodell, EA OOP mit JAVA Rekursion, Entrekursivierung, Terminierungsbeweis Funktionale Programmierung mit HASKELL OOM Aufgaben möglichst nah an bisherigen SE-Aufgaben, aber auch an neueren (erst kommenden?!) SE-Aufgaben (Modellierung...)

6 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 6 Infos – nächstes Jahr Stoff:

7 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 7 Tagesordnung 1.Infos und Neuigkeiten 2.Objektorientierte Modellierung 3.Haskell-Übungen

8 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 8 Modellierung – warum und wie? (z.B.) Objektorientiertes Programm = Menge von Klassen Menge von Objekten (Instanzen der Klassen), die untereinander kommunizieren Modellierung Modell ist aber immer Abstraktion/Vereinfachung der Wirklichkeit Es gibt i.d.R. keine Ausprägung eines Modells, das die Realität vollständig abbildet Es gibt aber sicher mehrere hinreichend gute Ausprägungen, die aber meist auf bestimmte Aspekte des gegebenen Problems abgestimmt sind. (Komplexes) Problem Compilierung und Programmstart

9 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 9 Objektorientierte Modellierung – wie und warum? Zweck der ModellierungGrundkonzepte 1. Finden der Klassen 2. Strukturierung der Klassen Generalisierung ( Hierarchie) Spezialisierung ( Hierarchie) Abstrakte Klasse ( Festlegung eines Grundrepertoires an Operationen, Hierarchie, ) Interface ( gleiches Verhalten) 3. Herstellen von Beziehungen zwischen den Klassen Assoziationen Delegation Aggregation Komposition Für die Grundkonzepte bieten objektorientierte Sprachen in den meisten Fällen Standard- Implementierungen an

10 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 10 Praktisches Vorgehen bei OOM 1.Finden der Klassen durch Betrachten des gegebenen Szenarios Welche Objekte (=Gegenstände, Konzepte) kommen vor? Gibt es gleichartige Objekte, deren Bauplan (Eigenschaften und Operationen) in einem Bauplan ( Klasse) festgelegt werden kann? 2.Strukturierung der Klassen Gibt es Hierarchiebeziehungen ( Generalisierung, Spezialisierung) Müssen in Hierarchiebeziehungen zu gegebener Zeit noch Klassen eingebaut werden, deren genaue Realisierung man noch nicht kennt, von denen man aber bestimmte Operationen verlangt ( Abstrakte Klassen) Müssen verschiedene Klassen, die nicht in einer Hierarchie stehen, dasselbe Verhalten aufweisen ( Interface)? 3.Finden der Beziehungen zwischen den Klassen durch Betrachten des vorgegebenen Szenarios und der bereits herausgefilterten Objekte Welche Beziehungen/Kommunikationsstränge gibt es zwischen den Objekten? Kann man diese auf die entsprechenden Klassen übertragen, d.h. welche Klasse ist auf Methoden anderer Klassen angewiesen? Gibt es Teile-Ganze-Beziehungen ( Aggregation, Komposition)?...

11 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 11 Übung 1 Eine Bank benötigt Software zur Abwicklung von Autokrediten. Dabei liegt folgendes Szenario zugrunde: Besitzer eines oder mehrerer Autos können Personen, Firmen oder Banken sein. Alle Besitzer haben Namen und Adresse. Bei Personen wird zusätzlich das Geburtsdatum, bei Banken die Bankleitzahl benötigt. Personen können bei maximal drei Arbeitgebern (Firmen, Banken) beschäftigt sein. Wichtige Merkmale der Autos sind Modell und Baujahr. Ein Auto kann nur einen Besitzer haben. Zur Finanzierung eines Autos kann eine Besitzer einen Kredit (Festlegung eines Kontonummer und des Zinssatzes, Abspeicherung des aktuellen Kontostandes) bei einer Bank aufnehmen. Kann eine Besitzer seinen Kreditforderungen nicht nachkommen, so hat die Bank, das Recht das Auto zu pfänden Entwerfen Sie ein UML-Modell!

12 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 12 Übung 1 Eine Bank benötigt Software zur Abwicklung von Autokrediten. Dabei liegt folgendes Szenario zugrunde: Besitzer eines oder mehrerer Autos können Personen, Firmen oder Banken sein. AlleBesitzer haben Namen und Adresse. Bei Personen wird zusätzlich das Geburtsdatum, bei Banken die Bankleitzahl benötigt. Personen können bei maximal drei Arbeitgebern (Firmen, Banken) beschäftigt sein. Wichtige Merkmale der Autos sind Modell und Baujahr. Ein Auto kann nur einen Besitzer haben. Zur Finanzierung eines Autos kann eine Besitzer einen Kredit (Festlegung eines Kontonummer und des Zinssatzes, Abspeicherung des aktuellen Kontostandes) bei einer Bank aufnehmen. Kann eine Besitzer seinen Kreditforderungen nicht nachkommen, so hat die Bank, das Recht das Auto zu pfänden Person FirmaBank Auto Kredit Besitzer Arbeitgeber

13 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 13 Übung 1 Eine Bank benötigt Software zur Abwicklung von Autokrediten. Dabei liegt folgendes Szenario zugrunde: Besitzer eines oder mehrerer Autos können Personen, Firmen oder Banken sein. Alle Besitzer haben Namen und Adresse. Bei Personen wird zusätzlich das Geburtsdatum, bei Banken die Bankleitzahl benötigt. Personen können bei maximal drei Arbeitgebern (Firmen, Banken) beschäftigt sein. Wichtige Merkmale der Autos sind Modell und Baujahr. Ein Auto kann nur einen Besitzer haben. Zur Finanzierung eines Autos kann eine Besitzer einen Kredit (Festlegung eines Kontonummer und des Zinssatzes, Abspeicherung des aktuellen Kontostandes) bei einer Bank aufnehmen. Kann ein Besitzer seinen Kreditforderungen nicht nachkommen, so hat die Bank, das Recht das Auto zu pfänden Person FirmaBank Auto Kredit Besitzer Arbeitgeber besitzt 1..* arbeitet_bei stellt_ein * Bank BLZ

14 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 14 Übung 1

15 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 15 Literatur zur OOM Bernd Oesterreich Objektorientierte Softwareentwicklung Oldenbourg ISBN

16 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 16 Tagesordnung 1.Infos und Neuigkeiten 2.Objektorientierte Modellierung 3.Haskell-Übungen

17 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 17 Übung 2 Gesucht ist eine Funktion ltest, die bei Eingabe eines String und einer Integer-Zahl die Differenz zwischen der Länge der Zeichenkette und der eingegebenen Zahl berechnet, also beispielsweise ltest(hallo,3) = 2 ltest(hallo, 9) = - 4 ltest(informatik, 10) = 0 function ltest (String wort, Int zahl): Int return if wort = then –zahl else 1+ltest(wort.rest, zahl) fi ltest :: (String, Int) -> Int ltest (,zahl) = -zahl ltest(wort, zahl) = 1 + (ltest( (tail wort), zahl))

18 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 18 Fallunterscheidung Gesucht ist eine Funktion ltest, die bei Eingabe eines String und einer Integer-Zahl die Differenz zwischen der Länge der Zeichenkette und der eingegebenen Zahl berechnet, also beispielsweise ltest(hallo,3) = 2 ltest(hallo, 9) = - 4 ltest(informatik, 10) = 0 function ltest (String wort, Int zahl): Int return if wort = then –zahl else 1+ltest(wort.rest, zahl) fi ltest :: (String, Int) -> Int ltest (wort, zahl) | wort== = -zahl | otherwise = 1 + (ltest( (tail wort), zahl))

19 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 19 Übung: Liste Listen in Haskell [ a ] String als spezielle Liste [char] Mit : wird ein Element vor einer Liste angefügt (x:xe) tail (x:xe) wäre dann die Liste xe produkt :: [Int] -> Int produkt [] = 1 produkt (x:xe) = x * produkt xe

20 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 20 Übung: Liste passend :: Int -> [Int] -> [Int] passend zahl [] = [] passend zahl (x:xe) |zahl == x = x:passend zahl xe |otherwise = passend zahl xe

21 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 21 map ist1 :: Int -> Bool ist1 zahl | zahl == 1 = True | otherwise = False map wendet auf alle Elemente einer Liste des Typs a dieselbe Funktion a -> b an und überführt somit die Liste vom Typ [a] in eine Liste vom Typ [b]. passend4 :: [Int] -> [Bool] passend4 = map ist1 passend4 [1,2,0,1,2] [True, False, False, True, False]

22 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 22 map ist1 :: Int -> Bool ist1 zahl | zahl == 1 = True | otherwise = False passend1 :: [Int] -> [Bool] passend1 = map ist1 passend1 [1,2,0,1,2] [True, False, False, True, False] istx :: Int -> Int -> Bool istx x zahl | zahl == x = True | otherwise = False passendx :: Int -> [Int] -> [Bool] passendx x = map (istx x) passendx 1 [1,2,0,1,2] [True, False, False, True, False]

23 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 23 filter filter filtert die Elemente aus einer Liste, die einer bestimmten Bedingung genügen. Diese Bedingung ist eine Funktion a -> Bool istx :: Int -> Int -> Bool istx x zahl | zahl == x = True | otherwise = False passendf :: Int -> [Int] -> [Int] passendf x = filter (istx x) passendf 1 [1,2,0,1,2] [1,1]

24 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 24 Fragen ?


Herunterladen ppt "Matthias Spohrer · TU München 10. Präsenzveranstaltung 02.06.2003 – TU Stammgelände Innenstadt Nachqualifizierungskurs für Informatiklehrkräfte."

Ähnliche Präsentationen


Google-Anzeigen