Syntaxe des quiz

Syntaxe des quiz

BrainNotFound utilise le format Markdown pour définir les quiz. Ce format est simple, lisible et facile à éditer.

Structure générale

# Titre du quiz

## TYPE - Énoncé de la question [X points]
(contenu selon le type)
  • Le titre est défini par un # en début de fichier
  • Chaque question commence par ## suivi du type et de l'énoncé
  • Les points sont indiqués entre crochets à la fin de la ligne : [2 points], [1 point] ou en abrégé [2 pts], décimales acceptées ([1.5 points]). Sans mention, la question vaut 1 point.

L'éditeur de quiz affiche un aperçu en direct à côté du Markdown : une question mal écrite y est signalée tout de suite.

Les mots-clés anglais sont aussi acceptés : ## MCQ -, ## OPEN - et ### Expected answer.

Types de questions

QCM (Question à Choix Multiples)

## QCM - Quelle est la réponse correcte ? [2 points]
- [ ] Réponse incorrecte A
- [x] Réponse correcte
- [ ] Réponse incorrecte B
- [ ] Réponse incorrecte C
  • Utilisez - [ ] pour une option incorrecte
  • Utilisez - [x] pour la ou les réponses correctes
  • Plusieurs réponses correctes sont possibles (QCM à choix multiples)

Correction : Automatique. L'apprenant doit cocher exactement les bonnes réponses pour avoir tous les points (tout ou rien).

Question ouverte

## OUVERTE - Expliquez le concept X [5 points]
### Réponse attendue
La réponse attendue qui servira de référence pour
l'évaluation par l'IA. Soyez précis sur les points
clés que l'apprenant doit mentionner.
  • La section ### Réponse attendue est obligatoire
  • Elle sert de référence à l'IA pour évaluer la réponse de l'apprenant

Correction : par l'IA. L'IA compare la réponse de l'apprenant à la réponse attendue et attribue une note avec un feedback personnalisé.

Options avancées

Images

Vous pouvez inclure des images dans vos questions :

## QCM - Identifiez ce schéma [2 points]
![Description de l'image](nom-image.png)

- [ ] Option A
- [x] Option B
- [ ] Option C
  1. Envoyez l'image avec le bouton Ajouter une image de l'éditeur (PNG, JPG, GIF ou WEBP)
  2. Collez le code Markdown fourni, de la forme ![description](nom-fichier.png)

Code

Pour les questions techniques, utilisez les blocs de code :

## OUVERTE - Que fait ce code ? [3 points]

```python
def factorial(n):
    if n <= 1:
        return 1
    return n * factorial(n - 1)
```

### Réponse attendue
Cette fonction calcule le factoriel de n de manière
récursive. Elle retourne 1 si n est inférieur ou égal
à 1, sinon elle multiplie n par le factoriel de (n-1).

Sévérité de la correction IA

Trois niveaux disponibles dans les paramètres du quiz :

Niveau Description
Gentil Valorise les efforts, tolérant sur la formulation
Modéré Équilibre entre précision et compréhension
Sévère Exige une réponse précise et complète

Le ton des retours se règle au même endroit : neutre, jovial, taquin, encourageant, sarcastique ou professoral.

Bonnes pratiques

Pour les QCM

  • Proposez 3 à 5 options par question
  • Évitez les options évidemment fausses
  • Formulez des distracteurs plausibles
  • Une seule bonne réponse par défaut (sauf QCM multiples explicites)

Pour les questions ouvertes

  • Rédigez une réponse attendue détaillée
  • Mentionnez les mots-clés et concepts importants
  • Indiquez les critères d'évaluation si nécessaire
  • Adaptez les points à la complexité de la question

Exemple complet

# Examen Python - Semestre 1

## QCM - Quel mot-clé définit une fonction en Python ? [1 point]
- [ ] function
- [ ] func
- [x] def
- [ ] define

## QCM - Lesquels sont des types mutables ? [2 points]
- [x] list
- [ ] tuple
- [x] dict
- [ ] str

## OUVERTE - Expliquez la différence entre une liste et un tuple [4 points]
### Réponse attendue
Une liste est un type mutable : on peut modifier ses éléments,
en ajouter ou en supprimer après création. Elle utilise les
crochets [].

Un tuple est immutable : une fois créé, il ne peut pas être
modifié. Il utilise les parenthèses ().

Les tuples sont plus rapides et peuvent servir de clés de
dictionnaire, contrairement aux listes.

## OUVERTE - Écrivez une fonction qui inverse une chaîne [5 points]
### Réponse attendue
```python
def reverse_string(s):
    return s[::-1]

Ou avec une boucle :

def reverse_string(s):
    result = ""
    for char in s:
        result = char + result
    return result

```