Foire aux questions

Exercices OEF

  1. Qu'est-ce que OEF ?
  2. Où est la documentation du langage OEF ?
  3. Qu'est-ce que Createxo ?
  4. J'ai fait mon premier exercice OEF et les réponses s'affichent. Est-ce normal ?
  5. Y a-t-il des exemples commentés d'exercices ?
  6. Je voudrais appeler dans un exercice OEF un fichier de données par exemple en utilisant slib(data/randline).
  7. Createxo distingue réponses libres et à choix multiples. Quid ?
  8. Qu'est-ce qu'on ne peut pas faire avec OEF?
  9. J'ai de bons exercices OEF ou Modtool, comment les intégrer à la distribution ?
  10. Les formules TeX ne sont pas lisibles. Comment augmenter leur taille ?
  11. Peut-on mettre des boucles et des branchements conditionnels dans un exercice OEF?
  12. \text{ s = ]a, b[ } est refusé par le compilateur.
  13. Quelles sont les commandes de programmation accessibles dans les exercices OEF ?
  14. Comment compter les mots d'une phrase ou le nombre de caractères ?
  15. J'ai des problèmes pour manier des textes contenant des virgules, ou des "\" !
  16. \a * \a est faux ! (après \text{ a = x + y })
  17. Je veux faire un exercice avec des poids aux questions et cela ne marche pas.
  18. Je n'arrive pas à écrire un intervalle, WIMS enlève la virgule.
  19. Que signifie la précision et comment est calculée l'erreur dans les exercices numériques ?
  20. J'affiche une racine carrée et il reste des parenthèses.
  21. La commande solve ne renvoie pas la racine exacte ?
  22. Comment insérer la réponse dans le texte d'un énoncé ?
  23. Je désirerais mettre une aide commune à plusieurs exercices d'un module OEF.
  24. Avez-vous un exemple d'exercice à étapes ?
  25. Dans un exercice à étapes, une réponse fausse au premier step entraîne-t-elle nécessairement l'arrêt de l'exercice ?
  26. Comment faire des exercices dont la deuxième question dépend de ce qu'a répondu l'élève à la première ?
  27. Avez-vous un exemple d'exercice demandant de reconstituer des phrases (clickfill)?
  28. Dans un exercice utilisant le type de réponse correspond, peut-on gérer les ambiguïtés ?
  29. Avez-vous un exemple de dessin ?
  30. Comment se sert-on de animstep
  31. Je voudrais utiliser des matrices et faire des produits. Que dois-je utiliser ?
  32. Je voudrais créer une matrice avec certaines propriétés ...
  33. J'ai récupéré la réponse reply1 sous forme de matrice et pourtant PARI/GP ne l'interprète pas comme une matrice?
  34. J'ai obtenu une matrice avec slib(matrix/random) et je voudrais changer un coefficient.
  35. La fonction random semble interférer entre PARI/GP et WIMS ?
  36. Je me souviens avoir vu une liste de scripts, mais je ne retrouve pas la documentation ?
  37. Que fait l'instruction \text{S1=item(3..-1,\S)}.

Retour à la table des matièresQu'est-ce que OEF ?

OEF signifie Online Exercise Format. C'est une interface simplifiant la fabrication des énoncés. Elle aide les novices, mais ses possibilités et sa souplesse en font aussi un outil de choix pour experts pressés. De nombreux types d'exercices (gérant la présentation des questions et l'analyse des réponses) sont proposés et faciles d'utilisation ( types de réponses).

Retour à la table des matièresOù est la documentation du langage OEF ?

Aide OEF. Si vous êtes en train de créer un exercice OEF, vous trouverez aussi ce lien dans la barre de menu en haut ( Aide). On peut aussi regarder le document DocAide Exercices OEF.

Retour à la table des matièresQu'est-ce que Createxo ?

Createxo est une interface permettant de créer des exercices oef sur le serveur par une page web

Retour à la table des matièresJ'ai fait mon premier exercice OEF et les réponses s'affichent. Est-ce normal ?

Oui, en mode de programmation (développement) ou lorsqu'on est enseignant dans une classe, la plupart des réponses sont affichées. Elles ne le seront plus heureusement lorsque c'est un élève d'une classe qui fait l'exercice. C'est ce que signifie la phrase suivante : Mode de développement : les bonnes réponses sont insérées dans les champs de réponse par défaut.

Retour à la table des matièresY a-t-il des exemples commentés d'exercices ?

Vous pouvez trouver des exercices commentés dans le document DocAide Exercices OEF et sur le site Poitou-Charentes.

Retour à la table des matièresJe voudrais appeler dans un exercice OEF un fichier de données par exemple en utilisant slib(data/randline).

On ne peut pas le faire dans une classe. Vous devez pour cela avoir un compte Modtool et créer un module d'exercices OEF (voir des explications dans le document Doc Modules d'exercices OEF ).

Retour à la table des matièresCreatexo distingue réponses libres et à choix multiples. Quid ?

Dans une réponse à choix multiples, l'élève choisit parmi plusieurs réponses imposées (clic de souris). Dans une réponse libre, il tape lui-même sa réponse au clavier : cela peut être un nombre, un ensemble de nombres, un texte, une fonction, une matrice ...

Retour à la table des matièresQu'est-ce qu'on ne peut pas faire avec OEF?

Vous n'avez pas le contrôle de la notation de l'exercice : le calcul des points est fait de manière "opaque". Vous ne pouvez pas non plus gérer une progression dans la difficulté. Modtool est plus flexible mais demande beaucoup plus de travail.

Retour à la table des matièresJ'ai de bons exercices OEF ou Modtool, comment les intégrer à la distribution ?

Transmettez-les à votre gestionnaire de site, ou à .

Retour à la table des matièresLes formules TeX ne sont pas lisibles. Comment augmenter leur taille ?

Si vous êtes utilisateur, vous pouvez régler la taille dans les préférences de WIMS par le navigateur.
Si vous programmez un exercice, vous pouvez utiliser les macros LaTeX standard, comme \large, \Large, \huge ou \Huge.

Retour à la table des matièresPeut-on mettre des boucles et des branchements conditionnels dans un exercice OEF?

Oui, aussi bien dans la partie \statement qu'en dehors, ainsi que dans les documents. On peut utiliser
\if{test}{}{ }
\while{test}{ }
\for{i = 1 to 4}{ }
Ici test est un test, par exemple \a issametext toto, à l'intérieur de {} doivent être mises des commandes : par exemple \text{a = 2}.

Retour à la table des matières\text{ s = ]a, b[ } est refusé par le compilateur.

C'est un bogue du compilateur. Pour l'éviter, mettez le code html ou TeX: \text{ s = ]a, b[ } ou \text{ s = \rbrack a, b \lbrack }.
Il y a d'autres codes html qu'il est bon de connaître, par exemple , si on veut mettre une virgule dans un élément d'une liste.
    \text{ a = 1,2, 3 }
    \text{ b = item(1,\a) }
    \statement{ \b }
WIMS vérifie l'appariemment des crochets et des parenthèses, et qu'un crochet ouvrant doit précéder tout crochet fermant.

Retour à la table des matièresQuelles sont les commandes de programmation accessibles dans les exercices OEF ?

Il ne s'agit pas de remplacer l'aide et la documentation mais de parcourir rapidement les possibilités :
Variables prédéfinies
imagedir : \imagedir
confparm1 : \confparm1
confparm2 : \confparm2
confparm3 : \confparm3
confparm4 : \confparm4
step : \step
Commandes
answer : \answer{mon_texte}{\reponse}{type= xxx}{option=xxx}
author : \author{xxx}
choice : \choice{xxx}{test}{}
complex : \complex{xxx = yyy}
computeanswer : \computeanswer{yes}
condition : \condition{xxx}{test}
conditions : \conditions{c1,c2}
email : \email{xxx}
feedback : \feedback{xxx}{test}
for : \for{i=1 to 5}{ }
format : \format{html}
function : \function{f = x^2}
help : \help{xxx}
hint : \hint{xxx}
if : \if{test}{}{}
int : \int{a = yyy}
integer : \integer{a = yyy}
language : \language{fr}
matrix : \matrix{a = yyy}
mdef : \mdef{xxx}
next : \next{xxx}
nextstep : \nextstep{reply 2}
parameter : \parameter{xxx}
plot : \plot{xxx}
precision : \precision{1000}
range : \range{-5,5}
rational : \rational{r = 3/2}
real : \real{r = 3/2}
reply : \reply{xxx}{}{}{} voir \answer{}{}{}
solution : \solution{xxx}
statement : \statement{xxx}
steps : \steps{xxx}
text : \text{xxx}
title : \title{xxx}
variable : \variable{xxx}
while : \while{test}{}
Autres :
column : \text{ a = column(1,xxx)}
deriv : \text{ a = deriv(xxx,x)}
derivative : \text{ a = derivative(xxx,x)}
det : \text{ a = det(xxx)}
determinant : \text{ a = determinant(xxx)}
diff : \text{ a = diff(xxx,x)}
draw : \text{ a = draw(xxx)}
evaluate : \text{ a = evaluate(x^2,x = 2)}
evalue : \text{ a = evalue(x^2, x = 2)}
htmlmath : \text{ a = htmlmath(xxx)}
int : \text{ a = int(x^2,x= 0 .. 2)}
integral : \text{ a = integral(xxx)}
integrate : \text{ a = integrate(xxx,x=1 .. 2)}
item : \text{ a = item(1,xxx)}
items : \text{ a = items(xxx)}
mathexp_cut : \text{ a = mathexp_cut(xxx)}
maxima : \text{ a = maxima(xxx)}
pari : \text{ a = pari(xxx)}
pickone : \text{ a = pickone(xxx)}
position : \text{ a = position(xxx)}
positionof : \text{ a = positionof(xxx)}
randint : \text{ a = randint(xxx)}
randitem : \text{ a = randitem(xxx)}
random : \text{ a = random(xxx)}
randomitem : \text{ a = randomitem(xxx)}
randomrow : \text{ a = randomrow(xxx)}
randrow : \text{ a = randrow(xxx)}
row : \text{ a = row(2,xxx)}
rows : \text{ a = rows(xxx)}
shuffle : \text{ a = shuffle(xxx)}
simplify : \text{ a = simplify(xxx)}
slib : \text{ a = slib(xxx)}
solve : \text{ a = solve(xxx)}
texmath : \text{ a = texmath(xxx)}
wims : \text{ a = wims(xxx)}
yacas : \text{ a = yacas(xxx)}

Retour à la table des matièresComment compter les mots d'une phrase ou le nombre de caractères ?

Pour les manipulations de texte avancées, vous pouvez utiliser les commandes wims ( doc tech). Par exemple,
  \text{a =wims(wordcnt toto tata titi)}
Pour tirer un mot au hasard,
 \text{a=wims(randword toto tata titi)}

Retour à la table des matièresJ'ai des problèmes pour manier des textes contenant des virgules, ou des "\" !

Remplacer les caractères par leur code html, par exemple ] pour un crochet et , pour une virgule.

Retour à la table des matières \a * \a est faux ! (après \text{ a = x + y })

L'évaluation remplace littéralement les variables par leurs valeurs, sans parenthésage implicite. Dans cet exemple, WIMS calcule x + y * x + y.
Utiliser
  \text{ a = (x + y) }
  \text{ b = \a * \a }
  \statement{\b}
ou mieux
  \text{ a = x + y }
  \text{ b = (\a) * (\a) }
  \statement{\b}
s'il n'est pas garanti que a soit de type numérique.

Retour à la table des matièresJe veux faire un exercice avec des poids aux questions et cela ne marche pas.

Il semble que pour l'instant lorsque vous testez votre exercice avec Createxo, le score ne tient pas compte des poids. Par contre, il en tiendra compte lorsque l'exercice sera utilisé. Exemple de tests avec un niveau de sévérité 3 (menu intro):
  \statement{}
  \answer{}{1}{type=numeric}{weight=8}
  \answer{}{1}{type=numeric}{weight=2}
sous Createxo : directement :
  \statement{}
  \answer{}{1}{type=numeric}{weight=2}
  \answer{}{1}{type=numeric}{weight=8}
 
sous Createxo : directement :
Pour avoir exactement les proportions 2 et 8 demandées, il faudra ensuite configurer le niveau de sévérité de l'exercice (menu d'introduction du module) à 1. Mais cela est indépendant du développement de l'exercice.

Retour à la table des matièresJe n'arrive pas à écrire un intervalle, WIMS enlève la virgule.

C'est un bogue. [ 1, 2 ] fonctionne, mais il faut écrire
      [ \(x_2), \(x_3) ]
et non
      \([ x_2, x_3 ])
L'expression \(...) interprète ... en mode mathématique, comme une matrice ligne dans le deuxième cas. WIMS affiche donc une matrice et non un intervalle : la virgule est supprimée.

Retour à la table des matièresQue signifie la précision et comment est calculée l'erreur dans les exercices numériques ?

Pour une précision relative 1/M où M est donnée dans le champ \precision{M}, la réponse numérique r est acceptée pour la solution demandée s si et seulement si:

(|s-r|)/Max(|s+r| ,1/M)) < 1/M

en d'autres termes,

Retour à la table des matièresJ'affiche une racine carrée et il reste des parenthèses.

Pour afficher la racine carrée de 2, vous avez deux possibilités : \( sqrt(2) ) ou \( \sqrt{2} ) (attention aux parenthèses, accolades, backslash ou non). La première utilisation \( 2 * sqrt(2) ) fera disparaître * car c'est WIMS qui réinterprète la racine carrée. La deuxième utilisation \( 2 * \sqrt{2} ) ne fera pas disparaître * car il n'y a pas d'interprétation par WIMS qui l'envoie directement à latex. Il ne faut pas non plus écrire \(\frac{sqrt(2)}{2} ) car WIMS voyant la commande latex \frac l'envoie directement à latex qui écrira donc sqrt(2).

Retour à la table des matièresLa commande solve ne renvoie pas la racine exacte ?

Par exemple, le code suivant prétend que la bonne réponse n'est pas 0, mais -7.4503762e-11 :
    \function{f = x}
    \text{S = solve(\f=0, x = -3.5 .. 4.5)}
    \statement{\S}
    \answer{solution}{\S}{type = set}
Les racines sont approximatives, donc il faut remplacer le type set(ensemble) de la réponse par aset (ensemble de nombres approchés).

Retour à la table des matièresComment insérer la réponse dans le texte d'un énoncé ?

Il faut utiliser la fonction \embed
    \statement {
      <br>Calculer 2 + 2 : \embed{reply 1}
    }
    \answer { 2 + 2 = }{ 4 }

Retour à la table des matièresJe désirerais mettre une aide commune à plusieurs exercices d'un module OEF.

Pour cela, vous devez passer par un compte Modtool. Mettez le contenu de votre aide dans le fichier help.html au dessus de la ligne !changeto . Le texte sera commun à tous les exercices.
[[Ce qui suit ne marche en fait pas ! Pourtant, on aimerait ! Créez un fichier, par exemple aide dans lequel vous écrivez l'aide (sans variable). Dans le fichier source d'un exercice où vous désirez que cette aide apparaisse, écrivez les lignes suivantes :
\text{monaide=wims(record 0 of aide)}
\help{\monaide}
]]

Retour à la table des matièresAvez-vous un exemple d'exercice à étapes ?

\title{Essai étapes}
\language{fr}
\range{-5..5}
\author{Benoît, Markey}
\computeanswer{no}
\format{html}
\precision{100}
\integer{a = randint(0..10)}
\integer{b = randint(0..10)}
\steps{reply1
reply2}
\statement{
  \if{\step=1}{
    Calculer la somme : \a + \b
  }
  \if{\step=2}{
    Calculer le produit : \(\a*\b)}
  }
\answer{\a + \b =}{\a+\b}{type=numeric}
\answer{\(\a * \b =)}{\a*\b}{type=numeric}

Retour à la table des matièresDans un exercice à étapes, une réponse fausse au premier step entraîne-t-elle nécessairement l'arrêt de l'exercice ?

Si la réponse à la première question est analysée à travers quelque chose comme \condition{}, on peut passer la première étape sans avoir juste à cette étape. C'est délicat, donc à manier avec précaution.

Retour à la table des matièresComment faire des exercices dont la deuxième question dépend de ce qu'a répondu l'élève à la première ?

On utilise nextstep, par exemple
  \text{ nstep = reply 1 }
  \nextstep{ \nstep }
  \statement{
    \if {\step = 1} {
      Ecrire 1 ou 2 : \embed{ reply 1 }
      \exit{}
    }
    <br>Vous avez écrit à l'étape 1 : \test1
    <br>
    \if {\step = 2 and \test1 = 1} {
      Ecrire le plus grand de 3 ou 4 : \embed{reply 2}
    }
    \if {\step = 2 and \test1 = 2} {
      Cliquer sur le plus petit de 8 ou 9 \embed{reply 3}
      \exit{}
    }
    <br>
    \if {\step = 3 and \test1 = 2}{
      Donner le carré de 4
    }
  }
  \answer{Etape 1}  {\test1}{type = numeric}
  \answer{Etape 2-1}{\test2}{type = numeric}
  \answer{Etape 2-2}{1;8,9} {type = click}
  \answer{Etape 3}  {16}    {type = numeric}

\text{nstep = \step = 2 and \test1 = 1 ? reply 2} \text{nstep = \step = 2 and \test1 = 2 ? reply 3} \text{nstep = \step = 3 and \test1 = 2 ? reply 4}
\condition{}{(\test1=1 and (\test2=4)) or (\test1=2 and (\reply3=8))}

Retour à la table des matièresAvez-vous un exemple d'exercice demandant de reconstituer des phrases (clickfill)?

 \title{Essai clickfill}
 \language{fr}
 \range{-5..5}
 \author{Benoît, Markey}
 \format{html}
 \precision{100}
 \text{phrase1 = le,chat,mange,la,souris;
 le,nuage,cache,le,soleil;
 quelle,heure,est,il}
 \text{phrase = randomrow(\phrase1)}
 \integer{i = items(\phrase)}
 \statement{Ecrire la phrase ci-dessous dans le bon ordre
  <div class="wimscenter">\embed{reply 1,50x70x\i}</div>
 }
 \reply{reponse}{\phrase}{type=clickfill}

Retour à la table des matièresDans un exercice utilisant le type de réponse correspond, peut-on gérer les ambiguïtés ?

On peut mais les colonnes de droite et de gauche n'ont pas le même comportement. Un exemple :
\text{a= 1,2,3}
\text{b=1,1,1}
\statement{}
\answer{}{\a;\b}{type = correspond}
est mieux que
\text{a= 1,2,3}
\text{b=1,1,1}
\statement{}
\answer{}{\b;\a}{type = correspond}
S'il peut y avoir des répétitions dans une des colonnes, il faut donc que ce soit celle de droite.

Retour à la table des matièresAvez-vous un exemple de dessin ?

\title{Essai de création de courbe}
\language{fr}
\author{Benoît, Markey}
\computeanswer{no}
\format{html}
\precision{10000}
\text{f1 = x^2-4,sin(x),log(x),cos(x)}
\text{f2 = shuffle(\f1)}
\function{f = \f2[1]}
\text{f3 = \f2[2..4]}
\text{texte = }
\for{i = -5 to 5}{
  \text{texte = \texte
  text green,\i,0,small,\i
  text green,0,\i,small,\i}
}
  \statement{Voici un tracé de courbe<p>
<p style="text-align:center;">
	\draw{500,500}{xrange -5,5
yrange -5,5
parallel -5,-5,-5,5,1,0,11,blue
parallel -5,-5,5,-5,0,1,11,blue
text black,4.5,0,medium,x
text black,0,5,medium,y
\texte
plot black,\f}
</p>
<p>Quelle la fonction tracée?}
\choice{la courbe est}{\f}{\f3}

Retour à la table des matièresComment se sert-on de animstep

animstep permet d'avoir un paramètre entier dans l'animation d'un dessin. Un exemple :
    \text{n = animstep^2}
    \statement{
      \draw{200,200}{
        animate 20,0.2,1
        xrange -2,20
        yrange -2,20
        hline 0,animstep, blue
        vline \n, 0, red
      }
    }

Retour à la table des matièresJe voudrais utiliser des matrices et faire des produits. Que dois-je utiliser ?

PARI/GP par exemple. Il est pratique et de syntaxe légère pour tous les calculs de matrices : le produit de deux matrices A et Best A*B.

Retour à la table des matièresJe voudrais créer une matrice avec certaines propriétés ...

On peut utiliser le logiciel PARI/GP, exemple :
    \text{n = randint(3..5)}
    \matrix{A = pari(matrix(\n,\n,i,j, (-1)^(i+j)*x^i*j))}

Retour à la table des matièresJ'ai récupéré la réponse reply1 sous forme de matrice et pourtant PARI/GP ne l'interprète pas comme une matrice?

Ecrivez
    \matrix{A = \reply1}
Ainsi, wims transformera les passages à la ligne en points-virgules, ce qui est la manière standard d'écrire une matrice dans PARI/GP.

Retour à la table des matièresJ'ai obtenu une matrice avec slib(matrix/random) et je voudrais changer un coefficient.

Le mieux est d'utiliser PARI/GP, par exemple :
    \matrix{A = slib(matrix/random 3,4)}
    \text{k = randint(1..3)}
    \text{l = randint(1..4)}
    \matrix{B = pari (A = Mat([\A]); A[\k,\l]=x; A)}

Retour à la table des matièresLa fonction random semble interférer entre PARI/GP et WIMS ?

En effet, si une fonction qui a un sens pour WIMS est insérée dans un programme PARI/GP (ou Maxima, etc.), elle est interprétée par WIMS avant d'être envoyée au logiciel correspondant. Pour éviter cela, WIMS définit l'alias RANDOM de random dans PARI/GP.

Retour à la table des matièresJe me souviens avoir vu une liste de scripts, mais je ne retrouve pas la documentation ?

slibIl s'agit de scripts pouvant être utilisés dans la programmation d'un exercice OEF ou dans un module WIMS. Cette bibliothèque est en constante évolution.

Retour à la table des matièresQue fait l'instruction \text{S1=item(3..-1,\S)}.

Il prend les éléments de 3 au dernier de la liste \S
Cette page n'est pas dans son apparence habituelle parce que WIMS n'a pas pu reconnaître votre navigateur web.
Afin de tester le navigateur que vous utilisez, veuillez taper le mot wims ici : puis appuyez sur ``Entrer''.

Veuillez noter que les pages WIMS sont générées interactivement; elles ne sont pas des fichiers HTML ordinaires. Elles doivent être utilisées interactivement EN LIGNE. Il est inutile pour vous de les ramasser par un programme robot.