Diseño y calificación de ejercicios interactivos de R

Cree ejercicios con sugerencias, soluciones y calificación personalizada en Quarto Live

Aprenda a diseñar ejercicios interactivos de R con Quarto Live. Este tutorial proporciona una guía paso a paso para crear ejercicios, incluyendo la configuración del código, la adición de pistas y soluciones, y la implementación de una calificación personalizada para obtener comentarios inmediatos.

Herramientas
Autor/a
Afiliación
Fecha de publicación

15 de marzo de 2025

Palabras clave

Ejercicios interactivos de R, Calificación en vivo de Quarto, Desafíos interactivos de R

Introducción

Los ejercicios interactivos mejoran el aprendizaje al ofrecer feedback inmediato a través de pistas, soluciones y calificaciones personalizadas. En este tutorial, creará un ejercicio interactivo paso a paso utilizando Quarto Live. Cubriremos lo siguiente:

  1. Creación de un ejercicio básico
    Defina un bloque de código interactivo como ejercicio utilizando una etiqueta única.

  2. Ejecutar el código de configuración
    Prepare el entorno (por ejemplo, cargue paquetes o establezca variables) antes de ejecutar el código del alumno.

  3. Añadir pistas y soluciones
    Proporcione pistas progresivas para guiar al alumno. Ofrecer una solución completa que se pueda revelar cuando sea necesario.

  4. Usar conjuntos de pestañas para ejercicios
    Organice las sugerencias y soluciones en un conjunto de pestañas para obtener una interfaz de usuario más limpia.

  5. Implementar calificaciones personalizadas
    Escribe una lógica de calificación personalizada que proporcione feedback inmediato basado en la entrada del alumno.

Repasemos cada uno de estos pasos con ejemplos prácticos.



Creación de un ejercicio básico

Para marcar un bloque de código webr como ejercicio, utilice la opción de celda exercise con una etiqueta única. Por ejemplo, el siguiente bloque pide al alumno que rellene el espacio en blanco para que la suma sea igual a 10:

Fuente del código

exercise.qmd
Rellene el espacio en blanco para que el resultado de la suma sea 10.

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

Resultados

Rellene el espacio en blanco para que el resultado de la suma sea 10.

Nota

Los ejercicios no se evalúan automáticamente de forma predeterminada. El alumno debe hacer clic en Run Code para ver el resultado.

Ejecutar el código de configuración

A menudo, será necesario ejecutar código de configuración antes de un ejercicio (por ejemplo, para cargar paquetes o definir variables).

Se puede crear un bloque de código de configuración de la siguiente manera:

  1. Definir un bloque de configuración:
    Utilice la opción de celda setup: true para designar un bloque de código como código de configuración.
  2. Enlazar a un ejercicio: Establece la opción de celda exercise para que coincida con una etiqueta de ejercicio existente.
Nota

El código de configuración se ejecutará antes que el código del alumno en el ejercicio.

Código de configuración de ejemplo para un ejercicio

A continuación, encontrará un ejemplo de un bloque de código de configuración seguido de un bloque de ejercicio:

Fuente del código

Rellene el espacio en blanco para que el resultado de la suma sea 10.

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

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

Resultados

Rellene el espacio en blanco para que el resultado de la suma sea 10.

Código de configuración de ejemplo para varios ejercicios

Se puede adjuntar un bloque de configuración a varios ejercicios proporcionando una lista de ejercicios para la opción de celda exercise. El código de la celda de configuración se ejecutará antes de cada evaluación de cualquiera de los ejercicios enumerados.

Fuente del código

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
```

Resultados

Añadir pistas y soluciones

  • Las sugerencias se añaden utilizando bloques delimitados con la clase .hint y el mismo atributo exercise. Se revelan progresivamente cuando el alumno solicita ayuda.
  • Las soluciones se añaden utilizando bloques delimitados con la clase .solution y el mismo atributo exercise. Se revelan a la vez cuando el alumno solicita la solución.

Fuente del código

exercise.qmd
Filtre el conjunto de datos `starwars` para que solo se incluyan los personajes droides.

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

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

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

Considere la posibilidad de utilizar la función `filter()` de `dplyr`.

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

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

Debe filtrar el conjunto de datos utilizando la columna `species`.

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

::: { .solution exercise="ex_3" }
::: { .callout-tip collapse="false"}
## Solución completa:

Utilice la función `filter()` de `dplyr`:

```r
starwars |>                                 #<1>
    filter(species == "Droid")              #<2>
```
1. Tome el conjunto de datos `starwars` y, a continuación,
2. Filtrar por la especie `Droid`.

:::
:::

Resultados

Filtre el conjunto de datos starwars para que solo se incluyan los personajes droides.

Sugerencia 1

Considere la posibilidad de utilizar la función filter() de dplyr.

starwars |> filter(______)
Sugerencia 2

Debe filtrar el conjunto de datos utilizando la columna species.

starwars |> filter(species == ______)
Solución completa:

Utilice la función filter() de dplyr:

1starwars |>
2    filter(species == "Droid")
1
Tome el conjunto de datos starwars y, a continuación,
2
Filtrar por la especie Droid.

Organización de ejercicios con conjuntos de pestañas

Para obtener una interfaz más limpia, puede envolver las sugerencias y soluciones en un conjunto de pestañas. Esto permite a los alumnos revelar pistas progresivamente y ver la solución cuando estén listos.

Fuente del código
exercise.qmd
:::: {.panel-tabset}

## Ejercicio

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

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

## Sugerencias

::: { .hint exercise="ex_4"}
Considere la posibilidad de utilizar la función `filter()` de `dplyr`.

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

## Solución

::: { .solution exercise="ex_4" }
Utilice la función `filter()` de `dplyr`:

```r
starwars |>                                 #<1>
    filter(species == "Droid")              #<2>
```
1. Tome el conjunto de datos `starwars` y, a continuación,
2. Filtrar por la especie `Droid`.
:::

::::

Resultados

Considere la posibilidad de utilizar la función filter() de dplyr.

starwars |> filter(______)

Utilice la función filter() de dplyr:

1starwars |>
2    filter(species == "Droid")
1
Tome el conjunto de datos starwars y, a continuación,
2
Filtrar por la especie Droid.

Opciones de nivel de documento

Active y desactive las sugerencias y soluciones para todo un documento utilizando la clave live en el encabezado YAML del documento.

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

Implementar calificaciones personalizadas

Para evaluar automáticamente el código del alumno, incluye un bloque de código con la opción check: true. Este bloque compara el resultado del alumno (referenciado por .result) con el resultado esperado.

Fuente del código

Calcular la media de todos los números enteros del 1 al 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.")
}
```

Resultados

Calcular la media de todos los números enteros del 1 al 10.

Nota

Este bloque de calificación proporciona automáticamente comentarios basados en la entrada del alumno.

Lecturas adicionales

Conclusión

El diseño de ejercicios interactivos en Quarto Live le permite ofrecer una experiencia de aprendizaje práctica y de apoyo. Siguiendo esta guía paso a paso, podrá crear ejercicios que incluyen código de configuración, sugerencias, soluciones y lógica de calificación personalizada. Experimenta con estas técnicas y adáptalas a tus necesidades docentes para crear retos interactivos y atractivos en R.

Explorar más artículos

Nota

Aquí hay más artículos de la misma categoría para ayudarte a profundizar en el tema.

placeholder

placeholder
No hay resultados
Volver arriba

Reutilización

Cómo citar

BibTeX
@online{kassambara2025,
  author = {Kassambara, Alboukadel},
  title = {Diseño y calificación de ejercicios interactivos de R},
  date = {2025-03-15},
  url = {https://www.datanovia.com/es/learn/interactive/r/exercises.html},
  langid = {es}
}
Por favor, cita este trabajo como:
Kassambara, Alboukadel. 2025. “Diseño y calificación de ejercicios interactivos de R.” March 15, 2025. https://www.datanovia.com/es/learn/interactive/r/exercises.html.