导入“GIFT”格式文件
GIFT是Moodle从文本文件导入问题的通用格式。它支持单选题、是非题、简答题、匹配题、数学题及填空题。在一个单独的文本文件中可以添加多种类型的题目,这种格式还支持整行注释、问题名称、反馈和百分比权重。
您的文本编码必须是utf-8格式(除非您只使用ASCII字符)。以下是一个问题文本文件的例子:gift/examples.txt.
基础
GIFT文件里的每一个问题中不能包含空行。但问题之间至少有一个空行。如果在您的问题里需要一个空行您可以用:\n。
您可以在任何地方用注释,但是必须在这行注释前用双斜线(//)。
问题类型
单选题:
对于单选题:错误答案以波浪号(~)为前缀,正确答案以等号(=)为前缀。例如:
Who's buried in Grant's tomb?{~Grant ~Jefferson =no one}
Missing Word格式可以在句子中自动插入一个填空线(像_____)。用Missing Word格式,可以根据需要,让填空线出现在句子的任何地方,答案就填在这条线上。例如:
Grant is {~buried =entombed ~living} in Grant's tomb.
如果答案出现在句号前,"missing word"格式会插入一个填空线。在 Missing Word格式中可以填写所有的问题类型。
必须有一个空行(双回车)把问题分开。为了表示清楚,答案要分行写。例如
The American holiday of Thanksgiving is celebrated on the { ~second ~third =fourth } Thursday of November. Japanese characters originally came from what country? { ~India =China ~Korea ~Egypt}
简答:
在简答题中,答案前面都是以等号(=)为前缀,这表明它们都是正确答案。答案中不能包含波浪号前缀。例如:
Who's buried in Grant's tomb?{=no one =nobody} Two plus two equals {=four =4}.
如果只有一个正确的答案,只要不与是非题混淆,可以不写等号前缀。
是非题:
是非题的答案表明命题是对还是错。答案应该写成{TRUE} 或 {FALSE},也可以简写成{T} 或{F}。例如:
Grant is buried in Grant's tomb.{F} The sun rises in the east.{T}
匹配题:
匹配题以一个等号(=)开始,用符号“->”分开,至少包含三对匹配项。例如:
Matching Question. { =subquestion1 -> subanswer1 =subquestion2 -> subanswer2 =subquestion3 -> subanswer3 } Match the following countries with their corresponding capitals. { =Canada -> Ottawa =Italy -> Rome =Japan -> Tokyo =India -> New Delhi }
匹配题不支持反馈或答案的百分比权重。
数学题:
数学题的答案必须以数学符号(#)开始。数字答案可以包括一个误差容限(被一个冒号分开,写在正确答案之后)。例如:如果正确答案在1.5和2.5之间,这时可以写成{#2:0.5}。这表明2在0.5的误差容限内是正确的(例如:从1.5到2.5这个范围)。如果没有详细说明误差容限,可以假定为0。例如:
When was Ulysses S. Grant born? {#1822} What is the value of pi (to 3 decimal places)? {#3.1415:0.0005}.
Optionally, numerical answers can be written as a span in the following format {#MinimumValue..MaximumValue}.
What is the value of pi (to 3 decimal places)? {#3.141..3.142}.
Moodle的浏览器界面不支持多项数学题答案,但是Moodle的代码支持,GIFT也支持。这样就可以用来指定数字的多重范围;当与百分比权重结合时,特别有用。如果使用多个答案,这些答案必须用等号分开,就像简答题一样。例如:
When was Ulysses S. Grant born? {# =1822:0 =%50%1822:2}
注意:因为Moodle浏览器GUI不支持数学问题的多项答案,通过Moodle就不能看到和编辑多项答案。改变原来的数字答案的唯一方法是删除或重新导入这个问题(或者选择其它语言,像phpMyAdmin)。
选择
除了这些基本的问题类型,此过滤器还提供了如下选择:整行注释、问题名称、反馈和百分比权重。
整行注释:
注释不能被导入到Moodle中,但可以包含在文本文件中。注释可以用于提供标题或关于问题的更多信息。以双反斜线开始的所有行都会被过滤器忽略。例如:
// Subheading: Numerical questions below What's 2 plus 2? {#4}
问题名称:
您可以把一个问题名称放在双冒号之间并置于开头。例如:
::Kanji Origins::Japanese characters originally came from what country? {=China} ::Thanksgiving Date::The American holiday of Thanksgiving is celebrated on the {~second ~third =fourth} Thursday of November.
如果没有指定问题名称,那么缺省情况下整个问题就是名称。
反馈:通过在答案后加一个数学符号(#)和反馈,可以把反馈放在每个答案中。
What's the answer to this multiple-choice question?{ ~wrong answer#feedback comment on the wrong answer ~another wrong answer#feedback comment on this wrong answer =right answer#Very good!} Who's buried in Grant's tomb?{ =no one#excellent answer! =nobody#excellent answer!} Grant is buried in Grant's tomb.{FALSE#No one is buried in Grant's tomb.}
对于单选题,反馈只在学生选择答案后显示。对于简答题,反馈只在学生输入相应的正确答案时显示。对于是非题,导入的反馈被保存起来,当学生选择错误答案时,显示该反馈。因此,在上述例子中,学生只有选择TRUE时,才能看到反馈。
答案的百分比权重:
答案的百分比权重既可以用于单选题,也可以用于简答题。答案的百分比权重在波浪号(单选题)或等号(简答题)后,把期望的百分数填在两个百分号内(例如:%50%)。选项可以与反馈结合在一起。例如:
Difficult question.{~wrong answer ~%50%half credit answer =full credit answer} ::Jesus' hometown::Jesus Christ was from { ~Jerusalem#This was an important city, but the wrong answer. ~%25%Bethlehem#He was born here, but not raised here. ~%50%Galilee#You need to be more specific. =Nazareth#Yes! That's right!}. ::Jesus' hometown:: Jesus Christ was from { =Nazareth#Yes! That's right! =%75%Nazereth#Right, but misspelled. =%25%Bethlehem#He was born here, but not raised here.}
注意:最后两个例子在本质上是一样的,第一个作为单选题,然后作为简答题。
注意:通过浏览器界面指定答案百分比权重的方法,可能不起作用。导入页面的分数匹配下拉列表,可以决定答案的百分比权重是怎样起作用的。
您既可以要求报告错误答案,也可以要求把答案权重调为最有效的答案权重。
给问题指定文本格式
问题文本只允许有一个可选择的文本格式。目前,可以用的格式有moodle(Moodle自动套用格式),html(HTML格式),plain(Plain文本格式)以及markdown(Markdown 格式)。格式在问题文本前的方括号内指定。 在Moodle中关于文本格式的更多信息。[markdown]The *American holiday of Thanksgiving* is celebrated on the { ~second ~third =fourth } Thursday of November.
多选题:
多个答案选项用于多选题,为了得到满分,学生必须选择两个或两个以上的答案。通过把部分答案权重赋值于多个答案,激活多个答案选项。这时,只选择一个正确答案不能得到满分。例如:
What two people are entombed in Grant's tomb? { ~No one ~%50%Grant ~%50%Grant's wife ~Grant's father }
注意:任何答案都没有等号(=),答案的权重百分比总和不能超过100%。否则,Moodle会返回一个错误提示。为了避免学生通过简单的核算答案而得到满分,最好把错误答案设置为负权重。
What two people are entombed in Grant's tomb? { ~%-50%No one ~%50%Grant ~%50%Grant's wife ~%-50%Grant's father }
特殊字符 ~ = # { }:
这些符号~ = # { }控制过滤器的操作,在问题中不能用作一般的文本。因为这些符号有专门的作用:决定过滤器的操作,所以被称作“控制符”。但是,有时您可能要用这些符号中的一个,例如:在一个问题中用到一个数学公式。处理这个问题的方法是“避开”这些控制符。您只需在控制符前加一个反斜线(\),这样,过滤器就知道了:您想用它作为文字字符,而不是控制符。例如:
Which answer equals 5? { ~ \= 2 + 2 = \= 2 + 3 ~ \= 2 + 4 } ::GIFT Control Characters:: Which of the following is NOT a control character for the GIFT import format? { ~ \~ # \~ is a control character. ~ \= # \= is a control character. ~ \# # \# is a control character. ~ \{ # \{ is a control character. ~ \} # \} is a control character. = \ # Correct! \ (backslash) is not a control character. BUT, it is used to escape the control characters. }
当运行这个问题时,反斜线就被忽略了,也不会被保存在Moodle 中。
其它的选择:
简答题可以通过在下一行中把“0”变为“1”来区分大小写:
$question->usecase = 0; // Ignore case
上海师范大学 教育技术系 06级研究生 张志梅译 zzmei84@gmail.com
上海师范大学 教育技术系 06级研究生 郑起运 李岩 夏丽君 刘启刚校