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:
Criando um exercício básico
Defina um bloco de código interativo como um exercício usando um rótulo exclusivo.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.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.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.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.
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:
- Defina um bloco de configuração:
Use a opção de célulasetup: true
para designar um bloco de código como código de configuração. - Link para um exercício: Defina a opção de célula
exercise
para corresponder a um rótulo de exercício existente.
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 atributoexercise
. 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 atributoexercise
. Eles são revelados de uma vez quando o aluno solicita a solução.
Código-fonte
exercise.qmd
`starwars` para que apenas os personagens droids sejam incluídos.
Filtre o conjunto de dados
```{webr}
#| setup: true
#| exercise: ex_3
library(dplyr)
```
```{webr}
#| exercise: ex_3
starwars |> ______
```
::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}## Dica 1
`filter()` de `dplyr`.
Considere usar a função
```r
|> filter(______)
starwars ```
:::
:::
::: { .hint exercise="ex_3"}
::: { .callout-note collapse="false"}## Dica 2
`species`.
Você deve filtrar o conjunto de dados usando a coluna
```r
|> filter(species == ______)
starwars ```
:::
:::
::: { .solution exercise="ex_3" }
::: { .callout-tip collapse="false"}## Solução totalmente funcional:
`filter()` de `dplyr`:
Use a função
```r
|> #<1>
starwars 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.
Considere usar a função filter()
de dplyr
.
|> filter(______) starwars
Você deve filtrar o conjunto de dados usando a coluna species
.
|> filter(species == ______) starwars
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"}`filter()` de `dplyr`.
Considere usar a função
```r
|> filter(______)
starwars ```
:::
## Solução
::: { .solution exercise="ex_4" }`filter()` de `dplyr`:
Use a função
```r
|> #<1>
starwars filter(species == "Droid") #<2>
```
1. Pegue o conjunto de dados `starwars` e, em seguida,
2. Filtre pelas espécies `Droid`.
:::
::::
Resultados
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.
Este bloco de classificação fornece feedback automaticamente com base na entrada do aluno.
Leitura adicional
- Blocos de código interativo explicados
Aprenda o básico sobre como criar blocos de código interativos no Quarto Live. - Carregando e usando pacotes
Descubra técnicas para instalar e carregar pacotes R adicionais. - Gerenciando ambientes de execução
Entenda como controlar o compartilhamento de variáveis e isolar exercícios. - Referência de opções de células
Explore opções avançadas de configuração para blocos de código interativos.
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
Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.
Reuso
Citação
@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}
}