# Accorder des points en cas de bonne réponse partielle (Partial credit)

Il est possible d'attribuer des points à un étudiant qui a donné une bonne réponse partielle à une question (dans le cas par exemple d’un problème à choix multiples) afin qu'il n'ait pas 0 point si la question est difficile.

Ceci s’applique aux types d’exercices suivants :

* [Case à cocher (QCM)](https://support.fun-edu.fr/doc/accorder-des-points-en-cas-de-bonne-reponse-partielle-partial-credit-Tty3eLkIwx#h-case-a-cocher-qcm)
* [Choix unique (QCU)](https://support.fun-edu.fr/doc/accorder-des-points-en-cas-de-bonne-reponse-partielle-partial-credit-Tty3eLkIwx#h-choix-unique-qcu)
* [Problèmes numériques](https://support.fun-edu.fr/doc/accorder-des-points-en-cas-de-bonne-reponse-partielle-partial-credit-Tty3eLkIwx#h-problemes-numeriques)

Pour l’instant il faut utiliser l’éditeur avancé pour paramétrer cela (attention, cela convertira votre quiz au format XML) :

 ![Basculer sur l'éditeur avancé](https://support.fun-edu.fr/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzE0NGZkNTM4LTgwYjAtNDI0NS05Y2U0LTEyOGExMWRkNjI4Mi9kM2UxNzZjYi1hOWFmLTRkNzYtYjQ1Yi05MmU5NDlhMzg2MzcvbWNlY2xpcDEucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTAwNzkzMDAsImV4cCI6MTc5MDE2NTcwMH0.-1r44O-az0d-OW5668euSH27J5BvekKdn1-TWgeilWo)


---

## Case à cocher (QCM)

[Article sur la documentation Open edX](https://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/open-release-eucalyptus.master/exercises_tools/checkbox.html#id18) (en anglais).

Prenons le problème suivant :

 ![](https://support.fun-edu.fr/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzE0NGZkNTM4LTgwYjAtNDI0NS05Y2U0LTEyOGExMWRkNjI4Mi8wODMwYmFhOS0zMWI1LTQ2MDgtODQ5OC00N2ZiOGIyOTQ0MGQvcWNtX2ltZzEucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTAwNzkzMDAsImV4cCI6MTc5MDE2NTcwMH0.iuxuX1jQIXBYKPuO7r7Hi3KBCy96immPido5w4eVJi0)

Les réponses correctes sont A, C et D.

Ici on peut compter une réponse partielle de 2 différentes façons :

* **“Every Decision Count” (edc) :** Si l’étudiant choisit une option qui est fausse, on lui enlève des points (on lui enlève par exemple ⅕ de points, s’il y a 5 questions).
* “**Halve Style” (halves)** : Si l’étudiant se trompe, on divise sa note par deux. S’il fait deux fautes, par quatre, etc…

Dans notre exemple :

| Réponses utilisateur | Style | Score |
|----------------------|-------|-------|
| A,C,D                | ECD   | 100%  |
| A,B,C,D              | ECD   | 80%   |
| A,B,C                | ECD   | 60%   |
| A,C,D                | Halves | 100%  |
| A,B,C,D              | Halves | 50%   |
| A,B,C                | Halves | 25%   |


---

### Comment mettre en place la notation partielle dans les cases à cocher ?


1. Aller dans l’éditeur avancé
2. Ajouter la valeur `partial_credit=”halves``**”**` ou `partial_credit=”edc”` dans le tag `choiceresponse`

**Exemple :**

```xml
<choiceresponse partial_credit="halves">  
 <checkboxgroup label="Les langues suivantes sont dans la famille indo-européenne :">  
    <choice correct="true">Urdu</choice>  
    <choice correct="false">Finnois</choice>  
   <choice correct="true">Marathi</choice>  
   <choice correct="true">Français</choice>  
   <choice correct="false">Hongrois</choice>   
 </checkboxgroup>  
</choiceresponse>
```


## Choix unique (QCU)

[Article sur la documentation Open edX](https://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/open-release-eucalyptus.master/exercises_tools/multiple_choice.html#awarding-partial-credit-in-a-multiple-choice-problem) (en anglais).

Reprenons le problème précédent et modifions-le pour en faire un problème à choix unique.

Nous allons attribuer 30% de la note lorsqu’un utilisateur répond Finlandais, mais 100% lorsqu’il répond Finnois.

Pour cela, il faut ajouter les options suivantes mise en valeur dans le texte :

```xml
<multiplechoiceresponse partial_credit="points">  
 <choicegroup label="Une langue dans la liste suivante est dans la famille Ouralienne :">  
    <choice correct="false">Urdu</choice>  
    <choice correct="true">Finnois</choice>  
    <choice strongcorrect="partial" point_value="0.3">Finlandais</choice>  
    <choice correct="false">Marathi</choice>  
   <choice correct="false">Français</choice>  
 </choicegroup>  
</multiplechoiceresponse>
```


---

## Problèmes numériques

[Article sur la documentation Open edX](https://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/open-release-eucalyptus.master/exercises_tools/numerical_input.html#awarding-partial-credit-in-a-numerical-input-problem) (en anglais).

Pour les réponses numériques, les réponses partiellement correctes peuvent être paramétrées de différentes manières :

* Sur une liste (list)
* Avec une tolérance
* Les deux

### Sur une liste

* Séparer les réponses par une virgule
* Si l’étudiant répond par une des réponses dans la liste il aura 50% des points

```xml
<numericalresponse answer="9.3*10^7" partial_credit="list">  
  <formulaequationinput label="How many miles away from Earth is the sun? Use scientific notation to answer." />  
  <responseparam partial_answers="150*10^6,100*10^6"/>  
</numericalresponse>
```

|     |     |     |     |
|-----|-----|-----|-----|
| Valeur | Réponse exacte | Tolérance | Score |
| 150\*10^6 | 9\.3\*10^7 | Liste | 100% |
| 150000000 | 9\.3\*10^7 | Liste | 100% |
| 100\*10^6 | 9\.3\*10^7 | Liste | 100% |

### Avec une tolérance

Le calcul de la note se fait de la manière suivante :

* dans la tolérance définie : 100% de la note
* x fois la tolérance : 50%
* Plus de x fois la tolérance => 0%

La valeur du multiple de la tolérance est définie par `partial_range`

Exemple:

| Valeur | Réponse exacte | Tolérance | Score |
|--------|----------------|-----------|-------|
| 9\.05\*10^7 | 9\.3\*10^7     | partial_range = 3  tolerance = 1% | 50%   |
| 9\.2\*10^7 | 9\.3\*10^7     | partial_range = 3  tolerance = 1% | 100%  |

```xml
<numericalresponse answer="9.3*10^7"partial_credit="close">  
  <formulaequationinput label="How many miles away from Earth is the sun? Use scientific notation to answer." />  
  <responseparam type="tolerance" default="1%" partial_range="3"/>  
</numericalresponse>
```