Projetando e avaliando exercícios interativos em R

Crie exercícios com dicas, soluções e avaliação personalizada no Quarto Live

Aprenda a criar exercícios interativos em R usando o Quarto Live. Este tutorial fornece um guia passo a passo para criar exercícios, incluindo a configuração de código, a adição de dicas e soluções e a implementação de notas personalizadas para feedback imediato.

Ferramentas
Autor
Afiliação
Data de Publicação

15 de março de 2025

Palavras-chave

Exercícios interativos do R, Quarto Live grading, Desafios interativos do R

Introdução

Exercícios interativos aprimoram o aprendizado, oferecendo feedback imediato por meio de dicas, soluções e notas personalizadas. Neste tutorial, você criará um exercício interativo passo a passo usando o Quarto Live. Abordaremos o seguinte:

  1. Criando um exercício básico
    Defina um bloco de código interativo como um exercício usando um rótulo exclusivo.

  2. Executando o código de configuração
    Prepare o ambiente (por exemplo, carregue pacotes ou defina variáveis) antes que o código do aluno seja executado.

  3. Adição de dicas e soluções
    Forneça dicas progressivas para orientar o aluno. Ofereça uma solução completa que pode ser revelada quando necessário.

  4. Usando conjuntos de guias para exercícios
    Organize dicas e soluções em um conjunto de guias para uma interface de usuário mais limpa.

  5. Implementando classificação personalizada
    Escreva uma lógica de avaliação personalizada que forneça feedback imediato com base na entrada do aluno.

Vamos examinar cada uma dessas etapas com exemplos práticos.



Criando um exercício básico

Para marcar um bloco de código webr como um exercício, use a opção de célula exercise com um rótulo exclusivo. Por exemplo, o bloco a seguir pede ao aluno para preencher o espaço em branco para que a soma seja igual a 10:

Código-fonte

exercise.qmd
Preencha o espaço em branco para que o resultado da soma seja 10.

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

Resultados

Preencha o espaço em branco para que o resultado da soma seja 10.

Nota

Os exercícios não são avaliados automaticamente por padrão. O aluno deve clicar em Run Code para ver a saída.

Executando o código de configuração

Frequentemente, você precisará executar o código de configuração antes de um exercício (por exemplo, para carregar pacotes ou definir variáveis).

Um bloco de código de configuração pode ser criado da seguinte maneira:

  1. Defina um bloco de configuração:
    Use a opção de célula setup: true para designar um bloco de código como código de configuração.
  2. Link para um exercício: Defina a opção de célula exercise para corresponder a um rótulo de exercício existente.
Nota

O código de configuração será executado antes do código do aluno no exercício.

Código de configuração de exemplo para um exercício

Veja abaixo um exemplo de um bloco de código de configuração seguido por um bloco de exercício:

Código-fonte

Preencha o espaço em branco para que o resultado da soma seja 10.

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

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

Resultados

Preencha o espaço em branco para que o resultado da soma seja 10.

Exemplo de código de configuração para vários exercícios

Um bloco de configuração pode ser anexado a vários exercícios, fornecendo uma lista de exercícios para a opção de célula exercise. O código na célula de configuração será executado antes de cada avaliação de qualquer um dos exercícios listados.

Código-fonte

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

Adição de dicas e soluções

  • As dicas são adicionadas usando blocos delimitados com a classe .hint e o mesmo atributo exercise. Eles são revelados progressivamente quando o aluno solicita ajuda.
  • As soluções são adicionadas usando blocos delimitados com a classe .solution e o mesmo atributo exercise. Eles são revelados de uma vez quando o aluno solicita a solução.

Código-fonte

exercise.qmd
Filtre o conjunto de dados `starwars` para que apenas os personagens droids sejam incluídos.

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

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

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

Considere usar a função `filter()` de `dplyr`.

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

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

Você deve filtrar o conjunto de dados usando a coluna `species`.

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

::: { .solution exercise="ex_3" }
::: { .callout-tip collapse="false"}
## Solução totalmente funcional:

Use a função `filter()` de `dplyr`:

```r
starwars |>                                 #<1>
    filter(species == "Droid")              #<2>
```
1. Pegue o conjunto de dados `starwars` e, em seguida,
2. Filtre pelas espécies `Droid`.

:::
:::

Resultados

Filtre o conjunto de dados starwars para que apenas os personagens droids sejam incluídos.

Dica 1

Considere usar a função filter() de dplyr.

starwars |> filter(______)
Dica 2

Você deve filtrar o conjunto de dados usando a coluna species.

starwars |> filter(species == ______)
Solução totalmente funcional:

Use a função filter() de dplyr:

1starwars |>
2    filter(species == "Droid")
1
Pegue o conjunto de dados starwars e, em seguida,
2
Filtre pelas espécies Droid.

Organizando exercícios com conjuntos de guias

Para uma interface mais limpa, você pode envolver dicas e soluções em um conjunto de guias. Isso permite que os alunos revelem dicas progressivamente e vejam a solução quando estiverem prontos.

Código-fonte
exercise.qmd
:::: {.panel-tabset}

## Exercício

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

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

## Dicas

::: { .hint exercise="ex_4"}
Considere usar a função `filter()` de `dplyr`.

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

## Solução

::: { .solution exercise="ex_4" }
Use a função `filter()` de `dplyr`:

```r
starwars |>                                 #<1>
    filter(species == "Droid")              #<2>
```
1. Pegue o conjunto de dados `starwars` e, em seguida,
2. Filtre pelas espécies `Droid`.
:::

::::

Resultados

Considere usar a função filter() de dplyr.

starwars |> filter(______)

Use a função filter() de dplyr:

1starwars |>
2    filter(species == "Droid")
1
Pegue o conjunto de dados starwars e, em seguida,
2
Filtre pelas espécies Droid.

Opções de nível de documento

Habilite e desabilite dicas e soluções para um documento inteiro usando a chave live no cabeçalho YAML do documento.

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

Implementando classificação personalizada

Para avaliar automaticamente o código do aluno, inclua um bloco de código com a opção check: true. Este bloco compara a saída do aluno (referenciada por .result) com o resultado esperado.

Código-fonte

Calcule a média de todos os números inteiros de 1 a 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

Calcule a média de todos os números inteiros de 1 a 10.

Nota

Este bloco de classificação fornece feedback automaticamente com base na entrada do aluno.

Leitura adicional

Conclusão

Criar exercícios interativos no Quarto Live permite que você ofereça uma experiência de aprendizagem prática e solidária. Seguindo este guia passo a passo, você pode criar exercícios que incluem código de configuração, dicas, soluções e lógica de avaliação personalizada. Experimente essas técnicas e adapte-as às suas necessidades de ensino para criar desafios interativos envolventes em R.

Explore mais artigos

Nota

Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.

placeholder

placeholder
Nenhum item correspondente
De volta ao topo

Reuso

Citação

BibTeX
@online{kassambara2025,
  author = {Kassambara, Alboukadel},
  title = {Projetando e avaliando exercícios interativos em R},
  date = {2025-03-15},
  url = {https://www.datanovia.com/pt/learn/interactive/r/exercises.html},
  langid = {pt}
}
Por favor, cite este trabalho como:
Kassambara, Alboukadel. 2025. “Projetando e avaliando exercícios interativos em R.” March 15, 2025. https://www.datanovia.com/pt/learn/interactive/r/exercises.html.