Évaluation par compétences avec les "topics" d'AMC

AVERTISSEMENT : Les "topics" sont en cours de développement. Leur fonctionnement pourra changer dans le futur. Installez la version de développement d'AMC pour les utiliser.
Vous pouvez par exemple utiliser le dépôt test d'AMC (PPA pour Ubuntu https://launchpad.net/~alexis.bienvenue/+archive/ubuntu/test, ou OBS pour quelques autres distributions https://software.opensuse.org/download/package?package=auto-multiple-choice&project=home%3AJojoBoulix)

Objectif

On cherche ici à former certains groupes de questions, afin d'obtenir un score pour chaque groupe, associé à un niveau de réussite, qui pourront être affichés en en-tête des copies corrigées.
Ces groupes vont être décrits dans un fichier au format YAML nommé topics.yml, à placer dans le répertoire du projet AMC.

Dépendances

Pour faire fonctionner les "topics", AMC aura besoin des paquets perl supplémentaires suivants, qui doivent donc être installé dans votre environnement : YAML::Syck, Hash::Merge.
Ces paquets sont automatiquement installés si vous utilisez le PPA mentionné ci-dessus.

Exemple

Voici un exemple de fichier topics.yml correspondant à deux compétences nommées addition2 et soustraction2 :

---
topics:
  - id: addition2
    name: Savoir calculer la somme de deux nombres à deux chiffres
    questions:
      - "add2:*" 
      - somme2ch
    levels:
      - min: 75
        message: très bonne maîtrise
        color: "#1ab407" 
      - min: 50
        message: maîtrise satisfaisante
        color: "#2aea62" 
      - min: 25
        message: maîtrise fragile
        color: "#ffad26" 
      - message: maîtrise insuffisante
        color: "#ff262c" 
  - id: soustraction2
    name: Savoir calculer la différence de deux nombres à deux chiffres
    format: "%{name} : %{score}/%{max}" 
    questions:
      - "sous2:*" 
      - "sous1:*" 

ATTENTION : le format de fichier YAML est très sensible à l'indentation. Vous devez donc bien respecter le nombre d'espaces au début des lignes.

Ici, la compétence addition2 prend en compte toutes les questions dont l'identifiant commence par add2:, ainsi que la question somme2ch.
Selon la moyenne obtenue pour l'ensemble des questions, AMC va afficher, avec la couleur choisie, un message sur la première page de la copie corrigée.
L'export ODS contiendra également cette information.
Pour le groupe soustraction2, on n'a pas défini de niveaux de réussite, et on écrit uniquement le score et le score maximal.

Mutualisation de la configuration

Dans certains cas, on aura besoin de mutualiser une partie de la configuration entre plusieurs compétences.
Cela peut se faire en regroupant la configuration à mutualiser dans la catégorie conf, puis en y faisant référence à l'endroit souhaité (dans un topic, ou dans une autre conf).
Dans l'exemple ci-dessous, on affecte ainsi les même niveaux pour les compétences addition2 et soustraction2 :

---
conf:
  niveauxstandard:
    levels:
      - min: 75
        message: très bonne maîtrise
        color: "#1ab407" 
      - min: 50
        message: maîtrise satisfaisante
        color: "#2aea62" 
      - min: 25
        message: maîtrise fragile
        color: "#ffad26" 
      - message: maîtrise insuffisante
        color: "#ff262c" 

topics:
  - id: addition2
    name: Savoir calculer la somme de deux nombres à deux chiffres
    questions:
      - "add2:*" 
      - somme2ch
    conf: niveauxstandard
  - id: soustraction2
    name: Savoir calculer la différence de deux nombres à deux chiffres
    format: "%{name} : %{score}/%{max}" 
    questions:
      - "sous2:*" 
      - "sous1:*" 
    conf: niveauxstandard

Plusieurs fichiers

On peut également faire appel au contenu d'un autre fichier grâce à include (le chemin du fichier à inclure peut être donné comme chemin relatif par rapport a fichier en cours).
Dans l'exemple suivant, le fichier topics.yml va inclure le contenu du fichier levels.yml qui se trouve dans le répertoire parent du répertoire projet (donc le répertoire commun à tous les projets AMC), et qui contiendra la définition à utiliser pour niveauxstandard.

---
include:
  - ../levels.yml

topics:
  - id: addition2
    name: Savoir calculer la somme de deux nombres à deux chiffres
    questions:
      - "add2:*" 
      - somme2ch
    conf: niveauxstandard
  - id: soustraction2
    name: Savoir calculer la différence de deux nombres à deux chiffres
    format: "%{name} : %{score}/%{max}" 
    questions:
      - "sous2:*" 
      - "sous1:*" 
    conf: niveauxstandard