fmidue / logic-tasks

0 stars 1 forks source link

Vorkommen von "<=" #137

Open KatinkaMeer opened 2 months ago

KatinkaMeer commented 2 months ago

in verschiedenen Aufgabentypen kommt neuerdings <= vor und das zudem in relativ hoher Häufigkeit

beim Lösen des Aufgabentyps LegalProposition könnte sich zudem gefragt werden, ob das nicht bereits ein Fehler ist, da man die Implikation nur in die andere Richtung kennengelernt hat

Allgemein kann die Verwendung von zwei möglichen Implikationsrichtungen dazu führen, dass beim Übersetzen von natürlichsprachlichen Sätzen zu Formeln sich angewöhnt wird, die Implikation die zur Satzstruktur passt, zu wählen und nicht logisch umzustellen. Bsp.: Man benötigt einen Schirm, wenn es regnet. --> bedeutet Nutzung von: <=, und bei Vertauschung von Haupt- und Konditionalsatz entsprechend: =>.

Dadurch wird nicht "richtig" gelernt den Satz/ die Formel umzustellen. (in Vergangenheit wurde die "Implikation in die andere Richtung" vereinzelt selbstständig von den Studierenden eingeführt, um zu vermeiden, die Symbole in einer anderen Reihenfolge als diese im natürlichsprachlichen Satz vorkommen, schreiben zu müssen)

Vorschlag: Die Häufigkeit des <= Operators könnte feinkörniger konfiguriert werden.

jvoigtlaender commented 2 months ago

Verfeinerter Vorschlag:

In https://github.com/fmidue/logic-tasks/blob/8a9537b528e0981a048688b0df4f68cff07b3356/src/Tasks/SynTree/Config.hs#L24-L35 wird allowArrowOperators :: Bool durch etwas wie operatorFrequencies :: { ... } ersetzt, wobei der Record dort jeweils einen Int-Eintrag für jeden Operator aus https://github.com/fmidue/logic-tasks/blob/8a9537b528e0981a048688b0df4f68cff07b3356/src/Trees/Types.hs#L24 enthält.

Typische Default-Konfigurationswerte wären dann "alles Eins" für Fälle, wo bisher allowArrowOperators = True oder "nur für And und Or Eins" für Fälle, wo bisher allowArrowOperators = False. Aber es könnte bei Bedarf eben auch abweichend gewichtet werden.

Zu entscheiden wäre noch, ob auch die Häufigkeit des Auftretens von Negation mit einbezogen werden soll.

Natürlich ergibt sich einiges an Änderungsnotwendigkeiten an existierendem Generator-Code.

Aspekte wie "LegalProposition sollte kein <= benutzen" ließen sich einbringen, indem der Config-Checker für diesen Aufgabentyp einfach nicht erlaubt, dass für BackImpl ein positiver Wert gesetzt ist.

Andersherum müsste bei bestimmten Aufgabentypen sichergestellt werden, dass beim Konfigurieren nicht zu viele (oder die falschen) Operationen ausgeschlossen werden. Zum Beispiel weil es sonst passieren könnte, dass folgende Bedingung nicht mehr erfüllbar ist: https://github.com/fmidue/logic-tasks/blob/8a9537b528e0981a048688b0df4f68cff07b3356/src/Tasks/DecomposeFormula/Quiz.hs#L23