1 / 24

Nachqualifizierungskurs für Informatiklehrkräfte

Nachqualifizierungskurs für Informatiklehrkräfte. Tagesordnung. Infos und Neuigkeiten Objektorientierte Modellierung Haskell-Übungen. Infos – Termin im KM. Abbrecherquote München TU ca. 1-3 München LMU ca. 5-7 Passau 2 Erlangen 2 Würzburg 4

benita
Download Presentation

Nachqualifizierungskurs für Informatiklehrkräfte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nachqualifizierungskurs für Informatiklehrkräfte

  2. Tagesordnung • Infos und Neuigkeiten • Objektorientierte Modellierung • Haskell-Übungen

  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. 14-19, d.h. mehr als 10% Ursachen Evaluation... • 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

  4. Infos – Kurs 03/05 • Anmeldungen (Stand 26.05.) • München 31 • Passau 4 • Erlangen 7 • Würzburg 12 • Anmeldeschluss 30.05.... Fraglich, welche Kurse überhaupt zustande kommen... Ursachen ??? • 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

  5. Infos – Klausur Termin: Donnerstag, 26.06.03 HS 0220 Arbeitszeit: 10 – 12 Uhr Hilfsmittel: Duden 5 Aufgaben à 20 BE 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. Infos – nächstes Jahr Stoff:

  7. Tagesordnung • Infos und Neuigkeiten • Objektorientierte Modellierung • Haskell-Übungen

  8. Modellierung – warum und wie? (Komplexes) Problem • 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. (z.B.) „Objektorientiertes Programm“ = Menge von Klassen Compilierung und Programmstart Menge von Objekten (Instanzen der Klassen), die untereinander kommunizieren

  9. Objektorientierte Modellierung – wie und warum? Für die Grundkonzepte bieten objektorientierte Sprachen in den meisten Fällen „Standard“- Implementierungen an

  10. Praktisches Vorgehen bei OOM • 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? • 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)? • 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. Ü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. Ü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 Besitzer Kredit Person Arbeitgeber Auto Firma Bank

  13. Bank BLZ Ü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 Besitzer besitzt  1..* Auto Person arbeitet_bei  Arbeitgeber Kredit  stellt_ein 1..* 0..3 Firma Bank

  14. Übung 1

  15. Literatur zur OOM Bernd Oesterreich Objektorientierte Softwareentwicklung Oldenbourg ISBN 3-486-25573-8 www.oose.de/uml

  16. Tagesordnung • Infos und Neuigkeiten • Objektorientierte Modellierung • Haskell-Übungen

  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. 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. Ü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. Übung: Liste passend :: Int -> [Int] -> [Int] passend zahl [] = [] passend zahl (x:xe) |zahl == x = x:passend zahl xe |otherwise = passend zahl xe

  21. map 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]. ist1 :: Int -> Bool ist1 zahl | zahl == 1 = True | otherwise = False passend4 :: [Int] -> [Bool] passend4 = map ist1 passend4 [1,2,0,1,2] [True, False, False, True, False]

  22. map 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] 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]

  23. filter 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] filter „filtert“ die Elemente aus einer Liste, die einer bestimmten Bedingung genügen. Diese Bedingung ist eine Funktion a -> Bool

  24. Fragen ?

More Related