Programmation d exercices WIMS au format OEF

of 16
307 views
PDF
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Document Description
Programmation d exercices WIMS au format OEF I. Pour commencer 1) où créer ses exercices? Pour commencer, le plus simple est d utiliser les «Exercices de la classe». C est ce qu on va faire aujourd hui.
Document Share
Document Transcript
Programmation d exercices WIMS au format OEF I. Pour commencer 1) où créer ses exercices? Pour commencer, le plus simple est d utiliser les «Exercices de la classe». C est ce qu on va faire aujourd hui. Dès qu on voit qu on a un peu trop d exercices dans les «Exercices de la classe», il est fortement conseillé de demander un compte «Modtool» au gestionnaire du serveur qu on utilise. Avantages de Modtool : zone de stockage organisée en plusieurs modules (chaque module pouvant contenir un document ou des exercices OEF, ou d autres choses plus compliquées...) zone de stockage stable dans le temps ; elle ne disparait pas en fin d année. Les feuilles de travail ayant des liens vers des exercices dans Modtool sont réutilisables... à condition de ne pas avoir supprimé les exercices zone de stockage accessible depuis toutes les classes virtuelles du même serveur pour mettre les exercices dans les feuilles de travail exemple d adresse d un module d exercices dans Modtool : cgi?module=devel/causse/test~analysis~oefintegrale.fr exemple d adresse d un exercice de ce module : causse/test~analysis~oefintegrale.fr&cmd=new&exo=moyenne les modifications faites dans le script sont enregistrées avant de tester (avantage et inconvénient parfois) c est à partir de Modtool qu on peut publier les modules 2) Comment commencer? Dans la page d accueil de la classe où on veut créer l exercice, on trouve un lien pour ajouter un exercice. Ce lien envoie vers l utilitaire Createxo. On y trouve différents outils et modes de création d exercices. Le lien «Aide» est accessible à tout moment. ATTENTION : la fenêtre d aide s ouvre par défaut dans la fenêtre active. Il est fortement recommandé d ouvrir l aide dans un nouvel onglet (Ctrl dans Firefox), car les modifications non envoyées au serveur seraient perdues... Colloque WIMS 2012 Rennes 7-8 juin 2012 3) Interface Createxo Le mode brut est celui qui permet le mieux de comprendre la structure et le fonctionnement des exercices OEF. Pour faire rapidement un exercice simple, on peut aussi utiliser les modèles préparés, mais qui sont ensuite difficiles à modifier, s ils ne conviennent pas directement. 2 Colloque WIMS 2012 Rennes 7-8 juin 2012 II.Etapes de fabrication d un exercice avec Createxo en mode brut 1) En-tête et exercice minimum Fenêtre de saisie du code de l exercice «Envoyer le source» envoie le code sur le serveur WIMS, où certaines vérifications sont faites, mais ne l enregistre pas... on pourrait dire qu il passe de la mémoire vive du poste à la mémoire vive du serveur, où il restera jusqu à une nouvelle commande «Envoyer le source» ou jusqu à la fin de la session («Logout» ou fermeture du navigateur) «Vider» vide la fenêtre (= code en mémoire vive du poste) «Abandonner» remplace le contenu de la fenêtre par le dernier code envoyé par «Envoyer le source» L exercice minimum a comme code : \title{xxxxx} \statement{} IMPORTANT : le titre donné ici servira à nommer le fichier (visible par exemple dans le code source des feuilles de travail et les tableaux d importation de ressources entre classes voisines) Il est recommandé d éviter les caractères accentués ou spéciaux au départ. On pourra changer ensuite le titre qui apparaîtra aux élèves ; le nom du fichier ne sera pas modifié. Il est recommandé de mettre systématiquement un en-tête un peu plus complet : \title{xxxxx} \language{fr} \author{chantal Causse} \format{html} \range{-5..5} \computeanswer{no} \precision{10000} Lignes utiles en cas de publication ou d échanges entre collègues Paramètres utilisés pour l analyse de certaines réponses : ces valeurs conviennent le plus souvent \statement{} Un exercice contient obligatoirement une et une seule commande \statement{}. 2) Introduire des paramètres aléatoires But de l exercice : Utilisation des formules donnant le périmètre et l aire d un rectangle en fonction de sa longueur et sa largeur. Chaque paramètre est donné selon la syntaxe : \type{nom =...}. La valeur de ce paramètre sera ensuite rappelée par \nom Les différents types de paramètres disponibles sont : integer, real, rational, complex, function, text, matrix. Pour avoir un entier aléatoire entre 2 et 50, on écrira : \integer{a=randint(2..50)} Pour avoir un nombre aléatoire entre 2 et 50 avec une décimale, on écrira : \real{b=randint( )/10} On pourra ensuite définir les paramètres P et A représentant le périmètre et l aire d un rectangle de côtés de longueurs a et b : \real{p = 2*(\a + \b)} \real{a = \a*\b} Le nom des paramètres est sensible à la casse et peut contenir plusieurs caractères (ordinaires, lettres et chiffres). Ne pas confondre a et \a. Quand un exercice ne fonctionne pas comme on le voudrait, commencer par vérifier si on n a pas oublié de \... Colloque WIMS 2012 Rennes 7-8 juin 2012 3) Structure d un exercice OEF En-tête \title{rectangles} \language{fr} \author{chantal Causse} \format{html} \range{-5..5} \computeanswer{no} \precision{10000} «Rectangles 01» et Electricite01» Définition et calcul de tous les paramètres utiles Enoncé : ce qui apparait quand l exercice est executé. \integer{a=randint(2..50)} \real{b=randint( )/10} \real{p = 2*(\a + \b)} \real{a = \a*\b} \statement{un rectangle a comme dimensions \a cm et \b cm. p Calculer son périmètre et son aire.} Tout ce qui permettra de déterminer si la réponse donnée par l élève est juste ou fausse \answer{périmètre en cm}{\p}{type=numeric} \answer{aire en cm²}{\a}{type=numeric} Noter la balise html p pour changer de paragraphe ( br pour passer à la ligne) \(...) pour indiquer l affichage d une formule mathématique ; \times est le code TeX du symbole 4) Les différents écrans de Createxo Cliquer sur «Envoyer le source». Il y a une vérification sur les parenthèses et accolades et sur la présence d un \statement{}: C est ce lien qui permet d enregistrer l exercice sur le serveur, dans les «Exercices de la classe». Quand l exercice a été enregistré au moins une fois, cette ligne devient : ce lien sert à sauvegarder l exercice sous forme de fichier texte, mais pas sur le serveur WIMS les deux options sont les équivalents de «Enregistrer» et «Enregistrer sous», mais les fichiers sont nommés automatiquement. Colloque WIMS 2012 Rennes 7-8 juin 2012 Test d un exercice qui n est pas dans les «Exercices de la classe» Un des «Exercices de la classe» on peut l insérer dans une feuille de travail on peut l effacer de cette liste Ne pas oublier! Colloque WIMS 2012 Rennes 7-8 juin 2012 5) Importance du type de réponse Si on teste l exercice précédent en donnant une réponse juste, tout fonctionne bien. Par contre, l analyse de certaines réponses fausses ne convient pas dans cet exercice : Ceci vient d un mauvais choix du type de réponse. Remarque : toujours tester aussi bien des réponses justes sous différentes formes que des réponses fausses. On trouve les différents types de réponses disponibles en cliquant sur Aide (quand on est dans un écran Createxo) puis Types de réponses. Ici, le type numexp peut convenir. Si on veut admettre des réponses du type 5*8 pour l aire, on prendrait le type formal. Pour cet exercice, il est plus intéressant d utiliser le type units pour demander l unité dans la réponse. \integer{a=randint(2..50)} \real{b=randint( )/10} \real{p = 2*(\a + \b)} \text{pu = \P cm} \real{a = \a*\b} \text{au = \A cm^2} \statement{un rectangle a comme dimensions \a cm et \b cm. p Calculer son périmètre et son aire. p Vous pouvez utiliser l unité de votre choix pour donner le résultat, mais n oubliez pas l unité!} \answer{périmètre}{\pu}{type=units} \answer{aire}{\au}{type=units} Avec le type units, une réponse sans unité ne sera pas acceptée. Si la bonne réponse est 3 m², on pourra tout aussi bien donner cm², ou 3 ca ou même 3 N/Pa! Pour plus d options (en particulier fixer le nombre de chiffres significatifs), utiliser le type sigunits. On peut profiter de la liberté de réponse du type units pour donner plus de variété aux énoncés. \real{a=randint( )/10} \real{am = \a/100} \real{amm = 10*\a} \text{au = random(\a cm, \am m,\amm mm)} «Rectangles 02» et Electricite02» «Rectangles 03» \real{b=randint( )/10} \real{bm = \b/100} \real{bmm = 10*\b} \text{bu = random(\b cm, \bm m,\bmm mm)} \real{p = 2*(\a + \b)} \text{pu = \P cm} \real{a = \a*\b} \text{au = \A cm^2} \statement{un rectangle a comme dimensions \au et \bu. br Calculer son périmètre et son aire. /p Vous pouvez utiliser l unité de votre choix pour donner le résultat, mais n oubliez pas l unité!} \answer{périmètre}{\pu}{type=units} \answer{aire}{\au}{type=units} Colloque WIMS 2012 Rennes 7-8 juin 2012 Si on veut que les deux dimensions du rectangle soient données avec la même unité (aléatoire, mais plus souvent en cm), on utilisera la variante suivante: \integer{choix = random(1,1,2,3,4)} \real{a=randint( )/10} \text{au = item(\choix,\a cm, \a m,\a mm,\a km)} \real{b=randint( )/10} \text{bu = item(\choix,\b cm, \b m,\b mm,\b km)} \real{p = 2*(\a + \b)} \text{pu = item(\choix,\p cm, \P m,\p mm,\p km)} \real{a = \a*\b} \text{au = item(\choix,\a cm^2, \A m^2,\a mm^2,\a km^2)} La commande item(n, liste_séparée_par_des_virgules) donne le n ième élément de la liste qui suit. III. Enrichir les énoncés 1) Changer la présentation de l énoncé (couleurs, etc.) Pour mettre l énoncé sur un fond jaune, avec la consigne concernant les unités en caractères plus grands, en rouge, et une partie en gras. \statement{ p style= background-color : yellow Un rectangle a comme dimensions \au et \bu. br Calculer son périmètre et son aire. /p font color = red size = +1 Vous pouvez utiliser l unité de votre choix pour donner le résultat, mais b n oubliez pas l unité! /b /font } \answer{périmètre}{\pu}{type=units} \answer{aire}{\au}{type=units} Les codes de couleurs peuvent être écrits soit en clair : red, green, lightblue... soit en code RVB : rgb(150,210,150), soit en code hexadécimal #dda4b2. Variante pour mettre l énoncé sur fond de couleur sur une partie moins large de l écran : table width= 90% align= center tr bgcolor=... td ********** /td /tr /table «Rectangles 04» «Rectangles 05» 2) Insérer les champs de réponse dans l énoncé \statement{un rectangle a comme dimensions \au et \bu. p Son périmètre mesure : \embed{reply1} br Son aire mesure : \embed{reply2} /p } \answer{}{\pu}{type=units} \answer{}{\au}{type=units} Voir dans l aide les compléments sur la taille des champs, etc. «Rectangles 06» 3) Ajouter des indications et une solution détaillée Plusieurs types d indications sont possibles, qui se présentent différemment : \special{tooltip...} (apparaît au survol d un mot par la souris), \hint{...} (lien Indication ; apparaît sous l énoncé dans la même fenêtre) \help{...} (lien Aide ; apparaît à la place de l énoncé dans la même fenêtre). \statement{un rectangle a comme dimensions \au et \bu. p Son \special{tooltip périmètre,,le périmètre d un polygone est la somme des longueurs de ses côtés}mesure : \embed{reply1} p Son aire mesure : \embed{reply2} /p \answer{}{\pu}{type=units} \answer{}{\au}{type=units} \hint{l aire d un rectangle est égale au produit de sa longueur par sa largeur.} \help{penser à convertir longueur et largeur dans la même unité avant de calculer périmètre et aire.} \solution{on commence par convertir les dimensions du rectangle dans la même unité, par exemple en cm : \a cm et \b cm. br périmètre = \(2 \times (\a + \b) = \P cm) p Aire = \(\a \times \b = \A cm^2) } «Rectangles 07» 7 Colloque WIMS 2012 Rennes 7-8 juin 2012 4) Ajouter un commentaire dépendant de la réponse donnée par l élève Les réponses données par l élève sont stockées dans des variables \reply1 etc. (ou \choice1 etc.) On peut, en plus de la soution, ajouter un feedback dépendant de l erreur commise. La syntaxe est \feedback{condition d affichage}{message} Avec une condition 1=1, on aura l affichage du feedback dans tous les cas. Par exemple : \feedback{\reply1 = \A and \reply2 = \P}{Vous avez interverti le périmètre et l aire} mais cela ne fonctionne pas avec le type units, car \reply1 est codée de manière complexe. 5) Faire varier le type de question Avec les mêmes paramètres, on peut faire varier les données et les questions. On peut avoir quatre types d énoncés possibles. Pour simplifier la formulation de l énoncé et des questions, on distinguera longueur et largeur. Les paramètres \donnees et \questions sont des listes dont les éléments sont séparés par des virgules. (si on a besoin d une virgule dans le texte, on utilisera le code html de la virgule, ) On appelle l élément \i de la liste \liste par \liste[\i] ou bien par item(\i,\liste). \integer{choix = random(1,2,3)} \real{a=randint(2..50)} \real{am = \a/100} \real{amm = 10*\a} \text{au = item(\choix,\a cm, \am m,\amm mm)} \real{b=\a+ randint(1..30)} \real{bm = \b/100} \real{bmm = 10*\b} \text{bu = item(\choix,\b cm, \bm m,\bmm mm)} «Rectangles 08» et «Electricite08» Ajout d une réponse littérale dans l exercice d électricité \real{p = 2*(\a + \b)} \text{pu = \P cm} \real{a = \a*\b} \text{au = \A cm^2} \text{donnees= Un rectangle a comme largeur \(\au) et comme longueur \(\bu), La largeur d un rectangle est \(\au). Le périmètre de ce rectangle est \(\Pu), La largeur d un rectangle est \(\au). L aire de ce rectangle est \(\Au), Un rectangle de périmètre \(\Pu) a comme aire \(\Au) } \text{question1 = Son périmètre est :, Sa longueur est :, Sa longueur est :,Sa largeur est : } \text{question2 = Son aire est :, Son aire est :, Son périmètre est :,Sa longueur est :} \text{reponse1 = \Pu,\bu,\bu,\au} \text{reponse2 = \Au,\Au,\Pu,\bu} \integer{i = randint(1..4)} \statement{ p \donnees[\i]. br \question1[\i] \embed{reply1} br \question2[\i] \embed{reply2} p font color = red vous pouvez utiliser l unité de votre choix pour donner le résultat, mais b n oubliez pas l unité! /b /font } \answer{}{\reponse1[\i]}{type=units} \answer{}{\reponse2[\i]}{type=units} 6) Illustrer par un dessin La commande d insertion d un dessin dans l énoncé est :\draw{largeur en pixels,hauteur en pixels}{commandes de dessin}. Les commandes de dessin s écrivent en plusieurs lignes (une commande par ligne) ; il est souvent pratique d en faire une variable \dessin. 8 Colloque WIMS 2012 Rennes 7-8 juin 2012 Commencer par \xrange xmin,xmax et \yrange ymin,ymax permet d avoir des coordonnées simples à utiliser pour les commandes suivantes. On trouve les principales commandes de dessin dans l aide de Createxo (inclure des dessins dynamiques dans les exercices). Ici, on veut dessiner le rectangle avec les données de l énoncé, et des? pour les grandeurs à calculer. Les premières lignes correspondent à la définition des grandeurs (ou?) qui apparaîtront sur le dessin. \integer{i = randint(1..4)} \text{da = item(\i,\au,\au,?)} \text{db = item(\i,\bu,?,?)} \text{dp = item(\i,?,\pu, \Pu)} \text{da = item(\i,?,?, \Au)} \text{dessin = xrange 1,300 yrange 1,200 linewidth 3 rect 50,50,250,150,red linewidth 1 line 40,50,40,150,blue line 50,40,250,40,green text red,120,170,medium,p = \DP textup blue,20,50,medium,largeur = \Da text green,100,30,medium,longueur = \Db text black,110,100,medium,aire = \DA} «Rectangles 09» et «Rectangles 10» \statement{\draw{300,200}{\dessin} \donnees[\i]. p \question1[\i] \embed{reply1} br \question2[\i] \embed{reply2}} 7) Utilisation de slibs Il existe de très nombreuses macros (ou slib) permettant d automatiser certaines opérations. Elles sont regroupés dans une «bibliothèque de macros». Pour l exercice d électricité, j ai utilisé celle qui trace un circuit électrique, pour l exercice sur les tangentes celle qui calcule les bornes d une fonction sur un intervalle. But de l exercice : faire évaluer à partir d un graphique le coefficient directeur de la tangente à une courbe, puis donner la fonction pour faire le calcul de manière exacte. Dans la première étape, on donne une courbe, sa tangente en un point A, plusieurs sécantes en A et on demande de déterminer graphiquement le coefficient directeur de la tangente en A. \rational{a=random(-1,1)*randint(1..3)/randint(1..4)} \rational{b=randint(-4..4)/randint(1..2)} \rational{c= randint(-3..3)} \function{f=random(\a*x^2+\b*x+\c,\a*x^3+\b*x^2+\c*x)} les deux lignes suivantes pour éviter d avoir les éventuels coefficients 0 et les fractions sous la forme a/b \function{f = pari(\f)} \text{tf = texmath(\f)} choix de l abscisse de A, calcul de la valeur de f puis de f \rational{x0 = randint(-3..3)/2} \real{y0 = evalue(\f,x=\x0)} \function{fp = diff(\f,x)} \real{p0 = evalue(\fp,x=\x0)} On va utiliser un slib qui donne les bornes d une fonction sur un intervalle (voir l aide pour les paramètres nécessaires des fonctions slib); on met \xmin et \xmax en variables pour pouvoir éventuellement les changer. \real{xmin = -2.5} \real{xmax = 2.5} \text{a=slib(function/bounds \f, x,\xmin,\xmax)} importance ici du \integer car les bornes ne sont a priori pas entières \integer{ymin = \A[1]-1} «Tangentes 01» et «Electricité 09» Colloque WIMS 2012 Rennes 7-8 juin 2012 \integer{ymax = \A[2]+1} commandes de dessin \text{dessin = xrange \xmin,\xmax yrange \ymin,\ymax la grille et le repère (on commence à \xmin +.5 car \xmin = ; floor(\xmin +1) aurait été mieux...) parallel \xmin+.5,\ymin,\xmin+.5,\ymax,1,0,\xmax - \xmin +1,grey parallel \xmin,\ymin,\xmax,\ymin,0,1,\ymax -\ymin +1,grey linewidth 2 hline 0,0,black vline 0,0,black arrow 0,0,1,0,6,black arrow 0,0,0,1,6,black la courbe de f plot blue, \f le point A fcircle \x0,\y0,7, green text black,\x0,\y0,medium,a la tangente et autres droites linewidth 1 plot green, \y0+(x-\x0)*\p0 plot green, \y0+(x-\x0)*(\p0+2) plot green, \y0+(x-\x0)*(\p0+4) plot green, \y0+(x-\x0)*(\p0-2) Dans un premier temps je ne m occupe pas des questions, mais seulement du dessin \statement{la fonction \(f) est définie par \(f(x)= \Tf ). \draw{600,400}{\dessin}} Quelques essais montrent que ça fonctionne bien sauf quand \ymax - \ymin est trop grand. J ai donc rectifié les bornes dans ce cas en utilisant la commande \if{condition}{si oui}{si non}. \if{\ymax-\ymin 15}{ \integer{ymin = \y0-8} \integer{ymax = \y0+8}} «Tangentes 02» La lecture pouvant tout de même être approximative, on utilisera le type range pour l analyse de la réponse. Dans un premier temps, je ne donne que la courbe et pas la formule de la fonction. Le «tableau» sert à faire afficher le texte à droite du dessin et pas en dessous. \statement{ table tr td \draw{600,400}{\dessin} /td td /td td Une courbe est tracée en bleu. br Plusieurs droites sont tracées en vert. p Parmi ces droites, il y a la tangente à la courbe au point \(A). p Déterminer graphiquement une valeur approchée du coefficient directeur de cette tangente. p Vous vous aiderez pour cela du quadrillage : les lignes grises sont distantes les unes des autres d une unité. On ne demande pas une grande précision de lecture. /td /tr /table } j accepte toute valeur qui diffère de moins de 1 du coefficient directeur exact. Il faudrait sans doute affiner cette tolérance... \answer{coefficient directeur de la tangente}{\p0-1,\p0+1}{type =range} «Tangentes 03» 8) Ajouter des étapes On va ajouter à l exercice précédent une deuxième étape demandant de calculer la dérivée, et le coefficient directeur exact de cette tangente. J ajoute pour cela la commande \steps{ } qui indique qu on aura une première étape avec une réponse libre, puis une seconde étape avec deux réponses libres. 10 Colloque WIMS 2012 Rennes 7-8 juin 2012 \steps{reply1 reply2,reply3} La variable \step indique ensuite à quelle étape de l exercice on est. Partie de l énoncé répétée aux deux étapes \statement{ table tr
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x