Mettez vous en version imprimable (Version imprimable dans la barre de menu) si vous voulez avoir une vue d'ensemble ou faire une recherche sur un mot.
Pour accéder alors à votre compte, cliquez dans la page d'accueil sur
modules à part entières en bas à droite
et identifiez-vous.
Vous pouvez alors créer votre premier module en cliquant sur
le lien créer un nouveau module
Par la suite, pour votre deuxième module, ce lien apparaît en dessous
de la liste des modules déjà créés.
Une fois ces choix faits, cliquer sur Enregistrer les changements.
Vous pouvez alors tester votre exercice en cliquant
Tester le module.
!read oef/$module_language/intromenu.phtml
!tail
Version 1.00:
First publication.
Vous pouvez enlever les deux premières lignes, ... mais retenir le conseil.
Ce que vous écrirez là apparaîtra à la fin de l'A propos. Si vous le remplissez, il permettra
rapidement à l'utilisateur de voir que vous avez rajouté un exercice, que vous avez corrigé
un bogue dans tel exercice.
Mais, nous reverrons cela plus tard.
# Change to 1 of you want all choices to be present
allchoices=0
# Computational precisions: you can change the defaults here.
# pari_precision=18
# maxima_precision=8
# print_precision=8
# Change to no if you don't want classes to import exercises in this module.
# A typical situation is that these exercises use common resources of the module.
class_importation=yes
# Change to yes if you want to put images in common (images/) to all exercises.
# If you do so, you must disable class_importation.
common_images=no
!changeto oef/var.proc
Si vous utilisez des images qui doivent être communes à
plusieurs exercices, mettez
common_images=yes
Il ne doit rien y avoir après la dernière ligne du fichier d'origine.
Publier un module signifie le rendre public
et utilisable par d'autres enseignants.
Il y a plusieurs sortes de publication possibles.
Dans le premier cas, pour pouvoir faire la publication, il faut demander
un compte à Xiao. Il est nécessaire d'avoir prouvé une certaine qualité dans
le module. Ensuite, il n'y a de vérification que par le public ou les collègues.
Dans le second cas, l'autorisation est à demander au gestionnaire du serveur.
Le module devra alors avoir comme zone local.
A mon avis, il ne faut pas considérer la zone
local comme un purgatoire pour la publication centralisée.
En effet, la zone du module changera alors nécessairement et il y aura
double module. Ma politique en tant que gestionnaire sera d'effacer tout
module dans la zone local qui est publié ensuite.
Avec comme inconvénient de couper les liens qui auraient été faits de l'extérieur
sur ce module.
Il ne vous reste plus qu'à la corriger. Pour cela,
Les serveurs WIMS ayant activé la mise à jour automatique récupéreront le
module modifié à leur prochaine mise à jour automatique. S'ils ne l'ont pas fait,
écrivez au gestionnaire ...
Maintenant l'exercice proprement dit : un intérêt majeur de wims est d'avoir
des exercices aléatoires. Donc vérifiez bien que vous avez tiré le
meilleur parti possible de cette possibilité.
Vous pouvez bien sûr écrire plusieurs aides que vous mettrez soit dans des
fichiers différents soit dans le même mais sous la forme
Il faut alors créer un fichier introhook.phtml, par exemple
Dans les sources de l'exercice, on peut alors définir certaines des données à
l'aide de confparm1. Ne pas oublier de les définir aussi
si confparm1 n'a pas de valeur. Par exemple dans le
fichier toto.oef
On peut même faire entrer à l'utilisateur une variable. Voici un exemple pris
dans l'exercice Classification périodique
On peut stocker des données dans un fichier que nous appellerons ici
tableau et les utiliser ensuite dans un ou plusieurs exercices. Prenons l'exemple
de l'exercice de grammaire
suivant.
Plutôt que d'avoir les phrases dans le fichier d'exercice, créez un fichier d'adresse
tableau (attention, cette fois-ci ne pas mettre src
). Et mettez-y
le texte suivant
Remarquez le signe de ponctuation :
que nous avons un peu grossi. Il va être possible maintenant dans un exercice de
charger ces données soit en entier, soit sélectivement pour la partie entre deux
points consécutifs.
Donnons les premières commandes permettant cette utilisation et qui donneront un
exercice équivalent au précédent :
Un exemple d'exercice complet
Donnons un autre exemple d'utilisation de tableau extérieur aux exercices.
Il s'agit de tableau de type "dictionnaire" de la forme suivante :
On peut alors aller chercher la ligne associée à azote avec la commande lookup
Vous avez un exercice avec certaines variables et des relations entre A et B
et vous voulez faire un exercice où vous donnez A et demandez B et un exercice où
vous donnez B et vous demandez A . la première solution envisagée est de faire un
copier-coller et de changer juste l'énoncé.
Et puis, vous vous apercevez que vous auriez dû fixer autrement
l'aléatoire de vos variables, ou qu'il y a une erreur dans vos calculs.
Et vous devez faire attention de corriger toutes les erreurs dans tous les exercices (et si
vous êtes arrivé à en faire 6 avec les mêmes données de départ, c 'est du travail ... )
Une solution (meilleure) est alors de regrouper les parties communes dans un fichier
que vous appellerez
src/cpp/toto.cpp
La première ligne de ce fichier contiendra le nom des exercices que vous voulez
créer :
Ensuite, chaque exercice aura un titre différent
#if #TARGET(toto2)
\title{Second exercice}
#endif
#if #TARGET(toto3)
\title{Troisième exercice}
#endif
#if #TARGET(toto4)
\title{Quatrième exercice}
#endif
Etc ...
Montrons un exemple tiré de nouveau de la grammaire française
et emprunté à Jean-Baptiste Frondas
Exemple
L'exercice pour fonctionner demande qu'il
ait été créé des fichiers tableau_et, tableau_ou...
#if #TARGET(et_est)
\title{Choix et/est}
\text{Type=tableau_et}
#endif
#if #TARGET(ou_ou)
\title{Choix ou/où}
\text{Type=tableau_ou}
#endif
#if #TARGET(la_la)
\title{Choix la/là/l'a}
\text{Type=tableau_la}
#endif
\language{fr}
\author{Jean-Baptiste Frondas}
\email{ambali@free.fr}
\computeanswer{no}
\format{html}
\text{tableau = wims(record 0 of \Type)}
\text{a = randomrow(\tableau)}
teste si le premier champ est une question
\text{testa= wims(nospace \a)}
\text{first = wims(replace internal ? by | in wims(char 1 of \testa))}
\text{u= \first issametext | ? 1 : 0}
\text{u1 = \u = 0 ? -1:1}
\matrix{A = slib(text/cutchoices \a)}
\text{cntrow = rows(\A)}
\integer{cntQ = (\cntrow+\u1*\cntrow%2)/2}
\matrix{good1 = }
\text{rep = }
\for{i= 1 to \cntQ}{
\text{good=\A[2*\i -\u;]}
\text{cnt = items(\good)}
\text{mix = shuffle(\cnt)}
\matrix{good1=\good1
\good[\mix]}
\text{rep = \rep, position(1,\mix)}
}
\text{rep =wims(nonempty items \rep)}
\text{STEP = wims(makelist r x for x = 1 to \cntQ)}
\steps{\STEP}
\for{k = 1 to \cntQ}{
\A[2*\k-1-\u;] \embed{r \k}
}
\A[2*\cntQ+1-\u;]
<p/>}
A suivre...
Pour rajouter un tel lien en bas de chaque exercice, voir
Amélioration du module
.
Démarrage
Prenez d'abord contact avec
l'administrateur du serveur WIMS sur lequel vous travaillez
et demandez-lui un compte développeur : Il vous donnera un login et un mot de passe.
Propriétés
A la création, on vous demande de choisir les propriétés du module. Certaines
sont irréversibles, d'autres pourront être changées plus tard.
Le choix irréversible à bien faire : le type
Les autres choix
test~algebra~oefsyslin.fr test~analysis~oeftaylor.fr test~stat~table.fr
qui deviendront ensuite U1~algebra~oefsyslin.fr U1~analysis~oeftaylor.fr tool~stat~table.fr
et même lors de la publication et de la mise en place définitive U1/algebra/oefsyslin.fr U1/analysis/oeftaylor.fr tool/stat/table.fr
Tant que le module n'est pas publié et que vous ne l'utilisez pas dans une classe, vous pouvez sans difficulté changer son nom. Ensuite, cela est tout à fait déconseillé. D'autre part, il est fortement conseillé de commencer le nom par oef dans le cas d'un module OEF, par doc s'il s'agit d'un document.
Ajout d'un exercice OEF
Pour mettre un nouvel exercice dans le module :
Attention : src est en fait un nom de répertoire dans lequel doivent être
toutes les sources d'exercices OEF :
il est important que le nom du fichier se termine par .oef
et qu'il se trouve dans le répertoire src, c'est à dire que l'adresse soit
Amélioration du module
!header
!read Exindex
Ce module regroupe pour l'instant $exototal exercices sur ...
Ce module regroupe pour l'instant $exototal exercices sur ...
Tout ce que vous mettrez là sera dans le menu d'introduction de votre module
avant la fenêtre de choix. Vous pouvez utiliser des balises html.
<tr>
<td>
</td>
<td>
</td>
</tr>
Bien sûr, cela n'a d'intérêt que si vous rajoutez quelque chose. L'utilisation première
est de créer des boutons de choix de paramètres.
Donnons juste un exemple, cela sera détaillé dans le paramétrage avancé.
<tr>
<td align=center>Catégorie : </td>
<td>
!formradio confparm1 from 1 to 3 prompt facile, moyen,difficile
</td>
</tr>
Le fichier endhook.phtml : Pour faire apparaître des lignes à la fin
de tous les exercices du module, vous pouvez rajouter du texte ici. Une utilisation courante est de mettre un lien sur les outils pouvant être utilisés.
!if $status=waiting
!read tool.phtml linear/vector linear/matrix linear/linsolver
!href module=U2/analysis/docstokes.fr Un document
!endif
Ce lien n'apparaîtra ici que lorsque l'exercice est en cours. Il disparaîtra lorsque l'exercice
est terminé et résolu (
status est une variable prédéfinie utilisée dans le module qui attend qu'on réponde (=waiting) et qui change de valeur lorsqu'on on a répondu à l'exercice.
)
Lorsque vous cliquez sur A propos dans un module d'exercices
OEF, c'est le contenu du fichier about.phtml :
!changeto oef/$module_language/about.phtml
Cette ligne permet de faire de manière automatique le tableau donnant l'adresse, le nom de l'auteur ... Si vous rajoutez une ligne de texte
AVANT, elle apparaîtra. Vous pouvez donc y mettre
les références que vous avez utilisées, vos remerciements etc !
Le fichier NEWS sert à informer des mises à jours successives
du module. Par défaut, il contient les lignes suivantes
# This file registers changes to the module.
# Please write in reverse order: the last version first.
# Change to 0 if you don't want the choice `I don't know'
idontknow=1
Publication
Le système de publication des modules permet aux auteurs ayant
corrigé
des erreurs de mettre très vite leurs corrections
à la disposition de tous les serveurs.
Modification après publication
Ca y est, vous avez publié votre module. Et bien sûr, deux jours
après, vous y découvrez une erreur (ne vous inquiétez pas, c'est toujours
comme ça).
Règles de bonne conduite
Avant de publier :
Les quelques conseils suivants sont des conseils de type
éditorial. Ils concernent les mathématiques mais aussi
les autres disciplines et sont finalement simplement de bon sens :
<center>toto</center>
plutôt
que
<center> toto </center>
à moins qu'il y ait une réelle
intention. Les balises successives se ferment en sens contraire :
<b><font color="red">toto</font></b>
Aide commune à plusieurs exercices
Vous désirez écrire une aide commune à plusieurs exercices de votre
module. Pour cela,
\text{monaide=wims(record 0 of aide)}
\help{\monaide}
:bla bla bla
etc
: blo blo blo
etc
et selon les exercices, vous irez chercher la première aide (entre le premier
: et le second) ou la seconde aide
\text{monaide=wims(record 1 of aide)}
\help{\monaide}
ou
\text{monaide=wims(record 2 of aide)}
\help{\monaide}
Paramètres supplémentaires
Vous désirez avoir le même exercice avec des difficultés différentes venant
de la taille des données. Par exemple, un exercice sur des matrices d'ordre
2 et un exercice sur des matrices d'ordre 5.
<tr><td align="center">Niveau de difficulté</td>
<td>
!formbar confparm1 from 1 to 3
Taille du graphe
</td></tr>
L'utilisateur voit un formulaire lui demandant la "Taille du graphe'', et
peut répondre un entier compris entre 1 et 3. Il n'est pas obligé de
rentrer une valeur.
(On se trouve dans un tableau HTML, dont on vient de définir une ligne.)
Attention les seuls noms autorisés pour ces variables sont les mots
confparm1, confparm2, confparm3, confparm4, confparm5.
\integer{ n = \confparm1=1? randint(3..4):randint(3..4) }
\integer{ n = \confparm1=2? randint(5..7) }
\integer{ n = \confparm1=3? randint(10..12)}
On peut utiliser d'autres types de paramètres. Par exemple,
<tr><td align="center">Choix d'animal</td>
<td>
!formbar confparm1 list A,B,C prompt Loup, Chèvre, Mouton
</td></tr>
Le paramètre vaut ici
A, B ou C.
En remplaçant formbar par formcheckbox,
on autorise la sélection de plusieurs animaux.
<tr><td>
N'oubliez pas de donner une valeur par défaut à tous les paramètres confparm1, ... .
et surtout une valeur par défaut à
toutes les variables aléatoires qui en dépendent.
Utiliser des fichiers de données
:Je suis grand ??et,est,ai?? brun.
Le café ??est,et,ai?? chaud.
La fleur ??est,et,ai?? rouge.
Le soleil ??est,et,ai?? chaud
J'??ai,est,et?? chaud
:L'élève ??est,et?? sérieux ??et,est?? appliqué.
Paul se ramasse ??et,est?? se relève.
Le pull ??est,et?? chaud ??et,est?? léger.
La rue ??est,et?? étroite ??et,est?? en pente.
Pierre ??est,et?? fort en mathématiques ??et,est?? en français.
La lumière sur le vieux port ??est,et?? très belle en hiver ??et,est?? en été.
azote:.....
hydrogene:....
\text{ligne= wims(lookup azote in tableau)}
et récupérer ensuite les informations qui suivent et dont vous avez besoin.
Utilisation de cpp
Un exemple d'utilisation de cette "technique" est le suivant :
target= toto1 toto2 toto3 toto4
#if #TARGET(toto1)
\title{Premier exercice}
#endif
Liens sur d'autres modules
Si vous désirez faire un lien sur un autre module dans la page d'introduction, par exemple sur un document explicatif ou sur un
autre module d'exercices plus facile ou plus difficile,
rajoutez dans le fichier intro.phtml avant la ligne
!tail :
!set wims_ref_target=wims_internal
!href module=adresse_du_module nom du lien
Vous pouvez aller voir le document
!set wims_ref_target=wims_internal
!href module=H2/algebra/docpuissance.fr Tout sur les puissances
pour réviser le cours.
Par
|
Version interactive |
Dernière modif. 20080723
| | |
Keywords: documentation, help, 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