Parametrização
As variantes, de uma “Questão aleatória”, podem ser obtidas por parametrização recorrendo ao R para cálculos parciais
Exemplo de variante parametrizada
Questão cloze A média amostral \(\bar x\)
da amostra
```{r}
set.seed(90)
amostra <- round(rnorm(5,8,1), 1)
amostra
```
é: {:NUMERICAL:=r mean(amostra):0.01
} (use 2 casas decimais).
Estilos de parametrização
Consideram-se três estilos de parametrização pensados para o rmdmoodle
:
- planeadas (ou pré-calculadas, ou vectorizadas): todas as variantes são guardadas em listas ou vectores.
- aleatorizadas: não se calculam previamente todas as variantes.
- Parametrização R Markdown (via
params
): usa-se o sistema de parametrização do R Markdown. - Parametrização externa: de algum modo as variantes são construídas fora do R.
Questões planeadas
O autor usa “code chunks” para produzir valores pré-preparados para serem usados nas questões. Estes valores são armazenados em vetores, arrays, listas, ou algo que permita um acesso por índice inteiro.
O objetivo, e vantagem principal, é que há um “controlo” de todas as situações que chegam aos estudantes num momento de avaliação.
Neste exemplo, o autor pretende controlar a criação de 6 variantes de uma mesma questão usando 6 vetores pre definidos e visualizados para um eventual objetivo:
# Questão sobre um Capítulo 1 - CLOZE
```{r}
set.seed(10) #controlo pelo autor
amostra <- list(
caso1 = round(rnorm(5, 0, 3), 1),
caso2 = round(rnorm(5, 0, 3), 1),
caso3 = round(rnorm(5, 1, 3), 1),
caso4 = round(rnorm(5, 1, 3), 1),
caso5 = round(rnorm(5, 2, 3), 1),
caso6 = round(rnorm(5, 2, 3, 1))
)
media <- lapply(amostra,mean)
```
## Variante (`r VAR<- 1`)
`r amostra[[VAR]]`.
Considere a amostra:
[VAR]]:0.05} (1 casa decimal).
A média é {:NUMERICAL:=`r media[
### Feedback
Consulte a matéria do Capítulo 1.
## Variante (`r VAR<- 2`)
`r amostra[[VAR]]`.
Considere a amostra:
[VAR]]:0.05} (1 casa decimal).
A média é {:NUMERICAL:=`r media[
### Feedback
Consulte a matéria do Capítulo 1.
ETC, para as restantes 6 variantes
Neste exemplo, o autor “copia e cola” cada ## Variante
o que pode ser aborrecido.
Porém, se for usado o método na secção Base de Questões, essa duplicação é gerada automaticamente.
Questões aleatorizadas
Nesta modalidade, os valores, ou textos, a serem guardados são produzidos sem armazenamento, e usados no momento da sua geração.
A vantagem é que não há perda de tempo a codificar o método de armazenamento.
Vale a pena especificar um valor para a “seed”, como set.seed(10)
, para que as questões sejam reproduzíveis.
# Questão sobre um Capítulo 1 - CLOZE
```{r}
set.seed(10) #controlo pelo autor
```
## Variante 1
```{r}
amostra <- round(rnorm(5, 0, 3), 1)
```
`r amostra`.
Considere a amostra:
`r mean(amostra)`:0.05} (1 casa decimal).
A média é {:NUMERICAL:=
### Feedback
Consulte a matéria do Capítulo 1.
## Variante 2
```{r}
amostra <- round(rnorm(5, 0, 3), 1)
```
`r amostra`.
Considere a amostra:
`r mean(amostra)`:0.05} (1 casa decimal).
A média é {:NUMERICAL:=
### Feedback
Consulte a matéria do Capítulo 1.
ETC, copiando o número de questões desejadas para exportação para o Moodle.
Parametrização via params
Esta forma de parametrização usando o mecanismo params
do R Markdown pode ser misturada com as demais abordagens acima. Ao fazer “knitr” podem-se passar parâmetros que vão ser substituídos e modelar o resultado final do ficheiro R Markdown.
Assim, no momento da construção do ficheiro XML Moodle, podem passar-se parâmetros e estes vão produzir diferentes variantes sendo que este mecanismo pode ser misturado com as “questões planeadas” ou com as “questões aleatorizadas”.
(Mais texto para breve.)
A sintaxe tem duas partes. A primeira é no ficheiro da questão colocar os parâmetros na zona yaml
(---
…---
). No exemplo seguinte há dois parâmetros: “GDIM” e “GNum”:
---
title: "c4-anova"
author: "os autoress"
date: "2025/05/21"
output: html_document
params:
GDIM: 5
GNum: 3
---
e estes parâmetros vão influenciar a construção da questão. Por exemplo, fixando o número de grupos (“GNum”) ou fixando a dimensão dentro de cada grupo (“GDim”).
Mais tarde, para construir o teste com novos parâmetros usa-se uma instrução como:
pq("c4-anova.Rmd",
"id02", "concept01", "concl01", "tab02",
params = list(GDIM = 3, GNum = 4)
)
em que se definem os parâmetros a gosto: params = list(GDIM = 3, GNum = 4)
, 4 grupos de dimensão 3. Recorda-se que pq(...)
designa “Questão planeada” mas podia ser numa questão aleatória rq(...)
.
Parametrização externa
Os valores para os parâmetros podem ser criados com um mecanismo externo. Para a produção dos testes Moodle, tais valores podem ser colocados manualmente num ficheiro R Markdown seguindo o formato da secção Teste Moodle ou através de um mecanismo de templating para substituição programática.