Seminar: Aktuelle Themen aus der Programmierung Organisatorisches / Vorbesprechung Professur für Künstliche Intelligenz & Softwaretechnologie Stand der Folien: 4. April 2014 SoSe 2014 Organisatorisches Vortrag und Ausarbeitung Themen Modulabschlussprüfung Personen Prof. Dr. Manfred Schmidt-Schauß Zimmer 215 Email: [email protected] Mitarbeiter PD Dr. David Sabel Zimmer 216 Email: [email protected] PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 2/26 Organisatorisches Vortrag und Ausarbeitung Themen Modulabschlussprüfung Webseite www.ki.informatik.uni-frankfurt.de/lehre/SS2014/PR-BS beinhaltet alle relevanten Informationen: Hinweise zur Ausarbeitung und Themenliste Terminplan aktuelle Bekanntmachungen PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 3/26 Organisatorisches Vortrag und Ausarbeitung Themen Modulabschlussprüfung Termine 1-2 Vorträge jeweils Donnerstags, 14 c.t. in SR 307 (Informatik) Reihenfolge wird bald festgelegt, erster Vortrag am 8. Mai PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 4/26 Organisatorisches Vortrag und Ausarbeitung Themen Modulabschlussprüfung Modul B-PR-BS Das Seminar ist ist Pflichveranstaltung des Moduls B-PR-BS B-PR-BS gehört zum Vertiefungsgebiet Betriebs- und Kommunikationssysteme und Programmiersprachen und -paradigmen (BKSPP) Umfang des Moduls: 5 CP PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 5/26 Organisatorisches Vortrag und Ausarbeitung Themen Modulabschlussprüfung Modul B-PR-BS Anmeldung zur Modulabschlussprüfung Erfolgt automatisch durch den Veranstalter Modulabschlussprüfung Regelmäßige Teilnahme (nicht mehr als zweimal fehlen) schriftliche Ausarbeitung (Note 4,0 oder besser) sowie ein Vortrag (Note 4,0 oder besser) Einordnung der Veranstaltung ist Pflichveranstaltung des Moduls B-WV-BS B-WV-BS gehört zum Vertiefungsgebiet Informationssysteme und Wissensverarbeitung (ISWV) Umfang des Moduls: 5 CP Benotung Arithm. Mittel aus den beiden Noten Noten werden erst am Ende des Seminars bekannt gegeben. PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 6/26 Organisatorisches Vortrag und Ausarbeitung Themen Vortrag Ausarbeitung Vorbereitung und Einarbeitung Literatur möglichst schnell besorgen Evtl. weitere Literatur recherieren Lesen: Was ist wichtig / unwichtig. Programme: Am besten selbst ausprobieren und testen Gliederung für die Ausarbeitung erstellen, muss sich unbedingt nach dem Originaltext richtig usw. PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 7/26 Organisatorisches Vortrag und Ausarbeitung Themen Vortrag Ausarbeitung Vortrag ca. 40min Dauer + 5-10 Minuten Diskussion und Fragen im Anschluss Gestaltungshinweise in der Anleitung keine Kopie der Ausarbeitung! Beamer + Notebook Professur-Notebook: kein PowerPoint, nur PDF, oder: Eigenes Notebook: Ein paar Tage vor dem Vortrag mit Beamer testen Kurze Programmvorführungen während des Vortrags erwünscht PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 8/26 Organisatorisches Vortrag und Ausarbeitung Themen Vortrag Ausarbeitung Ausarbeitung Abgabe zwei Wochen vor dem Vortrag Ausdruck und PDF Umfang ca. 10 Seiten vorherige Besprechung des Konzepts: freiwillig, aber bitte vorher Termin per Email ausmachen Höchstens eine Nachbesserung bis spätestens zwei Wochen nach dem Vortrag PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 9/26 Organisatorisches Vortrag und Ausarbeitung Themen Vortrag Ausarbeitung Ausarbeitung (2) Anforderungen Schriftgrösse 11 oder 12pt. Korrekturrand lassen Blocksatz verwenden Nummerierte Abschnitte Titelblatt mit Thema und Namen Inhaltsverzeichnis, Literaturverzeichnis Seitenzahlen PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 10/26 Organisatorisches Vortrag und Ausarbeitung Themen Themen Thema Thema Thema Thema Thema Thema Thema Thema Thema Thema 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Thema Thema Thema Thema Thema 11: 12: 13: 14: 15: Solving the Snake Cube Puzzle in Haskell When Maybe is not good enough An in-situ algorithm for expanding a graph Parse Your Options Metamorphism in jigsaw Finding Palindromes: Variants and Algorithms Building a consensus: A rectangle covering problem Concurrent Distinct Choices Parsing permutation phrases Comprehensive Encoding of Data Types and Algorithms in the Lambda-Calculus Fun with Semirings Linear, Bounded, Functional Pretty-Printing Enumerating the strings of regular languages The Bird Tree La tour d’Hanoı̈ PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 11/26 Organisatorisches Vortrag und Ausarbeitung Themen Solving the Snake Cube Puzzle in Haskell Es wird ein Programm beschrieben, das Lösungen zum “Snake Würfel” berechnet. Programm in Haskell Literatur Mark P. Jones: Solving the snake cube puzzle in Haskell Journal of Functional Programming, Band 23(2), S. 145–160, 2013 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 12/26 Organisatorisches Vortrag und Ausarbeitung Themen When Maybe is not good enough Verschiedene Arten von Parsern (Parserkombinatoren) in Haskell Parser die als Ausgabe eine Liste von (Erkanntes Ergebnis, Resteingabe) liefern “Maybe”-Parser, die nur Just (Erkanntes Ergebnis, Resteingabe) oder Nothing liefern Unterschiede zwischen diesen Parsern werden erläutert. Literatur Michael Spivey: When Maybe is not good enoughs Journal of Functional Programming, Band 22(6), S. 747–756, 2012 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 13/26 Organisatorisches Vortrag und Ausarbeitung Themen An in-situ algorithm for expanding a graph “Rechtfertigung” für einen Array-basierter Algorithmus zur Repräsentation von ungerichteten Graphen Eigenschaften von Graphen und Arrays und Algorithmen dafür. in-situ = “am Ort” ist eine benötigte Eigenschaftn für den Algorithmus. Literatur Richard S. Bird: An in-situ algorithm for expanding a graph Journal of Functional Programming, Band 23(2), S. 174–184, 2013 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 14/26 Organisatorisches Vortrag und Ausarbeitung Themen Parse Your Options Parserkombinatoren in Haskell Anwendungsbeispiel: Parsen von Kommandozeilenoptionen Literatur Doaitse S. Swierstra und Atze Dijkstra: Parse Your Options The Beauty of Functional Code, Lecture Notes in Computer Science, Band 8106, S. 234-249, 2013 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 15/26 Organisatorisches Vortrag und Ausarbeitung Themen Metamorphism in jigsaw Metamorphismus = unfold . fold fold konsumiert Eingaben unfold produziert Ausgaben Verzögerte Abarbeitung von solchen Metamorphismen als Puzzle Literatur Keisuke Nakano: Metamorphism in jigsaw Journal of Functional Programming, Band 23(2), S. 161–173, 2013 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 16/26 Organisatorisches Vortrag und Ausarbeitung Themen Finding Palindromes: Variants and Algorithms Algorithmen in Haskell um Palindrome in Strings zu finden. Varianten von Palindromen (z.B. nur ganze Wörter, keine Teilwörter) Literatur Johan Jeuring: Finding Palindromes: Variants and Algorithms The Beauty of Functional Code, Lecture Notes in Computer Science, Band 8106, S. 258-272, 2013 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 17/26 Organisatorisches Vortrag und Ausarbeitung Themen Building a consensus: A rectangle covering problem Algorithmus in Haskell um das “rectangle covering problem” zu lösen. rectangle covering problem in etwa: Gegeben eine Menge von Rechtecken RS und ein Rechteck R, dass komplett von den Rechtecken in RS verdeckt wird. Konstruiere ein einzelnes Rechteck, dass R überdeckt nach ein bestimmten Vorgehen. Literatur Richard S. Bird: Building a consensus: A rectangle covering problem Journal of Functional Programming, Band 21(2), S. 119–128, 2011 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 18/26 Organisatorisches Vortrag und Ausarbeitung Themen Concurrent Distinct Choices Implementierung von endlichen injektiven Abbildungen, die nebenläufig ausgewertet werden in Curry Anwendungsbeispiele, z.B. SEND+MORE=MONEY Literatur Sergio Antoy und Michael Hanus: Concurrent Distinct Choices Journal of Functional Programming, Band 14(6), S. 657–668, 2004 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 19/26 Organisatorisches Vortrag und Ausarbeitung Themen Parsing permutation phrases Parserkombinatoren in Haskell für sogenannte “Permutation phrases”: Jedes Wort kommt genau einmal vor, aber die Reihenfolge ist egal. Anwendungsbeispiel, z.B. XML-attribute parsen. Literatur Arthur I. Baars, Andres Löh und S. Doaitse Swierstra: Parsing permutation phrases Journal of Functional Programming, Band 14(6), S. 635–646, 2004 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 20/26 Organisatorisches Vortrag und Ausarbeitung Themen Comprehensive Encoding of Data Types and Algorithms in the Lambda-Calculus Kodierung von Datentypen in Lambda-Ausdrücke Sehr bekannt: Church-Kodierung, hier wird aber die Scott-Kodierung erläutert Literatur Jan M. Jansen, Rinus Plasmeijer und Pieter Koopman: Comprehensive Encoding of Data Types and Algorithms in the Lambda-Calculus PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 21/26 Organisatorisches Vortrag und Ausarbeitung Themen Fun with Semirings Lineare Algebra auf geschlossenen Semiringen geschlossener Seminring: Struktur mit Addition, Multiplikation aber nicht notwendigerweise Subtraktion, Division Typklasse in Haskell zur Beschreibung von Semiringen Matrixoperationen auf Matrizen über Semiringen Anwendungsbeispiel: Transitive Hülle, kürzeste Wege in Graphen etc. Literatur Jan M. Jansen, Rinus Plasmeijer und Pieter Koopman: Fun with Semirings Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming, S. 101–110, ACM, 2013 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 22/26 Organisatorisches Vortrag und Ausarbeitung Themen Linear, Bounded, Functional Pretty-Printing Kombinatorbibliothek in Haskell zum Schreiben von Druckfunktionen Schneller imperativer Algorithmus als funktionaler Algorithmus. Literatur S. Doaitse Swierstra und Olaf Chitil: Linear, Bounded, Functional Pretty-Printing Journal of Functional Programming, Band 19(1), S. 1–16, 2009 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 23/26 Organisatorisches Vortrag und Ausarbeitung Themen Enumerating the strings of regular languages Haskell-Programm um die von einem regulären Ausdruck erzeugten Worte aufzuzählen. Verschiedene Ansätze (automatenbasiert, ...) Literatur M. Douglas McIlroy: Enumerating the strings of regular languages Journal of Functional Programming, Band 14(5), S. 503–518, 2004 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 24/26 Organisatorisches Vortrag und Ausarbeitung Themen The Bird Tree Baum der mit Bruchzahlen beschriftet ist und nach einem bestimmten Schema erzeugt wird Benannt nach Richard Bird Eigenschaften, Erzeugung und Anwendungen des Baums Literatur Ralf Hinze: The Bird Tree Journal of Functional Programming, Band 19(5), S. 491–508, 2009 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 25/26 Organisatorisches Vortrag und Ausarbeitung Themen La tour d’Hanoı̈ Am Beispiel der Türme von Hanoi, werden die Programmierkonzepte wholemeal programming und projective programming erläutert This pearl aims to demonstrate the ideas of wholemeal and projective programming using the Towers of Hanoi puzzle as a running example. The puzzle has its own beauty, which we hope to expose along the way. Literatur Ralf Hinze: La tour d’Hanoı̈ Proceedings of the 14th ACM SIGPLAN international conference on Functional programming, S. 3-10, 2009 PR-BS – Organisatorisches – SoSe 2014 – Professur KIST 26/26