fmidue / logic-tasks

0 stars 1 forks source link

Vergabe von Teilpunkten #89

Open jvoigtlaender opened 7 months ago

jvoigtlaender commented 7 months ago

Bisher vergeben (fast?) alle Aufgaben hier die Punkte nur nach dem Prinzip Alles-oder-Nichts.

Vor allem bei den Aufgaben, wo mehrere Auswahlen zu treffen sind (also etwa 3 von 7 gegebenen Formeln sind keine KNFs, und die sollen identifiziert werden), ist leicht eine Vergabe von Teilpunkten denkbar (damit es nicht gleich 0 Punkte gibt, wenn nur 2 der 3 relevanten Formeln erkannt wurden).

Die "Bewertungsstrategie" muss dafür nicht gänzlich neu erfunden werden, sondern es sollte möglich sein, multipleChoice aus dem output-monad Paket einzusetzen: https://github.com/fmidue/output-monad/blob/d469ed0b22df718dde4d4d718a7f6fd54cfe2a0d/output-monad/src/Control/Monad/Output.hs#L128-L134

Im modelling-tasks Repo gibt es diverse "advanced" Beispiele für den Einsatz von multipleChoice, etwa https://github.com/fmidue/modelling-tasks/blob/88182aa38434bcfbfa457c22120bcb8bc3a5c737/src/Modelling/CdOd/NameCdError.hs#L576-L586 und https://github.com/fmidue/modelling-tasks/blob/88182aa38434bcfbfa457c22120bcb8bc3a5c737/src/Modelling/CdOd/RepairCd.hs#L495-L500, aber für den Einsatz hier geht es wahrscheinlich einfacher/direkter, analog zum Einsatz in term-tasks: https://github.com/fmidue/term-tasks/blob/c5410222ff7f84049bf0cc823c0508c0d3fd9c7a/src/TermTasks/Direct.hs#L179-L232

(In jedem Fall muss das gut interaktiv getestet werden, also durch händisches Aufrufen mit korrekten und inkorrekten Eingaben, da es etwas subtil ist, wann Feedback abgebrochen wird, wenn ein "Teilfehler" auftritt etc., bzw. dass so ein Abbruch vermieden werden soll, um noch weiteres Feedback und Punkte geben zu können. Daher rühren auch Verwendungen von Sachen wie recoverWith, recoverFrom und rerefuse in den oben verlinkten Code-Beispielen.)

KatinkaMeer commented 3 months ago

die SubTree Aufgaben würden sich wohl auch gut für Teilpunkte eignen