maple t.a.10の作問方法 best practice to author maple t.a. 10 questions with the question...
TRANSCRIPT
MapleT.A.10の作問⽅法2017-02-20
樋⼝さぶろお http://hig3.net
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 1
お断り以下をごっちゃにして説明しています.• MapleT.A.10の仕様はこう.•ここのプロジェクトのルールとして問題はこういう作り⽅をすることにしている.•問題はこう書くのが美しいと思う.
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 2
MapleT.A.の3層構造
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 3
QuestionDesignerに到達•リンク集 http://hig3.net →LearnMathMoodle• MapleT.A.にログインhttps://maple.st.ryukoku.ac.jp/mapleta/• MTA作問練習クラス• (ヘッダ内メニュー)問題•問題を作成• (左メニュー)「新規の問題」→「問題デザイナー」• (アイテムの▼)「複製」→「編集」• インポートも可能
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 4
QuestionDesignerへの⼊⼒• 問題名
• プロジェクトのポリシーに従う• 問題のテキスト
• HTML.ソースorWYSIWYG編集.• MapleT.A.変数$変数名が値に置きかえられる.• 数式は¥(¥LaTeX ¥) or <div>¥[ ¥LaTeX ¥]</div>• ☑アイコンで解答欄を挿⼊する必要
• アルゴリズム• $変数名=値;• $変数名=MapleT.A.のコマンド;• $変数名=maple(“Maple変数i=0;Mapleのコマンド”);• :コメント;
• フィードバック• 学習者の解答⼊⼒後に表⽰される• 「問題のテキスト」と同様.
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 5
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 6
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 7
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 8
解答エリアの挿⼊• Maple採点を選択•重み付け 1•解答 $ans•採点コード ($grade)(($ANSWER),($RESPONSE));• $ANSWER=上の解答,$RESPONSE=学習者の⼊⼒• アルゴリズム内で関数定義
• $grade=maple(“proc(A,R)evalb(simlify(A-R)=0);endproc;”);他•式タイプ 式 orMaple構⽂ (理由あり)•テキスト/シンボル⼊⼒受講者選択可能 orテキスト⼊⼒のみ (式タイプに対応)
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 9
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 10
⽅針•なるべくMapleT.A.変数で式全体(係数でなく)を保持.• Mapleコマンド(MapleT.A.コマンドでなく)で計算•答 $ansは⼿で計算して書いておくのでなく,$fnからMapleコマンドで計算•最初のいくつかのMapleT.A.代⼊⽂だけ変更すれば,ランダム範囲が変更されるように.
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 11
流れ
ランダム係数$a
問題⽂の数式 $fn 解答 $ans
表⽰⽤数式$fndisp
表⽰⽤解答$ansdisp
採点⽤関数$grade($ans,R)
Maple Maple
注:逆に,きれいな$ansから $fnを決めることもある.
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 12
Maple数式から表⽰形式への変換• アルゴリズム
• $fn=maple(“2*x^3”);• $fndisp=maple(”printf(MathML[ExportPresentation]($fn));”);• $fntex=maple(“printf(latex($fn,output=string));”);
• 問題のテキスト• $fn →2*x^3• $fndisp →2x3• ¥(¥int_0^{$fntex}¥sin¥thetad¥theta¥)→LaTeXの⼀部として
• フィードバックの⽂例• 「正解は $ansdispです.テキストモードでは $ansと⼊⼒します」
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 13
アルゴリズム内のMapleT.A.コマンド• $n=range(3,7);
• 3以上7以下の⼀様ランダムな整数• condition:ne($a,$b);
• ne=notequal.$a≠$bが成⽴しないかぎり振り出しに戻れ.• 他に gt=greaterthan.$a>$b,ge,lt,leなど.
• $str=strcat(“A”,”K”,”B”,maple(“6*8”));• ⽂字列連結.
• 他にもあるけど,なるべく使わずに.MapleコードでできることはMapleT.A.コードで.• MapleT.A.変数 $iのスコープは「問題内」
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 14
アルゴリズム内のMapleコード• Mapleコードmaple("")内では,MapleT.A.変数 $変数名は参照できるが代⼊できない.単に値に置換されるだけ.
• Mapleコードの返り値がMapleT.A.変数 $変数名に代⼊される.
• $a=-1;$b=maple("1+$a");はエラー.1+-1となるから.Mapleコード内では必ず括弧でくるむ.($a)
• ランダム多項式,⾏列,ベクトル• $p=maple("randomize():randpoly(...)");• $v=maple("randomize():LinearAlgebra[RandomVector](3)");• $seed=range(1,1000);• $m=maple("randomize($seed):LinearAlgebra[RandomMatrix](3,3)");• 複数のrandomize()を使うとき,randomize()は時刻に基づいて適当に seedをセットするので,seedを与える必要.
• Maple変数 iのスコープはmaple("")内.
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 15
Mapleコマンドで有限個リストからのランダム選択• $fnlist=maple("[sin(x),cos(x),tan(x)]"); //[]は配列• $n=maple("nops($fnlist)");//要素数• $i=range(1,$n);乱数• $fn=maple("op($i,$fnlist)");//1からn• :or$fn=maple("$fnlist[$i]");
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 16
今回まだカバーできてないこと• 縦ベクトル <a,b,c>,横ベクトル <a|b|c>• ⾏列 <<1,2>|<3,4>>=<<1|3>,<2|4>>• 線形代数 LinearAlgebra[Equal]($mat1,$mat2);
• 等式による解答• 集合による解答• リスト(配列)による解答
• ⽅程式を解く• 簡単な答から問題を作る
2017-02-20樋⼝三郎 MapleT.A.の作問⽅法 17