Crediti di tipo F

Il web per la didattica della matematica

Esistono molti ambienti per la didattica on line. Scegliamo di studiare WIMS perché è quello che meglio si adatta a trasmettere contenuti matematici. Principalmente per due ragioni:


Prerequisiti


Prima di poter accedere a WIMS sarà necessario costruire alcuni prerequisiti:


Esempi significativi

Di seguito riportiamo alcuni esempi significativi di esercizi realizzati con WIMS


Compiti

Per acquisire i crediti di tipo F ognuno di voi dovrà

Gli incontri in aula saranno dedicate in parte al vostro lavoro e in parte alle vostre richieste di assistenza.


Esempi più complessi

Quanto segue di questo documento sarà oggetto di discussione durante i seminari


Oltre agli esempi già visti con WIMS abbiamo la possibilità di assegnare come risposta un “click” sull'immagine come in questo esempio: Carta a quadretti .


Le informazioni su come farlo sono disponibili nell'help del modulo Createxo , in particolare quanto riportiamo qui di seguito:


Click on an image. (name: coord)
This reply type allows the user to click on an image, and can analyze the position of the click according to various zoning criteria.

The good reply must be given in the form of a matrix (row separator: semi-colon `;'). The first row is the image URL.

The second row is the position of the criteria for the click coordinates to be considered as good. And starting from the eventual third row, each one can contain some criteria (bad positions).

The user reply is considered as being good when the conditions in the second row are met. Otherwise, if criteria for bad positions exist (third row and up), the reply is bad if one of the bad conditions are met; or ambiguous if no condition is met (in the latter case the user will be asked to retry). If there is no bad position, any answer not meeting the second row will be judged as bad.

The number of the first row met by the user reply minus one will be kept in a variable \resultn where n is the number of the input field, which can be used in a \feedback.

Available conditions for testing the user click:

Several conditions can be combined in a same row, using connectors `&' (intersection), `|' (union), `^' (complement), as well as parentheses.

It is recommended that this input field be embedded in the statement. It cannot coexist with other input fields, for the obvious reason that any user click on the image will send the form.


Esempi svolti

Esercizi a passi

 

Per costruire esercizi a passi elaborati può essere utile poter variare i passi/il numero dei passi in dipendenza dalle risposte date via via. Il già citato documento DocAide Exercices OEF contiene alcuni esempi. Ne vediamo uno molto semplice.

NOTA: è meglio definire le stringhe come variabili per un successivo confronto/verifica di correttezza delle risposte

L'esercizio si può provare cliccando qui: Varia steps

Intestazione standard (da completare)
\title{Varia steps}

Imposto le variabili per l'enunciato e per le domande/risposte (le variabili saranno utilizzate più avanti dai comandi \answer)
\text{domanda= rispondi alle seguenti domande}

Metto in una variabile le risposte giuste per le domande a scelta multipla (definite comunque utilizzando un comando \answer), che poi richiamerò con \rispoka[1] e \rispoka[2]. Analogamente per le risposte sbaglia te (\rispnooka) e per le risposte, rispettivamente giuste e sbagliate, relative alla seconda scelta multipla (\rispokb,\rispnookb). Sarebbe anche possibile/opportuno inserire una scelta random tra gli elementi di queste liste, come descritto nel documento DocAide QCM personnalisés .
\text{rispoka = vera1,vera2}
\text{rispnooka = falsa1,falsa2,falsa3,falsa4}
\text{rispokb = vera3,vera4}
\text{rispnookb = falsa5,falsa6,falsa7,falsa8}

Costruisco anche la risposta per l'ultima domanda che non è a scelta multipla (in questo caso la risposta richiesta è "4", ma ovviamente questa parte va costruita a seconda dell'esercizio)
\text{ a = 2 }
\integer{ b = \a^2 }

I passi non sono dichiarati a priori ma sono costruiti passo passo utilizzando il comando \nextstep: la variabile \nstep viene modificata dopo che sono valutate le risposte dell'utente (cioè dopo i comandi \answer)
\text{ nstep = r1 }
\nextstep{ \nstep }
L'enunciato varia a seconda dei passi e a seconda delle risposte date alla prima domanda.
\statement{\domanda
\if{\step=1}{
}
\if{\step=2}{
La risposta alla domanda precedente è: \reply1
Questo è il punto in cui si diversifica l'enunciato a seconda del valore di \reply1 (cioè la risposta data dall'utente alla prima domanda): il confronto è fatto con issametext rispetto alla variabile \rispoka [....] definita sopra
\if{\reply1 issametext \rispoka[1]}{
se \reply1 è "vera1" allora al passo successivo mi aspetto la reply2 (ovvero la risposta definita dal secondo comando \answer che in questo caso è ancora una scelta multipla)....
\embed{r2}
}
\if{\reply1 issametext \rispoka[2]}{
.... altrimenti se \reply1 è "vera2" mi aspetto la reply3 (ovvero la risposta definita dal terzo comando \answer che in questo caso richiede una risposta numerica). Fino a questo punto ho operato solo sull'enunciato, la variabile \nstep viene modificata più sotto.
\embed{r3}
}
}
}
Qui si definiscono le domande: in questo caso si utilizza \answer per tutte, utilizzando type=menu per avere una scelta multipla. Attenzione però che in questo caso non c'è una verifica a priori sulla correttezza della risposta, per questo più sotto c'è una serie di \condition. Le variabili \rep1, \rep2 e \rep3 non essendo state definite prima vanno a contenere la risposta dell'utente (ma solo per la parte di codice che viene dopo i comandi \answer)
\answer{Prima domanda}{\rep1;\rispoka,\rispnooka}{type=menu}{option=shuffle}
\answer{Seconda domanda}{\rep2;\rispokb,\rispnookb}{type=menu}{option=shuffle}
\answer{Seconda domanda}{\rep3}{ type=numeric }

Qui si differenzia il passo successivo (variabile \nstep) a seconda della risposta data alla prima domanda (\rep1)
\text{ nstep = (\step = 2) and (\rep1 issametext \rispoka[1]) ? r2 }
\text{ nstep = (\step = 2) and (\rep1 issametext \rispoka[2]) ? r3 }

Verifica della correttezza delle risposte. Osservare che, avendo definito la lista \rispoka contentente le risposte corrette, per le risposte a scelta multipla è sufficiente verificare che \rep1 sia in questa lista. Per la seconda domanda occorre prevedere che la \condition dia come “corretta” la risposta nelle due diverse possibili seconde domande che possono capitare. Può essere utile inserire anche dei \feedback per dare la risposta corretta o dare eventuali spiegazioni.
\condition{Risposta alla prima domanda corretta}{\rep1 isitemof \rispoka}
\condition{Risposta alla seconda domanda corretta}{(\rep2 isitemof \rispokb) or (\rep3=\b)}

Di seguito diamo una variazione dell'esercizio precedente in cui se la risposta alla prima domanda è "vera1" allora l'esercizio va ad essere costituito da due scelte multiple; se invece la risposta alla prima domanda è "vera2" allora l'esercizio si compone di tre domande. Si può provare l'esercizio cliccando su questo link: Varia steps 2

\title{Varia steps 2}

\text{domanda= rispondi alle seguenti domande}

\text{rispoka = vera1,vera2}
\text{rispnooka = falsa1,falsa2,falsa3,falsa4}
\text{rispokb = vera3,vera4}
\text{rispnookb = falsa5,falsa6,falsa7,falsa8}

Per pigrizia non definisco i parametri relativi alla quarta domanda, ma riutilizzo quelli relativi alla terza domanda.
\text{ a = 2 }
\integer{ b = \a^2 }

\text{ nstep = r1 }
\nextstep{ \nstep }

\statement{\domanda
\if{\step=1}{
\embed{r1}
}
\if{\step=2}{
La risposta alla domanda precedente è: \reply1
\if{\reply1 issametext \rispoka[1]}{
\embed{r2}
}
\if{\reply1 issametext \rispoka[2]}{
\embed{r3}
}
}

Questa parte di enunciato deve comparire solo quando effettivamente si arriva alla terza domanda, ovvero quando alla prima domanda si è risposto "vera2". Notare che occorre la doppia condizione "\step=3" e "\reply1 issametext \rispoka[2]"
\if{(\step=3) and (\reply1 issametext \rispoka[2])}{
Qui siamo arrivati al terzo passo
\embed{r4}
}
}

\answer{Prima domanda}{\rep1;\rispoka,\rispnooka}{type=menu}{option=shuffle}
\answer{Seconda domanda}{\rep2;\rispokb,\rispnookb}{type=menu}{option=shuffle}
\answer{Seconda domanda}{\rep3}{ type=numeric }

Si introduce reply4 (per wims la quarta domanda). Anche in questo caso non c'è un controllo della correttezza della domanda, ma occorrerà inserire una \condition.
\answer{Terza domanda}{\rep4}{ type=numeric }

\text{ nstep = (\step = 2) and (\rep1 issametext \rispoka[1]) ? r2 }
\text{ nstep = (\step = 2) and (\rep1 issametext \rispoka[2]) ? r3 }

\nstep viene definito solo nel caso in cui si è risposto "vera2" alla prima domanda (e si richiede come passo successivo la risposta alla reply4, ovvero alla quarta comparsa del comando \answer); se invece alla prima domanda si è risposto "vera1" la variabile \nstep resta vuota ad indicare che non ci sono passi successivi e l'esercizio termina.
\text{ nstep = (\step = 3) and (\rep1 issametext \rispoka[2]) ? r4 }

\condition{Risposta alla prima domanda corretta}{\rep1 isitemof \rispoka}
\condition{Risposta alla seconda domanda corretta}{(\rep2 isitemof \rispokb) or (\rep3 =\b)}

Si inserisce la verifica sulla terza domanda. Attenzione al termine dell'esercizio vengono verificate tutte le \condition, anche quelle che riguardano domande a cui non si è risposto. In questo caso se alla prima domanda si è risposto "vera1" la terza domanda non viene posta: per questo occorre che la \condition contenga anche come risposta “esatta” anche " \rep1 issametext \rispoka[1]". L'opzione "option=hide" fa si che il risultato di questa verifica non venga pubblicato al termine dell'esercizio: se la si omette anche nel caso si stia svolgendo l'esercizio con due sole domande comparirebbe la scritta "Risposta alla terza domanda corretta: SI" che non ha molto senso. Utilizzando l'opzione hide diventa allora opportuno inserire un \feedback nel caso si stia svolgendo l'esercizio con tre domande
\condition{Risposta alla terza domanda corretta}{(\rep1 issametext \rispoka[1] ) or (\rep4 = \b)}{option=hide}
\feedback{(\rep1 issametext \rispoka[2]) and (\rep4 = \b)}{<b>Risposta alla terza domanda corretta: SI</b>}

Coordinate

 

Negli esercizi con disegno e risposta di tipo coord può essere utile costruire i passi successivi basandosi sulle risposte dell'utente. Per fare ciò è necessario utilizzare le coordinate del punto su cui l'utente ha cliccato. Queste coordinate sono contenute nella variabile \reply corrispondente, come si può vedere inserendo un \feedback.

L'esercizio può essere provato cliccando sul seguente link: Coordinate

\title{Coordinate}
\language{it}
\author{Marina Cazzola}
\email{marina.cazzola@unimib.it}
\format{html}
\computeanswer{yes}
Questa parte di esercizio, con la costruzione del disegno che appare nell'enunciato, è esattamente la parte dell'esercizio sulle isometrie
\integer{quadr=20}
\integer{xmax=20*\quadr+1}
\integer{ymax=10*\quadr+1}
\text{scheletro=0,0,\quadr,0,\quadr,\quadr,2*\quadr,\quadr,\quadr,2*\quadr,0,2*\quadr}
\text{poligono1=affine -1,0,0,-1,5*\quadr,5*\quadr
fpoly red,\scheletro
killaffine}
\text{poligono2=translation 11*\quadr,7*\quadr
fpoly blue,\scheletro
killtranslation
}
\text{griglia=lattice 0,0,\quadr,0,0,\quadr,21,11,blue}
\text{disegno=draw(\xmax,\ymax
\griglia
\poligono1
\poligono2
)}
\matrix{rep=\disegno;point,8*\quadr,6*\quadr}
\statement{
Cliccare sul centro della rotazione:
<center>
\embed{\reply1}
</center>
}
Qui viene “definita” la prima domanda, la risposta a questa domanda (il “click”) sarà messa nella variabile \reply1
\answer{Centro della rotazione}{\rep}{type=coord}
Questo \feedback permette di leggere il contenuto della variabile \reply1
\feedback{1=1}{Coordinate del click: \reply1}
La variabile \reply1 in questa zona è definita e su essa posso operare con le funzioni di wims. Ad esempio se voglio estrarre la prima coordinata (la x del punto dove l'utente ha cliccato) posso procedere in questo modo
\text{provax=wims(declosing \reply1)}
\text{provax=item(1,\provax)}
\feedback{1=1}{Coordinate del click (x e y): \reply1; \provax}

documento di presentazione del seminario crediti di tipo F.
: servizi, interactive mathematics, interactive math, server side interactivity