Per installare velocemente e provare MCQ-XeLaTeX, procedere come segue. Per informazioni su cos'è, come funziona, qui c'è la documentazione completa.
~$ ./mcq.py --help
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.
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.
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).
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.
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.
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>:
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.
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).
La documentazione completa è qui.

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.

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).