[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 500.   Alml: verifiche

Alml consente la realizzazione di questionari di verifica che producono, nella composizione HTML, delle pagine dinamiche in grado di calcolare automaticamente l'esito degli stessi. Attraverso questo meccanismo è possibile imporre anche un tempo esatto per lo svolgimento delle verifiche, con il calcolo di una «penalità» nel punteggio, per ogni secondo di ritardo.

Le pagine HTML prodotte in questo modo contengono del codice JavaScript e si concludono normalmente con la stampa di un rapporto che sintetizza l'esito della verifica.

Se lo studente che svolge la verifica tenta di ricaricare la pagina, o di ritornare sulla pagina della verifica quando ha ottenuto la pagina conclusiva da stampare, ottiene l'azzeramento di tutti i dati. Inoltre, quando ritorna alla pagina della verifica, deve provvedere anche a ricaricarla, altrimenti il meccanismo di controllo successivo rischia di fallire in ogni caso.

Figura 500.1. Schema sintattico semplificato di un capitolo contenente un questionario.

capitolo
  |--testh1 [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]
  |    |    [testtime="tempo"] [testtimepenalty="penalità"]
  |    `--testo_lineare
  |--dati_descrittivi...
  |    |--[blocco_generico]
  |    `--[testinfo]
  |         `--testo_lineare
  |--domanda...
  |    |--[domanda_risposta_singola]
  |    |    |--testlistquestion
  |    |    |--[blocco_generico]...
  |    |    `--testlist...
  |    |         `--{testlistitem score="punteggio"}...
  |    |              `--testo_lineare
  |    |--[domanda_risposta_multipla]
  |    |    |--testmultiquestion
  |    |    |--[blocco_generico]...
  |    |    `--testmulti...
  |    |         `--{testmultiitem score="punteggio"}...
  |    |              `--testo_lineare
  |    `--[domanda_risposta_testuale]
  |         |--testtextquestion
  |         |--[blocco_generico]...
  |         `--testtext...
  |              `--{testtextitem score="punteggio" width="larghezza"
  |                   |           [hint="suggerimento"] [caps="0|1"]}...
  |                   `--testo_lineare
  |--testsend
  `--[endofchapter]

500.1   Capitolo per le verifiche

Per definire un questionario di verifica con Alml, occorre dichiarare un capitolo con un'intestazione speciale: testh1. Questo elemento prevede gli attributi degli altri capitoli normali, aggiungendo due attributi speciali per definire la durata massima in secondi e la penalità da dedurre dal punteggio complessivo per ogni secondo di ritardo:

<testh1 testtime="600" testtimepenalty="0.008">
Verifica su directory e percorsi
</testh1>

In questo caso, l'esempio mostra la dichiarazione del titolo di una verifica che prevede un tempo massimo di 10 minuti (600 s) e una penalità di 0,008 per ogni secondo di ritardo (circa 0,5 punti per ogni minuto).

Dopo il titolo, si possono mettere dei blocchi descrittivi, come nei capitoli normali, per esempio delle figure o delle tabelle di riferimento. Successivamente è obbligatorio inserire almeno un elemento testinfo, con lo scopo, probabilmente, di identificare l'esecutore della verifica:

<testinfo>data:</testinfo>
<testinfo>cognome e nome:</testinfo>
<testinfo>classe e sezione (corso):</testinfo>
</testh1>

Ogni elemento testinfo si traduce in un campo da compilare, secondo il significato dato dalla descrizione che appare nell'elemento stesso.

Tra gli elementi testinfo (ed eventualmente anche dopo), si possono inserire dei blocchi descrittivi liberi. Successivamente, si devono indicare delle domande, che possono prevedere diverse modalità di risposta. Le domande sono racchiuse in un elemento differente, a seconda del tipo di risposta che ci si aspetta; alle domande seguono le risposte, racchiuse da elementi appropriati. L'esempio seguente riguarda il caso di una domanda che richiede una sola risposta, scelta da un elenco:

<testlistquestion>
Rispetto allo schema della figura <objectref
id="verifica-grafo-directory-file">, scegliere il percorso assoluto
che porta al nodo numero <num>2</num>. Si dia una sola risposta.
</testlistquestion>

<testlist>
<testlistitem score="1.1"><file>/home</file>;</testlistitem>
<testlistitem score="0"><file>/home/tizio</file>;</testlistitem>
<testlistitem score="0"><file>/home/caio</file>;</testlistitem>
<testlistitem score="0"><file>/home/caio/bin</file>;</testlistitem>
<testlistitem score="0"><file>/home/caio/mail</file>;</testlistitem>
<testlistitem score="0"><file>/home/sempronio</file>.</testlistitem>
<testlistitem score="-1"><file>%$£%$/</file>.</testlistitem>
</testlist>

In questo caso, l'elemento testlistquestion contiene il testo della domanda; l'elemento testlist è fatto per contenere un elenco di elementi testlistitem, i quali contengono le varie risposte. Si può osservare che l'attributo score degli elementi testlistitem consente di stabilire il punteggio che si ottiene in base alla risposta e che questo può anche essere negativo.

Si osservi che l'elemento testlist genera un elenco numerato con bottoni, dove solo un bottone per tutto il gruppo può essere selezionato. Tuttavia, è possibile che ci siano risposte alternative valide, eventualmente con punteggi differenti.

L'esempio seguente riguarda il caso di una domanda che richiede la selezione di tutte le risposte valide di un elenco:

<testmultiquestion>
Cosa è rappresentato nella figura <objectref id="verifica-disegno">?
selezionare tutte le risposte valide:
</testmultiquestion>

<testmulti>
<testmultiitem score="1">albero</testmultiitem>
<testmultiitem score="1">grafo</testmultiitem>
<testmultiitem score="-1">istogramma</testmultiitem>
<testmultiitem score="-1">diagramma di flusso</testmultiitem>
</testmulti>

Il funzionamento di questo tipo di domanda con risposte a selezione multipla funziona in modo simile a quello in cui la risposta valida può essere una sola. Si può osservare che in questo caso diventa importante attribuire valori negativi alle risposte errate, perché altrimenti sarebbe facile risolvere le verifiche selezionando tutte le risposte.

L'esempio seguente riguarda il caso di una domanda che richiede la scrittura delle risposte:

<testtextquestion>
Inserire ordinatamente i nomi delle quattro figure geometriche.
</testtextquestion>

<testtext>
<testtextitem score="1" width="30" hint="q--++-+o"  caps="0" ans="quadrato">A</testtextitem>
<testtextitem score="1" width="30" hint="c-+++-o"   caps="0" ans="cerchio">B</testtextitem>
<testtextitem score="1" width="30" hint="t+--++-+o" caps="0" ans="triangolo">C</testtextitem>
<testtextitem score="1" width="30" hint="e+-+-+o"   caps="0" ans="esagono">D</testtextitem>
</testtext>

La struttura degli elementi di questo tipo di domanda è lo stesso degli altri, con la differenza che l'elemento testtextitem contiene degli attributi in più: l'attributo width dichiara la dimensione del campo testuale di inserimento; l'attributo hint consente di mostrare una sorta di suggerimento (nell'esempio viene messa la lettera iniziale e la lettera finale, assieme a dei simboli che consentono di capire quando ci si aspetta una consonante o una vocale); l'attributo caps consente, se assume il valore uno, di verificare anche la corrispondenza tra le lettere maiuscole e minuscole; l'attributo ans serve a specificare la risposta attesa. Il testo che appare nell'elemento, viene mostrato davanti al campo da compilare.

Alla fine delle domande e degli elenchi di selezione, va messo l'elemento vuoto testsend, che nella composizione in HTML genera il bottone per concludere la verifica:

<testsend>

Tabella 500.8. Capitoli di verifica.

Elemento Descrizione
testh1 [id="ancora"] [lang="..."] [bookmark="..."]
[testtime="..."] [testtimepenalty="..."]
Titolo del questionario. L'attributo id consente di specificare un'ancora di riferimento; l'attributo lang consente di specificare la lingua del capitolo; l'attributo bookmark consente di specificare un segnalibro alternativo per la composizione in formato PDF; l'attributo testtime consente di indicare il tempo massimo in secondi; testtimepenalty permette di specificare la penalità da sottrarre al punteggio per ogni secondo di ritardo.
testinfo
Etichetta descrittiva di un'informazione testuale da inserire, per identificare la persona che esegue la verifica.
testlistquestion
Domanda a cui lo studente deve dare una risposta singola.
testlist
Elenco di risposte alternative, costituite da elementi testlistitem.
testlistitem score="punteggio"
Risposta che può essere selezionata. L'attributo score serve a specificare il punteggio associato alla scelta della risposta.
testmultiquestion
Domanda a cui lo studente può dare una o più risposte.
testmulti
Elenco di risposte, costituite da elementi testmultiitem.
testmultiitem score="punteggio"
Risposta che può essere selezionata. L'attributo score serve a specificare il punteggio associato alla scelta della risposta.
testtextquestion
Domanda a cui lo studente deve dare risposte testuali.
testtext
Elenco di risposte, costituite da elementi testtextitem.
testtextitem score="punteggio"
width="n_caratteri"
[hint="suggerimento"]
[caps="0|1"]
Risposta da inserire. L'attributo score serve a specificare il punteggio associato all'inserimento della risposta esatta; l'attributo width serve a specificare la larghezza del campo che riceve la risposta; l'attributo hint, se usato, mostra un suggerimento per la risposta; l'attributo caps consente di richiedere una corrispondenza esatta della risposta, anche nell'uso delle lettere maiuscole e minuscole.

Si osservi che, nel risultato della composizione, prima delle domande appare l'intervallo del punteggio che si può ottenere, con una forma simile a questa: [-2..3]. In questo caso, si intende avviare che il punteggio minimo che si può ottenere rispondendo è -2, mentre il punteggio massimo è 3. Se non si risponde affatto, il punteggio che si ottiene è sempre zero.

500.2   Esempio di verifica

Nel capitolo successivo viene mostrato un esempio di verifica realizzato con Alml, di cui qui viene mostrato il sorgente:

<testh1 testtime="120" testtimepenalty="0.1">
Esempio di verifica con <special special="name">Alml</special>
</testh1>

<object pos="fixed">
<tabular col="4" columnfractions="0.309 0.191 0.309 0.191" border="0">
<tbody>
  <trow>tempo a disposizione:
<colsep><num>120</num> secondi
<colsep>punteggio massimo:
<colsep><num>10</num>
</trow>
  <trow>quantità di domande:
<colsep><num>3</num>
<colsep>punti di penalità per ogni secondo di ritardo:
<colsep><num>0,1</num>
</trow>
</tbody>
</tabular>
</object>

<testinfo>data:</testinfo>
<testinfo>cognome e nome:</testinfo>
<testinfo>classe e sezione (corso):</testinfo>

<object id="a2-f-verifica-prova-alml" pos="fixed" sep="border">
<caption>

    Figura <objectref>. Simboli geometrici.

</caption>
<imgblock>
<figimg alt="albero di file e directory" width="50%">
[omissis]
</figimg>
</imgblock>
</object>

<heightrequired height="5cm">

<testlistquestion>
Cos'è la figura geometrica «C»? selezionare solo una risposta:
</testlistquestion>

<testlist>
<testlistitem score="2">triangolo</testlistitem>
<testlistitem score="0">esagono</testlistitem>
<testlistitem score="-1">piramide</testlistitem>
</testlist>

<testmultiquestion>
Cos'è la figura geometrica «A»? selezionare tutte le risposte valide:
</testmultiquestion>

<testmulti>
<testmultiitem score="2">quadrato</testmultiitem>
<testmultiitem score="-1">ellissi</testmultiitem>
<testmultiitem score="2">quadrilatero</testmultiitem>
</testmulti>

<testtextquestion>
Inserire ordinatamente i nomi delle quattro figure geometriche.
</testtextquestion>

<p>Nei campi appare un suggerimento, composto da simboli <samp>+</samp>,
per le consonanti, e da simboli <samp>-</samp> per le vocali.</p>

<testtext>
<testtextitem score="1" width="30" hint="+--++-+-" caps="0"
ans="quadrato">A</testtextitem>
<testtextitem score="1" width="30" hint="+-+++--" caps="0"
ans="cerchio">B</testtextitem>
<testtextitem score="1" width="30" hint="++--++-+-" caps="0"
ans="triangolo">C</testtextitem>
<testtextitem score="1" width="30" hint="-+-+-+-" caps="0"
ans="esagono">D</testtextitem>
</testtext>

<testsend>

Realizzando la composizione in formato HTML, la pagina del capitolo in questione dovrebbe apparire come nella figura 500.10, dove si nota in evidenza il conto alla rovescia del tempo a disposizione.

Figura 500.10. Composizione in HTML.

questionario interattivo

Se si compila il questionario e si seleziona il bottone che appare in fondo, si ottiene la correzione della verifica, a cui dovrebbe corrispondere l'invito a stampare (se l'interprete del navigatore non funziona perfettamente, si può richiedere la stampa in modo manuale). Nella figura 500.11 si vede un esempio del rapporto che si ottiene, dove si suppone di avere completato la verifica in 35,835 s.

Figura 500.11. Esito della verifica; in questo caso si tratta di un risultato perfetto.

Esempio di verifica con Alml

data: 10 ottobre 2007
cognome e nome: Tizio Tizi
classe e sezione (corso): 1H
inizio della verifica: 107.10.16 11:47.8
conclusione della verifica: 107.10.16 11:47.43
tempo impiegato: 35.835 s = 0.5972500000000001 m;
tempo a disposizione: 120 s; ritardo: 0 s; penalità nel punteggio per ogni minuto di ritardo: 6; penalità totale nel punteggio: 0

Q1 Cos'è la figura geometrica «C»? selezionare solo una risposta:
  scelto: 1   punteggio: 2

Q2 Cos'è la figura geometrica «A»? selezionare tutte le risposte valide:
  scelto: 1
  scelto: 3
punteggio: 4

Q3 Inserire ordinatamente i nomi delle quattro figure geometriche.
  risposto: quadrato - punteggio: 1
  risposto: cerchio - punteggio: 1
  risposto: triangolo - punteggio: 1
  risposto: esagono - punteggio: 1

punteggio totale della verifica: 10

A seconda del tipo di interprete JavaScript, l'anno che appare nelle date può essere visualizzato nel modo corretto, oppure, come nell'esempio, ridotto di 1 900.

Il contenuto del rapporto che si genera è essenziale; inoltre l'estetica non è curata. Infatti, lo scopo della stampa che si produce è solo quello di documentare l'esito della verifica, di fronte alle contestazioni; al contrario, un maggiore dettaglio e un'estetica migliore potrebbe permettere a qualche studente di copiare le risposte facilmente.

Se lo studente tenta di barare, cercando di ritornare alla pagina da compilare, ottiene un modulo azzerato completamente.

Se lo studente avesse la possibilità di ritornare alla pagina compilata, potrebbe tentare di correggere, oppure potrebbe tentare di modificare l'intestazione del lavoro, in modo da poterlo copiare per un altro collega. Inoltre, per le domande dove è prevista una selezione di alternative, nella pagina di correzione della verifica vengono indicati solo i punteggi, senza specificare anche le risposte esatte.

Se si esegue una composizione in uno dei formati per la stampa (PostScript o PDF), si ottiene un questionario da compilare a mano, senza la possibilità di imporre meccanicamente un tempo massimo di esecuzione e senza poter avere una valutazione automatica; ma utilizzando l'opzione --draft in fase di compilazione, si mettono in evidenza i punteggi e le risposte esatte, da dare agli studenti dopo la verifica, come confronto (figura 500.13).

Figura 500.12. Composizione per la stampa normale.

questionario stampato

Figura 500.13. Composizione per la stampa: «bozza», dove sono evidenziati i risultati e le risposte.

questionario corretto

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome alml_verifiche.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!