Bien que WIMS puisse faire des exercices beaucoup plus sophistiqués, il peut aussi faire des exercices du type QCM ou exercices à trous. Cela est très utile dans les disciplines non scientifiques. Par contre, il n'y a pas d'outil permettant de créer ces exercices sans "rien voir de la technique".
Pour aider les utilisateurs, nous donnons ici quelques exemples en expliquant le code. On peut d'abord les utiliser tels quels, puis en comprenant le code les adapter à son utilisation personnelle. En effet, une fois passée la difficulté de compréhension du code, il est possible de créer sa variante adaptée à son type de données, de feedback.
La présentation que nous donnons ici ainsi que les sources nécessite d'avoir un compte Modtool ( DocAide Modules d'exercices OEF ). Il serait possible de faire ces exercices à partir d'une classe, mais si vous avez beaucoup de questions ou d'exigences, cela sera beaucoup plus simple à partir d'un compte Modtool. Aussi avons-nous pris ce parti.
Sauf erreur de notre part, vous pouvez recopier le fichier source, le mettre dans votre module sous un nom du type src/toto.oef, créer un fichier data dans le module selon la description qui en est faite dans chacun des exemples et ... obtenir un exercice ....
Dans l'exercice décrit dans la suite, toutes les questions du fichier sont affichées
dans l'ordre où elles ont été écrites.
Le nombre de choix peut être différent selon les questions.
Le fichier de données data1 doit être de la forme
:texte de la question 2
numéro de la réponse
choix1
choix2
choix3
Vous pouvez recopier
Source QCM 1
dans src/qcm.oef
et sauf erreur de ma part, votre qcm devrait fonctionner.
Vous pouvez/devez le nombre de questions, le nom du fichier de données,
le type de réponses : checkbox au lieu de radio:
Voici quelques explications sur le code :
\text{bat = shuffle(\cnt_question)}
\matrix{question = }
\matrix{rep = }
\text{CNT_choix = }
\matrix{CHOIX = }
\for{i = 1 to \N }{
\matrix{QUEST = wims(record \bat[\i] of \data)}
\matrix{question = \question
\QUEST[1;]}
On peut remplacer radio par checkbox
si plusieurs réponses sont possibles.
Nom du fichier appelé
\text{data = data1}
\integer{cnt_question = wims(recordcnt \data)}
\text{bat = shuffle()}
\matrix{question = }
\matrix{rep = }
\text{CNT_choix = }
\matrix{CHOIX = }
\for{i = 1 to \N }{
\matrix{QUEST = wims(record \bat[\i] of \data)}
\matrix{question = \question
\QUEST[1;]}
\integer{cnt_choix = rows(\QUEST)-2}
\text{CNT_choix = \CNT_choix,\cnt_choix}
\text{Choix = }
\text{mix = shuffle(\cnt_choix)}
\for{ j = 3 to \cnt_choix + 2}{
\text{choix = \QUEST[\j;]}
\matrix{Choix = \Choix, \choix[1;]}
}
\text{Choix = wims(nonempty items \Choix)}
\text{Choix = \Choix[\mix]}
\matrix{CHOIX = \CHOIX
\Choix}
\text{H = wims(nospace \QUEST[2;])}
\text{pos = }
\for{r in \H}{ \text{pos = \pos,position(\r,\mix)} }
\text{pos = wims(nonempty items \pos)}
\matrix{rep = \rep
\pos}
}
\text{CNT_choix = wims(nonempty items \CNT_choix)}
\text{STEP = wims(makelist r x for x = 1 to \N)}
\steps{\STEP}
Dans le QCM suivant, les questions sont données une par une,
les réponses aux questions précédentes s'affichent
mais le QCM s'arrête à la première faute.
Source QCM 2
\matrix{question = }
\matrix{rep = }
\text{CNT_choix = }
\matrix{CHOIX = }
\for{i = 1 to \N }{
\matrix{QUEST = wims(record \bat[\i] of \data)}
\matrix{question = \question
\QUEST[1;]}
\integer{cnt_choix = rows(\QUEST)-2}
\text{CNT_choix = \CNT_choix,\cnt_choix}
\text{Choix = }
\text{mix = shuffle(\cnt_choix)}
\for{ j = 3 to \cnt_choix + 2}{
\text{choix = \QUEST[\j;]}
\matrix{Choix = \Choix, \choix[1;]}
}
\text{Choix = wims(nonempty items \Choix)}
\text{Choix = \Choix[\mix]}
\matrix{CHOIX = \CHOIX
\Choix}
\text{H = wims(nospace \QUEST[2;])}
\text{pos = }
\for{r in \H}{ \text{pos = \pos,position(\r,\mix)} }
\text{pos = wims(nonempty items \pos)}
\matrix{rep = \rep
\pos}
}
\text{CNT_choix = wims(nonempty items \CNT_choix)}
\text{STEP = wims(makelist r x for x = 1 to \N)}
\text{STEP = wims(replace internal , by ; in \STEP)}
\steps{\STEP}
\text{CNT_choix = wims(nonempty items \CNT_choix)}
\text{STEP = wims(makelist r x for x = 1 to \N)}
\text{STEP = wims(replace internal , by ; in \STEP)}
\steps{\STEP}
Voici un QCM où les réponses sont analysées à la fin de toutes les questions.
Le nombre de questions peut être variable (N),
seules les conditions utiles servent. Le fichier de données correspondant est le même que pour les deux types de QCM précédents
\text{CNT_choix = wims(nonempty items \CNT_choix)}
\text{STEP = wims(makelist r x for x = 1 to \N)}
\text{STEP = wims(replace internal , by ; in \STEP)}
\text{CONDITION = wims(makelist x for x = 1 to \cnt_question)}
\steps{\STEP}
\conditions{\CONDITION}
\condition{Question 1 : \REP1}{\REP1 issametext \CHOIX[1;\rep[1;]]}
\condition{Question 2 : \REP2}{\REP2 issametext \CHOIX[2;\rep[2;]]}
\condition{Question 3 : \REP3}{\REP3 issametext \CHOIX[3;\rep[3;]]}
\condition{Question 4 : \REP4}{\REP4 issametext \CHOIX[4;\rep[4;]]}
\condition{Question 5 : \REP5}{\REP5 issametext \CHOIX[5;\rep[5;]]}
\condition{Question 6 : \REP6}{\REP6 issametext \CHOIX[6;\rep[6;]]}
\condition{Question 7 : \REP7}{\REP7 issametext \CHOIX[7;\rep[7;]]}
\condition{Question 8 : \REP8}{\REP8 issametext \CHOIX[8;\rep[8;]]}
\condition{Question 9 : \REP9}{\REP9 issametext \CHOIX[9;\rep[9;]]}
\condition{Question 10 : \REP10}{\REP10 issametext \CHOIX[10;\rep[10;]]}
Si l'on désire que les questions du QCM contiennent des variables, on ne peut
pas mettre les questions dans un fichier à part
Deux possibilités quand même
Sera choisi au hasard l'une des quatres phrases
A partir de ce qu'on a vu précédemment, on peut imaginer d'autres manières de
rentrer les données, envisager de mettre des feedback selon les questions et les réponses.
Le tout est d'organiser ces données de manière systématique selon vos besoins et le type d'informations.
Donnons un exemple : il y aura un nombre variable de réponses,
plusieurs réponses possibles, un feedback pour certaines réponses fausses :
On peut par exemple avoir un fichier dataqcm de la forme suivante
le fichier source de l'exercice OEF pourrait être par exemple
\matrix{Q = wims(randrecord dataqcm)}
\text{enonce = \Q[1;]}
\text{n = \Q[2;]}
\text{reponse = \Q[3;]}
\text{choixetfeed = \Q[4..-1;]}
\text{choix = \choixetfeed[1..\n;]}
\text{verite = \choix[\reponse;]}
\text{choix = wims(replace internal ; by , in \choix)}
\text{feed = \choixetfeed[\n+1..-1;]}
\text{feed = wims(replace internal ; by , in \feed)}
\text{verite1 =
<ul><li>wims(replace internal ; by </li><li> in \verite)</li></ul>}
Nous donnons ici un exemple de programmes permettant de créer un
texte à trous à compléter par exemple à l'écoute d'un texte. Beaucoup
de variantes sont possibles.
Il s'agit d'une version très simple.
<p style="background-color : #AAFFFF;
padding : 1%;
margin : 5% 15%;">
\for{k = 1 to \cntQ}{
\texte[2*\k-1;] \embed{\STEP[\k], 10}
}
</p>
}
Pour être adapté au texte de l'exercice
Source oef
,
le fichier de données doit satisfaire les règles suivantes
\text{cnt_record = wims(recordcnt data)}
\text{H = randint(\cnt_record)}
\text{texte = wims(record \H of data)}
\text{bande = wims(word 1 of \texte)}
\text{texte = wims(replace internal \bande by in \texte)}
\matrix{texte = slib(text/cutchoices \texte)}
\text{cntrow = rows(\texte)}
\integer{cntQ = \cntrow/2-1}
\text{trou = }
\for{i = 1 to \cntQ}{
\text{trou1 = \texte[2*\i;]}
\text{trou = \trou, \trou1}
}
\text{trou = wims(nonempty items \trou)}
\text{audio = slib(media/audio \bande )}
\text{STEP = wims(makelist r x for x = 1 to \cntQ)}
\steps{\STEP}
<p style="background-color : #AAFFFF;
padding : 1%;
margin : 5% 15%;">
\for{k = 1 to \cntQ}{
\texte[2*\k-1;] \embed{\STEP[\k], 10}
}
\texte[2*\cntQ+1;]
</p>
}
On désire faire un exercice présentant un texte avec des mots à trouver
parmi une liste proposée (par exemple par un menu à choix).
Il peut donc ici ne pas y avoir forcément de fichiers audio.
<p style="background-color : #AAFFFF;
padding : 1%;
margin : 5% 15%;">
\for{k = 1 to \cntQ}{
\texte[2*\k-1;] \embed{\STEP[\k]}
}
\texte[2*\cntQ+1;]
</p>
}
Pour être adapté au texte de l'exercice
Texte à choix
,
le fichier de données doit satisfaire les règles suivantes
\matrix{texte = slib(text/cutchoices \texte)}
\text{cntrow = rows(\texte)}
\integer{cntQ = \cntrow/2-1}
\text{trou = }
\text{rep = }
\for{i= 1 to \cntQ}{
\text{trou1 = \texte[2*\i;]}
\text{cnt = items(\trou1)}
\text{mix = shuffle(\cnt)}
\matrix{trou = \trou
\trou1[\mix]}
\text{rep = \rep,position(1,)}
}
\text{rep = wims(nonempty items \rep)}
\text{STEP = wims(makelist r x for x = 1 to \cntQ)}
\steps{\STEP}
<p style="background-color : #AAFFFF;
padding : 1%;
margin : 5% 15%;">
\for{k = 1 to \cntQ}{
\texte[2*\k-1;] \embed{\STEP[\k]}
}
\texte[2*\cntQ+1;]
</p>
}
Bien qu'on s'éloigne de plus en plus des qcm, on ne résiste pas à l'envie de vous
proposer un autre type d'exercices qui consistent à faire marquer certains mots.
Par exemple, vous désirez faire un exercice demandant de marquer tous les
articles définis d'une phrase. Pour cela, on peut utiliser le type de réponses mark
Ce type comme checkbox demande de connaître :
Le fichier de données datamark
adapté à l'exercice qui suit est de la forme :
:??un??village et ??une?? ville
QCM version facile
:texte de la question 1
numéro de la réponse
choix1
choix2
choix3
Remarques
Dans ce type de QCM, il n'est pas possible de mettre des variables aléatoires dans
les questions. Si vous désirez le faire, il faut alors mettre les questions
dans le fichier src/xxx.oef dans une variable
\matrix{A = ...}
Source QCM 1
QCM à questions successives
Source QCM 2
QCM à questions successives ne s'arrêtant pas
QCM avec des variables
\text{texte = {Il, Elle} a un {parapluie,sac}}
\text{texte = wims( embraced \texte)}
Il a un parapluie
Il a un sac
Elle a un parapluie
Elle a un sac
\text{prenom = randitem(Jean,Pierre)}
\text{texte = wims(replace internal XXXX by \prenom in \texte)}
Un QCM avec feedback
question
nombre de questions
numero des bons choix
choix1
choix2
...
feedback1
feedback2
...
Dictée à trous
image_common=yes
Données
Donnons un exemple :
:dictee1.mp3
Un ??chasseur?? sachant ??chasser?? doit ??savoir?? chasser
sans son ??chien?? .
:dictee2.mp3
Voici ??son?? chien et ??son?? chat qui ??se?? battent.
Source oef
Texte à choix
Données pour choix
Donnons un exemple :
:
Un ??chasseur,chaceur?? sachant ??chasser,chassé?? doit ??savoir?? chasser
sans ??son,sont ??chien.
:
Voici ??son,sont,con?? chien et ??son,sont,con?? chat qui ??se,ce,ceux?? battent.
Texte à choix
Marquer des mots d'un texte
la position des items sur lesquels on doit cliquer ; les items en question
Par exemple :
1,4;le,chien,et,le,chat
:??le?? chien et ??le?? chat
??La?? montagne lui plaît
\statement{ <p style="background-color : #AAFFFF; padding : 1%; margin : 5% 15%;"> \for{s = 1 to \cnt}{\embed{reply1,\s} } }\answer{}{\texte}{type=mark}
Vous pouvez voir ce qu'il y a derrière le script. Regardez-le si vous désirez l'adapter. Exemple de source sans slib
On peut aussi imaginer plutôt que ?? des indicateurs plus précis comme <ART> <GN> etc adaptés à l'analyse grammaticale ... A vous de voir et de proposer !
Mais nous nous éloignons du sujet.
Keywords: qcm,modtool,, wims, mathematics, mathematical, math, maths, interactive mathematics, interactive math, interactive maths, mathematic, online, calculator, graphing, exercise, exercice, puzzle, calculus, K-12, algebra, mathématique, interactive, interactive mathematics, interactive mathematical, interactive math, interactive maths, mathematical education, enseignement mathématique, mathematics teaching, teaching mathematics, algebra, geometry, calculus, function, curve, surface, graphing, virtual class, virtual classes, virtual classroom, virtual classrooms, interactive documents, interactive document
Exemple de source sans slib
Par
Version interactive
Dernière modif. 20060617