Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Im Oberseminar behandeln wir Abschnitte aus dem Buch
Jörg Rothe, Dorothea Baumeister, Claudia Lindner und Irene Rothe: Einführung in Computational Social Choice (Spektrum Akad. Verlag, 2012) .
Wir betrachten: Strategien in Spielen, Wahlverfahren und Teilungsalgorithmen. Wir benutzen dabei Methoden aus der Informatik: Spezifikation, Korrektheitsbeweis, Komplexitätsbetrachtung.
Zum Hintergrund dieses Fachgebietes vergleiche What is Computational Social Choice? (Rothe et al., 2010)
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Constraints gibt es überall: die meisten algorithmischen Aufgabenstellungen bestehen aus Einschränkungen an eine Menge von möglichen Lösungen. Die Constraint-Programmierung ist eine Technik zur Lösung solcher Aufgaben, bei der Formulierungen solcher Einschränkungen Bestandteile von Programmen sind. In der Praxis wird Constraint-Programmierung zum Schliessen mit unvollständigem Wissen, zum Lösen kombinatorischer Probleme, zur Modellierung, Simulation und Diagnose und in vielen anderen Bereichen industriell angewendet.
Literatur:
Im Seminar studieren wir Berichte von Erfindern wichtiger und einflußreicher Programmiersprachen. Dabei werden deren Entwurfsziele deutlich sowie die Gründe für die jeweiligen Entwurfsentscheidungen und ihre Alternativen. Das Seminar ist eine passende Fortsetzung und Ergänzung der Vorlesung "Prinzipien von Programmiersprachen". Die Seminarvorträge sollen durch Vorführungen echter Codebeispiele ergänzt werden. Dazu sind ggf. spezielle Compiler, Interpreter oder Emulatoren zu verwenden.
Literatur: Federico Biancuzzi: Masterminds of Programming, O'Reilly 2009
(ist äquivalent zu Softwaretechnik II und Deklarative Programmierung)
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
ausgewählte Schwerpunkte:
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Einschreibung für Projektgruppen
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
OPAL-Gruppe (Einschreibung) | Modulbeschreibung
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Lernziele/Kompetenzen:
Inhalt:
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
siehe Beschreibung für Fktl/Log. Prog. WS09/10.
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Ein guter Einstieg ist (war) wieder der Leipziger Haskell-Workshop am 4. Juni 2010.
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Thema: Vorbereitung, Durchfüührung und Auswertung des ICFP Programming Contest 2010
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Funktionale, logische (und Constraint-) Programmierung gehören zum deklarativen Programmieren, warum ist dieses Paradigma so wichtig?
ergänzende Informationen zur Modulbeschreibung (INBW-LFP, Seite 50):
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
In Prinzipien von Programmiersprachen haben Sie Sprachen nur benutzt, hier entwerfen und implementieren Sie selbst.
(Jeder Dozent hält sein Fach für das wichtigste der Welt. So auch hier, und die Begründung ist:)
Der Compilerbau beruht auf wohl untersuchten theoretischen Grundlagen (formale Sprachen, Attributgrammatiken, Typsysteme, Semantik) und man benötigt die praktische Informatik (effiziente Algorithmen und Datenstrukturen) ebenso wie die technische (Prozessorarchitekturen). Durch sinnreiche Kombination von Methoden dieser Fachgebiete konstruiert man Werkzeuge (Scanner, Parser, Codegeneratoren, Optimierer), die sich seit Jahrzehnten in der Praxis bewähren. Der Compilerbau ist deswegen die Krönung der Informatik und ein würdiger Abschluß Ihres Masterstudiums.
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Komponententechnologien werden als eine Weiterentwicklung objekt-orientierter Technologien betrachtet. Übergreifende theoretische Konzepte und Prinzipien für Softwarenachnutzung werden im Buch Clemens Szyperski with Dominik Gruntz and Stephan Murer: Component Software - Beyond Object-Oriented Programming, Second Edition, Addison-Wesley / ACM Press, 2002 dargestellt.
Wir betrachten besonders Komponentenkonzepte auf lose gekoppelten Architekturen, wie sie in der Webservice-Technologie Anwendung finden. Wir vergleichen Komponentenmodelle und -plattformen: CORBA, happstack, Java (EE), .NET.
Als Anwendungsbeispiel diskutieren wir u.a. die geplante Kopplung von autotool und Olat (Opal). Weitere Beispiele können von den Seminarteilnehmern vorgeschlagen werden, gern auch im Zusammenhang mit in Arbeit befindlichen Projekt- oder Abschlußarbeiten.
Constraints gibt es überall: die meisten algorithmischen Aufgabenstellungen bestehen aus Einschränkungen an eine Menge von möglichen Lösungen. Die Constraint-Programmierung ist eine Technik zur Lösung solcher Aufgaben, bei der Formulierungen solcher Einschränkungen Bestandteile von Programmen sind. Während ursprünglich hauptsächlich logische Sprachen durch Constraints erweitert wurden, um die Ausdrucksstärke der Sprachen bei der Behandlung arithmetischer Ausdrücke zu verbessern, gibt es heute viele verschiedene Arten von Constraint-Sprachen (deklarative aber auch imperative und objekt-orientierte), und viele Constraint-Domains und entsprechende Lösungsmechanismen sind ausführlich untersucht worden. In der Praxis wird Constraint-Programmierung zum Schliessen mit unvollständigem Wissen, zum Lösen kombinatorischer Probleme, zur Modellierung, Simulation und Diagnose und in vielen anderen Bereichen industriell angewendet. Neben der Vorstellung bestimmter Constraint Systeme und -Lösungsmechanismen sind Sprachen des Constraint Programming, die Modellierung von Constraint-Problemen, heuristische Suche und Optimierung Inhalte von Vorlesung und praktischer Übung.
Als Beispiel lösen wir das N-Damen-Problem mit einem SAT-Solver: das C#-Programm Queens.cs erzeugt das Boolesche Constraint-System (in konjunktiver Normalform) queens8.cnf und das Programm MiniSat berechnet daraus umgehend eine Lösung queens8.sol. Dabei sind die Felder des Schachbrettes der Reihe nach numeriert und nicht belegte Felder haben ein negatives Vorzeichen. Natürlich ist CNF-SAT NP-vollständig, aber MiniSat ist so effizient, daß auch für größere Felder das Hinschreiben des Constraint-Systems fast länger dauert als das Lösen.
Literatur
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Wir besprechen Abschnitte aus dem Buch Jörg Bewersdorff: Glück, Logik und Bluff sowie weitere aktuelle Themen.
vorheriger Besuch von Prinzipien von Programmiersprachen ist Voraussetzung für die Belegung des Master-Wahlfachs Compilerbau.
Einschreiben (Übungsgruppe wählen),
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
ist identisch mit Pflicht-Vorlesung Compilerbau (Informatik-Diplom)
ist nicht identisch mit Wahl-Vorlesung Compilerbau (Informatik-Master)
Einschreiben (Übungsgruppe wählen),
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Einschreiben (Übungsgruppe wählen),
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Von mir betreute Diplomanden berichten in diesem Seminar über ihre Arbeiten.
Weitere Themen aus den Bereichen Programmiersprachen, Softwareentwicklung je nach Interesse der Teilnehmer, Vorschläge bitte in OPAL eintragen:
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Einschreiben (für Übungen), Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
vorheriger Besuch von Prinzipien von Programmiersprachen ist Voraussetzung für die Belegung des Master-Wahlfachs Compilerbau.
ist identisch mit Pflicht-Vorlesung Compilerbau (Informatik-Diplom)
Einschreiben (für Übungen), Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
(ist nicht identisch mit Wahl-Vorlesung Compilerbau (Aufbaukurs) (Informatik-Master))
Einschreiben (für Übungen), Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Einschreibung für Übungen
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Einschreibung für Übungen
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Einschreibung für Übungen
Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Einschreiben, Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
Offen für alle Interessenten. Pflichtveranstaltung für unsere Diplomanden.
ist identisch mit Pflicht-Vorlesung Compilerbau (Informatik-Diplom)
Einschreiben für Übungen, Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)
(ist nicht identisch mit Wahl-Vorlesung Compilerbau (Informatik-Master), diese wird aktuell nicht angeboten. Besuch von Prinzipien von Programmiersprachen ist Voraussetzung für die spätere Belegung des Master-Wahlfachs Compilerbau.)
Einschreiben für Übungen, Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)