Skip to content

Item QCM

Il existe trois types d'items de QCM, qui ont un déroulement proche mais pas équivalent. Chacun a un rôle différent dans le test et utilise certains attributs.

Attributs

  • id : identifiant unique
  • type : (tuto|training|test)
  • pret : Asset Mixte → le son à déclencher pour dire à l'utisateur de toucher une image quand il est prêt, ainsi que l'image à afficher.
    Cette image sera affichée au centre de l'écran en gros et disparait dès qu'elle est touchée
    Si cet attribut est Null, cette étape est ignorée
  • consigne : Son → le son à déclencher dès que l'utilisateur est prêt
    Si cet attribut est Null, cette étape est ignorée
  • reveil : Son -> le son se déclenche au bout de 8 secondes d'inactivité de l'utilisateur quand c'est à son tour de jouer. Si cet attribut est Null, il ne se lance pas.
  • fond : Asset Image → l'image à afficher dans la zone de question.
    Si l'image est plus petite que la zone de question (1920×850), l'image est centrée dans cette zone. (optionnel) on agrandit l'image (par des facteurs entiers ?) jusqu'à obtenir l'image la plus grande possible pour la zone de question
  • liste_choix : tableau de Choix → toutes les propositions possibles parmi lesquelles choisir
  • randomiser : BooleanTrue : les choix sont affichés dans un ordre aléatoire tiré au moment de l'affichage
    Par défaut : False
  • enumerer : BooleanTrue : il faut lire les choix possibles à l'utilisateur après la consigne
    Par défaut : False
  • surligner : BooleanTrue : quand on lit les choix possibles, on surligne l'élément correspondant
    Par défaut : True (n'a pas de sens si enumerer est False)
  • separateurChoix : Sound → un son à jouer lors de l'énumération entre l'avant-dernier et le dernier choix
  • explication : Sound → un son d'explication de la réponse à l'item
  • surlignerExplication : Float → au bout de combien de secondes d'explication on surligne la bonne réponse
    Par défaut : 0
    Null → pas de surlignage
  • miseEnAction : Sound → un son déclenchant la phase de mise en action
    Par défaut : `Null``
  • transition : Sound → un son déclenché juste avant de passer à l'item suivant
    Par défaut : Null
  • description : String → un texte de description de l'item à l'usage des chercheurs

Déroulement selon le type d'Item

Les attributs nécessaires et le déroulement dépendent du type d'item. Ci-dessous, on fait la description la plus complète et pour chaque étape, on indique quels sont les types d'items concernés

  1. tuto, training, test Création de l'affichage
    1. Dimensionnement et affichage du fond
    2. Si randomiser, calcul de l'ordre d'affichage des choix
    3. Dimensionnement et affichage de chacun des choix dans la zone correspondante
  2. tuto, training, test Prêt
    si pret n'est pas Null afficher l'image, lire le son correspondants et attendre que le sujet touche l'image
  3. tuto, training, test Consigne
    lecture de la consigne si non Null
  4. tuto, training, test Liste choix
    si enumerer (et si les Choix ont un son associé) on lit les sons de chaque choix avec une pause d'une demi seconde (à pouvoir faire varier) entre chaque son
    • si surligner on met en surbrillance l'image du choix au moment où il est lu
    • si separateurChoix n'est pas Null entre l'avant dernier choix et le dernier on lit le son separateurChoix
  5. tuto Explication
    1. On lit le son explication (s'il n'est pas Null) en lançant un chronomètre lors de son lancement
    2. Si surlignerExplication n'est pas nul, quand le chronomètre atteint surlignerExplication on surligne la bonne réponse à l'item
  6. tuto Mise en action
    On lit miseEnAction s'il n'est pas Null
  7. tuto, training, test Action utilisateur
    L'utilisateur choisit l'un des choix possibles
  8. tuto, training Feedback
    On déclenche le son feedback du choix sélectionné
  9. tuto, training, test Stockage de la réponse
    Pour chaque utilisateur, un objet json désigne chaque item.
  10. test Mise à jour score
    +1 si le choix est la bonne réponse
  11. training Explication
    cf. étape 4
  12. tuto, training, test Transition
    On lit transition s'il n'est pas Null

JSON

Chaque épreuve a un objet JSON associé, dont la forme peut être légèrement différente selon le type

Tutoriel

{
    "id":"tutoRime",
    "type":"tuto",
    "consigne":"tutoRimeCons",
    "enumerer":true,
    "surligner":true,
    "choix":[
        {
         "id":"tutoRimeApe",
         "image":"food1",
         "son":"ape",
         "correct":false,
         "feedback":"err"
        },
        {
         "id":"tutoRimeIca",
         "image":"food2",
         "son":"ica",
         "correct":false,
         "feedback":"err"
        },
        {
         "id":"tutoRimeSelo",
         "image":"food3",
         "son":"selo",
         "correct":true,
         "feedback":"fb+selo"
        }
    ],
    "explication":"bimo+selo",
    "surlignerExplication":1.2,
    "miseEnAction":"action selo"
}

Entrainement

{
    "id":"trainRime2",
    "type":"training",
    "pret":"ready",
    "consigne":"Stani_cons",
    "enumerer":true,
    "surligner":true,
    "randomiser":true,
    "choix":[
        {
         "id":"trainRimeDino",
         "image":"food1",
         "son":"Dino",
         "correct":false,
         "feedback":"Stani_dino"
        },
        {
         "id":"trainRimeLebai",
         "image":"food2",
         "son":"Lebaï",
         "correct":false,
         "feedback":"Stani_lebaï"
        },
        {
         "id":"trainRimeTeiki",
         "image":"food3",
         "son":"Teiki",
         "correct":true,
         "feedback":"Stani_teiki"
        }
    ],
    "transition":"2test"
}

Test

{
    "id":"rimeFRF3",
    "type":"test",
    "pret":"ready",
    "consigne":"rime FFRmstr03",
    "enumerer":true,
    "surligner":true,
    "randomiser":true,
    "choix":[
        {
         "id":"crali1",
         "image":"food1",
         "son":"rime FFRchx07",
         "correct":true
        },
        {
         "id":"crali2",
         "image":"food2",
         "son":"rime FFRchx08",
         "correct":false
        },
        {
         "id":"crali3",
         "image":"food3",
         "son":"rime FFRchx09",
         "correct":false
        }
    ]
}
Edited by Mathieu Loiseau