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.
test~algebra~oefsyslin.fr test~analysis~oeftaylor.fr test~stat~table.frqui deviendront ensuite
U1~algebra~oefsyslin.fr U1~analysis~oeftaylor.fr tool~stat~table.fret 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.frTant 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.
Une fois ces choix faits, cliquer sur Enregistrer les changements.
Vous pouvez alors tester votre exercice en cliquant Tester le module.
!header !read Exindex Ce module regroupe pour l'instant $exototal exercices sur ...!read oef/$module_language/intromenu.phtml !tail
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>
!if $status=waiting !read tool.phtml linear/vector linear/matrix linear/linsolver !href module=U2/analysis/docstokes.fr Un document !endifCe 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. )
!changeto oef/$module_language/about.phtmlCette 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 !
# This file registers changes to the module. # Please write in reverse order: the last version first.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 0 if you don't want the choice `I don't know' idontknow=1# 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 ...
<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>
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é.
\text{monaide=wims(record 0 of aide)} \help{\monaide}
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
:bla bla bla etc : blo blo blo etcet 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}
Il faut alors créer un fichier introhook.phtml, par exemple
<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.
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
\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.
On peut même faire entrer à l'utilisateur une variable. Voici un exemple pris dans l'exercice Classification périodique
<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.Exclure les éléments au-dessus du numéro</td><td></td></tr> <tr><td align=center>ou une liste de numéros<br>des éléments à tester : </td><td> <input size=40 name=confparm4></td></tr>
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.
\title{Choix et/est/ai} \language{fr} \text{tableau =randomrow( 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)}
\matrix{A = slib(text/cutchoices \tableau)} \text{good=\A[2;]} \text{cnt = items(\good)} \text{mix = shuffle(\cnt)} \matrix{good= \good[\mix]} \text{rep = position(1,\mix)}\statement{ Faire le bon choix : <p align="center"> \A[1;] \embed{reply 1} \A[3;] </p> }\answer{}{\rep[1];\good}{type=menu}
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
: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é.
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 :
\text{Tableau = wims(record 1 of tableau)} \text{a = randomrow(\Tableau)}
\text{Tableau = wims(record 2 of tableau)} \text{a = randomrow(\Tableau)}
\text{Tableau = wims(record 0 of tableau)} \text{a = randomrow(\Tableau)}
\integer{m = wims(recordcnt tableau)} \matrix{Tableau = } \for{ i = 1 to \m}{ \text{Tableau = \tableau randrow(wims(record \i of tableau))}
\author{Ambali} \integer{m = randint(1..wims(recordcnt tableau))} \matrix{Tableau = } \text{Tableau = randrow(wims(record \m of tableau))} \matrix{A = slib(text/cutchoices \Tableau)} \text{cntrow=rows(\A)} \integer{cntQ=(\cntrow-\cntrow%2)/2} \matrix{good1 =} \text{rep = } \for{i= 1 to \cntQ}{ \text{good=\A[2*\i;]} \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}\statement{<p style="text-align : center; background-color : #faffe6; padding : 1%; margin : 5% 20%;"> \for{k = 1 to \cntQ}{\A[2*\k-1;] \embed{r \k} } \A[2*\cntQ+1;] <p/>}\answer{}{\rep[1];\good1[1;]}{type=menu} \answer{}{\rep[2];\good1[2;]}{type=menu} \answer{}{\rep[3];\good1[3;]}{type=menu}
Donnons un autre exemple d'utilisation de tableau extérieur aux exercices. Il s'agit de tableau de type "dictionnaire" de la forme suivante :
azote:..... hydrogene:....
On peut alors aller chercher la ligne associée à azote avec la commande lookup
\text{ligne= wims(lookup azote in tableau)}et récupérer ensuite les informations qui suivent et dont vous avez besoin.
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 :
target= toto1 toto2 toto3 toto4
Ensuite, chaque exercice aura un titre différent
#if #TARGET(toto1) \title{Premier exercice} #endif#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...
target= et_est ou_ou la_la#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}
\statement{ <p style="text-align : center; background-color : #FFFFFF; padding : 1%; margin : 5% 15%; ">\for{k = 1 to \cntQ}{ \A[2*\k-1-\u;] \embed{r \k} } \A[2*\cntQ+1-\u;] <p/>}
\answer{}{\rep[1];\good1[1;]}{type=menu} \answer{}{\rep[2];\good1[2;]}{type=menu} \answer{}{\rep[3];\good1[3;]}{type=menu} \answer{}{\rep[4];\good1[4;]}{type=menu} \answer{}{\rep[5];\good1[5;]}{type=menu} \answer{}{\rep[6];\good1[6;]}{type=menu} \answer{}{\rep[7];\good1[7;]}{type=menu} \answer{}{\rep[8];\good1[8;]}{type=menu}
A suivre...
!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.
Pour rajouter un tel lien en bas de chaque exercice, voir Amélioration du module .
document d'aide pour passer de Createxo à Modtool.
: documentation, help, modtool, interactive mathematics, interactive math, server side interactivity
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.
Description: document d'aide pour passer de Createxo à Modtool. interactive exercises, online calculators and plotters, mathematical recreation and games
Keywords: interactive mathematics, interactive math, server side interactivity, documentation,help, documentation, help, modtool