Des sujets personnalisés, en fonction de certains critères

Added by tolliob tolliob over 8 years ago

Bonjour,

J'aimerai pouvoir utiliser AMC pour une classe d'étudiant en personnalisant les énoncés de chacun.

Imaginons que ma classe d'étudiants possède uniquement trois étudiants et que j'ai dressé l'état des lieux suivants vis à vis de quatre compétences A, B, C et D
(qui possèdent, disons une et une seule question associée) :

.                    Compétence A       Compétence B       Compétence C        Compétence D      
Etudiant 1 A revoir A revoir A revoir A revoir
Etudiant 2 A revoir A revoir A revoir Acquis
Etudiant 3 A revoir A revoir Acquis Acquis
Je souhaiterais créer un et un seul document AMC pour l'ensemble de ma classe qui
  • sélectionne au hasard trois compétences au hasard parmi les compétences à revoir pour chaque étudiants, s'il y a assez de compétences à revoir ;
  • sélectionne toutes les compétences à revoir s'il y en a moins de trois, et complète jusqu'à trois en sélectionnant au hasard parmi les compétences acquises.

Pour poursuivre l'exemple :

  • l'étudiant 1 aurait trois questions tirées au hasard parmi les questions associées aux compétences A, B, C et D ;
  • l'étudiant 2 aurait automatiquement les questions associées aux compétences A, B et C.
  • l'étudiant 3 aurait automatiquement les questions associées aux compétences A et B , ainsi que la question associée à la compétence C ou D (choisi au hasard) ;

Auriez vous une idée de comment faire cela grâce à AMC ?

Merci d'avance pour toutes vos idées/commentaires, même s'ils/elles ne sont que partiel(le)s,


Replies (6)

RE: Des sujets personnalisés, en fonction de certains critères - Added by Frédéric Bréal over 8 years ago

Bonjour,

Peut-être en utilisant le paquet Datatool
Vous créez une base de données comme dans l'exemple.

A chaque sujet créé, datatool lit la ligne et si la valeur de la compétence = A revoir, il faudrait demander à AMC de faire un

 \copygroup[1]{CompetenceX}{Questions}

Votre question pourrait être un excellent complément à ce que j'ai proposé ici.

RE: Des sujets personnalisés, en fonction de certains critères - Added by Vincent Dujardin over 8 years ago

Pour un besoin analogue mais sans personnaliser par élève, j'ai procédé en générant mon .tex du sujet par publipostage depuis OpenOffice. La méthode doit être adaptable.

Je copie le .tex de mon questionnaire dans writer.
J'insère les champs nom et n des commande \copygroup[<n>]{CompetenceX}{Questions} (pour reprendre le commentaire précédent).
Le publipostage génère un fichier que j'exporte en .txt avec codage UTF8.
Je renomme simplement ce .txt en .tex, et AMC l'interprète parfaitement.

Pour votre utilisation, il faudra gérer le nombre d'exemplaires dans le .tex et pas dans l'interface AMC.

Voir aussi les sujets à propos du mélange de questions, car le [n] de \copygroup prend les n premières questions du groupe. Il faut donc extraire tout le groupe d'abord dans un groupe tmp, mélanger ce groupe tmp, puis extraire les n souhaités tmp avant de le vider pour passer au groupe de questions suivant.

J'espère que cela peut aider.

RE: Des sujets personnalisés, en fonction de certains critères - Added by tolliob tolliob over 8 years ago

Merci à tous les deux.

Datatool était exactement ce que je cherchais !!! Et en plus, la solution n'est vraiment pas dur à écrire : datatool est très bien documenté et apparait dans plusieurs questions sur ce forum sur AMC ou bien sur http://tex.stackexchange.com

Encore merci !

RE: Des sujets personnalisés, en fonction de certains critères - Added by Frédéric Bréal over 8 years ago

Bonjour,

la solution n'est vraiment pas dur à écrire : datatool est très bien documenté

J'avoue pour ma part que j'ai du mal à comprendre le langage LaTex

Voici ce que j'ai réussi après de laborieux essais/erreurs.

  • J'ai créé une macro \Nsujet qui sert à identifier le numéro du sujet
  • j'aimerais simplifier ce code avec la commande \DTLforeachkeyinrow{ cmd }{ text } pour éviter d'avoir à rajouter des lignes de code si le nombre de compétences augmente

Je suis très intéressé par votre solution.

groupes.tex (4.2 kB)

ListeResultats.csv (163 Bytes)

RE: Des sujets personnalisés, en fonction de certains critères - Added by Frédéric Bréal over 8 years ago

Bonjour,

Je crois que j'ai réussi à simplifier le code.
Si vous avez une autre solution, je suis toujours intéressé.

Merci pour cette question qui m'a obligé à "rentrer" dans le paquet datatool et qui me donne des idées pour l'an prochain.
Déjà, créer une base d'exercices bien identifiés par compétence.

groupes-v3.tex (3.9 kB)

ListeResultats.csv (163 Bytes)

RE: Des sujets personnalisés, en fonction de certains critères - Added by Vincent Dujardin over 8 years ago

Re-bonjour Tolliob,

grâce au post, j'ai aussi utilisé datatool, avec grand intérêt : merci donc.

A toutes fins utiles, je m'en suis servi pour que mon sujet LaTeX aille chercher mes groupes de questions par compétences.
Je les ai organisées en répertoires, et saisi ces répertoires dans un fichier catalogue.csv.

Mon sujet LaTeX charge ce catalogue, et boucle pour importer (\import) les fichiers .tex. L'intérêt est que je peux me contenter d'ajouter une ligne dans le Catalogue.csv à chque fois que j'ajoute une question dans ma bibliothèque, sans avoir à toucher mon fichier .tex.

Mon code (à interpréter un peu) :

%%% Chemin des sources
\def\pathstring{/home/...(a paramétrer).../Projets-QCM/testlib/}

%%% Chargement du catalogue
\DTLloaddb{Catalogue}{\pathstring Catalogue.csv}

\begin{document}

%% Import des .tex du catalogue
\DTLforeach{Catalogue}{\niveau=Niveau, \domaine=Domaine, \theme=Theme,\QId=QId, \type=Type} {
\import{\pathstring AMC-4-\theme/\QId/}{AMC-\QId.tex} %
% "reconstruire" ses noms de répertoires et de fichiers ici
}

Ayant fait cela, j'ai ajouté une colonne NbQ dans le catalogue, et une deuxième boucle dans mon sujet.tex, qui lit le nombre de questions que je souhaite mettre dans mon test, et génère le sujet AMC tout seul.

%%% Constitution de la copie finale
%Initialisation
\cleargroup{tout}
\cleargroup{tmp}

%Boucle scrutant le catalogue des questions
\DTLforeach{Catalogue}{\niveau=Niveau, \domaine=Domaine, \theme=Theme,\QId=QId, \type=Type, \qnb=NbQ} {

% Deux tests imbriqués : si nb question non nul puis différent de 0
\DTLifnull{\qnb}{relax}{
\DTLifstringeq{\qnb}{0}{\relax} {
\copygroup{AMC-\QId}{tmp}
\melangegroupe{tmp}
\copygroup[\qnb]{tmp}{tout}
\cleargroup{tmp}
} %
} % Fin du test sur le nombre de versions de la question

} % fin de la boucle for...each

Au final, je ne change plus mon sujet.tex (toujours le même), et peut créer rapidement, depuis AMC, différents QCM en modifiant mon fichier Catalogue.csv au préalable (soit pour ajouter des questions, ou modifier les quantités que je souhaite intérgrer)

Ce n'est plus tout à fait une personnalisation par élève (comme le sujet initial), mais pas si loin, et ca peut donner des idées.

(1-6/6)