TU Wien:Logikorientierte Programmierung VL (Neumerkel)

Aus VoWi
Wechseln zu: Navigation, Suche

Im Rahmen der Studienplanänderung 2011 der Technischen Universität Wien wurde "Logikorientierte Programmierung VL" in "Logikprogrammierung und Constraints VU" umbenannt. Die beiden LVAs sind daher äquivalent.

  • Studierende der TU, die im WS11 oder später mit ihrem Studium begonnen haben, können nur die LVA mit neuem Titel, sofern sie noch nach dem "Studienplan" ein Pflicht-/Wahlfach ist, für ihren Abschluss verwenden.
  • Studierende der TU, die bereits vor dem WS11 inskribiert waren, müssen genau eine dieser beiden LVAs absolvieren.

Für Details siehe auch FAQ Studienplan 2011.



Diese Lehrveranstaltung hat möglicherweise starke Emotionen bei den TeilnehmerInnen hinterlassen. Daher sind zusätzliche Fakten und Meinungen besonders erwünscht, um den Artikel zu verbessern. Weitere Hintergründe findest du eventuell auf der Diskussionsseite. Flames und ähnliches bitte auch dort.


Daten[Bearbeiten]

Die LVA wird auch von der Knowledge-Based Systems Group (E184/3) angeboten.

Inhalt[Bearbeiten]

Programmierung in der logikorientierten Programmiersprache Prolog, Lesen von Prolog-Programmen, Terminationsüberlegungen, Grammatiken, Constraints

Ablauf[Bearbeiten]

Die Beurteilung erfolgt anhand von Beispielen, die in der institutseigenen Programmierumgebung GUPU ausgearbeitet werden; dies kann im Laborraum in der Argentinierstraße oder, nach der Anforderung eines externen Zugangs, von beliebigen Rechnern über SSH und X forwarding geschehen (Anleitung auf der LVA-Website).

Die Übung läuft über 8 Wochen, insgesamt gibt es ungefähr 70 Beispiele. Die Beispielangaben werden in der Übungsumgebung zur Verfügung gestellt, in die der User zunächst Zusicherungen und dann die tatsächliche Implementierung des geforderten Programms hineinschreibt. GUPU gibt dazu Kommentare ab und weist darauf hin, was für das aktuelle Beispiel noch alles gefragt ist; leider sind diese Hinweise meistens maschinell generiert und für Menschen manchmal völlig unverständlich. Die Berechnungen bzw. Ergebnisse einiger Programme werden von GUPU hübsch graphisch dargestellt. Für Hilfestellungen im Labor sind oft Tutoren anwesend.

Für Leute, die sich für die externe Variante angemeldet haben, ist ein Abgabegespräch zur Mitte des Semesters verpflichtend, dieses wird mit einem Faktor zwischen 0 und 1 bewertet, der die Beispielbeurteilungen gewichtet. Alle anderen dürfen das Abgabegespräch freiwillig machen, sie bekommen 0 bis 9 Bonusbeispiele (entspricht fast einer geschenkten Übungswoche), haben also keine negativen Konsequenzen zu befürchten.

Zusätzlich findet ein völlig freiwilliger, aber inhaltlich empfehlenswerter Vorlesungsteil statt; in dieser wird die Mehrheit der Übungsbeispiele erklärt und die Lösung vorgeführt. Der geneigte Student braucht nur mitzuschreiben und später alles im GUPU nachzuvollziehen. Allerdings werden die Beispiele nur partiell behandelt. Die Annahme sich einen externen Zugang zu holen und dann 1:1 in der LVA abzuschreiben wird also zu keiner positiven Note führen.

Benotet wird nach der Anzahl der Punkte die man durch das Lösen der Programmierbeispiele bekommen hat. Um ein Sehr Gut zu erhalten, muss man jedoch, zusätzlich zu der benötigten Punkteanzahl, das Abgabegespräch besucht haben.

Vorkenntnisse[Bearbeiten]

Grundelemente der Prädikatenlogik, wie etwa in Theoretische Informatik und Logik gelehrt, sind nützlich; insbesondere Kenntnis des Begriffs der Unifikation.

Programmierkenntnisse sind nicht notwendig. Mehr noch, logische Programmierung unterscheidet sich von der gewohnten imperativen Programmierung so sehr, dass es oft eher hinderlich ist, sich darüber Gedanken zu machen, wie man ein bestimmtes Problem in einer anderen Programmiersprache lösen würde.

Sich vorher etwas mit emacs auseinander zu setzen, hilft dabei sich schneller an die Programmierumgebung zu gewöhnen um möglichst bald darin effizient arbeiten zu können.

Literatur[Bearbeiten]

Als Übungsliteratur sollte hauptsächlich die (sehr umfangreiche) Dokumentation im Übungssystem GUPU selber dienen, welche neben theoretischen Erklärungen, etliche Führungen bietet, die die Lösung von Beispielen demonstrieren. Es gibt ein kleines (im Umfang und im Format) Skriptum zur Übung (4 Euro), dass als Wegbegleiter sehr praktisch ist, aber nicht unbedingt notwendig.

Weiterführende Lehrveranstaltung[Bearbeiten]

Fortgeschrittene logikorientierte Programmierung

Zeitaufwand[Bearbeiten]

GUPU ist so entworfen, dass stures Abschreiben oft nicht zum Ziel führt, während der echte Versuch, Beispiele anhand der Anleitungen selber zu lösen, meinstens gar nicht so aufwendig ist. Wer sich Mühe gibt (das heißt: Führungen lesen, Meldungen von GUPU lesen, Vorlesung besuchen, Skriptum Lesen, nicht von vornherein feindselig eingestellt sein), sollte über einen durchschnittlichen Arbeitsaufwand von vielleicht 5 Stunden pro Übungswoche nicht wesentlich hinauskommen. Da die Übung nur das halbe Semester lang dauert, kommt das aufs Semester skaliert auf etwa 2.5 Wochenstunden.

In den Anfangswochen des Semesters, verbringt man allerdings oft mehrere Tage im Labor um sich mit der Umgebung vertraut zu machen.

Teilnehmer, die sich mit den Beispielen nicht konstruktiv auseinandersetzen, können durchaus auch 20 oder mehr Stunden pro Woche im Labor sitzen.

Tipps[Bearbeiten]

  • Die Tutoren haben meist ausgezeichnete Erklärungen auf Lager. Dementsprechend ist es eine gute Idee die Übungen auch im Labor zu machen.
  • Es lohnt sich die ersten Beispiele so früh wie möglich zu erledigen, da 20 Beispiele bis zwei Wochen später und insg. 40 Beispiele bis zum Abgabetermin der letzten Übung ohne Punkteabzüge abgegeben werden können.
  • Die erste Stunde sollte besucht werden. Zumindest in 2011WS wurde bereits mit dem Vortrag von für die 1. und 2. Übung relevanten Inhalten begonnen. Insbesondere wurden wichtige Dinge zur Übungsumgebung erklärt, was sicher einiges an Zeit spart.
  • Sich unbedingt genügend Zeit nehmen die GUPU Dokumentationen zu lesen!

Verbesserungsvorschläge / Kritik[Bearbeiten]

  • Meiner Meinung nach gibts hier geteilte Meinungen - viele negative und auch positive. Zu aller erst, beim Neumerkel kommt es durchaus drauf an an welchen Tag man ihn erwischt, mal ist er der freundlichste Mensch den man glaubt zu kennen und am nächsten Tag dreht er sich wie der Wind... Wer ein wenig Interesse für (sehr ungewöhnliche) Programmiersprachen hat und so viele verschiedene Paradigmen wie möglich kennen lernen will wird hier sicherlich zufrieden sein. Und für die 6 ECTS zahlt sich diese LVA auf jeden Fall aus wenn man ein gewisses Maß an Neugierde mitbringt... Was nicht zu erwarten ist: Ihr seid nach dieser LVA keine LogProg-Gurus! Die LVA soll meines Erachtens nach rein einen Einblick in Logikprogrammierung bieten und zum Selbsstudium nach Abschluss der LVA animieren...
  • Ich habe die LVA im SS2012 positiv absolviert und muss leider sagen, dass ich, abgesehen von Emacs-Tastenkürzeln, nichts gelernt habe. Die VO hilft die Übungen zu lösen, bringt aber genauso wie die Übungen selbst, kaum strukturiertes Wissen über die Materie. Vielleicht habe ich auch zu früh aufgegeben, aber mir war meine Zeit einfach zu schade dafür. Meiner Meinung nach die schlechteste LVA die ich bisher besucht habe, auch wenn sie mit VO und Tutor in relativ kurzer Zeit schaffbar ist.
  • Ich hab nach langem Hin & Her dieses Semester (SS 2011) LogProg beim Neumerkel gemacht und es nicht bereut. Folgende Punkte gibt's bei mir im Nachhinein zu sagen:
    • IMHO lernt man beim Neumerkel deutlich mehr.
    • Man lernt nicht nur mehr, sondern auch wesentlich "praxisorientierter". Zwar wird Prolog nicht sehr häufig in der Industrie eingesetzt, aber erstens kann man mit Neumerkel-Wissen auch durchaus nützliche Spaßprogramme schreiben und zweitens, falls ihr doch mal in die Lage kommen solltet, Prolog zu brauchen, wird euch der Neumerkel-Stoff wesentlich mehr nützen. Wo außer im tiefsten akademischen Umfeld braucht man diesen seltsamen und immergleichen Gentzen-Beweiser vom Egly schon? Zumal Egly ja eine ziemlich schwache Vorlesung dazu macht (am Ende kennt sich keiner aus und schaut sich alles selbst an), was bei Neumerkel genau umgekehrt ist (wer in die VO vom Neumerkel geht, braucht sich kaum mehr vor Scheitern fürchten).
    • Viele der Neumerkel-Beispiele sind äußerst einfallsreich und waren sicher ein Riesenhaufen Arbeit in der Entwicklung und Visualisierung. Und im interessierten sozialen Umfeld kann man mit RNA-Faltung und automatischem Plaungswerkzeug auch wesentlich mehr angeben als mit so einem theoretischen Klumpert, abgesehen davon ist es für wahre Informatiker interessant und ein Spaß, sowas zu programmieren.
    • Neumerkel ist nicht sozial inkompetent. Im Prinzip ist es eine Frechheit, sowas zu schreiben. Außerdem ist es ziemlich beleidigend. Ich finde es interessant, dass sich jemand, der Neumerkel nur aus VO und maximal Labor kennt, traut sowas zu "diagnostizieren". Ob ihr ihn persönlich mögt oder nicht ist was vollkommen anderes als "soziale Inkompetenz". Ich empfehle übrigens allen, die etwas von ihm wollen, nach der Vorlesung zu ihm zu gehen, da klappen verschiedenste Dinge hervorragend (wie z.B. externen Zugang beantragen). Ach was, Fazit: Ihr müsst ihn ja nicht zum besten Professor aller Zeiten erklären, das ist er wahrscheinlich auch nicht. Aber er ist auch bei weitem nicht der schlechteste oder unfreundlichste, der da auf der TU so herumgurkt.
    • Nicht zum Abgabegespräch zu gehen, ist eine Riesendummheit. Der empfohlene Modus ist: Zuerst keinen externen Zugang, dann Abgabegespräch, nachher externen beantragen. Übrigens muss man sich beim Abgabegespräch wirklich schon saublöd anstellen, um die volle Punktzahl zu verpassen. Er sagt es ja eh in der Woche vorher, was gefragt wird, das kann man sich dann einfach anschauen und die Sache ist gegessen. Ich selbst habe es mir angeschaut, bin dann vor dem Neumerkel gesessen wie die Kuh wenn es donnert, er hat mir die Sachen geduldigst aus der Nase gezogen und mich dann mit 9/9 Punkten ziehen lassen. So ist es auch den meisten anderen gegangen. Ich weiß nicht, was das kleine Häufchen Leute verbrochen hat, das nicht die volle Punktzahl gekriegt hat, aber ich selbst dachte nach meinem Gespräch, dümmer könnte sich keiner anstellen.
    • Ich hoffe, ich habe mich klar ausgedrückt ^^ Jabb 21:14, 25. Mai 2011 (CEST)
  • Wer's beim Neumerkl macht, ist SELBST SCHULD. Kann jedem (da ich beide Versionen kenne) nur empfehlen, es am KBS (Egly & Crew) zu machen. --62.46.64.193
  • Ich kenne auch beide Versionen, in der Neumerkl Übung kann man nach einem Monat fertig sein (also ca 5 nachmittage). Den Gentzen Beweiser (ie 1. Bsp Egly) krieg ich nicht in der Zeit korrekt(!) hin. --128.131.204.197
  • In der VO werden Teile der Beispiele vorgezeigt, die Qualität der Tutoren ist sehr gut. Wer in die VO und jede Woche 4h zur Tutorenzeit ins Labor geht ist nach spätestens 5 Wochen positiv. Ohne VO und Tutoren sind die Beispiele IMHO nicht schaffbar. --Axestr
  • Finde Neumerkl besser als Egly. Begründung: Prof. Neumerkl führt die Aufgaben selber vor. Wenn man Zeit hat die Vorlesungen zu besuchen sind die Übungsaufgaben gar kein Problem. Die Tutoren helfen einem auch sehr (tippen z.T sogar selbst die Lösungen). Bei Egly ist ein Nachteil, dass die Übungen und die dazu gehörigen Vorlesungen weit auseinander liegen -> Uninteressierte bleiben nicht immer ganz schön am Ball :). Deshalb: Neumerkl
  • Der Vortragende war beim (freiwilligen) Abgabegespräch eher unfreundlich mir gegenüber. --213.47.126.151
  • Neumerkel mangelt es an sozialer Kompetenz. Kollegen und mir ist es passiert, dass der Prof. nicht in der Lage war eine Aufgabenstellung zu erklären da er offensichtlich keine Geduld für Leute hatte die aus den Meldungen von GUPU nicht schlau werden. Der Mensch ist so versteift auf sein System, dass er nicht dazu fähig ist einen Schritt daraus heraus zu machen um Studenten etwas in anderen Worten zu erklären. Bei uns hat er eine Erklärung - 1:1 der Text aus GUPU - stur drei mal wiederholt und ist dann wortlos aus dem Labor verschwunden, obwohl ein Kollege extra noch einmal nachgefragt hat. (Das mit dem Abgabegespräch, auch freiwillig, ist mir auch passiert.)
  • Die LVA lässt keinen Platz für ein interessiertes Lernen. Es wird stur in GUPU vorgeführt was gesehen werden soll und auch nur das erklärt. In der Übung selbst führt das zu grotesken Tipporgien die nur den Sinn haben sich stur Dinge in GUPU anzeigen zu lassen die entweder trivial oder durch eine der zuvor gesehenen Erklärungen sowieso schon klar sind. (Wobei das Nichtansehen von solchen Dingen zu einer Gewichtung mit bis zu 0.02 führen kann!)
  • Aus persönlichen Gründen Abgabegespräch verpasst - wollte ein S1 erreichen. Professor antwortet weder auf Frage im Übungssystem, noch auf zwei Mails. Erst im Labor zur Sprechstunde erwische ich ihn - da schien es ihm jedoch nicht einmal der Mühe wert zu sein, seinen Blick beim Sprechen vom Bildschirm zu heben als er mir ein "Nein, nein, nein! Das ist so der Modus!" entgegenbrachte. --emptyvi
  • Ein Kollege hat Prof. Neumerkel zu einem Beispiel befragt, und warum er in GUPU alle Nichtterminationen durchgehen müsse, wenn er schon weiß, ob und warum es nicht terminiert. Antwort von Prof. Neumerkel: "Weil Sie es nicht verstehen!". Der Kollege erklärte ihm bei den Fällen überall korrekt, warum sie nicht terminieren - Prof. Neumerkel: "Aber Sie können es so nicht verstehen!", drehte sich um und ging. --emptyvi
  • also die obigen vier "unterstellungen" kann ich in keinster weise unterschreiben. neumerkel ist ein sehr freundlicher und zuvorkommender professor (wieviele professoren sind tatsächlich im labor und helfen studenten beim arbeiten). es stimmt, GUPU ist sein kerngebiet, er arbeitet viel, aber es ist mEn tatsächlich so, dass du dinge verstehst wenn du meldungen LIEST, VERSUCHST sie zu VERSTEHEN, und mittels des inhalts des vortrags darüber REFLEKTIERST. man lernt verdammt viel in seiner übung, für genauere erklärungen sind tutoren da.
    wieviele studenten kommen täglich zu ihm und fragen die selben dinge, die man mit einfachem lesen sich selbst hätte beantworten können? stellt man die richtigen fragen, ist er - ganz im gegensatz zu dem ihm vorgeworfenen - ein äußerst kompetenter lehrender.
    und ganz offen gesagt: hier ragen und ranten, professoren dingen wie "ihm mangelt es an sozialer Kompetenz" an den kopf zu werfen, und dann nicht mal die common courtesy zeigen den beitrag zu unterschreiben is lame und unterstreicht nur die subjektivität der beiträge. wenn ihr frust habt weil ihr mit dem modus und dem system nicht zurecht kommt ist das euer kaffee. -thomas 18:52, 17. Nov. 2010 (CET)
Hallo allerseits: Ich kann zur LVA selbst nichts sagen, ich hab sie nicht gemacht. Aber generell muss ich sagen: Es ist ausdruecklich erwuenscht auch subjektive Beitraege zu zu schreiben, subjektive Meinungen bereichern das VoWi ungemein ;-). Und zu den Unterschriften: Sehr viele Beitraege sind garnicht signiert, es ist wahrscheinlich, das emptyvi einfach die Moeglichkeit nicht kannte. Inzwischen hat er das jedenfalls nachgeholt. -- Mati 16:43, 18. Nov. 2010 (CET)
man könnte jetzt darüber diskutieren, was an persönlichen meinungen überhaupt objektiv ist. meistens garnichts. eine Vorlage:Citation Needed vorlage gehört her ;-) -thomas 00:27, 19. Nov. 2010 (CET)
Mein Punkt war, das seine subjektive Meinung genau in ihrer Subjektivitaet gewuenscht ist. Das VoWi ist keine schnoede Faktensammlung, es sollen auch subjektive Meinungen eingesammelt werden. -- Mati 23:41, 19. Nov. 2010 (CET)

Anmerkung(@thomas): Ich habe die beiden Punkte über diesem verfasst - ich stehe auch dazu. Und es sind nicht irgendwelche "Unterstellungen" - ich habe das vor Ort im Labor erlebt. Ich habe die anderen Kommentare hier und zu anderen Lehrveranstaltungen gelesen, und daraus geschlossen, dass hier eher beispielhafte Fakten gefragt sind, als Aussagen wie "Der Professor ist unfreundlich/nett/..". Dieses Muster habe ich fortgesetzt. Und ich gebe zu, dass ich mit der Anmerkung bei einem meiner beiden Punkte ("Professor Neumerkel mangelt es, wie oben beschrieben, wohl wirklich an sozialer Kompetenz" oä.) damit gebrochen habe - es war kein Faktum, sondern eine (emotionale) Unterstellung. Hierfür möchte ich mich entschuldigen - ich nehme es zurück. Was du sonst schreibst stimmt - man lernt so einiges mit GUPU. Allerdings ist es auch ein sehr sehr hoher Anteil nervtötendes Abtippen von Zusicherungen, die GUPU noch sehen will. Und wenn du nach den ersten 5 Beispielen schon verstanden hast, wann was terminiert und wann nicht, geht es vielen (auch mir) einfach auf die Nerven, wenn GUPU von mir bei den nächsten 50 Fällen von mir verlangt, auch noch die Erklärungen dort durchzuschauen. --emptyvi