Typen von Antwort-Auswahl-Fragen (AAF)#
AAF, Antwort-Auswahl-Fragen:
MC in engerem Sinn: https://de.wikipedia.org/wiki/Multiple_Choice (enthält auch auch single choice etc.)
bei uns nicht nur MC in engerem Sinn, sondern allgemeiner und fachsprachlich: Antwort-Auswahl
Gemeinsame Eigenschaft aller AAF in weitestem Sinn: im Prinzip automatische Auswertung, z.B. auch durch EvaSys.
Wir überlegen uns hier, wie solche AAF im Prinzip aussehen können.
Welches Ergebnis wird erzeugt?#
Aufgabentyp:
gegeben: Code.
gesucht: Was kommt ‘raus?
Beispiel#
Gegeben ist folgender Ausdruck:
l = [ x*x for x in range(10) if x % 2 == 1 ]
... #
Bitte kreuzen Sie an: Welchen Wert hat l
?
[1, 9]
[1, 9, 25]
[4, 9]
[4, 9, 16]
[4, 9, 16, 25]
Diskussion#
klar: Offensichtlich kann nur eine einzige Antwort korrekt sein: Single Choice.
einfach: Welche Zahlen erzeugt
range()
?schwieriger: Was bedeuten die Operatoren
%
und//
?
Auswertung Single Choice ist einfach: 1 Punkt für die Frage, top oder flop.
Nicht angekreuzte Antworten ergeben keine Minuspunkte, aber natürlich auch keine Pluspunkte. Auch mehr als 1 angekreuzte Antwort ergibt keine Punkte für die Aufgabe.
Welcher Code erzeugt das vorgegebene Ergebnis?#
Aufgabentyp:
gegeben: Ein Ergebnis
gesucht: Welcher Code erzeugt dieses Ergebnis?
Beispiel#
Ergebnis = [4, 9]
e = {}
e[1] = [ x*x for x in range(5) if x // 2 == 1 ]
e[2] = [ x*x for x in range(5) if x % 2 == 1 ]
e[3] = [ x*x for x in range(6) if x // 2 == 1 ]
e[4] = [ x*x for x in range(6) if x % 2 == 1 ]
... #
Ellipsis
Welches e[...]
erzeugt das Ergebnis [4, 9]
?
e[1]
: Wahr / Falsch / Nonee[2]
: Wahr / Falsch / Nonee[3]
: Wahr / Falsch / Nonee[4]
: Wahr / Falsch / None
Diskussion#
Voraussetzung: Kenntnis der Operatoren
%
und//
.range()
ist hier eher ein Distraktor, lenkt von der eigentlichen Frage ab.hier sind mehrere Antworten richtig!
Auswertung Multiple Choice:
jede korrekt angekreuzte Auswahl: 1 Punkt
jede falsch angekreuzte Auswahl: -1 Punkt
Nicht angekreuzte Antworten ergeben weder Plus- noch Minuspunkte.
Lückentext#
Gegben:
ein gewünschtes Ergebnis
ein Ausdruck, in dem aber alle Variablen durch
_____
verborgen sind.
Gesucht: ein besserer Ausdruck, der das gesuchte Ergebnis liefert.
Beispiel#
Gesucht ist eine Liste aller Quadratzahlen zwischen 0
und 10
, also [0, 1, 4, 9]
.
# syntaktisch korrekt...
qz = [ _____ for _____ in range(100) if _____ < 10 ]
# ... aber liefert offensichtlich nicht das gewünschte Ergebnis:
qz
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
gesuchte Lösung:
qz = [ x*x for x in range(100) if x*x < 10 ]
qz
[0, 1, 4, 9]
Diskussion#
Hier ist die komplette Programmlogik schon vorgegeben. Challenge für Studierende: Verstehe diese Logik so, dass man weiß, welche Variablen da dazugehören. Challenge für die Klausurkorrektur: Komplett richtige Lösungen sieht man gerne, volle Punktzahl – aber wie bewertet man “fast richtige” Lösungen?