Nachqualifizierungskurs für Informatiklehrkräfte

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung Compilertechnik Sommersemester 2008
Advertisements

Christian Schindelhauer
Sortieren I - Bubblesort -
Eingebettete Systeme Qualität und Produktivität
Grenzen endlicher Automaten
Suche in Texten (Stringsuche )
Institut für Informatik Abt. Intelligente Systeme
8. Formale Sprachen und Grammatiken
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Grundlagen der Informatik
Kapitel 4 Datenstrukturen
Kapitel 4 Syntaktische Analyse: LR Parsing.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Stoyan Mutafchiev Betreuer: Ilhan, Tim
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
Algorithmentheorie 04 –Hashing
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen Organisatorisches zu den Übungen Tobias Lauer.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Reguläre Sprachen Karin Haenelt.
© Karin Haenelt 2006, Äquivalenzen Reg.Ausdrücke, Reg.Sprachen, EA ( ) 1 Reguläre Sprachen Karin Haenelt.
Beispiele für Ausdrucksalgebren
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Christian Schindelhauer
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Christian Schindelhauer
Matthias Spohrer · TU München 8. Präsenzveranstaltung – TU Stammgelände Innenstadt Nachqualifizierungskurs für Informatiklehrkräfte.
Nachqualifizierungskurs für Informatiklehrkräfte
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Grenzen der Regularität
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Mehrkriterielle Optimierung mit Metaheuristiken
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Analyse von Ablaufdiagrammen
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Eine Präsentation von Lena Sauter & Corinna Nawatzky
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Turing-Maschine als Akzeptor.
Landkarten Landkarten sind Tesselationen mit folgenden Eigenschaften:
Rechnerstrukturen 3b. Endliche Automaten.
Analyse der Laufzeit von Algorithmen
Mensch – Maschine - Kommunikation
Grammatikalische Begriffe im Unterricht
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Christian Scheideler WS 2008
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Präsentation transkript:

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 ;-) 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 CD Onlinekurs: „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. reflexiv irreflexiv Symmetr. antisymm transitiv linear Partielle Ordnung  Totale Ordnung Strenge Ordnung 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.

Aktionsstruktur Angenommen, eine Kausalitätsrelation einer Aktionsstruktur ist total. Was sagt das über die Aktionsstruktur aus? Man sagt, eine solche Aktionsstruktur ist sequentiell. e4 e3 e2 e1 e8 e7 e6 e5

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 P3 KE Pin [not(korrekt(Pin))] / zieheKarteEin UML – Notation (Unified Modeling Language) Kein B, kein A (5-Tupel)  endlicher Automat

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. x=5 x := x+1 x=6 Zustand

Mustererkennung (Pattern matching) Motivation: Worterkennung / Mustererkennung (Pattern matching) Bsp.: Suchfunktion in MS Windows

Suchfunktion in MS Word

Endlicher Automat 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 (z0Z), E := Menge der Endzustände (E  Z). 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 1 Z0 Z1 Z2

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

Erweiterung des endlichen Automaten Mealy-Automat (Mealy-Maschine) „endlicher Automat und zusätzlich Ausgabe A und Ausgabefunktion  : (Z×E)A und ohne Endzustände” (6-Tupel) z1 e / a z2 Prinzip des ZÜD: Moore-Automat (Moore-Maschine) „Mealy-Automat nur  : Z  A ” (6-Tupel) a z1 e z2 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, …

Algorithmus „Bubblesort“ 5 8 2 7 3 1 9 4 6 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 („der unsort. Liste“) Äußere Wiederholung Innere Wiederholung Es folgt eine Animation nach Prof. Kemper:

1. äußere Wiederholung 5 8 2 7 3 1 9 4 6 1. und 2. innere Wiederh.: 3. innere Wiederh.: 5 2 8 7 3 1 9 4 6 4. innere Wiederh.: 5 2 7 8 3 1 9 4 6 5. innere Wiederh.: 5 2 7 3 8 1 9 4 6 6. und 7. innere Wiederh.: 5 2 7 3 1 8 9 4 6 8. innere Wiederh.: 5 2 7 3 1 8 4 9 6 9. innere Wiederh.: 5 2 7 3 1 8 4 6 9

2. äußere Wiederholung 5 2 7 3 1 8 4 6 9 2 5 7 3 1 8 4 6 9 2 5 3 7 1 8 4 6 9 2 5 3 1 7 8 4 6 9 2 5 3 1 7 4 8 6 9 2 5 3 1 7 4 6 8 9

3. äußere Wiederholung 2 5 3 1 7 4 6 8 9 2 3 5 1 7 4 6 8 9 2 3 1 5 7 4 6 8 9 2 3 1 5 4 7 6 8 9 2 3 1 5 4 6 7 8 9

4. äußere Wiederholung 2 3 1 5 4 6 7 8 9 2 1 3 5 4 6 7 8 9 2 1 3 4 5 6 7 8 9 2 1 3 4 5 6 7 8 9

5. äußere Wiederholung 2 1 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

Sortieren: Bubblesort 1 2 3 4 5 6 7 8 9 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 Einfuehrung_in_Java.pdf 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 ?