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:
Créer un exercice de base
Définir un bloc de code interactif à titre d’exercice en utilisant une étiquette unique.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é.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.Utiliser des onglets pour les exercices
Organiser les astuces et les solutions dans un ensemble d’onglets pour une interface utilisateur plus propre.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.
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:
- Définir un bloc d’installation:
Utilisez l’option de cellulesetup : true
pour désigner un bloc de code comme code de configuration. - Lien vers un exercice: Configurez l’option de cellule
exercice
pour qu’elle corresponde à une étiquette d’exercice existante.
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 attributexercise
. 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 attributexercice
. Ils sont révélés en même temps lorsque l’apprenant demande la solution.
Code Source
exercise.qmd
`starwars` pour n'inclure que les personnages droïdes.
Filtrez la donnée
```{webr}
#| setup: true
#| exercise: ex_3
library(dplyr)
```
```{webr}
#| exercise: ex_3
starwars |> ______
```
::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}## Indice 1
`filter()` de `dplyr`.
Envisager d'utiliser la fonction
```r
|> filter(______)
starwars ```
:::
:::
::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}## Indice 2
`species`.
Vous devez filtrer la donnée en utilisant la colonne
```r
|> filter(species == ______)
starwars ```
:::
:::
::: { .solution exercise="ex_3" }
::: { .callout-tip collapse="false"}## Solution complète:
`filter()` de `dplyr`:
Utiliser la fonction
```r
|> #<1>
starwars 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.
Envisager d’utiliser la fonction filter()
de dplyr
.
|> filter(______) starwars
Vous devez filtrer la donnée en utilisant la colonne species
.
|> filter(species == ______) starwars
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"}`filter()` de `dplyr`.
Envisager d'utiliser la fonction
```r
|> filter(______)
starwars ```
:::
## Solution
::: { .solution exercise="ex_4" }`filter()` de `dplyr`:
Utiliser la fonction
```r
|> #<1>
starwars filter(species == "Droid") #<2>
```
1. Nous prenons la donnée `starwars`, et ensuite,
2. Filtre pour l'espèce `Droid`.
:::
::::
Résultats
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.
Ce bloc de notation fournit automatiquement un retour d’information en fonction de la saisie de l’apprenant.
Plus d’informations
- Explication des blocs de code interactifs
Apprendre les bases de la création de blocs de code interactifs dans Quarto Live. - Chargement et utilisation des packages
Découvrez les techniques d’installation et de chargement de packages R supplémentaires. - Gestion des environnements d’exécution
Comprendre comment contrôler le partage des variables et isoler les exercices. - Référence des options de cellule
Explorer les options de configuration avancées pour les blocs de code interactifs.
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
Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.
Réutilisation
Citation
@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}
}