» Home Page
MCQ-XeLaTeX: Multiple Choice Question (per la matematica) quickstart.

Istruzioni veloci

Per installare velocemente e provare MCQ-XeLaTeX, procedere come segue. Per informazioni su cos'è, come funziona, qui c'è la documentazione completa.

Prerequisiti

Il file degli esercizi

Dopo avere scaricato il file di esempio esercizi.tex, si può modificarlo e compilarlo.

Importante: il file $\LaTeX$ deve essere sempre compilato con il comando "xelatex". Dato che si usa "xelatex", è necessario che il file .tex sia codificato con l'encoding UTF8.

Compilando il file\(\LaTeX\)

~$ xelatex esercizi.tex 
...
~$ xelatex esercizi.tex
...

si dovrebbe ottenere un pdf come questo.

Stampare 40 copie

Per stampare copie multiple del test, con esercizi e soluzioni permutate, occorre utilizzare il programma "mcq.py" con l'opzione "-n". Per esempio, per averne 40 copie distinte :

~$ mcq.py -n 40 esercizi.tex

Viene generato il file "esercizi_exam.tex", che a sua volta deve essere bi-compilato con "xelatex"; questo genera "esercizi_exam.pdf" che deve essere stampato su una stampante (fronte/retro) di qualità decente e contiene le 40 copie (distinte e permutate). Se occorre cambiare qualcosa, lo si faccia sul file "esercizi.tex", e mai su "esercizi_exam.tex", che viene generato automaticamente.

Importante: quando si stampa, occorre evitare riscalamenti del foglio (cioè, bisogna stamparlo al 100% della sua dimensione).

A questo punto si possono consegnare i fogli con il quiz agli studenti, che riempiono le bolle (con matita nera o penna nera, seguendo le istruzioni), e consegnano solamente il "bubblesheet", cioè la prima pagina con le bolle.

Per la correzione, si procede in due modi. Nel modo manuale (senza OMR) o in modo automatico (con OMR).

Modo Manuale ("Manual" Mark Recognition)

Occorre creare un file "output.txt", come il seguente, con i dati di ogni compito da valutare:

7yFH:Verdi, Giuseppe    :736220:D0ABC0ACD0:
xE72:Rossi, Paolo       :735221:DA0CBBA0CB:
6FB2:Bianchi, Michele   :739223:0AADC00C0B:
H63z:Neri, Valentina    :735333:BDACCABCCD:

Ad ogni compito corrisponde una riga. I campi sono divisi con i due punti ":". Il primo campo è l'etichetta unica del compito (si legge in alto, su ogni foglio). Il secondo campo è il Cognome+Nome. Il terzo campo è il numero di matricola. Il quinto è la stringa di risposte, terminata da ":".

La stringa delle risposte deve essere lunga quanto il numero di domande, con al posto $i$ la lettera corrispondente alla risposta scelta dallo studente per la domanda $i$-esima, se è stata selezionata, altrimenti la cifra "0". Maiuscole e minuscole sono equivalenti.

OMR (Optical Mark Recognition)

Con l'OMR, si utilizzi uno scanner con feeder automatico per convertire in PDF le pagine con i bubblesheet compilate dagli studenti. Dovrebbero essere almeno a 150 DPI, le immagini. Molto meglio a 200-300 DPI (gli artefatti diminuiscono).

Supponiamo che i file siano s1.pdf s2.pdf s3.pdf (ognuno con 20 schede). Allora con il comando (occorre essere collegati a internet)

~$ mcq.py --omr=esercizi.tex s1.pdf s2.pdf s2.pdf > output.txt

si genera il file "output.txt", che riporta, in ogni riga, l'etichetta (a 4 cifre) del compito, la matricola e le risposte, nel formato

<etichetta>:      :<matricola>:<risposte>:

Se tutto va bene, dovrebbe comparire anche un file omr-output.pdf con dettagli sul procedimento di optical mark reading.

Occorre analizzare il file omr-output.pdf, e controllare che non ci siano stati errori di lettura (verde=OK, giallo=attenzione, rosso=errore).

Gli errori possono esserci perché i segni a penna escono troppo dal confine ammissibile, oppure perché l'area non è stata riempita abbastanza. Purtroppo ci sono sempre studenti che hanno difficoltà a segnare correttamente le risposte...

Se le schede da correggere sono molte (più di 100-200), sarebbe molto meglio eseguire questa operazione più volte su parti diverse (e disgiunte) dell'insieme delle schede (creando quindi output1.txt, output2.txt, output3.txt ...), perché così è più facile controllare gli errori. Tra l'altro correggere contemporaneamente più di un certo numero di schede non è possibile, per il software, che ha un limite sulle risorse che può usare.

A questo punto occorrerebbe inserire nel secondo campo il Cognome-Nome dello studente (di cui la matricola è nota). Ci sono un po' di modi diversi di farlo (aggiungerli a mano, usare la funzione "mcq.py --uid=" -come spiegato nella documentazione-, usare la funzione VLOOKUP() tra due tabelle di openoffice... ).

Supponiamo ora di avere un unico file di testo "output.txt" con le righe del tipo (importante: il separatore sono i due punti ":"), prodotto in modo automatico o no.

<etichetta>:<Cognome, nome>:<matricola>:<risposte>:

Correzione/valutazione

Per la correzione vera e propria, occorre eseguire il comando

~$ mcq.py --db=esercizi_exam.db output.txt > risultati.txt

Nel file "risultati.txt" ci sono i numeri di matricola e i voti aggregati. Nel file "esercizi_exam.csv", un po' più completo (le cui ultime due colonne sono da ignorare, però), ci sono tutti i dati, incluso la valutazione.

Attenzione che i voti assegnati alle risposte giuste/sbagliate/mancate erano determinati nel file esercizi.tex. Se si vogliono cambiare adesso, occorre ricominciare dall'inizio e rigenerare anche esercizi_exam.tex.

Statistiche

Un'ultima interessante possibilità è il calcolo di alcuni indici statistici sulle risposte:

~$ mcq.py --stats=esercizi_exam_stats.db esercizi.tex >esercizi_stats.tex

Occorre poi compilare "esercizi_stats.tex" con xelatex qualche volta, per avere una versione del compito annotata con indici statistici (utili per verificare se ci sono stati errori nell'elaborazione o nella creazione del test).

Approfondimenti: integrazione con MOODLE, esercizi XHTML-CSS, selezione automatica da una question bank, ...

La documentazione completa è qui.

Licenza d'Uso (EULA)

Si può usare il sofware linkato in questa pagina a scopo di prova e valutazione del medesimo, as-it-is, senza nessuna garanzia, alle seguenti ulteriori condizioni. Scaricando il software si accettano automaticamente questi termini e condizioni.

Licenza Creative Commons
Questo opera è distribuito con licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

(E' vero che la CC non sarebbe una licenza per software, ma non è nemmeno davvero software in senso tradizionale, questo sistema. E' una forma strana di ibrido).