初めに
e-Learning のコンテンツを作成するツール(オーサリングツール)の解説です。以前に作成した,数式自動採点コンテンツと自由記述を対象とした手動採点のコンテンツの両方をあわせた機能を有しています。加えて動画で回答するコンテンツも作成できるようになりました。数式は自動採点されますが手動で自動採点の点数を上書き修正することも可能です。コンテンツはSCORM対応で,ほとんどのLMSで利用可能です。
以下,下記の順で利用方法の説明を書いてみます。
注:アプリはサーバー上にテンポラリーフォルダーを作成します。そのフォルダーの有効期限は最短24時間となっています。
オーサリングツール は,四つのタブと仕上がりイメージを表示するパネルで構成されています。簡単に,各タブの機能の解説を記します。
(1) メイン タブ
メインタブには,タイトルの決定,採点サーバーの指定,キーワードの指定(現在利用していません),以前作成したSCORMファイルの読み込み,SCORMファイルの書き出しの機能があります。「Account」ボタンは,利用者のパスワードやメイル等の設定をするためのものです(利用の仕方はこちら)。
「server」は,解答の保存や採点をするもので,現在 kanaike.susi.oita-u.ac.jp のみです。コンテンツを置く LMS サーバーが(WebClassやブラックボード,Moodleのあるサーバーが),httpsであれば https://kanaike.susi.oita-u.ac.jp を,httpであれば http://kanaike.susi.oita-u.ac.jp を指定してください。keyword には現在機能を持たせていません(将来的に問題バンクでの検索に利用したいと考えています)。
「SCORMファイルの読み込み」はローカルから以前に作成したSCORMファイルをアップロードして,再編集する時に使用します。作成するSCORMファイル自体がコンテンツの保存ファイルとなっています。
「SCORM作成」ボタンを押すと,SCORMファイル(zipファイル)が作成され,ボタンの右側にリンクが表示されます。リンクをクリックして,ファイルをダウンロードしてください。
(2) 問題文 タブ
問題文タブでは,問題文章の作成をします。HTMLによる文の記述,問題文の縦サイズの変更,利用する各種メディアファイルのアップロードなどの機能があります。
左側のテキスト記入のエリアに,問題文を,HTMLで記入します。下方にある「更新」ボタンをクリックすると右側の問題文イメージの表示エリアが更新されます。問題文の横サイズは 640px です。縦は,ラジオボタンで変更できます。
問題文中で数式を記入する場合には,Mathjax の機能を使用します。$\frac{1}{2}$ と記入すれば \(\frac{1}{2}\) と表示されます。独立した数式を記入する時は \[ c^2 = a^2 + b^2 \]
などと記入すると下記のように表示されます。
\[ c^2 = a^2 + b^2 \]
文中で使用する画像は,下方にある「登録」の機能を利用して,サーバーにアップロードし,使用します。問題文がある(index.html がある)フォルダーと同じ場所にコピーされますので,特にパスを指定することなく,使用できます。音声は mp3,動画は mp4 が利用できます。アップロードしたファイルはチェックして削除することも可能です。
一般的にブラウザの音声制御用のコントローラーはサイズが大きいです。そのためデフォルトのコントローラーは表示せず,小さなサイズの画像に制御の機能を持たせたほうが場所をとりません。それで,制御用のボタン画像を用意しています。オーサリングツールを最初に開いたときのHTML記述を参考にして,ご利用ください。images というフォルダー内に置いてあります。動画用のコントローラーはブラウザのものを使用しても場所をとらず,そのままデフォルトのコントローラーを表示させて使用しても良いと思います。
アップロードしたファイルは下方の枠内にリスト表示されます。これをチェックして「Delete」ボタンを押すと消去されます。
上方にある青い「定型句表示」をクリックすると数式などの記入例が現れます。
(3) 解答欄 タブ
解答欄タブでは,解答欄を追加して正解をセットします。下図は数式で解答する問いを作成している画面です。問いの種類に応じて,設定を入力するパネル(左方)は変化します。
最初に「解答欄を追加」ボタンをクリックして,解答欄を問題上に配置します。最初は真ん中に配置されるので,ドラッグするか,座標欄に数値を記入して位置の調整をします。次に「選択」というラベルのドロップダウンリストで採点方法を選びます。図では数式で答えるタイプの「Expression」を選びました。他には「Dimension」「Selection」「none」「tex」「dictation」「video」があります。「Expression」の場合には,さらに計算問題,相対的あるいは絶対的な数値評価等の細かな指定を「評価選択」ドロップダウンリストで選びます(数式の採点はSTACKというプロジェクトの成果を利用しています)。
下図に,自由記述タイプの「none」を選んだ場合の画面をあげます。自由記述のタイプでは,学生の解答に幾らか処理を加えます。改行の削除や全角文字を半角に変換する等の処理をチェックして指定します。
解答欄に付けられる順番は変更が可能です。「順位を上へ」ボタンで,順位を上位に変更可能です。
(4) プレビユー タブ
プレビュータブでは,正解や採点サーバーなど,問題の構成要素の確認と仕上がりを見ます。数式で解答する問題では,実際に解答して,採点の機能を試すこともできます。左のテキストを表示しているエリアには,問題の構成情報が表示されています。採点サーバー,採点スクリプト,解答の設定内容などが表示されています。これは SCORM コンテンツに含まれる configfile.xml の内容を表示しています。ただし,実際の configfile.xml では,正解が暗号化されています。
プレビューボタンを押すと,仕上がりのコンテンツが(ブラウザの設定によりますが)別なタブか窓で表示されます。コンテンツを開く際に,「SCORMと接続されていません」等の警告がありますが,これはコンテンツがLMSに配置されていない為で,問題ありません。下図は数式で解答する問題タイプのプレビューです。自動採点が可能なタイプであれば,採点の機能を試すこともできます。
以下では,順を追ってコンテンツを作成してみます。自由記述で解答する問いと数式自動採点の問いを両方含む問題を作成します。
まず,メインタブでタイトル等を記入します。”server” とは LMS の server ではなくて,採点スクリプトを実行する server です(今のところ,kanaike.susi.oita-u.ac.jp のみ)。keyword は,将来検索用にと考えて用意した項目ですが,現在はまだ特に利用していません。「SCORMファイルの読み込み」は以前に作成したコンテンツを読み込むもので,「SCORM作成」ボタンはコンテンツを zip ファイルとして作成し,そのリンク先を表示します。下記画面では,タイトル,keyword を記入しています。
メインタブの各項目の変更は,すぐにコンテンツに反映されます。プレビュータブに切り替えると,更新されていることが確認できます。左側のテキスト表示エリアで,タイトルや keyword が確認できます(このエリアは編集できません)。
Preview ボタンをクリックすると,コンテンツの現在の状態が確認できます(別窓(タブ)で表示されますので,初回は,ブラウザからこのサイトでポップアップを許可するかどうか 確認があると思います)。先ほど記入したタイトルがコンテンツ上部のバーに表示されているのが確認できます。
いったんプレビューを閉じて,問題文タブに切り替えます。最初に,余分なファイルを削除します。 「Media List」 にあるファイルをチェックして「Delete」ボタンを押すと削除されます。下図は削除された後のメッセージで,削除されたファイルの名前が返されています。
次に,問題の本文を作成します。左上の欄にHTMLコードを記入して「更新」ボタンを押すと右側の欄に反映されます。本文中で数式を書く際に Mathjax が利用できます。例えば $\lambda$
と記入すると \(\lambda\) と表示されます。独立した数式は $$
で囲みます。四角い箱は $\fbox{ (1) }$
と記入して,\(\fbox{ (1) }\) と表示されます。
この他の機能としては,問題文で使用する画像ファイルや音声ファイルのアップロードが可能です。「参照」ボタンを押して,画像ファイルをローカルのパソコンからアップロードします。アップロードが終了すると,「Media List」にファイル名が表示されます。アップロードしたファイルは本文のHTMLソースと同じフォルダー内にコピーされるので,特別なパスを記述する必要はありません。
コンテンツの縦の寸法を伸ばすときには,「文の高さ」ラジオボタンで適当な縦の長さ(ピクセル)を選んで,「更新」ボタンをクリックします。
次に,「解答欄」タブに移ります。まず,「解答欄を追加」ボタンをクリックして,完成イメージ上に解答欄を追加します。解答欄をクリックすすると,タブの左側に現在の解答欄の設定が表示されます(ここでは,デフォルト値)。解答欄はドラッグして位置を自由に変更できます。変更した座標値は,すぐさま入力欄「座標(x,y)」の値に反映されます。下図は解答が自由記述のタイプの「none」の場合です。
解答方法のタイプは「選択」ドロップダウンリストで選びます。「選択」ボタンにマウスを重ねると,ドロップダウンリストが現れます。「Expression」は数式で解答するタイプ,「Dimension」は次元を答えるタイプ,「Selection」は選択枝,「none」は自由記述のタイプ,「tex」は tex の記述が利用できるタイプで化学式等が記入可能です。「dictation」は英語などの分かち書き言語の聞き取り(ディクテーション)用で,採点の際に自動的に,単語数のカウントや,解答者が正解に現れない単語を解答した場合に色分けして赤く表示する機能があります。「video」は動画で回答するタイプです。
正解を記入し,「Regulation」を適宜設定します。「Regulation」とは,学習者の解答に加える処理のことです。問題作成者が設定する正解にも同じ「Regulation」が適用されます。「none」は自由記述の解答で,手動採点となります(採点履歴が蓄えられた後なら,履歴を参照した自動採点も可能ですが)。そのため,正解に重要な意味はありません。この問いでは他にも正解があるのですが,例えば正解のヒントとして”物質波かドブロイ波が正解”と「正解」欄に記入しておいても結構です。最後に「更新」ボタンをクリックして設定を解答欄に反映させます。「Search cash」は採点の際に過去の採点の履歴を参照して採点するかどうかを指定します。通常は「Yes」として,参照するで結構ですが,実験結果の判定のような,他の解答欄の結果を参照して判定する場合には「No」にしてください。他には「video」等の大きなデータサイズの場合は,デフォルトで「No」に設定されます。
2問目の解答欄を追加します。「選択」のリストで Expression を選びます。数式で解答するタイプですが,この場合さらに「評価選択」リストから詳細な評価方法を選びます。ここでは AlgEquiv を選びました。典型的な物理の評価方法では,正解と解答が恒等式であれば正解としますが,そのような採点方法です。数学の計算問題のように,最後まで式変形がなされているかどうかが問題となるときには, EqualComAss を選びます。FacForm は因数分解ですが,「AT Option」 に主変数を指定します。他に,よく利用するものとしては,数値の絶対精度を比較する NumAbsolute と,相対精度で比較する NumRelative があります。それぞれ,「AT Option」に許容範囲を指定します。評価方法の多くは「satck」というプロジェクトから借用しています。詳細は stack のサイトを参照してください。
ここでは,「評価選択」としては AlgEquiv を選択し,「TAns」欄(正解欄)に h/p
と記入しました。「更新」ボタンをクリックすると,解答欄に反映されます。「Operation for sans」と「Operation for tans」はそれぞれ解答(学生の解答:sans)と正解(先生の解答:tans)へ加える処理を記入する欄です。ここは Maxima という数式処理ソフトウェアのコードを記入します。とくに処理をする必要がない限りは default のままにしておいてください。正解は \(\TeX\) の形式では記入しません。 Maxima の形式に従います。そうは言っても,ほとんど通常の数式の取り扱い方と同じです。四則演算は + - * /
を用います。積が入る場合には必ず *
を挿入します。\(\cos \theta \) は,cos(theta)
と記入します。下付きは特殊で x[1]
と記入すると, \(x_1\) と表示されます。記入方法はコンテンツに解答する場合と同じですので,コンテンツの利用方法のチュートリアルを参照してください。下図では,解答欄の高さを調節して,44 pixel にしています。また「順位を上へ」ボタンを押すことで,解答欄の順番を変更することが可能です。
Preview タブに切り替えます。左側にコンテンツの構成情報が表示されています。この欄は編集できません。この中に author_name タグがあります。コンテンツの作成者を示すものですが,このコンテンツは手動採点が可能なコンテンツなので,誰が採点するかを決める必要があって,この author_name タグに記されている人だけがこの教材を採点することが可能です。
「Preview」ボタンをクリックし,コンテンツを表示させます。開く際に,LMS との接続や異常終了関連の警告メッセージが表示されることがありますが,問題ありません。コンテンツを LMS に配置した場合と同様に解答可能です。
採点のモードには即時採点の「immediate」と後採点の「later」があって,コンテンツにもその「Mode」が表示されています。初期状態がどちらになるかは作題者の初期設定で決まります(変更も可能)。コンテンツを LMS に配置した後であれば,採点ツールで変更も可能です。しかしこのプレビューでは,問題が自動採点可能なタイプであれば,作題者の初期設定にかかわらず採点されます。手動採点のタイプでは Accepted と表示されます。プレビューではデーターベースへの記入はありません。
最後に SCORM コンテンツを作成し,保存します。プレビューを閉じて,メインタブに戻ります。
「SCORM作成」ボタンをクリックすると,ボタンの右側に SCORM コンテンツへのリンクが現れます。
リンクをクリックして,ダウンロードします。SCORM ファイルは zip ファイルです。
次回, SCORM ファイルを修正する時には,このメインタブで 「参照」ボタンを押して,SCORM ファイル(zipファイル)を読み込むと,以前のコンテンツが再現されます。下図は先ほどダウンロードした zip ファイルを読み込んだところです。「ファイルを選択」ボタンの横に読み込んだファイルの名前が表示されています。一旦オーサリングツールに読み込むとコンテンツの id が新しくつけ直されます(別のコンテンツとなる)。他の人が作成したコンテンツを読み込んだ場合も id は新しく付け直され,また作成者は自分に変更されます。
解答方法には選択肢も利用できます。下図はその例です。まず,評価方法として「Selection」を選びます。次に,選択肢に付けるラベルを決めます。これは,先頭に付ける 1,2,3 … や,a,b,c … 等の記号のことです。後は,表示するラベルと正解をクリックして設定します。
TeX を利用した解答も可能です。数式での解答とは違って,解答はTeX のソースを入力します。化学式を答えるような場合に利用できます(mhchem というマクロが読み込まれています)。下図は解答欄を設定する所です。適当な「Regulation」を設定します。mhchem では空白をすべて削除すると上手く表示されません。
下図は,プレビュータブから,コンテンツを開いて入力用のヒントを表示させたところです。
数式による解答では,学習者の解答を Maxima で処理することが可能です。下図は解答の次数を判定するもので,学生の解答(sans)に処理を加えています。 degree という関数(stack 独自の関数)で解答の次数を求めています。先生が記入した正解(tans)には手を加えていません。このsans と tans に関する処理の最後の行の出力を比較して判定します。
上記の処理は,AlgEquiv,NumAbsolute,NumRelative のみ可能です。デフォルトで記入されている "sans:''sans;"
と "tans:''tans;"
は,解答と正解をとくに処理することなくそのまま比較するコードです。暗黙のうちに仮定されていることとして,変数 sans, tans に,それぞれ解答者の解答と正解が代入されていますが,評価は未評価の状態で代入されています(Maxima のコードで書けば tans は, tans:'(tans);
となっています)。デフォルトの記述は,この未評価の式をあらためて評価するコードとなっています。
下図は,解答の式の中にある変数 x に 1 を代入して計算するコードです。正解には 2 を記入して,こちらはとくに何も処理をしません。
Maxima での処理は下記のようなものです。最後の行で出力される 2 が比較に使用されます。%i
は入力を示し,%o
は出力を示しています。
(%i4) sans:''x+1
(%o4) x+1
(%i5) subst(x = 1,sans)
(%o5) 2
複数の解答欄の入力を用いて,採点する機能もあります。実験などで利用することを想定した機能です。測定した値から偏差などを計算する場合に,適切な計算がなされているかどうか検証する場合などを想定しています。下図は測定したデータの線形Fitを題材としたコンテンツです。解答欄の(1)から(10)に測定値を入力して,線形近似した計算結果を(11)と(12)に入力します。
解答欄のうち (1)から(10) の欄は判定をしません。そのために「NoneEvaluate」という判定?を用意しました。解答欄(11)は TAns には適当に none (とくに意味はありません)と記入して,(1)から(10)までの解答欄に記入された値から,正解を用意しています。このように他の解答欄の値を参照する場合には「Search cash」を No にしてください。
下記のコードが (11) の解答欄での処理で,正解を準備する maxima のコードです。
xlist:[];
n:5;
for i:0 thru (n-1) do xlist:endcons(studentAnswer[i],xlist);
ylist:[];
for i:n thru (2*n-1) do ylist:endcons(studentAnswer[i],ylist);
sumx:0;
for i in xlist do sumx:sumx+i;
sumx;
sumxx:0;
for i in xlist do sumxx:sumxx+i^2;
sumxx;
sumy:0;
for i in ylist do sumy:sumy+i;
sumy;
sumxy:0;
for i:1 thru n do sumxy:sumxy+xlist[i]*ylist[i];
sumxy;
denomi:n*sumxx-sumx^2;
a:(1/denomi)*(n*sumxy-sumx*sumy);
暗黙の仮定として,studentAnswer
という配列に,すべての解答が入っています。最後の行の出力が学生の解答との比較に利用されます。。(このコンテンツでは)評価は「相対精度」を用いています。とくに精度を指定していないので 5% の精度で判定します。
動画用いて回答するコンテンツの場合です。ドロップダウンリストで「video」を選びます。デフォルトで「Search cash」は No になります(変更しないでください)。正解はとくに設定しません。採点の参考にするために,出題意図などを記入します(空白でも可)。記入した内容は受講生には見えません。動画の制限時間を指定してください。
プレビューで動画を撮影し,回答してみたところです。動画の再生はほとんどのブラウザで全画面表示が可能だと思います。
採点サーバー(kanaike.susi.oita-u.ac.jp)に置いた MathJax を利用するようにコンテンツを変更しました。