Concevoir et noter des exercices R interactifs

Créer des exercices avec des conseils, des solutions et une notation personnalisée dans Quarto Live

Apprenez à concevoir des exercices R interactifs en utilisant Quarto Live. Ce tutoriel fournit un guide étape par étape pour créer des exercices, incluant la configuration du code, l’ajout d’indices et de solutions, et la mise en œuvre d’une notation personnalisée pour un retour d’information immédiat.

Outils
Auteur·rice
Affiliation
Date de publication

15 mars 2025

Mots clés

exercices interactifs R, Classement dans Quarto Live, Défis interactifs R

Introduction

Les exercices interactifs améliorent l’apprentissage en offrant un retour d’information immédiat par le biais d’indices, de solutions et d’une notation personnalisée. Dans ce tutoriel, vous allez créer un exercice interactif étape par étape en utilisant Quarto Live. Nous aborderons les points suivants:

  1. Créer un exercice de base
    Définir un bloc de code interactif à titre d’exercice en utilisant une étiquette unique.

  2. Code d’installation en cours d’exécution
    Préparer l’environnement (par exemple, charger des packages ou configurer des variables) avant que le code de l’apprenant ne soit exécuté.

  3. Ajout de conseils et de solutions
    Fournir des indices progressifs pour guider l’apprenant. Offrir une solution complète qui peut être révélée en cas de besoin.

  4. Utiliser des onglets pour les exercices
    Organiser les astuces et les solutions dans un ensemble d’onglets pour une interface utilisateur plus propre.

  5. Implémentation d’une notation personnalisée
    Écrire une logique d’évaluation personnalisée qui fournit un retour d’information immédiat basé sur les données de l’apprenant.

Passons en revue chacune de ces étapes à l’aide d’exemples pratiques.



Créer un exercice de base

Pour marquer un bloc de code webr comme un exercice, utilisez l’option de cellule exercise avec une étiquette unique. Par exemple, le bloc suivant demande à l’apprenant de remplir le blanc pour que la somme soit égale à 10:

Code Source

exercise.qmd
Remplir le blanc pour que le résultat de la somme soit 10.

```{webr}
#| exercise: ex_1
1 + 2 + 3 + ______
```

Résultats

Remplir le blanc pour que le résultat de la somme soit 10.

Note

Les exercices ne sont pas auto-évalués par défaut. L’apprenant doit cliquer sur Run Code pour voir le résultat.

Code d’installation en cours d’exécution

Souvent, vous devrez exécuter du code de préparation avant un exercice (par exemple, pour charger des packages ou définir des variables).

Un bloc de code de configuration peut être créé comme suit:

  1. Définir un bloc d’installation:
    Utilisez l’option de cellule setup : true pour désigner un bloc de code comme code de configuration.
  2. Lien vers un exercice: Configurez l’option de cellule exercice pour qu’elle corresponde à une étiquette d’exercice existante.
Note

Le code d’installation sera exécuté avant le code de l’apprenant dans l’exercice.

Exemple de code d’installation pour un exercice

Vous trouverez ci-dessous un exemple de bloc de code d’installation suivi d’un bloc d’exercice:

Code Source

Remplir le blanc pour que le résultat de la somme soit 10.

exercise.qmd
```{webr}
#| setup: true
#| exercise: ex_2
foo <- 1
bar <- 2
baz <- 3
```

```{webr}
#| exercise: ex_2
foo + bar + baz + ______
```

Résultats

Remplir le blanc pour que le résultat de la somme soit 10.

Exemple de code d’installation pour plusieurs exercices

Un bloc d’installation peut être attaché à plusieurs exercices en fournissant une liste d’exercices pour l’option de cellule exercise. Le code dans la cellule de configuration sera exécuté avant chaque évaluation de l’un des exercices listés.

Code Source

exercise.qmd
```{webr}
#| setup: true
#| exercise:
#|   - ex_a1
#|   - ex_a2
var_xyz <- c(1, 3, 7, 9, 13, 15)
```

```{webr}
#| exercise: ex_a1
var_xyz * 2
```

```{webr}
#| exercise: ex_a2
var_xyz ** 2
```

Résultats

Ajout de conseils et de solutions

  • Les indices sont ajoutés en utilisant des blocs clôturés avec la classe .hint et le même attribut exercise. Elles sont révélées progressivement lorsque l’apprenant demande de l’aide.
  • Les solutions sont ajoutées en utilisant des blocs clôturés avec la classe .solution et le même attribut exercice. Ils sont révélés en même temps lorsque l’apprenant demande la solution.

Code Source

exercise.qmd
Filtrez la donnée `starwars` pour n'inclure que les personnages droïdes.

```{webr}
#| setup: true
#| exercise: ex_3
library(dplyr)
```

```{webr}
#| exercise: ex_3
starwars |> ______
```

::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}
## Indice 1

Envisager d'utiliser la fonction `filter()` de `dplyr`.

```r
starwars |> filter(______)
```
:::
:::

::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}
## Indice 2

Vous devez filtrer la donnée en utilisant la colonne `species`.

```r
starwars |> filter(species == ______)
```
:::
:::

::: { .solution exercise="ex_3" }
::: { .callout-tip collapse="false"}
## Solution complète:

Utiliser la fonction `filter()` de `dplyr`:

```r
starwars |>                                 #<1>
    filter(species == "Droid")              #<2>
```
1. Nous prenons la donnée `starwars`, et ensuite,
2. Filtre pour l'espèce `Droid`.

:::
:::

Résultats

Filtrez la donnée starwars pour n’inclure que les personnages droïdes.

Indice 1

Envisager d’utiliser la fonction filter() de dplyr.

starwars |> filter(______)
Indice 2

Vous devez filtrer la donnée en utilisant la colonne species.

starwars |> filter(species == ______)
Solution complète:

Utiliser la fonction filter() de dplyr:

1starwars |>
2    filter(species == "Droid")
1
Nous prenons la donnée starwars, et ensuite,
2
Filtre pour l’espèce Droid.

Organiser les exercices à l’aide d’onglets

Pour une interface plus propre, vous pouvez regrouper les astuces et les solutions dans un ensemble d’onglets. Cela permet aux apprenants de découvrir progressivement les indices et de voir la solution lorsqu’ils sont prêts.

Code Source
exercise.qmd
:::: {.panel-tabset}

## Exercice

```{webr}
#| setup: true
#| exercise: ex_4
library(dplyr)
```

```{webr}
#| exercise: ex_4
starwars |> ______
```

## Indices

::: { .hint exercise="ex_4"}
Envisager d'utiliser la fonction `filter()` de `dplyr`.

```r
starwars |> filter(______)
```
:::

## Solution

::: { .solution exercise="ex_4" }
Utiliser la fonction `filter()` de `dplyr`:

```r
starwars |>                                 #<1>
    filter(species == "Droid")              #<2>
```
1. Nous prenons la donnée `starwars`, et ensuite,
2. Filtre pour l'espèce `Droid`.
:::

::::

Résultats

Envisager d’utiliser la fonction filter() de dplyr.

starwars |> filter(______)

Utiliser la fonction filter() de dplyr:

1starwars |>
2    filter(species == "Droid")
1
Nous prenons la donnée starwars, et ensuite,
2
Filtre pour l’espèce Droid.

Options au niveau du document

Activer et désactiver les indices et les solutions pour un document entier en utilisant la clé live dans l’en-tête YAML du document.

---
live:
  show-hints: true
  show-solutions: true
---

Implémentation d’une notation personnalisée

Pour évaluer automatiquement le code de l’apprenant, incluez un bloc de code avec l’option check : true. Ce bloc compare le résultat de l’apprenant (référencé par .result) au résultat attendu.

Code Source

Calculer la moyenne de tous les nombres entiers de 1 à 10.

```{webr}
#| exercise: ex_1_r
______(1:10)
```

```{webr}
#| exercise: ex_1_r
#| check: true
if (identical(.result, mean(1:10))) {
  list(correct = TRUE, message = "Nice work!")
} else {
  list(correct = FALSE, message = "That's incorrect, sorry.")
}
```

Résultats

Calculer la moyenne de tous les nombres entiers de 1 à 10.

Note

Ce bloc de notation fournit automatiquement un retour d’information en fonction de la saisie de l’apprenant.

Plus d’informations

Conclusion

La conception d’exercices interactifs dans Quarto Live vous permet d’offrir une expérience d’apprentissage pratique. En suivant ce guide étape par étape, vous pouvez créer des exercices incluant du code d’installation, des conseils, des solutions et une logique de notation personnalisée. Expérimentez ces techniques et adaptez-les à vos besoins pédagogiques pour créer des défis R interactifs attrayants.

Explorer d’autres articles

Note

Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.

placeholder

placeholder
Aucun article correspondant
Retour au sommet

Réutilisation

Citation

BibTeX
@online{kassambara2025,
  author = {Kassambara, Alboukadel},
  title = {Concevoir et noter des exercices R interactifs},
  date = {2025-03-15},
  url = {https://www.datanovia.com/fr/learn/interactive/r/exercises.html},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
Kassambara, Alboukadel. 2025. “Concevoir et noter des exercices R interactifs.” March 15, 2025. https://www.datanovia.com/fr/learn/interactive/r/exercises.html.