Dr. Waldmann - Lehre

Sommersemester 2023

Wintersemester 2022

Sommersemester 2022

Pflichtfach:

Wahlfächer:

Wintersemester 2021

Aktuelles

  • (25. Nov. 21) Ab sofort für alle meine Lehrveranstaltungen: Vorlesung: synchrone Distanz-Lehre, Hausaufgaben-Bearbeitung: asynchron (Diskussion in Tracker/Forum, autotool), Übung: (Hausaufgaben-Präsentation) synchron distanz. Konferenz-URLs werden auf der jeweiligen asynchronen Plattform bekanntgegeben.

  • Informatik-Studiengänge benutzen für Hausaufgaben-Einteilung und -Bearbeitung (in Gruppen) das jeweilige Projekt in gitlab.imn. Beantragen Sie die Projekt-Mitgliedschaft in der Web-Oberfläche und senden Sie mir per Mail Ihren Gitlab.Imn-Benutzernamen und Matrikelnummer, da die Zuordnung nicht immer offensichtlich ist. Diese Projekte sind ab KW 42 nicht mehr öffentlich sichtbar.

  • Derzeit (8. Okt. 2021) wird grundsätzlich auf Präsenz-Lehre orientiert.

Sommersemester 2021

Wahlfächer (Master Informatik)

Pflichtfach (Bachelor Informatik)

Wintersemester 2020

Wahlfach

Pflichtfächer

Prüfungen (Mitteilung vom 17. Januar 2021)

Die für Informatik und PPS geplanten Klausuren werden durch eine “Online-Klausur” (Bezeichnung lt. Prüfungsordnung: “digitale Hausarbeit”) ersetzt. Dabei sind zum angegebenen Klausur-Zeitraum Aufgaben in autotool zu bearbeiten - in einem Prüfungsmodus, der die Anzahl der Einsendungen und die Ausführlichkeit der sofortigen Rückmeldungen beschränkt.

Für jede Prüfung wird ein separater Autotool-Kurs eingerichtet, den Sie nur nach erfolgter Prüfungszulassung sehen und betreten können. Vor Betrachtung und Bearbeitung der Aufgaben müssen Sie bestätigen, daß Sie die Rechtsgrundlagen kennen und einhalten. Es geht dabei um allgemeine Grundsätze (u.a. eigenständiges Arbeiten) sowie spezielle Regeln für Online-Prüfungen, siehe Ergänzungs-Ordnungen, z.B. Paragraph 2(11) in https://www.htwk-leipzig.de/fileadmin/portal/htwk/studieren/1_unsere_studiengaenge/3_studien_pruefungsordnungen/2020-12-17_ErgO_INB_2020_21_RK_VO%CC%88.pdf.

In ausreichendem Abstand vor der tatsächlichen Prüfung bekommen Sie die Möglichkeit, den Prüfungsmodus des autotool bei einer Testklausur auszuprobieren. Details dazu werden über den für die jeweilige LV festgelegten Kommunikationsweg bekanntgegeben. (Wiederholer PPS: melden Sie sich für das Gitlab.Imn-Projekt an wie unten beschrieben.)

Sommersemester 2020

Forschungsfreisemester (u.a. Arbeiten an https://gitlab.imn.htwk-leipzig.de/waldmann/pure-matchbox, https://gitlab.imn.htwk-leipzig.de/autotool/all0, https://gitlab.imn.htwk-leipzig.de/waldmann/cyp)

Wintersemester 2019

Wahlfächer:

  • Oberseminar Überwachungskapitalismus (Master) (Details)

  • Vorlesung Compilerbau (Master)

    Inhalt: Modelle, Methoden und Werkzeuge zur semantikgetreuen Übersetzung zwischen verschiedenen Programmiersprachen. Anwendung: Interpreter und Compiler für anwendungsspezifische Sprachen selbst schreiben.

    1. abstrakte Syntax von Programmiersprachen
    2. Interpretation funktionaler Programme, Lambda-Kalkül
    3. Interpretation imperativer Programme, Continuations
    4. konkrete Syntax von Programmiersprachen, Parser
    5. statische Typisierung von Programmen
    6. Codeerzeugung
    7. Laufzeitumgebung, automatische Speicherverwaltung

    Konzept und Literatur siehe https://www.imn.htwk-leipzig.de/~waldmann/talk/13/fg214/

    Folien: (HTML), (pdf, einzeln) (pdf, 8 pro Seite) (pdf, fortlaufend), Online-Übungsaufgaben

  • Vorlesung Sprachkonzepte der parallelen Programmierung (Bachelor)

    aus dem Inhalt:

    • Spezifikation und Modellierung nichtdeterministischer nebenläufiger Systeme
    • nebenläufiges Rechnen mit gemeinsamem Speicher und
      • mit expliziten Sperren
      • mit atomaren Transaktionen
      • mit Software-Transaktionen
    • nebenläufige verteilte Systeme (ohne gemeinsamen Speicher), Nachrichten-Kanäle
    • einfache deterministische parallele Algorithmen und passende Kostenmaße (work, span)
    • Entwurfsmuster für paralleles Rechnen

    Folien: (HTML), (pdf, einzeln) (pdf, 8 pro Seite) (pdf, fortlaufend), Online-Übungsaufgaben

Pflichtfach:

Sommersemester 2019

Wintersemester 2018/19

Sommersemester 2018

Wintersemester 2017/18

Sommersemester 2017

Wintersemester 2016

Wahlfach (Bachelor)

Wahlfächer (Master)

  • Vorlesung Constraint-Programmierung (Einschreibung)

    Folien: (HTML), (pdf, einzeln) (pdf, 8 pro Seite) (pdf, fortlaufend), Online-Übungsaufgaben, Quelltexte

    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 Schließen mit unvollständigem Wissen, zum Lösen kombinatorischer Probleme, zur Modellierung, Simulation und Diagnose und in vielen anderen Bereichen industriell angewendet.

    Literatur:

  • Oberseminar Computermusik (Inhalt, OPAL-Gruppe)

    Wir betrachten Erzeugung und Analyse von Musik mittels Computer.

    Musik wird konkret (als Audiosignal) und abstrakt (durch Noten) beschrieben. Diese Beschreibungen benutzen domainspezifische Sprachen, die auf physikalischen und physiologischen Grundlagen beruhen. Deswegen sind Kenntnisse aus VL Prinzipien von Programmiersprachen erforderlich sowie aus der Physik und Signalverarbeitung nützlich.

    In Vorträgen soll Original-Literatur ausgewertet werden sowie ergänzt durch Vorführungen freier Software, ggf. auch Hardware (elektronische Musikinstrumente).

    Wir gehen besonders ein auf die Leipziger Tradition in der Musik (Johann Sebastian Bach) und in der Musiktheorie (Hugo Riemann).

Pflichtfach (Master)

Sommersemester 2016

Pflichtfach (Bachelor)

  • Vorlesung Fortgeschrittene Programmierung

    Folien: (HTML), (pdf, einzeln) (pdf, 8 pro Seite) (pdf, fortlaufend), Online-Übungsaufgaben

    Tutorien zur Prüfungsvorbereitung

    (Das bedeutet: unter Anleitung diskutieren Sie Ihre Fragen. Wenn Sie keine Fragen mitbringen, findet keine Diskussion statt. Dann geht der Tutor nach 90 min nach Hause und bekommt trotzdem sein Geld.)

    am 13. Juni 9:30, 24. Juni 11:15, 27. Juni 9:30, 8. Juli 11:15, jeweils 90 min in Raum Li 207.

Wintersemester 2015/16

Wahlfach (Bachelor)

Wahlfach (Master)

Pflichtfach (Master)

Sommersemester 2015

Ich bin im Forschungsfreisemester und nehme einen Lehrauftrag an der Uni Leipzig wahr. Das dort angebotene Fach

  • Constraint-Programmierung

kann im Rahmen der Kooperationsvereinbarung auch von HTWK-Studenten besucht werden.

Wahlfach (Master): ich empfehle ebenso den Besuch der Vorlesung

Wintersemester 2014/15

Wahlfächer (Master)

Pflichtfach (Master)

Wahlfach (Bachelor)

Sommersemester 2014

Wahlfächer (Master)

Pflichtfach (Bachelor)

Wintersemester 2013/14

Wahlfächer (Master)

Pflichtfach (Master)


Sommersemester 2013

Wahlfächer (Master)

Pflichtfach (Bachelor)

Wintersemester 2012/13

Wahlfächer (Master)

Pflichtfach (Master)


Sommersemester 2012

Wahlfächer (für Master-Studenten):

Pflichtfach:


Wintersemester 2011/12

Wahlfach:

Pflichtfächer:


Sommersemester 2011

Wahlfach

  • Vorlesung Sprachkonzepte der parallelen Programmierung (Informatik-Master)

    OPAL-Gruppe (Einschreibung) | Modulbeschreibung

    Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)

    Lernziele/Kompetenzen:

    • Ausdrucksmittel für parallele und nebenläufige Programme in verschiedenen moderen Programmiersprachen kennenlernen
    • … und an Beispielen anwenden.
    • Aussagen über Korrektheit und Ressourcenverbrauch formulieren und begründen.

    Inhalt:

    • Abstraktionen zur Thread-Synchronisation: Semaphore, Monitore, Kanäle,
    • thread-sichere Collections-Datentypen
    • Transaktionen (Software Transactional Memory)
    • Rekursionsschemata für parallele Programme (skeletal parallelism)
    • map/reduce-Framework
    • impliziter Parallelismus: (Nested) Data Parallelism

Pflichtfach:

Wintersemester 2010/11

Wahlfächer

Pflichtfach:

Sommersemester 2010

Wintersemester 2009/10

Pflichtfach:

Wahlfächer

Vorlesung Funktionale und Logische Programmierung (Informatik-Bachelor)

OPAL-Gruppe (Einschreibung)

Funktionale, logische (und Constraint-) Programmierung gehören zum deklarativen Programmieren, warum ist dieses Paradigma so wichtig?

  • Es geht bei der gesamten Softwareentwicklung darum, gewünschtes Verhalten zu spezifizieren und daraus eine korrekte Implementierung abzuleiten. Ein deklaratives Programm ist eine ausführbare Spezifikation, diese Programme sind also “von selbst” korrekt!
  • Der Einfluß der deklarativen Programmierung zeigt sich zunehmend auch in Mainstream-Sprachen (generische Polymorphie in Java, Lambda-Ausdrücke in C#, usw.) und -Bibliotheken (Entwurfsmuster). So etwas sollte man an der Quelle lernen!
  • Funktionale Programme sind nebenwirkungsfrei und deswegen ganz leicht parallelisierbar. Mit Data Parallel Haskell kann man die Rechenkraft von Multi-Core-Rechnern voll ausnutzen, ohne Programmieraufwand für Threaderzeugung und -Synchronisation.

ergänzende Informationen zur Modulbeschreibung (INBW-LFP, Seite 50):

  • Schwerpunkt ist funktionale Programmierung in Haskell,
    aufbauend auf der Behandlung von Entwurfsmustern in Softwaretechnik 2 (INB-SWT2).

  • logische Programmierung in Mercury,
    aufbauend auf Behandlung von Prolog in Künstlicher Intelligenz (INBP-KI).

  • ein guter Einstiegspunkt ist HAL4 (Tutorial, Workshop, Party) am 12. Juni 2009 in Halle (bitte anmelden wie auf Webseite beschrieben)

    Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)

  • Vorlesung Compilerbau (Informatik-Master) (= Compilerbau-Aufbaukurs für Informatik-Diplom))

    OPAL-Gruppe (Einschreibung)

    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)

  • Oberseminar Software aus Komponenten (Informatik-Master/Diplom)

    Opal-Gruppe (Einschreibung)

    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.


Sommersemester 2009

Wahlfach:

  • Vorlesung Constraint-Programmierung (Informatik-Master) Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)

    OPAL-Gruppe

    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

Pflichtfach:

Wintersemester 2008/09

Wahlfächer

Pflichtfächer


Sommersemester 2008

Wahlfächer

  • Oberseminar Praktische Informatik (IN-M)

    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:

    OPAL-Gruppe (Wiki)

Pflichtfächer:


Wintersemester 2007/08

Wahlfächer

Pflichtfächer:


Sommersemester 2007


Wintersemester 2006/07

Wahlfächer

  • Vorlesung Symbolisches Rechnen Einschreiben, Folien: (HTML), (pdf, einzeln) (ps, 8 pro Seite) (pdf, fortlaufend)

  • (gemeinsam mit Prof. Geser, Prof. Petermann, Prof. Weicker ): Diplomanden-Seminar Praktische Informatik. (Einschreiben)

    • Hintergrundwissen und aktuelle Entwicklungen der praktischen Informatik, insbes. Softwaretechnik;
    • Vorstellung möglicher Diplomthemen
    • Diskussion laufender Diplomarbeiten (Arbeitsberichte)
    • Hinweise zur Arbeits-, Text- und Vortrags-Organisation

    Offen für alle Interessenten. Pflichtveranstaltung für unsere Diplomanden.

Pflichtfächer:


Sommersemester 2006


Wintersemester 2005/06

Sommersemester 2005

Wintersemester 2004

Sommersemester 2004

Wintersemester 2003/04

  • Informatik - für Medientechniker (1. Fachsemester)
  • Compilerbau - für Diplom-Informatiker (7. Fachsemester)

vorher:

Lehrveranstaltungen an der Universität Leipzig (1998-2003) und an der Universität Jena (1993-1998)