Quiz und Tabs
Zwei weitere eingebaute Komponenten: <question> für Multiple-Choice-Quiz und Umfragen, und <tabs-container> für gruppierte Inhalte mit umschaltbaren Ansichten.
Quiz
Ein Quiz ist ein <question>-Block mit einem oder mehreren <answer>-Kindern. Eine Antwort als correct zu markieren, macht sie zur richtigen Antwort.
Einzelauswahl (Radio-Buttons)
<question id="q-single-demo" type="single">
<p>Welches Schlüsselwort definiert eine Funktion in Python?</p>
<answer>function</answer>
<answer correct>def</answer>
<answer>fn</answer>
<answer>lambda</answer>
</question>
Rendert als:
Schüler sehen eine Liste mit Radio-Buttons; können eine wählen. Klick auf Check, um zu sehen, ob es richtig ist.
Mehrfachauswahl (Checkboxen)
<question id="q-multi-demo" type="multi">
<p>Welche davon sind in Python unveränderlich (immutable)?</p>
<answer correct>tuple</answer>
<answer>list</answer>
<answer correct>str</answer>
<answer correct>frozenset</answer>
<answer>dict</answer>
</question>
Rendert als:
Schüler müssen alle und nur die richtigen Antworten auswählen, damit es als richtig gilt.
Freitext-Antwort
<question id="q-text-demo" type="text">
<p>Was ist die Ausgabe von <code>print(2 ** 10)</code>?</p>
<answer correct>1024</answer>
</question>
Rendert als:
Schüler tippt eine Antwort ein; Gross-/Kleinschreibung wird beim Vergleich mit der correct-Antwort(en) ignoriert. Du kannst mehrere <answer correct> auflisten, um Varianten zu akzeptieren:
<question id="q-text-variants-demo" type="text">
<p>Wie heisst die Bundesstadt der Schweiz?</p>
<answer correct>Bern</answer>
<answer correct>Berne</answer>
</question>
Rendert als:
Es gibt auch einen anderen Freitext-MechanismusDas hier ist exaktes Varianten-Matching für kurze Faktenantworten. Für die Bewertung einer vorhergesagten Ausgabe eines Code-Stücks — mit Teilpunkten und einem Diff statt exaktem Match — siehe die predict-output-Variante von
<question type="text">in Code-Editoren & Bewertung. Gleicher Tag, anderer Zweck.
Frage-Attribute
| Attribut | Werte | Wirkung |
|---|---|---|
id | String | Eindeutig pro Seite; wird verwendet, um Schülerantworten nachzuverfolgen |
type | single / multi / text / number / range | Fragestil |
points | Zahl (Standard 1) | Score-Gewicht |
feedback-correct | String | Eigene Meldung bei richtiger Antwort |
feedback-incorrect | String | Eigene Meldung bei falscher Antwort |
<question id="q-feedback-demo" type="single" points="2"
feedback-correct="Genau! In Python ist `def` das Schlüsselwort."
feedback-incorrect="Hinweis: Die Antwort beginnt mit dem Buchstaben d.">
<p>Welches Schlüsselwort definiert eine Funktion in Python?</p>
<answer>function</answer>
<answer correct>def</answer>
<answer>fn</answer>
</question>
Rendert als:
Welches Schlüsselwort definiert eine Funktion in Python?
function def fnWas Schüler sehen
- Fragetext + Antwortmöglichkeiten
- Check-Button zum Absenden
- ✓ grün oder ✗ rot als Feedback nach dem Absenden
- Eigene Feedback-Meldung (falls gesetzt)
- Score für diese Frage
Ihre Antwort wird pro Schüler und pro Seite gespeichert; kommen sie später zurück, wird ihre vorherige Antwort angezeigt.
Bewertungsoptionen
points (Standard 1) setzt das Score-Gewicht einer Frage — die maximale Punktzahl, die sie beiträgt. Wie eine Frage diese Punkte verdient, hängt vom Typ ab:
single/multibewerten automatisch die volle Punktzahl bei exaktem Match mit dencorrect-Antworten — keine Teilpunkte bei Auswahlfragen.textbewertet automatisch bei Gross-/Kleinschreibung-unabhängigem Match mit einer<answer correct>-Variante.- Schieberegler (
number/range) bewerten automatisch gegen ein Ziel, mit gestaffelten Teilpunkten:
<question id="q-slope-demo" type="number" points="2" expected="-1" tolerance="0.15">
<p>Wie gross ist die Steigung der im Plot gezeigten Geraden?</p>
<answer from="0.9" feedback="Exakt, oder nahe genug, um als exakt zu zählen."></answer>
<answer from="0.5" feedback="Richtige Richtung, aber überprüfe deine Berechnung."></answer>
</question>
type="number" expected="-1" tolerance="0.15" setzt einen einzelnen Zielwert mit Toleranzband; type="range" expected="-1..1" akzeptiert stattdessen jede Antwort in diesem Bereich. <answer from="...">-Bänder gehen von bester zu schlechtester Bewertung — das erste, das die Antwort des Schülers erreicht (von oben nach unten gelesen), bestimmt sein Feedback und seinen Teilscore.
Alle automatisch bewerteten Ergebnisse sind beim Bewerten durch die Lehrperson überschreibbar — siehe unten.
Umfragen (unbewertete Fragen)
Nicht jede Frage braucht eine richtige Antwort. Ein <question> ohne <answer correct> (oder ohne bewertetes Schieberegler-Ziel) sammelt eine Antwort, ohne sie zu bewerten — nützlich für Meinungsumfragen, "wie sicher fühlst du dich bei diesem Thema" oder Exit-Tickets. Schüler sehen ihre eigene frühere Antwort trotzdem, wenn sie zurückkommen; es gibt nur kein ✓/✗-Feedback, weil es nichts gibt, das richtig oder falsch sein könnte.
Was du als Lehrperson siehst
Für Schüler, die bei einer Klasse eingeloggt sind, fliessen Quiz-Antworten in dieselbe Abgaben-Ansicht wie automatisch bewerteter Code (siehe Code-Editoren & Bewertung):
- Abgaben-Oberfläche (
Dashboard → Classes → Submissions) — die Antworten und den Score jedes Schülers, pro Frage - Detail pro Schüler — sieh genau, was er ausgewählt oder eingetippt hat
- Numerische Überschreibungen — passe den automatisch bewerteten Score für eine Frage an, z.B. um Teilpunkte zu vergeben, die ein Schieberegler-Band nicht ganz erfasst hat
- Kommentare — hinterlasse Feedback pro Abgabe
Automatisch bewertete Quiz-Ergebnisse stehen neben python-check- und predict-output-Ergebnissen im selben Review-Ablauf, sodass du an einem Ort siehst, wie ein Schüler über eine ganze Seite hinweg abgeschnitten hat, statt zwischen Komponententypen hin- und herzuspringen.
Tabs
Tab-Container gruppieren verwandte Inhalte mit umschaltbaren Ansichten. Nützlich für: Sprachalternativen, betriebssystemspezifische Anleitungen, Anfänger-/Fortgeschrittenen-Versionen desselben Inhalts, Vorher-/Nachher-Vergleiche.
Grundsyntax
<tabs-container>
<tab-item label="Python">
Standardlösung in Python.
```python
print("Hello")
```
</tab-item>
<tab-item label="JavaScript">
JavaScript-Äquivalent.
```javascript
console.log("Hello")
```
</tab-item>
<tab-item label="Rust">
Rust-Version (kompiliert).
```rust
println!("Hello");
```
</tab-item>
</tabs-container>
Rendert als:
Standardlösung in Python.
print("Hello")
JavaScript-Äquivalent.
console.log("Hello")
Rust-Version (kompiliert).
println!("Hello");
Schüler sehen eine Tab-Leiste oben mit den drei Labels; ein Klick wechselt zwischen ihnen.
Tabs können beliebige Inhalte enthalten
Markdown, Codeblöcke, Code-Editoren, Callouts, Bilder, Mathe — alles, was im Hauptteil einer Seite funktioniert, funktioniert auch innerhalb eines <tab-item>.
<tabs-container>
<tab-item label="Beschreibung">
Der Satz des Pythagoras besagt, dass für ein rechtwinkliges Dreieck gilt:
$a^2 + b^2 = c^2$
</tab-item>
<tab-item label="Ausprobieren">
```python editor id="pythagoras"
a, b = 3, 4
c = (a**2 + b**2) ** 0.5
print(f"c = {c}")
```
</tab-item>
<tab-item label="Beweis">
> [!example] Geometrischer Beweis
> Nimm vier rechtwinklige Dreiecke mit den Katheten $a$ und $b$ ...
</tab-item>
</tabs-container>
Standardmässig offener Tab
Füge default zu einem Tab hinzu, damit er anfangs offen ist (sonst ist der erste Tab standardmässig offen):
<tabs-container>
<tab-item label="macOS">Anleitung für macOS</tab-item>
<tab-item label="Windows" default>Anleitung für Windows</tab-item>
<tab-item label="Linux">Anleitung für Linux</tab-item>
</tabs-container>
Tabs-Spickzettel
| Ziel | Syntax |
|---|---|
| Tab-Container | <tabs-container>...</tabs-container> |
| Einzelner Tab | <tab-item label="Label">Inhalt</tab-item> |
| Standardmässig offener Tab | <tab-item label="..." default> |
| Code-Editor in einem Tab einbetten | Normales ```python editor innerhalb des <tab-item> |
Wann was verwenden
| Situation | Verwenden |
|---|---|
| Faktenwissen eines Schülers testen | <question type="single"> oder type="text"> |
| Programmierverhalten testen | python editor + python-check (Code-Editoren & Bewertung) |
| Nachvollziehen/Vorhersagen von Code-Ausgabe testen | <question type="text"> mit einem ```expected-Block (Code-Editoren & Bewertung) |
| Meinung sammeln, keine richtige Antwort | <question> ohne correct-Antwort (Umfrage) |
| Denselben Inhalt in mehreren Varianten zeigen | <tabs-container> |
| Hinweis bis zum Klick verstecken | Eingeklappter Callout (> [!tip]-) |
| Eine lange Lösung verstecken | Eingeklappter Callout mit Codeblock |
Für selbstbewertende Code-Übungen ist python-check deutlich mächtiger als <question>. Für Faktenwissen und Fragen mit diskreten Antworten ist <question> schneller geschrieben.