Zum Inhalt
Fakultät für Informatik

Logische Methoden des Software Engineering 1

Beginn: Veranstaltungsort: OH12/E.003
Veran­stal­tungs­art:
  • Lehrveranstaltungen
LMSE1
Veranstalter: Prof. Dr. Jakob Rehof
Kontaktperson für
organisatorische Fragen:
Christoph Stahl
Veranstaltungsnummer: 042353 (Vorlesung)
042354 (Übung)
Typ: Vertiefungsmodul
Modulnummer: INF-MSc-325
SWS: 2 SWS Vorlesung
1 SWS Übung
1 SWS Praktikum
Ort: OH12/E.003
Zeit: Montags 10:15 - 12:00
Mittwochs 14:15 - 16:00
Beginn: 09.10.2023
Ende: Dezember 2023

Aktuelles

  • Bitte meldet euch über das LSF zur Veranstalltung an, oder tretet dem Moodlekurs bei. Dort wird es zukünftig weitere Informationen geben.

Beschreibung

Die Vorlesung LMSE 1 behandelt das Thema Typentheorie und deren Verbindung zur mathematischen Logik. Das zentrale Resultat der Typentheorie ("Curry-Howard-Isomporphismus") zeigt die Korrespondenz zwischen Typen und logischen Formeln, sowie zwischen Programmen und logischen Beweisen.

Es werden zentrale Fragestellungen (Typinhabitation, Typprüfung) von Programmiersprachen in Zusammenhang mit zentralen Fragestellungen (Beweisbarkeit, Beweisprüfung) der formalen Logik gebracht. Dabei spielt der Lambda-Kalkül sowohl die Rolle einer Turing-vollständigen funktionalen Programmiersprache als auch einer logischen Beweissprache.

Die Vorlesung LMSE 1 umfasst folgende Themen:

  • Ungetypter Lambda-Kalkül als Turing-vollständiges Berechnungsmodell
  • Intuitionistische Logik
  • Einfach getypter Lambda Kalkül
  • Typinhabitation, Typinferenz, Typprüfung
  • Curry-Howard-Isomorhismus (Korrespondenz zwischen Typen und logischen Formeln)
  • Kombinatorische Logik
Bemerkungen
  • Ehemals als "Logische Methoden des Software Engineering" angeboten
  • LMSE 1 findet in der ersten Hälfte der Vorlesungszeit statt
  • LMSE 1 kann in anschließender Kombination mit LMSE 2 innerhalb eines Semesters belegt und geprüft werden

Übung

  • Die Übung zu LMSE 1 ist eine Präsenzübung (keine Anwesenheits- oder Abgabepflicht).
  • Die Übung dient der Verstetigung des Vorlesungsinhalts sowie der praktischen Anwendung der erlangten Kenntnisse.
  • Beweise werden zum Teil länger diskutiert und anhand von Beispielen untersucht.
Anmeldung
  • Details zu der Anmeldung werden zum Beginn der Vorlesung bereit gestellt.
Übungsgruppen
Gruppe Zeit Ort Start Turnus
1 Montags 12:15 - 13:45 OH14/304 16.10.2023 wöchentlich
2 Dienstags 12:15 - 13:45 OH14/104 17.10.2023 wöchentlich

 

Praktikum

Das Praktikum dient der praktischen Umsetzung der in der Vorlesung erlangten Kenntnisse. Dabei soll in Gruppen jeweils eine Programmieraufgabe gelöst werden, die im direkten Zusammenhang zum Vorlesungsinhalt (insb. Lambda-Kalkül) steht.

  • Die verwendete Programmiersprache ist Coq
  • Die Zuordnung der Aufgaben inkl. Rechtevergabe am Repository findet in der zweiten Vorlesungswoche statt
  • Zum erfolgreichen bestehen des Praktikums gehören:
    • Implementierung der unter der jeweiligen Aufgaben angegebenen Funktion(en)
    • Wiki-Eintrag mit Beschreibung der implementierten Funktion(en) inkl. Ein- und Ausgabeverhalten und ggf. wichtiger Eigenschaften
    • Verargumentierung der Korrektheit der Implementierung (es sind keine Beweise verlangt) z.B. durch Ein-/Ausgabetests in einer separaten Datei (z.B. Aufgabe1Test.v)
    • Kurze Vorstellung der Lösung bei der Abschlusspräsentation der Praktikumsprojekte durch ein Mitglied der jeweiligen Gruppe (10 Minuten, keine Folien)

 

Studienleistung

Das Erlangen der Studienleistung ist Voraussetzung für die Teilnahme an der abschließenden Klausur.
Die Kriterien der Studienleistung sind wie folgt:

  • erfolgreich abgeschlossenes Praktikumsprojekt

Klausuren

  • Klausur 1: 16.02.2024 15:30 MB/HS 1
  • Klausur 2: 22.03.2023 15:00 EF 50/HS 3