340 likes | 414 Views
Nachqualifizierungskurs für Informatiklehrkräfte. Inhaltsübersicht. Infos und Neuigkeiten Übungsbetrieb Klausur Wiederholung: Aktionsstruktur Zustandsmodelle Algorithmen Kleine Einführung in Java. Übungsbetrieb. Ablauf (momentaner Stand ;-)
E N D
Inhaltsübersicht • Infos und Neuigkeiten • Übungsbetrieb • Klausur • Wiederholung: • Aktionsstruktur • Zustandsmodelle • Algorithmen • Kleine Einführung in Java
Übungsbetrieb Ablauf (momentaner Stand ;-) • Donnerstag oder Freitag: neues Material (Skript Prof. Hubwieser sowie mathematische Grundlagen dazu von Margret Bauer) und neues Übungsblatt (wie bisher im Kursbrief integriert) • Dienstag eine Woche später Abgabetermin • Bitte um Nachsicht bei Fehlern – dieser Kurs ist der „Testlauf“... Anmerkungen, Wünsche, Fehler etc. bitte per E-Mail an mich – ich leite alles weiter • Umfrage am Ende des Kurses (auch DB-Umfrage folgt noch!) • Am Ende des 2. Moduls wird es evtl. eine verbesserte Version 1.x des Gesamtmaterials geben, für Interessierte • kein neues Blatt in den Winterferien (Pause!)
Übungsbetrieb • auf den Übungsblättern wird es ab Kapitel 5 auch Programmieraufgaben (P) geben. • Die Lerninhalte zur Einführung in Java befinden sich auf der ausgeteilten CDOnlinekurs: „Objektorientierte Modellierung und Programmierung“ • Im Rahmen dieser Einführung • erhalten Sie im Kursbrief ggf. auch kurze Informationen, welche Teilkapitel „der CD“ zu lesen sind, ggf. bekommen sie auch Codefragmente Irgendwas.java mitgeliefert, die die Schreibarbeit bei den (P)-Übungsaufgaben erleichtern. • wird für manche Kapitel x auf dem BSCW ein Ordner Tippsx bereitgestellt, der mehrere Dateien mit immer detaillierteren Hinweisen zu den Programmieraufgaben enthält. Diese Dateien bitte erst nach hinreichendem eigenen Knobeln anschauen!
Klausur • Sorry, sie war zu lang, den Fehler werden wir (hoffentlich) nicht noch einmal machen… • Trotzdem war eine Angleichung des Notenschlüssels (80 Punkte sind 100%) wohl gar nicht notwendig • Das Ergebnis hat mich sehr gefreut: (wir haben sogar den besten Schnitt – ich will das auch so im Staatsexamen haben ;-) • Die Zuordnung Einzelnoten – Kursteilnehmer wird von mir nicht an Dritte (außer an Prof. Hubwieser) weitergegeben. • Im ersten Studienjahr wird es nur noch eine weitere Klausur geben! • Thema: Ablaufmodellierung und OOM • Klausurtermin: Donnerstag 26.Juni
Weitere Infos • Arbeitsbelastung? • Fehlende Unterstützung durch Schulleitung? • Fragen, Probleme, Wünsche? • Literatur: • Steger, Angelika: Diskrete Strukturen • Schöning, Uwe: Theoretische Informatik kurzgefasst • Kröger, Fred: Einführung in die Informatik (Algorithmik?) • Java-Literatur
Modellierung von Abläufen Möglichkeiten, Abläufe zu beschreiben Aktionsstrukturen Algorithmische Modelle Zustandsmodell
Aktionsstruktur Beschreibung von kausaler Abhängigkeit von Ereignissen, Nebenläufigkeit Betriebssysteme Gleisanlage Zwei Züge fahren im Uhrzeigersinn Zug 1 will Punkt C passieren. Was muss alles passiert sein? Was kann noch passiert sein?
Aktionsstruktur Die Kausalitätsrelation einer Aktionsstruktur ist definiert als partielle Ordnung über der Ereignismenge. Eine partielle Ordnung ist transitiv. Diese Eigenschaft haben wir verwendet, als wir in vorherigem Beispiel alle Ereignisse ermittelt haben die vor „transC“ stattfinden müssen. Eine partielle Ordnung ist antisymmetrisch. D. h. e1 e2 und e2 e1 ist nur genau dann möglich, wenn die beiden Ereignisse identisch sind. Wenn man Kausalität ausdrücken möchte ist dies eine sehr sinnvolle Bedingung. Eine partielle Ordnung ist reflexiv. Eine partielle Ordnung kann total (=linear) sein.
Aktionsstruktur Ist die Kausalitätsrelation der Aktionsstruktur aus der Fahrstuhlaufgabe (Übung Aufg. 3) bzw. von eben gesehenem Beispiel (Gleisanlage) eine totale Ordnung? Nein, 1 und 3 stehen nicht in Relation zueinander. (Es ist vollkommen egal, in welcher Reihenfolge die beiden Ereignisse stattfinden.) Nein, auch beim Gleisverkehr gibt es Ereignisse, die nicht in Relation zueinander stehen.
e4 e3 e2 e1 e8 e7 e6 e5 Aktionsstruktur Angenommen, eine Kausalitätsrelation einer Aktionsstruktur ist total. Was sagt das über die Aktionsstruktur aus? Man sagt, eine solche Aktionsstruktur ist sequentiell.
Pin [not(korrekt(Pin))] / zieheKarteEin P3 KE Erweitertes Zustandsmodell Aktionsstrukturen können Verhalten / Interaktion verschiedener Objekte beschreiben(vgl. zwei Personen fahren Lift) Zustandsmodelle (= Automaten) beschreiben i. a. das Verhalten eines einzelnen Objekts(Lift hält /fährt /defekt …) Erweitertes Zustandsmodell ( Softwareentwicklung): ZM = (Z,E,A,B,δ,z0,F)7-Tupel: Zustände, Ereignisse, Aktionen, Bedingungen, Übergangsfunktion (Transition) δ : (Z×E×B)(A×Z), ein Startzustand, Endzustände Bsp. aus Blatt 2 Bankautomat (ein Übergang aus dem Zustandsdiagramm):P3: Automat erwartet 3. Eingabe der Pin KE: (neue) Karte wird erwartet UML – Notation (Unified Modeling Language) Kein B, kein A (5-Tupel) endlicher Automat
x := x+1 x=5 x=6 Zustand Zustand Endlicher Automat • Ein abstraktes Rechnermodell ( theoretische Informatik) weist auf endlich viele Zustände, „endliche Gedächtnisleistung“ hin • Ein endlicher Automat „kann“ genauso viel wie jeder Computer! • Erkennungsmechanismus für eine bestimmte Klasse von Sprachen (sog. „reguläre Sprachen“) • Anwendung endlicher Automaten? • z.B. • Syntaxprüfung mit endlichen Automaten (Kapitel 4 dieses Moduls), • Teilworterkennung -> Suchen, Suchmaschinen (vgl. auch Aufgabe 7 Molekülanalyse des 2. Übungsblatts) Die Zuweisung (von Werten an Variablen) im imperativen Programmierstil kann als Zustandsübergang aufgefasst/modelliert werden.
Motivation: Worterkennung / Mustererkennung(Pattern matching) Bsp.: Suchfunktion in MS Windows
Ein (deterministischer) endlicher Automat M (kurz DFA) ist gegeben durch ein 5-Tupel , wobei Z := endliche Menge der Zustände, := Eingabealphabet (endlich!), es gilt Z : Z Z heißt Überführungsfunktion, z0 := Startzustand (z0Z), E := Menge der Endzustände (E Z). Endlicher Automat Z:={Z0; Z1; Z2} :={0; 1} z0:=Z0 E:={Z2} Bsp.: Gesucht wird ein Automat, der erkennt, ob eine (als Binärzahl) eingegebene Zahl durch 4 teilbar ist. : (Z0,0)Z1 (Z0,1)Z0 (Z1,0)Z2 (Z1,1)Z0 (Z2,0)Z2 (Z2,1)Z0
Endlicher Automat „partieller Automat“ „Minimalautomat“ Aufgabe 6...
Endlicher Automat – Formale Sprachen Formale Sprache: Jede Teilmenge von A*, wobei A ein Alphabet Beispiel: Sei A = {A,B,C,...,X,Y,Z,Ä,Ü,Ö,a,b,c,...,x,y,z,ä,ü,ö} =der „deutsche Zeichensatz“ A* = die Menge aller Zeichenketten mit Zeichen aus A. Dann liegen z.B. die Wörter „jkxoö“, „AKakLL“ und „yes“ in A*, aber auch die Wörter „Automat“, „Schweinebraten“ und „römisch“. Eine mögliche Teilmenge von A* wäre dann beispielsweise die Menge aller im Duden vorkommenden Wörter. Diese Menge bildet dann eine formale Sprache, die wir wohl als „deutsche Sprache“ oder kurz „Deutsch“ bezeichnen würden. Um mit solchen Sprachen, die i.a. unendliche Objekte sind, algorithmisch umgehen zu können, benötigen wir jedoch endliche Beschreibungsmöglichkeiten für Sprachen. Dazu dienen sowohl die Grammatiken als auch die Automaten.
Grammatik N={A,B} Eine Grammatik ist ein 4-Tupel G = (N,T,P,S) mit: N:=endliche Menge von Variablen (Nicht-Terminalzeichen) T:= endliche Menge von Terminalzeichen P:=endliche Menge der Regeln oder Produktionen S ist die Startvariable (und muss in N liegen) Außerdem muss gelten T={a,b} P = { A aA, A aB, B bB, B b} S=A Es gilt zum Beispiel: A => aA => aaA => aaaB => aaabB => aaabb Vermutung: Die Sprache L(G) über der Grammatik G lässt sich schreiben als
BNF N={A,B} T={a,b} P = { A aA, A aB, B bB, B b} S=A Es gilt zum Beispiel: A => aA => aaA => aaaB => aaabB => aaabb Vermutung: Die Sprache L(G) über der Grammatik G lässt sich schreiben als
BNF N={A,B} In diesem Beispiel handelt es sich um eine sog. reguläre Sprache. Das sind genau diejenigen Sprachen, dessen Worte von endlichen Automaten erkannt werden können. Aufgabe: konstruiere einen EA, der genau diese Worte erkennt. Das Eingabealphabet soll {a,b,x} sein, wobei x für jedes beliebige andere Zeichen stehen soll. T={a,b} P = { A aA, A aB, B bB, B b} S=A Vermutung: Die Sprache L(G) über der Grammatik G lässt sich schreiben als
Endlicher Automat Simulationsprogramm für endliche Automaten: Charon
e / a e z1 z2 z1 z2 Erweiterung des endlichen Automaten Mealy-Automat (Mealy-Maschine) „endlicher Automat und zusätzlich Ausgabe A und Ausgabefunktion : (Z×E)Aund ohne Endzustände” (6-Tupel) Prinzip des ZÜD: Moore-Automat (Moore-Maschine) „Mealy-Automat nur : Z A ” (6-Tupel) a Prinzip des ZÜD:
Algorithmus Ein Algorithmus stellt eine bestimmte Lösung für eine Klasse von Aufgaben dar. Für eine Klasse von Aufgaben gibt es meist recht unterschiedliche Algorithmen. Bsp. aus Kapitel 3 des Moduls Klasse von Aufgaben: Sortieren Unterschiedliche Algorithmen: Bubblesort, Quicksort, Sortieren durch Einfügen, …
5 8 2 7 3 1 9 4 6 Algorithmus „Bubblesort“ Betrachtete Zahl Pseudocode des Algorithmus aus dem Material: Wiederhole (Anzahl der Elemente der Liste -1) mal Wiederhole für alle Zahlen von der ersten bis zur vorletzen Falls die betrachtete Zahl größer ist als die folgende Vertausche die beiden Zahlen Ende Falls Ende Wiederhole Ende Wiederhole („der unsort. Liste“) Äußere Wiederholung Innere Wiederholung Es folgt eine Animation nach Prof. Kemper:
5 5 5 5 5 5 5 2 2 2 8 2 2 2 2 7 7 7 7 7 8 7 7 8 3 3 3 3 3 3 1 3 8 1 1 1 8 1 8 1 8 1 9 9 9 4 9 9 4 6 4 4 4 4 9 4 6 6 6 6 9 6 6 1. äußere Wiederholung 1. und 2. innere Wiederh.: 3. innere Wiederh.: 4. innere Wiederh.: 5. innere Wiederh.: 6. und 7. innere Wiederh.: 8. innere Wiederh.: 9. innere Wiederh.:
2 5 2 2 2 2 2 5 5 5 5 5 3 7 7 3 3 3 7 1 3 1 3 1 1 1 7 1 7 7 4 8 8 4 8 8 8 4 6 4 4 4 6 6 6 6 6 8 9 9 9 9 9 9 2. äußere Wiederholung
2 2 2 2 2 5 3 3 3 3 5 3 1 1 1 1 5 5 1 5 4 4 7 7 7 4 6 4 4 7 6 7 6 6 6 8 8 8 8 8 9 9 9 9 9 3. äußere Wiederholung
2 2 2 2 3 1 1 1 3 3 3 1 4 5 4 5 4 5 5 4 6 6 6 6 7 7 7 7 8 8 8 8 9 9 9 9 4. äußere Wiederholung
2 1 1 2 1 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 5. äußere Wiederholung
1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 Sortieren: Bubblesort 6. äußere W.: Ergebnis: 7. äußere W.: Ergebnis: 8. äußere W: Endergebnis:
Kleiner Ausblick Fragen: Wie gut ist der Sortier-Algorithmus Bubblesort? Wie könnte er (ein bisschen) verbessert werden? Was heißt „gut“, wovon kann das evt. auch abhängen? Gibt es „bessere“ Sortier-Algorithmen? -> 2. Studienjahr Modul „Algorithmen und Datenstrukturen“ Vergleich der beiden Sortier-Algorithmen Bubblesort und Quicksort Quicksort werden sie in Kapitel 7 dieses Moduls noch kennenlernen
Einführung in Java • Programmieren lernt man nur durch Üben! • Besonders am Anfang wird man dabei oft mehr oder weniger einfache Fehler machen. Die Fehlersuche ist oft sehr nervtötend. Sie können aber davon ausgehen, dass jeder, der mit einer Programmiersprache beginnt, ähnliche Erfahrungen macht bzw. gemacht hat. • Verzweifelt also nicht in solchen Situationen!!!!! • Oft ist hier die Verbindungsaufnahme (E-Mail, Telefon, ...) mit einer/m Kurskollegen/in oder mir sehr hilfreich. • Einfuehrung_in_Java.pdf • (Autor des Originals: Herr Dreßler aus Würzburg)
Fragen ?