28
数式自動採点 e ラーニングコンテンツ の問題フォーマット変換ツールの開発 樋口三郎 (龍谷大学理工学部) http://hig3.net

数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats from Maple T.A. to STACK on Moodle

Embed Size (px)

Citation preview

数式自動採点 e  ラーニングコンテンツの問題フォーマット変換ツールの開発

樋口三郎 (龍谷大学理工学部)http://hig3.net

数式自動採点 e  ラーニングコンテンツの問題フォーマット変換ツールの開発

•樋口三郎 (龍谷大学理工学部) http://hig3.net

•背景1,  背景2,  背景3  •目標  •方針と実装  •予備評価

やったこと

• LMS+CAS  1    Maple  T.A.  +  Maple• LMS+CAS  2    Moodle  Quiz+  Maxima  +  STACKQuestion  Type

• Quizの問題を• 1からエクスポート,  変換,  2にインポート

背景1:  Maple  T.A.  とは?

• Webベースの•学習者が数式で解答可能な•数式の「構造」に基づいて自動採点可能な•数学のテスト・評価(アセスメント)システム

• Maplesoft社のプロダクト

学習者から見たMaple  T.A.

(3*x-­‐3)^5

係数,  関数のランダム出題

数式エディタによる入力キーボード入力でも2次元表示

採点・学生へのフィードバック

フィードバック文字列をカスタマイズ可能

2015-­‐08-­‐31数理解析研究所 Maple  T.A.  理工系学部での基礎教育 6

正解判定基準をカスタマイズ可能(Maple  の式で [0,1]値を返す)

CAS=Computer  Algebra  System  Mapleが裏で動いてるCAS-­‐type  question

STACKとは

• Maple  T.A.  と類似の機能を持つオープンソースソフトウェア

• オープンソース CAS  Maxima• オープンソース LMS Moodleと協調して動作する• Moodleの Quiz  Activity  の STACK  question  type

背景2:龍谷大学理工学部でのMaple  T.A.利用

• 2015年4月に,  1年生1学年分のサイトライセンスを導入

•理工学部共通のオンラインリメディアル/入学前教育に使う

•組織的にコンテンツ作成を開始する予定

2015-­‐08-­‐31数理解析研究所 Maple  T.A.  理工系学部での基礎教育 8

CAS-­‐type  question  はコスト高

•複雑な構造• プログラムを書くようなもの•検証はランダムアルゴリズムのテストのようなもの

•再利用したい•共有したい

Maple  T.A.  → STACK

• Maple  T.A.  は有料• STACKはオープンソース,  無料

•世の中では,  共有された  Maple  T.A.  の CAS-­‐type  question  の一定のコンテンツ集積あり

•機関的,  個人的理由:• ロックインされたくない• 2年生以上にもSTACKで使いたい• コンテンツを公開したい

背景3:  CAS-­‐type  question  の コンテンツ共有

• 吉冨(2013):  CAS独立な仕様書のレベルで共有しよう.  特定のCASでのimplementation  は容易.• 中原,  中村,  谷口 (2013)  :  STACK形式で共有しよう

• 専用Moodleモジュール https://mathbank.jp• 北本(2013):  一般教員によるMaple  T.A.のCAS-­‐typequestion  のオーサリングは困難.  ベンダーがクラウドサービスすれば?• ベンダーの取組

• Maple  T.A.  Maple  Content  Center,  Maple  T.A.  Cloud• (Mathematica:  Wolfram  Demonstration  Project,    Mathworld)

• IMS  QTI  はCASは想定していない

目標

• Maple  T.A.  →  STACKの一方向コンバーター

変換の3つの問題

• LMS,  CAS  の機能の差分,  item  bank  meta  data  の差分

•特定の動作を表現する key-­‐value  list,  XML  の差

• CAS syntaxの差

評価,  フィードバックの計算方法Maple  T.A. STACK  potential  response  tree

input   i

f(i)

正解 不正解

input   i

f(i)1 0

1

1

0

0

固定フィードバック

固定フィードバック

フィードバック フィードバック

1 0α α

αααα

カスタマイズ可能

部分的正解

固定フィードバック

α

α

Maple  T.A..qu形式 key=value          CAS変数x,$nqu.1.topic=Exported  [email protected]=formula@          // Question  タイプqu.1.1.name=Integral  -­‐ Maple  Formula  @    //  問題名qu.1.1.question=<p>What  is  the  integral  of  $fdisp with  respect   to  x?</p>@ //  問題文qu.1.1.maple=evalb(($ANSWER)-­‐($RESPONSE)=0);@//  採点方法qu.1.1.maple_answer=$ans@ //  正解qu.1.1.mode=Maple@ //  解答方法qu.1.1.comment=<p>The  correct  answer  is  $ansdisp</p>@ //  フィードバック文字列qu.1.1.hint.1=<p>hint1  test</p>@ //  ヒントqu.1.1.hint.1.name=hint1@  [email protected]=$n  =  range(2,9);$ans =  maple(“x^$n”);$f  =    maple(“diff($ans,x)”);$fdisp=  maple(“printf(  MathML[ExportPresentation]($f))”);$ansdisp=  maple(“printf(  MathML[ExportPresentation]($ans))”);@ //  ランダム化qu.1.2.type=formula@…

MoodleMoodle  XML  形式CAS文字列x,@x@

<quiz><question  type="category"><category><text>Exported  Questions</text></category></question><question type="stack">  //  Question-­‐Type<name><text>Integral -­‐Maple Formula</text>  //  問題名</name><questiontext format="html"><text><![CDATA[<p>What is the  integral of  @Sfdisp@  with  

respect to  x?</p><p>[[input:ans1]]</p><div>[[validation:ans1]]</div>]]></text></questiontext> //  問題文<generalfeedback format="html"><text><![CDATA[]]></text>

<prt>  //  Potential  Response  Tree  <name>prt1</name><value<autosimplify<feedbackvariables<text</feedbackvariables<node<name<answertest<sans<tans<testoptions<quiet<truescoremode<truescore<truepenalty<truenextnode<trueanswernote

Maple  T.A.  とSTACKのCAS比較Maple  T.A.

$m=range(1,6);$n=range(1,6);condition:ne($m,$n);

$f=maple(“int (1/($m*x-­‐$n),x)”);

STACK

m:0n:0dummy:while(m=n)  do  (m:rand_with_step(1,6,1),  n:rand_with_step(1,6,1))

f:integrate(1/(m*x-­‐n),  x)

2015-­‐08-­‐31数理解析研究所 Maple  T.A.  理工系学部での基礎教育 17

開発したツールの仕様

• コマンドライン,  標準入出力• 入力Maple  T.A.  の .qu形式

• Question  type  を  Maple-­‐graded,  Formula,  Numeric  に限定• (その他,  アドホックな条件多数)

• 出力 STACK-­‐type  question  のMoodle  XML  形式• 不足する情報は決め打ちのデフォルト値で埋める• key-­‐value  list  を,  あらかじめ人間が与えた key  同士,  value  同士の対応表に従って変換する• CAS文法の完全な変換はあきらめて,  コメント化する.  一部のみ自動変換.  大部分は手動で変換.

Maple  T.A.の構造

• Maple  T.A.  ßàQuiz  Activity(+LMS)• Maple-­‐graded  Question  Type  ßà STACK  Question  Type• Question  Type  とは,  選択,  自由記述,  穴埋め,  CAS  

• Maple-­‐Graded  Question  Type  はMoodle  でいうCalculation  Quiz  Type  に STACKを継ぎ足したかのような形

変換ツールの対応するMaple  T.A.  Question  TypeMaple T.A. Question  Type 対応

Question  Designer △原理的には可能だが,  実装は先頭の問題-­‐解答のみ

Maple-­‐graded ○

Formula ○

Numeric ○ Calculated,  Calculated Simple  question   typeで対応可能な場合も

Multiple  Choice ×原理的には可能だが未実装.   Multichoice,  Calculated  Multichoice question   type  で可能な場合も

Multiple  Selection ×原理的には可能だが未実装.  Multichoice,  Calculated  Multichoice question   type  で可能な場合も

Essay × Essay  question   type  または Assignment  Activity  で対応か

Clickable  Image ×

実装

•対象• Moodle  2.8, STACK 3• Maple  T.A.  10  SP1

•使用言語• Python  2.7• XML操作ライブラリ lxml 3.4.4  

予備評価

Mode 問題数 評価

非サポートのQuestion   type 8 ー 変換しない仕様

Numeric 3 ◎ 手作業不要

Maple-­‐graded 2 ◎ ランダム化がなかったため手作業不要

3 ○ ランダム化部分で機械的な手作業

1 △ 非自明な手作業

合計 17

• テストデータ:  Maple  Content  Center  より“DerivativesMattRichey”  course  module  • (開発用テストデータとは別)

比較と観察

•問題-­‐採点-­‐フィードバックの自由度はSTACKのほうが高い

• CASの機能はMaple  T.A.  のほうが高い•両者の`question’はシステム内でほぼ同格

課題

•対応するQuestion  typeを必要な範囲まで拡大• (アドホックな)条件を取り除く• CAS syntax  の変換範囲を増やす

•逆方向の変換

• Moodle  との統合 or  Webサービス化

•大規模な評価

やったこと

• https://github.com/hig3/mta2stack.gitで公開予定• http://hig3.netあたりからリンクします

やったこと

• LMS+CAS  1    Maple  T.A.• LMS+CAS  2    Moodle  +  Maxima  +  STACK

•問題のデータを• 1からエクスポート,  変換,  2にインポート

龍谷大学理工学部での今後の使用のアイデア• 11月頃に進学が決定した学生の入学前学習• 従来は紙媒体の(低頻度)郵送で対応

• 常時モニタリング• 継続的に使っている問題プールが存在

• 問題の変換• ランダム化のポリシー→  仕様書