簡體   English   中英

在 Moodle 中結合 mchoice 和 num 導入的完形填空題

[英]Cloze question combining mchoice and num import in Moodle

我創建了一個結合 mchoice 和 num 的完形填空題。 但是我不能在 Moodle 中導入問題,因為它說錯誤導入問題無效的嵌入式答案(完形填空)問題(其中一個答案的分數應該是 100%,所以這個問題有可能獲得滿分。)。 如果我把它變成一個單一的 mchoice 問題(刪除 num 問題)或者我把它變成一個單一的 num chestion(刪除 mchoice 部分),它就可以工作。 我在 r-exams.org 上找不到這樣的例子,這就是我轉向這里的原因。

這是我的代碼:

```{r data generation, echo = FALSE, results = "hide"}
library(exams)
Fragen=data.frame(
  Fragen=c(
    "Vergleich Schlachtgewicht (g) männlicher und weiblicher Hühner (Hähne/Hennen) der gleichen Linie.",
    "Untersuchung der Anzahl Insektenarten, welche auf unterschiedlichen Feldern vorkommen (Magerwiese, Klee, je 10 Felder).",
    "Untersuchung Sulfatgehalt (mg) bei Wasserproben aus der Limmat. Die Proben wurden an zwei unterschiedlichen Stellen entnommen (Limmatquai, Werdinsel, während 14 Tagen)",
    "Untersuchung Kürbisgewicht (kg) bei Düngung mit Gülle oder Kompost"),
  Stichprobe1=c("Hahn","Magerwiese","Limmatquai","Guelle"),
  Stichprobe2=c("Henne","Klee","Werdinsel","Kompost"),
  mean1=c(2500,50,250,10),
  mean2=c(2000,20,200,12),
  sd1=c(300,20,50,5),
  sd2=c(300,10,40,5),
  n=c(20,10,14,16)
)
n=sample(4,1)

## DATA
x1=abs(round(rnorm(Fragen$n[n],Fragen$mean1[n],Fragen$sd1[n])))
x2=abs(round(rnorm(Fragen$n[n],Fragen$mean2[n],Fragen$sd2[n])))
datadf=data.frame(x1,x2)
names(datadf)=c(as.character(Fragen$Stichprobe1[n]),as.character(Fragen$Stichprobe2[n]))
write.csv(datadf, "stichproben.csv", row.names = FALSE, quote = FALSE)

alpha=0.05
ps1=shapiro.test(x1)$p.value
ps2=shapiro.test(x2)$p.value
pf=var.test(x1,x2)$p.value
if (ps1 > alpha & ps2 > alpha) {
  if (pf > alpha) {
    p=t.test(x1,x2,var.equal = TRUE)$p.value
  }else{
    p=t.test(x1,x2,var.equal = FALSE)$p.value
  }
}else{
  p=wilcox.test(x1,x2)$p.value
}
p
msol=c(ps1>alpha & ps2>alpha, pf>alpha,TRUE)
msol
```

Question
========

`r Fragen$Fragen[n]`

Die Daten sind im File [stichproben.csv](stichproben.csv). 

Answerlist
----------
* Die Stichproben sind normalverteilt
* Die Varianzen sind homogen
* Die Stichproben sind unabhängig
* Führe den am besten geeigneten Test durch und kopiere den p-Wert ins Feld:

Solution
========

```{r solutionlist, echo = FALSE, results = "asis"}

```

Meta-information
================
exname: t-Test unabhaengig
extype: cloze
exsolution: `r mchoice2string(msol)`|`r format(p)`
exclozetype: mchoice|num
extol: `r format(0.01*p)`

新答案(編輯:2020-06-07)

R-Forge (2.4-0) 上的當前 R/exams 開發版本已得到改進,以更好地支持cloze題中的mchoice元素。 運行你的exams2moodle("stichproben.Rmd")在Moodle 中產生一個這樣的練習:

Moodle 截圖

警告:默認情況下,這使用 Moodle 的多項選擇題評估規則,其中每個不正確的復選框都會消除一個正確的復選框。 原則上,可以更改eval exams2moodle()中的評估規則,但這並不適用於所有設置。 顯然,如果 Moodle 百分比僅加起來大約為 100%,但不完全為 100%,則無法正確讀取。 我的閱讀是這是 Moodle 中的一個錯誤。 另見下文。

老答案 (2020-05-17)

在 Moodle 完形填空練習中,多個答案都正確的多項選擇題有點棘手。 我的理解是這些實際上在一定程度上是不允許的(參見https://moodle.org/mod/forum/discuss.php?d=213016的討論)。 因此,我們只有包含單選元素但不包含多項選擇元素的完形填空練習示例。

[注意:行話不是跨系統統一的。 R/exams 中的“單選”在 Moodle 中被稱為“多項選擇,單選”。 而 R/exams 中的“多項選擇”在 Moodle 中被稱為“多項選擇,多項答案”。 在這里,我使用 R/exams 使用的較短的行話。]

實際上,我認為 Moodle 仍然不支持選擇題作為完形填空的元素。 這也將與您收到的錯誤消息一致,即要求一個正確的答案產生 100%。

然而,事實證明,在某些條件下它確實有效。 首先,您需要在exams2moodle()中選擇MULTIRESPONSE而不是MULTICHOICE類型(即,這可以在R/exams 端進行修復)。 其次,正確答案的百分比需要加起來正好為 100%。 不幸的是,這與需要33.33333%作為 1/3 點輸入的 Moodle 沖突。 我沒有找到解決方案 - 除了避免恰好三個答案正確的情況。

例如,我將上面的代碼復制到文件stichproben.Rmd ,然后運行:

set.seed(77)
exams2moodle("stichproben.Rmd", name = "stichproben", cloze = list(
  cloze_mchoice_display = "MULTIRESPONSE",
  eval = list(partial = TRUE, rule = "false2")
))

請注意,種子很重要,因為它導致選擇題中只有三分之二是正確的。 選擇eval規則,如果選擇不正確的項目,則減去 50% 的分數。 這一切都在 Moodle 中按預期工作。

但是,之前使用set.seed(1)運行上面的代碼會導致選擇題中的所有三個項目都是正確的。 然后我仍然收到您的問題中引用的錯誤消息,並且 - 如上所述 - 我不知道是否/如何避免這種情況。 我沒有找到解決辦法。 因此,就個人而言,我寧願在cloze題中避免使用mchoice元素,而是使用幾個schoice元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM