Moodle测验类型与正则表达式

时间:2013-11-07 03:37:40

标签: moodle

我的学术系主任在Moodle测验中给了我一个有趣的问题。

我有一个测验问题,我提出了一个输入编辑框。也许是Cloze,或者正则表达式的问题类型。我现在不确定。

这个问题值得2分。有一个输入框,输入根据输入字符串的两个子部分授予标记。

标记方案1:
你遵循他的建议|没有(任何)论证

标记方案1的含义:
如果学生输入“你已经遵循他的建议”,则会获得1分。如果学生的句子还包括“无论证”或“没有任何争论”,则再授予1个分数。两个部分的顺序很重要。我不能让学生输入“没有任何争论你遵循他的建议”并给出2分。

标记方案2:
学生应该|必须参加/做/参加考试

标记方案2的含义:
如果学生输入“学生应该”1分。如果学生的判决还包括“必须参加考试”或“必须参加考试”或“必须参加考试”,则会再获得1分。两个部分的顺序很重要。我不能让学生输入“没有任何争论你遵循他的建议”并给出2分。

我是如何实现这一点的?

问候 Frankie Kam

后记。 大鼠。刚被降级,因为这是一个“钓鱼补贴”的问题。完全配得上它。我现在通过http://regexone.com/了解正则表达式,以便将来我的问题可以更加面向研究,更具建设性......!

1 个答案:

答案 0 :(得分:4)

好吧,没有人帮助我,因为我在没有提供先前研究证据的情况下提出要求。因此,我不再依赖鱼的讲义,而是决定施展自己的诱惑,自己捕鱼。我的意思是,谷歌我自己。好的,在整个万维网上钓鱼48小时后,我得到了答案!

诀窍是在Moodle Cloze问题类型语法中使用“正则表达式简答题类型”语法。混乱?希望以下链接和信息将更清晰:

  1. 您需要从此处下载并安装“正则表达式简答题类型”插件https://moodle.org/plugins/view.php?plugin=qtype_regexp
  2. 下载并安装到您的/ question / type /文件夹。

    {2:REGEXP:~=students should have to take exams~=students should have to (take|do|sit) 
    exams~%50%students should.*#Feedback for half credit answer~%50%.*(have to 
    (take|do|sit) exams)$#Feedback for half credit answer}
    
    {2: ... } means that this question is worth 2 marks
    
    {..:REGEXP:...} identifies this question as a regular expression variant of the short 
    answer question type. It accepts non-case sensitive input strings and processes them 
    accordingly.
    
    "~=students should have to take exams" (minus the ") 
    

    意味着这是一个100%的答案,值得2分。

    1. 确保您还在moodle安装上下载并安装了所需的行为更多插件。这些插件是2个问题行为,位于: https://github.com/rezeau/moodle-qbehaviour_regexpadaptivewithhelphttps://github.com/rezeau/moodle-qbehaviour_regexpadaptivewithhelpnopenalty 或者从moodle的插件库下载http://moodle.org/plugins/browse.php?list=category&id=31 下载并安装到/ question / behavior /文件夹。

    2. 为了在Cloze语法中使用“正则表达式简答题类型”语法(更多关于这一点),您需要复制2个被黑客攻击的文件并覆盖您的/问题/ type / multianswer文件夹。

    3. 您可以阅读以下关键步骤: http://docs.moodle.org/25/en/question/type/regexp#The_RegExp_Short_Answer_Question

      1. 研究正则表达式!了解基础知识无可替代。我的意思是,在不知道规则和基本原则的情况下,如何期待在国际象棋或五人制足球或桥牌上获胜?所以退出你的yapping并在网上搜索一些最好的正则表达式资源。我曾经使用过三类正则表达式资源。
      2. 4.1对于正则表达式新手:     http://regexone.com/

        4.2有关更多参考,编码示例和语法:     https://kb.wisc.edu/moodle/page.php?id=26623     http://www.stedee.id.au/Learn_Regular_Expressions-WildCards     http://www.tjhsst.edu/~dhyatt/perl/exA.html     http://stefanstools.sourceforge.net/regexhelp.html     http://www.regular-expressions.info/characters.html

        4.3用于测试正则表达式代码结果的交互式正则表达式工具(非常有用!):     http://www.regular-expressions.info/javascriptexample.html

        1. 现在来到moodle工作室地下室,用一些原始编码和所有算法的东西弄脏手。你知道那些计算机科学家,软件工程师和程序员滔滔不绝地抨击普通IT用户的头脑。我正在考虑正则表达式代码,宝贝!这部分是您的stackoverflow用户来到这里。看看你是否有比心灵更好的解决方案。哦,是的,这是一个敢。
        2. 以下面的代码为例。

          I don't think {2:REGEXP:~=students should have to take exams~=students should have to 
          (take|do|sit) exams~%50%students should.*#Feedback for half credit answer~%50%.*(have 
          to (take|do|sit) exams)$#Feedback for half credit answer} exams.
          

          结果屏幕就是这样。

          A short answer syntax that has been injected with regular expression steroids to beef up its powers. Yeah, baby!

          让我们把它分解成字母汤,现在我们呢?

          "~=students should have to (take|do|sit) exams" 
          

          意味着Noodle,我的意思是Moodle,将为这些输入中的任何一个奖励2个完整的标记:

          students should have to take exams
          students should have to do exams
          students should have to sit exams
          
          "~%50%students should.*" 
          

          意味着如果输入的前半部分包含非学生敏感字符串“学生应该”,Moodle的测验引擎将授予1分(即2分的50%)。所以像“学生应该gobbledegook”这样的输入会给你1分。

          "~%50%.*(have to (take|do|sit) exams)$#Feedback for half credit answer" 
          

          表示如果输入句子结尾的字符串,则从2个标记中获得1个标记:

          “必须参加考试”或 “必须做考试”或 “必须参加考试”。

          美元符号($)是这个正则表达式代码背后的大脑,它检测句子是否以该特定字符串值结束。因此,输入结束于“Cruise必须做考试,宝贝!”不会匹配。只有像“克鲁斯攀登迪拜塔而他们仍需要参加考试”这样的句子确实会匹配。

          所以你有它。我设法游戏正则表达式游戏。检查我的正则克星克星!你一直困扰着我的编程生活。现在是时候把桌子打开了你,你是正则表达的bogeyman!我终于获得了相当程度的正则表达式理解,足以让我编写和编写一个Moodle问题类型,其中包含一些人为的伪造人工智能。

          现在我已经回答了我自己的问题,现在是时候将这个StackOverflow帖子的得分从卑鄙的-2提高到让N说为正。冲你的选票,伙伴堆栈流量的地球人!

          的问候, 弗兰基“我对这个正则表达式的东西只会非常生气” 赞美主!