HOME | DEUTSCH | IMPRESSUM | KIT

PSE: Visualisation of Prolog Executions

Ein Projekt von „Praxis der Softwareentwicklung“ (PSE)

Aktuell

Erstes Treffen: Donnerstag, 2018-05-03, 13:00 Uhr im SR010 Infobau (50.34)

Worum geht es?

Die Programmiersprache Prolog ist eine Programmiersprache, die auf der Herleitung von Fakten mittels Tiefensuche und Backtracking basiert.
Besonders Suchprobleme (wie z.B. Wolf-Ziege-Kohl) sowie formale Regelsysteme lassen sich in Prolog relativ kompakt darstellen.
Leider ist es erfahrungsgemäß sehr schwierig, Studierenden die Funktionsweise von Prolog klar zu machen.
Das wollen wir ändern, und dazu sollt ihr nun ein Programm schreiben, das Leuten Prolog näherbringt.

Keine Angst, ihr seid da nicht auf euch allein gestellt, wir erklären euch das nötige Vorwissen (wie Prolog funktioniert, wie Programme schrittweise ausgewertet werden, wie man in Prolog programmiert, etc.).

Was muss das Programm können?

Da das Programm für die Lehre gedacht ist, muss es einigermaßen intuitiv sein.
Pflicht ist das schrittweise Ausführen von Programmen in einer vereinfachten Teilmenge1 von Prolog sowie die Visualisierung des aktuellen Ableitungszustands. Darüber hinaus sind wir offen für eure Ideen, wie man eine solche Lernumgebung am besten gestaltet.
Hier eine Liste an Ideen, wie man dieses Grundgerüst erweitern könnte, um daraus eine sinnvolle Lernumgebung zu machen:
  • Syntaxhighlighting
  • Genauere Information über Zwischenschritte der Auswertung darstellen
  • Neben Einzelschritt auch Unterstützung von Auswertung zur nächsten Lösung bzw. Gesamtauswertung
  • Erweiterung der unterstützten Prolog-Teilmenge (Unifikations-Ziele, Arithmetik-Terme und -Ziele, Cut)
  • Unterstützen einer Standard-Bibliothek für Prolog (z.B. für Listen)
  • LaTeX-Export
[1] - Terme sowie daraus bestehende Fakten und Regeln.

Als Implementierungssprache schlagen wir Java vor, aber nach Absprache mit den Betreuern sind auch andere objektorientierte Sprachen möglich.

Bewertung

Die Benotung eures Systems richtet sich nach folgenden Kriterien:

  • Qualität aller abgegebenen Dokumente und Artefakte

  • Qualität der Kolloquien (10 Minuten Vortrag)

  • Qualität der Abschlusspräsentation

  • Erfüllung der minimalen Leistungsmerkmale (s.o.)

  • sinnvolle Erweiterungen über diese Merkmale hinaus

  • Robustheit des erstellten Programms

  • Teamarbeit (TSE)

Diese Liste hat keine Reihenfolge, die einer Gewichtung entspricht. Es gibt sicherlich weitere Punkte, die als selbstverständlich gelten und sich bei Nichterfüllen negativ auswirken (z.B. ist die Geschwindigkeit der implementierten Algorithmen sekundär, aber jedem sollte klar sein, dass das Errechnen einer Lösung oder das Generieren nicht 10 Tage dauern darf).

Weitere Pflichten

  • Anmeldung per Studienportal für PSE und TSE

  • Anwesenheit bei den wöchentlichen Treffen mit dem Betreuer

  • Team-internes Management (z.B. Phasenverantwortliche, Versionskontrolle)

  • Artefakte 1–2 Tage vor Kolloquium beim Betreuer

Dokumente

Document Date
Tipps & Tricks 2018-04-17
Vorlage fürs Pflichtenheft 2018-04-17
Prolog-Einführung 2018-05-08
rules_without_vars.pl 2018-05-08
rules_with_vars.pl 2018-05-08
programming.pl 2018-05-08
cut.pl 2018-05-08

Personnel

Former Staff Member
M.Sc. Simon Bischof
M.Sc. Maximilian Wagner