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
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 |