1

私の学科長は、Moodle クイズに実装する興味深い質問をくれました。

入力編集ボックスを提示するクイズの質問があります。おそらくClozeか、質問型の正規表現型でしょう。今のところわかりません。

問題は 2 点です。1 つの入力ボックスがあり、入力文字列の 2 つのサブセクションに基づいて、入力に点数が与えられます。

採点方式 1:
彼のアドバイスに従いました | 引数なし

採点方式の意味1:
生徒が「あなたは彼のアドバイスに従いました」とタイプした場合、1 点が与えられます。学生の文に「議論なし」または「議論なし」が含まれている場合、さらに 1 点が与えられます。両方のセクションの順序が重要です。学生に「何の議論もなく、彼のアドバイスに従った」と入力して 2 点を与えることはできません。

採点方式 2:
生徒は | 試験を受けなければならない/受けなければならない/受験しなければならない

採点方式の意味 2:
生徒が「生徒はすべき」と入力した場合、1 点が与えられます。学生の文に「試験を受けなければならない」または「試験を受けなければならない」または「試験を受けなければならない」が含まれている場合、さらに 1 点が与えられます。両方のセクションの順序が重要です。学生に「何の議論もなく、彼のアドバイスに従った」と入力して 2 点を与えることはできません。

これを実装する方法はありますか?

よろしく フランキー・カム

追記。ネズミ。これは「配布資料の釣り」のような質問であるため、格下げされました。十分にそれに値する。http://regexone.com/を介して正規表現について学んでいるので、将来、私の質問はより研究志向で建設的になります....!

4

1 に答える 1

4

事前調査の証拠を示さずに質問したので、誰も助けてくれませんでした。そこで、魚の配布資料に頼るのではなく、自分でルアーをキャストして自分で魚を釣ることにしました。つまり、Googleは自分で。よし、ワールド ワイド ウェブ全体で 48 時間釣りをした後、答えがわかりました!

秘訣は、Moodle Cloze問題タイプ構文内で「正規表現短文問題タイプ」構文を使用することです。混乱しますか?以下のリンクと情報がより明確になることを願っています。

  1. https://moodle.org/plugins/view.php?plugin=qtype_regexpから「Regular Expression Short Answer question type」プラグインをダウンロードしてインストールする必要があります。

/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 ") 

は、これが 2 点に値する 100% の回答であることを意味します。

  1. また、moodle のインストールに必要な Behavior more プラグインもダウンロードしてインストールしてください。これらのプラグインは、https: //github.com/rezeau/moodle-qbehaviour_regexpadaptivewithhelp および https://github.com/rezeau/moodle-qbehaviour_regexpadaptivewithhelpnopenalty ある 2 つの質問動作です。 .org/plugins/browse.php?list=category&id=31 両方をダウンロードして、/question/behaviour/ フォルダーにインストールします。

  2. 「Regular Expression Short Answer question type」構文を Cloze 構文内で使用するには (これについては後で詳しく説明します)、/question/type/multianswer フォルダーの 2 つのハッキングされたファイルをコピーして上書きする必要があります。

この重要なステップについては、http: //docs.moodle.org/25/en/question/type/regexp#The_RegExp_Short_Answer_Questionで読むことができます。

  1. 正規表現を勉強しよう!基本を知っていることに勝るものはありません。つまり、ルールと基本を知らずに、チェスやフットサル、ブリッジで勝つことをどのように期待できるでしょうか。だから、おしゃべりをやめて、ネット上で最高の正規表現リソースのいくつかにグーグルでアクセスしてください. 私が仕事をするために使用した正規表現リソースには 3 つのカテゴリがあります。

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 のユーザーがここに来た目的です。心よりも優れた解決策があるかどうかを確認してください。ああ、そうです、それはあえてでした。

以下のコードを例にとります。

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.

結果の画面はこれです。

その力を強化するために正規表現ステロイドが注入された短い答えの構文。 ええ、赤ちゃん!

それをアルファベットのスープに分解しましょう。

"~=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.*" 

は、入力の前半に大文字と小文字を区別しない文字列「students should」が含まれている場合、Moodle のクイズ エンジンが 1 点 (2 点の 50%) を与えることを意味します。したがって、「学生はがぶ飲みする必要があります」などの入力は、1 点を与えます。

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

は、文が次の文字列で終わる文字列を入力すると、2 点満点中 1 点を取得することを意味します。

「試験を受けなければならない」または「試験を受けなければならない」または「試験を受けなければならない」。

ドル記号 ($) は、文がその特定の文字列値で終わるかどうかを検出するこの正規表現コードの頭脳です。だから、その入力は「クルーズは試験をしなければならない、ベイビー!」で終わります。一致しません。「クルーズはドバイ タワーに登りますが、それでも試験を行う必要があります」のような文だけが、実際に一致します。

それで、あなたはそれを持っています。私はなんとか正規表現ゲームをプレイしました。私の正規表現の宿敵をチェックメイト!あなたは私のプログラミング人生を通して私を悩ませてきました。さあ、テーブルがあなたに向けられる時が来ました、あなたは正規表現のボギーマンです! 私はついにまともなレベルの正規表現の理解を達成しました.Moodleの質問タイプを書いてプログラムするのに十分なレベルで、人工的な疑似偽の人工知能が含まれています.

自分の質問に答えたので、この StackOverflow の投稿のスコアを卑劣な -2 から上げて、N ポジティブとしましょう。仲間のスタックオーバーフロー地球人、あなたの投票にパンチを入れてください!

よろしく、フランキー「私はこの正規表現のせいで見た目だけ怒っているだけです」カムは主を賛美します!

于 2013-11-19T00:38:38.027 に答える