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).
(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.)
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 demoutput-monad
Paket einzusetzen: https://github.com/fmidue/output-monad/blob/d469ed0b22df718dde4d4d718a7f6fd54cfe2a0d/output-monad/src/Control/Monad/Output.hs#L128-L134Im
modelling-tasks
Repo gibt es diverse "advanced" Beispiele für den Einsatz vonmultipleChoice
, 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 interm-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
undrerefuse
in den oben verlinkten Code-Beispielen.)