Einführung
Interaktive Übungen verbessern den Lernerfolg, indem sie sofortiges Feedback durch Hinweise, Lösungen und benutzerdefinierte Benotung bieten. In diesem Lernprogramm erstellen Sie Schritt für Schritt eine interaktive Übung mit Quarto Live. Wir werden Folgendes behandeln:
Erstellen einer grundlegenden Übung
Definieren Sie einen interaktiven Codeblock als Übung mit einer eindeutigen Bezeichnung.Ausführender Setup-Code
Die Umgebung vorbereiten (z.B. Pakete laden oder Variablen setzen), bevor der Code des Lernenden ausgeführt wird.Hinzufügen von Hinweisen und Lösungen
Geben Sie progressive Hinweise, um den Lernenden zu führen. Bieten Sie eine vollständige Lösung an, die bei Bedarf angezeigt werden kann.Verwenden von Tabsets für Übungen
Organisieren Sie Hinweise und Lösungen in einem Tabset für eine übersichtlichere Benutzeroberfläche.Implementieren einer benutzerdefinierten Benotung
Schreiben Sie eine benutzerdefinierte Bewertungslogik, die sofortiges Feedback auf der Grundlage der Eingaben des Lernenden liefert.
Lassen Sie uns jeden dieser Schritte anhand von praktischen Beispielen durchgehen.
Erstellen einer grundlegenden Übung
Um einen webr
Codeblock als Übung zu markieren, verwenden Sie die Option exercise
mit einer eindeutigen Bezeichnung. Der folgende Block fordert den Lernenden zum Beispiel auf, die Leerstelle so auszufüllen, dass die Summe gleich ist 10:
Code-Quelle
exercise.qmd
Füllen Sie die Lücke so aus, dass das Ergebnis der Summe ist 10.
```{webr}
#| exercise: ex_1
1 + 2 + 3 + ______
```
Ergebnisse
Füllen Sie die Lücke so aus, dass das Ergebnis der Summe ist 10.
Die Übungen werden standardmäßig nicht automatisch ausgewertet. Der Lernende muss auf Run Code
klicken, um die Ausgabe zu sehen.
Ausführender Setup-Code
Häufig müssen Sie vor einer Übung Setup-Code ausführen (z. B. um Pakete zu laden oder Variablen zu definieren).
Ein Einrichtungscodeblock kann wie folgt erstellt werden:
- Definieren Sie einen Setup-Block:
Verwenden Sie die Optionsetup: true
Zelle, um einen Codeblock als Einrichtungscode zu kennzeichnen. - Link zu einer Übung: Legen Sie die Option
exercise
für die Zelle so fest, dass sie einer bestehenden Übungsbeschriftung entspricht.
Der Setup-Code wird in der Übung vor dem Code des Lernenden ausgeführt.
Beispiel für Setup-Code für eine Übung
Nachfolgend finden Sie ein Beispiel für einen Einrichtungscodeblock, gefolgt von einem Übungsblock:
Code-Quelle
Füllen Sie die Lücke so aus, dass das Ergebnis der Summe ist 10.
exercise.qmd
```{webr}
#| setup: true
#| exercise: ex_2
foo <- 1
bar <- 2
baz <- 3
```
```{webr}
#| exercise: ex_2
foo + bar + baz + ______
```
Ergebnisse
Füllen Sie die Lücke so aus, dass das Ergebnis der Summe ist 10.
Beispiel-Setup-Code für mehrere Übungen
Ein Einrichtungsblock kann an mehrere Übungen angehängt werden, indem eine Liste von Übungen für die Zellenoption exercise
bereitgestellt wird. Der Code in der Setup-Zelle wird vor jeder Auswertung einer der aufgeführten Übungen ausgeführt.
Code-Quelle
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
```
Ergebnisse
Hinzufügen von Hinweisen und Lösungen
- Hinweise werden mit Hilfe von eingezäunten Blöcken mit der Klasse
.hint
und demselben Attributexercise
hinzugefügt. Sie werden nach und nach angezeigt, wenn der Lernende Hilfe anfordert. - Lösungen werden mit Hilfe von eingezäunten Blöcken mit der Klasse
.solution
und demselben Attributexercise
hinzugefügt. Sie werden sofort angezeigt, wenn der Lernende die Lösung anfordert.
Code-Quelle
exercise.qmd
`starwars`-Datensatz so, dass nur die Droidenzeichen enthalten sind.
Filtern Sie den
```{webr}
#| setup: true
#| exercise: ex_3
library(dplyr)
```
```{webr}
#| exercise: ex_3
starwars |> ______
```
::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}## Hinweis 1
`filter()` aus `dplyr`.
Erwägen Sie die Verwendung der Funktion
```r
|> filter(______)
starwars ```
:::
:::
::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}## Hinweis 2
`species`.
Filtern Sie den Datensatz anhand der Spalte
```r
|> filter(species == ______)
starwars ```
:::
:::
::: { .solution exercise="ex_3" }
::: { .callout-tip collapse="false"}## Vollständig ausgearbeitete Lösung:
`filter()` aus `dplyr`:
Verwenden Sie die Funktion
```r
|> #<1>
starwars filter(species == "Droid") #<2>
```
1. Nehmen Sie den `starwars`-Datensatz, und dann,
2. Filter für die `Droid` Art.
::: :::
Ergebnisse
Filtern Sie den starwars
-Datensatz so, dass nur die Droidenzeichen enthalten sind.
Erwägen Sie die Verwendung der Funktion filter()
aus dplyr
.
|> filter(______) starwars
Filtern Sie den Datensatz anhand der Spalte species
.
|> filter(species == ______) starwars
Organisieren von Übungen mit Tabsets
Um die Benutzeroberfläche übersichtlicher zu gestalten, können Sie Hinweise und Lösungen in ein Tabset packen. Dies ermöglicht es den Lernenden, nach und nach Hinweise zu entdecken und die Lösung zu sehen, wenn sie fertig ist.
Code-Quelle
exercise.qmd
:::: {.panel-tabset}
## Übung
```{webr}
#| setup: true
#| exercise: ex_4
library(dplyr)
```
```{webr}
#| exercise: ex_4
starwars |> ______
```
## Hinweise
::: { .hint exercise="ex_4"}`filter()` aus `dplyr`.
Erwägen Sie die Verwendung der Funktion
```r
|> filter(______)
starwars ```
:::
## Lösung
::: { .solution exercise="ex_4" }`filter()` aus `dplyr`:
Verwenden Sie die Funktion
```r
|> #<1>
starwars filter(species == "Droid") #<2>
```
1. Nehmen Sie den `starwars`-Datensatz, und dann,
2. Filter für die `Droid` Art.
:::
::::
Ergebnisse
Optionen auf Dokumentenebene
Aktivieren und deaktivieren Sie Hinweise und Lösungen für ein ganzes Dokument mit dem Schlüssel live
im YAML-Header des Dokuments.
---
live:
show-hints: true
show-solutions: true
---
Implementieren einer benutzerdefinierten Benotung
Um den Code des Lernenden automatisch auszuwerten, fügen Sie einen Codeblock mit der Option check: true
ein. Dieser Block vergleicht den Output des Lernenden (referenziert durch .result
) mit dem erwarteten Ergebnis.
Code-Quelle
Berechnen Sie den Durchschnitt aller Ganzzahlen von 1 bis 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.")
}
```
Ergebnisse
Berechnen Sie den Durchschnitt aller Ganzzahlen von 1 bis 10.
Dieser Bewertungsblock gibt automatisch Feedback auf der Grundlage der Eingaben des Lernenden.
Weiterführende Literatur
- Interaktive Code-Blöcke erklärt
Lernen Sie die Grundlagen der Erstellung interaktiver Codeblöcke in Quarto Live. - Laden und Verwenden von Paketen
Entdecken Sie Techniken zum Installieren und Laden zusätzlicher R-Pakete. - Verwaltung von Ausführungsumgebungen
Verstehen, wie man die gemeinsame Nutzung von Variablen kontrolliert und Übungen isoliert. - Zellenoptionen-Referenz
Erkunden Sie erweiterte Konfigurationsoptionen für interaktive Codeblöcke.
Schlussfolgerung
Die Gestaltung interaktiver Übungen in Quarto Live ermöglicht es Ihnen, eine praxisnahe, unterstützende Lernerfahrung zu bieten. Anhand dieser Schritt-für-Schritt-Anleitung können Sie Übungen erstellen, die Einrichtungscode, Hinweise, Lösungen und eine benutzerdefinierte Bewertungslogik enthalten. Experimentieren Sie mit diesen Techniken und passen Sie sie an Ihre Lehrbedürfnisse an, um ansprechende interaktive R-Aufgaben zu erstellen.
Weitere Artikel erkunden
Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.
Wiederverwendung
Zitat
@online{kassambara2025,
author = {Kassambara, Alboukadel},
title = {Entwerfen und Bewerten von interaktiven R-Übungen},
date = {2025-03-15},
url = {https://www.datanovia.com/de/learn/interactive/r/exercises.html},
langid = {de}
}