7.2. sphinx-assessment#

Met de extensie sphinx-assessment kun je allerlei toetsvragen formuleren: multiple choice, Parsons, drag-and-drop, fill-in-the-blank. Deze zijn in het bijzonder geschikt voor formatief toetsen.

Deze extensie is speciaal gemaakt voor het i&i keuzethema-materiaal in Jupyter Books. Deze extensie is nog in ontwikkeling, sommige details kunnen nog veranderen.

7.2.1. Multiple choice#

  • In de (verplichte) correct-optie geef je de letter van het juiste antwoord.

  • De vraag moet eindigen met een (markdown) lijst met alternatieve antwoorden.

  • Per alternatief kan feedback gegeven worden, in de vorm van een sub-lijst met 1 element. Deze feedback wordt getoond bij het controleren van het antwoord.

  • Er moeten tenminste 2 alternatieven zijn; het maximum is 26?

:::{mchoice} titel van de vraag
:correct: c

Formulering van de vraag, met evt. figuren, code blokken, e.d.

* antwoord a
    * feedback bij a
* antwoord b
    * feedback bij b
* antwoord c
    * feedback bij c
* antwoord d
    * feedback bij d
:::

Vraag 7.1 - titel van de vraag

Formulering van de vraag, met evt. figuren, code blokken, e.d.

7.2.2. Drag-n-drop#

Bij een drag-and-drop vraag moeten items bij het juiste target geplaatst worden. Dit kun je bijvoorbeeld gebruiken om begrippen te koppelen aan hun omschrijving. Door het gebruik van een figuur kun je dit bijvoorbeeld ook gebruiken om onderdelen van een figuur te benoemen.

  • de lijst met items bij een target kan leeg zijn.

  • het speciale target no-target bevat items die niet bij een target geplaatst kunnen worden.

:::{dragndrop} titel van de vraag

Formulering van de vraag, met eventueel figuren e.d.

* target a
    * item 1 voor target a
    * item 2 voor target a
* target b
    * item 1 voor target b
* target c (hier zonder items)
* no-target
    * item zonder target
:::

Vraag 7.2 - titel van de vraag

Formulering van de vraag, met eventueel figuren e.d.

item 1 voor target a

item zonder target

item 2 voor target a

item 1 voor target b

target a

target b

target c (hier zonder items)

7.2.3. Fill in the blank#

Bij een fill in the blank vraag zijn er gaten in de tekst die op de juiste manier ingevuld moeten worden.

Omdat er soms wat variaties op een antwoord mogelijk zijn, zijn er speciale patronen voor het controleren van een antwoord:

  • blank - het antwoord moet letterlijk gelijk zijn aan de voorbeeldtekst;

  • blank-range - de range (lo..hi) geeft aan tussen welke grenzen het antwoord-getal moet liggen;

  • blank-regexp - het antwoord moet voldoen aan de reguliere expressie in het voorbeeld-antwoord.

:::{fillintheblank} titel van de vraag

Tekst waarin gaten aangegeven kunnen worden door {blank}`voorbeeld`, 
door {blank-range}`10..11`, 
of door {blank-regexp}`[Hh]ello`.
Vul bijvoorbeeld in: `voorbeeld`, 
`10` of `10.9`, 
`hello` of `Hello`.
* feedback list?
:::

Vraag 7.3 - titel van de vraag

Tekst waarin gaten aangegeven kunnen worden door , door , of door . Vul bijvoorbeeld in: voorbeeld, 10 of 10.9, hello of Hello.

7.2.4. Parsons problems#

In een Parsons problem moeten regels programmatekst in de juiste volgorde en met de juiste indentatie geplaatst worden.

De programmatekst in de opdracht beschrijf je als een code-block; deze wordt omgezet in een random reeks losse regels. Elk niveau van indendatie moet bestaan uit 4 spaties.

Het voorbeeld:

:::{parsons} titel van de vraag

Plaats de regels in de goede volgorde en met het juiste niveau van inspringen, 
zodat het programma de getallen 0..9 afdrukt.

```
i = 0
while i < 10:
    print(i)
    i = i + 1
```
:::

heeft als resultaat:

Vraag 7.4 - titel van de vraag

Plaats de regels in de goede volgorde en met het juiste niveau van inspringen, zodat het programma de getallen 0..9 afdrukt.

while i < 10:
print(i)
i = 0
i = i + 1