Forums » Utilisation d'AMC (french) »
Identification automatique des étudiants
Added by Al DUS over 7 years ago
Bonjour,
Dans mon contexte, les étudiants n'ont pas l'habitude d'utiliser un numéro comparable à un numéro d'anonymisation existant dans certaines facultés.
J'avais fait un essai fondé sur la date de naissance mais cela n'a pas été concluant car, comme le montre les probabilités, nombre d'étudiants ont la même date de naissance.
J'ai alors construit un système d'identification basé sur le nom et la première lettre du prénom des élèves. Et cela marche plutôt bien :
- quasiment unicité des codes élèves pour l'ensemble des étudiants (un seul cas de doublon : un frère et une sœur avec la même première lettre de prénom ; réglé avec l'utilisation d'un chiffre "subsidiaire" pour départager les deux étudiants)
- une matrice compacte 6x6 au lieu de 10x10 par exemple
- les élèves ont nécessairement l'information sur eux !
- AMC fournit une chaîne de caractères qui retranscrit l'état des cases cochées dans la matrice. Pour assurer la correspondance, lesdites chaînes alphanumériques sont créés sous excel puis mises dans le fichier "Liste des étudiants".
Pour cela, j'ai créé un petit bout de latex que je mets en amont de ma source, juste après le "begin".
Si cela intéresse quelqu'un je peux fournir la source ou même peut-on imaginer de le proposer dans AMC standard. Il faudrait alors pouvoir entrer dans le fichier les lettres du nom et la première lettre du prénom et que le programme se charge de la partie qui est aujourd'hui faite en excel.
Cela marchait très bien dans la version 1.2.1 .
En changeant de version pour la version 1.3.0.1 , cela ne marche plus : AMC ne propose aucun champ de la source à sélectionner.
Ma question : est-ce que le mode de fonctionnement de \AMCcode aurait changé, ce qui ferait que mon \AMCcodeA ne fonctionne plus ?
ScreenShot254.png (104.5 kB)
Replies (31)
RE: Identification automatique des étudiants - Added by Alexis Bienvenüe over 7 years ago
Pouvez-vous joindre un fichier source minimal ?
RE: Identification automatique des étudiants - Added by Al DUS over 7 years ago
Voici la source latex qui implémente l'identification alphanumérique \AMCcodeA. Elle est très proche de la source qui implémente \MCcode.
CodeASource.tex (2 kB)
RE: Identification automatique des étudiants - Added by Alexis Bienvenüe over 7 years ago
Effectivement la manière de nommer les questions relatives à des chiffres d'un code a changé : la version 1.2.1 utilise nom.n
(n
est le numéro du chiffre), et à partir de 1.3.0, c'est nom[n]
qui est utilisé. Voir #338 et hg:d24cfb078a8b.
Vous devez donc changer
\begin{questionmult}{#1.\the\LDFligQ}
en
\begin{questionmult}{#1[\the\LDFligQ]}
RE: Identification automatique des étudiants - Added by Al DUS over 7 years ago
Cela a bien réparé la commande ! Merci !
RE: Identification automatique des étudiants - Added by Mathieu Mathieu over 7 years ago
C'est une bonne idée !
RE: Identification automatique des étudiants - Added by BERNARD GRAVOUIL over 7 years ago
Bonjour,
Je ne comprends pas comment utiliser ce code ? Je suis intéressé.
En clair, comment se fait l'appel à AMCCodeA ?
Merci pour la réponse (avec un fichier source minimal ?) ;o)
RE: Identification automatique des étudiants - Added by BERNARD GRAVOUIL over 7 years ago
De plus, comment peut-on rentrer un nom avec plusieurs fois la même lettre dedans ?
RE: Identification automatique des étudiants - Added by Al DUS over 7 years ago
Bonsoir,
Le code est à mettre après le "begin" du fichier source latex dans lequel on décrit le QCM.
En termes d'utilisation, cela a été conçu pour qu'on n'ait à faire qu'une simple substitution de \AMCcodeA{etu}{8} au \AMCcode{etu}{8} initial de AMC. (le deuxième paramètre {8} de \AMCcodeA{etu}{8} n'est pas utilisé mais juste là pour faciliter la substitution). Pour l'utilisation de \AMCcode se reporter au manuel d'utilisation de AMC.
Pour les noms avec plusieurs fois la même lettre, on ne coche qu'une fois la lettre en question. Cas plus embêtant, j'ai eu un frère et une sœur qui avaient la même initiale de prénom : dans de tels cas, j'utilise les chiffres : l'un était par exemple DUPONTA et l'autre DUPONTA1. Ça ne m'est arrivé qu'une fois !
Pour récupérer les codages à mettre dans le fichier ASCII étudiant, on peut faire la première fois une identification manuelle et récupérer les codes dans le fichier tableur exporté (dernier onglet de AMC). On peut aussi utiliser le fichier Excel de codage joint.
Voilà, j'espère que c'est complet.
CodageNoms.xlsx - Fichier Excel pour codage des noms (17.3 kB)
RE: Identification automatique des étudiants - Added by Jérôme O. over 7 years ago
Bonjour,
j'ai travaillé sur les documents proposés par Al Dus (qu'il en soit remercié) et je les ai modifiés. Je n'ai pas réussi à le faire fonctionner et je souhaitais une approche un peu différente. L'idée est de demander aux élèves de cocher les trois premières lettres de leur nom ainsi que de leur prénom. Ça évite à ceux qui ont un nom très long de devoir cocher 12 cases. De plus, les codes tiennent sur deux lignes ce qui prend moins de place. J'ai ajouté deux chiffres (un et deux), ce qui devrait être suffisant pour différencier tous les élèves d'une classe. J'ai testé avec 315 élèves et j'ai des codes tous différents.
Voici la commande \codeA modifiée,
\newcommand{\AMCcodeA}[1]{ { \def\AMCbeginQuestion##1##2{}\def\AMCbeforeQuestion{}\AMCnoScoreZone \AMCquestionNumberfalse \setlength{\parindent}{0pt} \AMCcodeVspace=.3ex \def\AMCbeginAnswer{\hbox\bgroup} \def\AMCendAnswer{\egroup\vspace{\AMCcodeVspace}\par} \def\AMCanswer##1##2{\hbox to 21pt{\ifAMC@ensemble ##1\else \ifAMC@inside@box ##1\else{\AMCboxOutsideLetter{##1}{\textbf{\,##2}}}\fi\fi} \hspace{1.3em} } \AMCnobloc \newcount\LDFcol \newcount\LDFnum \newcount\LDFcolA \newcount\LDFlig \newcount\LDFligQ \newcount\LDFligMax \newcount\LDFscore \LDFlig=65% point de départ du nom de case : A \LDFligQ=0 \LDFligMax=93% i.e. 2 lignes (65+2*14=93) \LDFnum=0 \loop{ \LDFscore=1 \LDFcol=\LDFlig \LDFcolA=0 \advance\LDFlig by 14 \begin{questionmult}{#1[\the\LDFligQ]}\scoring{formula=} \QuestionIndicative\AMCnoCompleteMulti \begin{choicescustom}[o] \loop \ifnum\LDFcol>90 \advance\LDFnum1 \wrongchoice[\the\LDFcolA]{\the\LDFnum}\scoring{formula=,b=0,m=\the\LDFscore} \else \wrongchoice[\the\LDFcolA]{\char\the\LDFcol}\scoring{formula=,b=0,m=\the\LDFscore} \fi \multiply\LDFscore by 2% double LDFscore \advance\LDFcol1 \advance\LDFcolA1 \ifnum\LDFcol<\LDFlig\repeat \end{choicescustom} \end{questionmult} } \advance\LDFligQ1 \advance\LDFlig by 14 \ifnum\LDFlig<\LDFligMax\repeat \hspace{-\AMCcodeHspace} } }
Ce code s'appelle ainsi :
\exemplaire{9}{ \AMCcodeA{Etu} Cochez les trois premières lettres de votre nom et de votre prénom ci-dessus.\par
Voilà ce à quoi ressemble le fichier CSV :
"Id","Nom","Prenom","Etu","courriel" 1,"Granger","Hermione","8209", 2,"Potter","Harry","43129", 3,"Weasley","Ronald","845717",
Je joins le fichier calc qui permet de calculer les codes de chaque élèves à saisir dans le fichier CSV, ainsi qu'une copie d'écran du rendu.
Bonnes vacances.
CodageNoms.ods - Fichier calc pour calculer les codes correspondant aux noms des élèves (50.9 kB)
Potter-Harry.png - Copie d'écran d'une copie détectée automatiquement (88.7 kB)
RE: Identification automatique des étudiants - Added by Al DUS over 7 years ago
Bonsoir,
Pour coller au souhait de coder les 3 premières lettres des noms et des prénoms, il n'est nul besoin de changer le programme. Il suffit de changer les formules au niveau de la feuille excel pour que le code construit à partir du nom et du prénom soit conforme à la règle édictée.
RE: Identification automatique des étudiants - Added by Vincent Riboulet almost 7 years ago
Bonjour,
Cette méthode d'identification des étudiants m'intéresse beaucoup.
Mais je n'ai réussit à faire fonctionner aucune des 2 solutions.
D'abord avec l'exemple CodeASource.tex
J'ai : Undefined control sequence. \setlength{\AMCcodeAspace}{2\AMCcodeHspace}
J'ai mis à jour AMC en installant le ppa de A.Bienvenu pour être en 1.3, et faire la modif du . en [], mais ça ne change rien.
Avec l'autre exemple de Jérôme O, copié collé tel quel, j'ai "Undefined control sequence. }" qui pointe vers le dernier } avant le \end{document}
Merci pour votre aide.
V.R.
RE: Identification automatique des étudiants - Added by Al DUS almost 7 years ago
Bonjour,
En fait un changement de codage du nom des questions en interne d'AMC rend obsolète le code depuis début 2017. Je joins donc la nouvelle version qui fonctionne chez moi avec AMC 1.3.0. Cela devrait mieux marcher ainsi !!
CodeASource170409.tex - Nouveau code source pour une identification simple des étudiants (2.3 kB)
RE: Identification automatique des étudiants - Added by Vincent Riboulet almost 7 years ago
Merci pour votre réponse rapide.
J'ai inséré le code après le \begin, puis remplacé le \AMCcode par \AMCcodeA
Lorsque je lance le code avec texstudio 5.5.1 (et AMC 1.3.0), j'ai le message d'erreur suivant :
"Undefinied control sequence" pointant vers ma dernière accolade de fermeture ?
RE: Identification automatique des étudiants - Added by Frédéric Bréal almost 7 years ago
La version test permet des codes avec des lettres.
listetest.csv - liste test avec identifiant (74 Bytes)
simple.tex - exemple avec AMCCodegrid (2 kB)
RE: Identification automatique des étudiants - Added by Al DUS almost 7 years ago
Bonsoir
J'utilise toutes les semaines ce bout de code pour mes devoirs ; il fonctionne bien chez moi. J'ai vérifié l'équilibre des accolades : pas de souci. Le déséquilibre ne viendrait-il pas d'ailleurs ? Essayez en enlevant le module pour voir si le déséquilibre persiste.
RE: Identification automatique des étudiants - Added by Jérôme O. almost 7 years ago
Bonjour,
j'utilise également régulièrement le code fourni sans problème. Êtes-vous certain qu'il ne s'agit pas d'une erreur dans le sujet ?
Cordialement,
Jérôme
RE: Identification automatique des étudiants - Added by Vincent Riboulet almost 7 years ago
Bonjour,
J'ai essayé de compiler le simple.tex fourni par Gérard Carpeaux (en modifiant uniquement l'encodage de mac à UTF8), et j'ai le même message d'erreur qu'en testant les codes de AlDus et JerômeO.
Je suis sous linux mint 18.3, et j'utilise le ppa de A.Bienvenüe pour avoir la version 1.3.0, et la distrib texlive
Sous TeXstudio, j'ai
"Undefinied control sequence" pointant vers ma dernière accolade de fermeture, qui correspond à celle ouverte par la commande exemplaire.
Si je commente la ligne \AMCcodeGrid, ça compile.
Sous texmaker, j'ai l'erreur au même endroit (fermeture de la parenthèse de exemplaire) avec le message :
! Undefined control sequence.\iterate ...e} \par \noindent \hfill \AMCcodeGrid[v,top]{etu}{ABCDEFGHIJKLM... }
Avec le code de AlDus ou de JéromeO, j'ai l'erreur au même endroit (fermeture de la parenthèse de exemplaire) avec le message :
! Undefined control sequence.\AMCchoiceLabelFormat ...hspace {-0.3em}\CheckBox[checkboxsymbol=n,checked=... }
J'avoue que je ne comprends pas. Y a t il un problème avec mon installation ? Des idées pour tester ?
simpleAlDus.tex - version AlDus (4.5 kB)
simpleJeromeO.tex - version JeromeO (2.3 kB)
RE: Identification automatique des étudiants - Added by Alexis Bienvenüe almost 7 years ago
j'utilise le ppa de A.Bienvenüe pour avoir la version 1.3.0
Pour \AMCcodeGrid
, il faut utiliser le PPA test, avec actuellement la version 1.3.0+hg2018-02-10.
RE: Identification automatique des étudiants - Added by Vincent Riboulet almost 7 years ago
Bonsoir,
J'ai installé le PPA test, et effectivement le code de Gérag Carpeaux fonctionne maintenant.
Par contre pour les 2 autres, j'ai toujours le même message d'erreur.
RE: Identification automatique des étudiants - Added by Vincent Riboulet over 6 years ago
Bonjour,
Merci à Aldus qui m'a répondu avec une autre version de son code, qui fonctionne chez moi.
Je n'avais pas compris la remarque de Gérard Carpeaux.
Il existe donc maintenant dans la version de test d'AMC, une fonction AMCCodegrid qui répond au besoin, en permettant de rentrer des lettres dans le code.
Je partirai bien sur l'idée de Jérome O en faisant coder aux étudiants les 3 premières lettres de leur nom et prénom.
J'ai changé l'option v en h dans le code pour avoir le code sur une ou 2 lignes horizontales, en remplaçant le v par h ainsi:
\AMCcodeGrid[h,top]{etu}{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\hfill\null
Mais ma ligne dépasse de la feuille sur la droite...
J'ai essayé quelques options de mise en forme, mais je ne suis pas expert en LaTeX et je n'ai pas réussit... Si vous avez une idée...
RE: Identification automatique des étudiants - Added by Alexis Bienvenüe over 6 years ago
Quelque chose comme ça ?
\AMCcodeGrid[h]{etu}{ABCDEFGHIJKLM,NOPQRSTUVWXYZ}
RE: Identification automatique des étudiants - Added by Vincent Riboulet over 6 years ago
Merci, cela fonctionne en effet.
Par contre je n'arrive pas à mettre un texte à côté des cases (celui habituel pour dire qu'il faut compléter, et avec la case ou inscrire le nom dessous).
J'avoue que je ne maîtrise pas du tout les subtilités de mise en page sous LaTeX...
Par ailleurs je viens de faire des essais avec codegrid, et la reconnaissance automatique a fonctionné !
Je testerai bien demain "en vrai" avec les élèves, si j'arrive d'ici la à améliorer la présentation de l'entête.
Il me semble que le code inscrit dans le fichier CSV doit être dans l'ordre alphabétique et en ASCII.
J'ai écrit une petite moulinette en Python (car je ne sais pas faire dans un tableur) qui permet de tester le nombre de lettres qu'il faut prendre dans le nom et prénom, et qui génère le fichier csv, je vous la met en pièce jointe.
CodeEleve.py (2.7 kB)
RE: Identification automatique des étudiants - Added by Frédéric Bréal over 6 years ago
fichier CSV doit être dans l'ordre alphabétique et en ASCI
Pas d'obligation d'ordre mais codage en UTF8 avec gedit par exemple sous ubuntu.
RE: Identification automatique des étudiants - Added by Vincent Riboulet over 6 years ago
pour l'ordre, dans mes essais ça ne fonctionnait pas si le code mit dans le fichier csv n'était pas dans l'ordre alphabétique.
Pour l'ascii, je voulais dire qu'il n'y a pas de case à cocher avec des accents, donc je les enlève des noms et prénoms des mes étudiants.
J'ai réussit à comprendre à peu prêt minipage, et du coup j'ai fait une interro ce matin, avec le codegrid, et ça a fonctionné ! (a part pour les 4 étudiants qui n'ont coché 4 lettres au lieu de 3...)
Par contre je préférerai quand même utiliser une version moins expérimentale (la j'ai des mélanges de traduction fr/anglais, et de temps en temps le processeur qui reste à 100%). Quand est ce que codegrid sera intégré à une version stable ?
RE: Identification automatique des étudiants - Added by Alexis Bienvenüe over 6 years ago
et de temps en temps le processeur qui reste à 100%
Dans quelle situation ? Pouvez-vous nous indiquer comment reproduire le problème ?