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

Version 9 (Alexis Bienvenüe, 09/01/2023 10:03 am) → Version 10/11 (Alexis Bienvenüe, 09/01/2023 10:03 am)

h1. É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) : https://launchpad.net/~alexis.bienvenue/+archive/ubuntu/test

h2. 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.

h2. 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.

h2. Exemple

Voici un exemple de fichier @topics.yml@ correspondant à deux compétences nommées addition2 et soustraction2 :
<pre>
---
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:*"
</pre>

*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.

h2. 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@ :
<pre>
---
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
</pre>

h2. 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@.
<pre>
---
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
</pre>