■ 選択問題の誤答を作るには

○ 使用したい場面

 Web教材において短い解説文の後に簡単な確認テストを付けるとき,ラジオボタンなどを用いた選択問題がよく使われる.
 その際,問題作成者の立場から考えると,正答は簡単に作れるが誤答を必要数(各4個,各5個など)準備することは決して容易なことではない.誤答の選択肢としては学習者が陥りやすい主な傾向を並べて注意を喚起できるものがよく,ほとんど選択されないような誤答は選択肢として機能しておらず通常は除外すべきである.
 上記の話はあるべき姿で,長年同一教材を使用していて学習者の誤答パターンが知り尽くされているような場合にはあり得ても,「今から誤答パターンを調査しよう」「解答者の年齢や既習事項が多様で誤答パターンがマチマチである」といった場合には理想的な誤答を準備することができない.
 ここでは,各問題ごとの誤答を作ることは考えず「他の問題の回答がその問題の誤答」となるように「多対多」対応の選択肢とすることによって誤答作成を回避する方法を考える.(平たく言えば「ジョーカーありのカードめくりゲーム」を考える.)
例1
 次の方程式を解きなさい.はじめに問題を1つ選び,続けて右の欄から解答を選びなさい.
(1) x - 1=9
(2) 2x=6
(3) - 3x+2=8
(4) 3x - 4=5x
(5) 3x - 1= - 2x - 6
○ 実際のイメージ

 右の例1のように小問が5題あり,選択肢は正答にジョーカーを追加したものとする.
 選択肢の個数には制限はないが,1画面に納まる程度とし,個数が多いときは規則的に並べる.異なる問題の正答が同一選択肢であっても構わない.つまり選択肢から問題番号への対応は一意的ではない.
コード1

関数 pre_set(qnum) で問題番号を変数select1に記憶させる.
関数 choice1(anum) で正誤を判断する.

HTMLのBODY部分
問題
<a href="javascript:pre_set(0)">x - 1=9</a>
など問題数だけ並べる

選択肢
<a href="javascript:choice1(-10)">x= - 10</a>
など選択肢の個数だけ並べる

javascriptの変数・関数など

select1 = -1; //(1)

function pre_set(qnum)
{select1 = qnum; //(2)
}

function choice1(anum)
{ans_set = new Array(10,3,-2,-2,-1); //(3)
kr_set = new Array(document.kr0, document.kr1, document.kr2, document.kr3, document.kr4);
if(select1 < 0) //(4-2)
return;
else
{ if(anum == ans_set[select1])
kr_set[select1].src = "o1004.gif"; //(4-1)
else
kr_set[select1].src = "x1003.gif"; //(4-1)
}
select1 = -1; //(5)
}
左記の観点を取り入れた改良版
例2
 次の方程式を解きなさい.はじめに問題を1つ選び,続けて右の欄から解答を選びなさい.
(1)_x - 1=9

(2)_2x=6
(3)_- 3x+2=8
(4)_3x - 4=5x
(5)_3x - 1= - 2x - 6
○ 予定する処理の流れ

(1) 問題が選択されていないとき,変数 select1 の値を-1にしておく.
(2) 問題が選択されたとき select1 の値に問題番号 0〜4 を代入する.
(3) あらかじめ解答配列 ans_set を用意しておく.
(4) 解答の正誤に応じてKR情報を出す.(4-1)
 間違ったときは,もう一度その問題を選択すればよい.
 問題が選ばれるまでに選択肢を選べば何も起こらず単にreturnする.(4-2)
(5) 1つの問題の採点が済めば select1の値を-1に戻す.


○ 上記の基本機能に付け加える方がよいと考えられるもの
I
 問題及び選択肢をリンク(javascript疑似演算子により関数呼び出しするためのもの)で行うとき,初期設定ではリンク文字にアンダーラインが入るがマイナスや等号と重なると見苦しく学習意欲が低下するので,アンダーラインは出ないようにする.(text-decoration:none;)
II
 問題が選択されたとき,選択された問題の文字色または背景色を変えて現在選択されてる問題を示す方がよい.(選択肢の方は選択されているのは瞬間なのでこの変更は不要)
III
 難しい問題を選んでしまって分からなくなったとき,他の問題をしたくなる読者はかならずあるので,解答するまでに番号を付け変えることも認める方がよい。(「迷い箸」に対応する方が自然)
IV
 済んだ問題は消す方が学習者は「進んでいる」と感じるので,正答となった問題は消去するとよい.
 (もし,選択肢も消去するのであれば同一選択肢が選ばれないような問題にしなければならない.
 右の例では第3問と第4問が同じ答 -2 となっている.もし,済んだ選択肢も消すことにすれば,このような対応関係にできず,同一解答にならないように問題に制約を生じる. )
 さらに根本的なこととして,済んだ問題を表示したままにしておくと,再度選択したときに誤答になることもあるので,これは防ぐ方がよい.(死者がよみがえる.)
V
 個々の問題にはすでにKR情報を付けているが,全問完了したときには「完了」「END」「ヤッター」など一区切りとなる「ねぎらいのメッセージを出す」と学習の励みとなる.そこそこ派手で大げさ過ぎない程度の完了マークを出す方がよい.・・・地味すぎると「せっかく頑張ったのに,たったこれだけか」と低すぎる評価に不満が残る可能性がある.逆に大げさ過ぎたり幼稚過ぎたりすると「ふざけるな作者!」という感情をもたれることがある.読者の年齢層に応じたメッセージがよい.
○ 作動チェック
Microsoft Internet Explorer 7.0 (OS:Windows xp) ・・・チェック日2009.07.30・・・OK
Firefox 3.5 (OS:Windows xp) ・・・チェック日2009.07.30・・・OK
○ 実際に使用しているページ
../math2/m3in_5001.htm
IE only - - ../kou3/circle1.htm
○===ソースコード・メモに戻る
○===メニューに戻る