みなさんこんにちは。
吉田です。
学年末テストも終わり、もうすぐ春休みですね。
この1年間は満足に過ごせましたか?
ところで、先日の学年末テストですが、私が担当する科目「情報I」では、初めてマークシート形式で実施することにしました。ところが、本校には高価なOMRすなわちマークシートを読み取る専用の機械はありませんので、簡易的なものを自分で作って使いました(Pythonで書きました)。今回はどのように読み取るのかを簡潔に紹介したいと思います。
まず、私が作ったのは専用のマークシートとその読み取りソフトのペアです。
こちらがマークシートになります。四隅にマゼンタ(赤紫)の長方形と上下左右に緑色の多数の長方形たちが確認できると思います。これを私はロケータと呼んでいます。簡単に言えば、
まずこのロケータの座標を読み取り、ロケータどうしを結んで縦線と横線を引くことで各解答欄の座標を確定し、そこが「黒」か「白」かによってマークされている/されていないを判断することになります。下の拡大図を参照してください。だから、生徒の皆さんは、テスト中にこのロケータを汚さないように気を付けてください。
拡大図
この例では上から4番目のグリーンロケータ同士を結んだ線分と左から3番目のグリーンロケータ同士を結んだ線分(緑の太線)の交点の座標を特定し、そこが「黒」か「白」かを判定する
原理は簡単なのですが、実際にやってみると、これがうまくいかないのです。というのは答案を職員室の複合機のフィーダ(上図参照)にセットし、次々に読み取らせて画像ファイルに変換するのですが、フィーダが各答案を取り込んだときにわずかにずれが生じます。例えば1枚目の答案に比べ、2枚目は右に0.1mmずれている、3枚目は上に0.2mmずれている… といった具合です。フィーダは多数の答案をあっという間に取り込んでくれ、きれいな画像に変換してくれるのですが、とはいえやはり微妙なずれが生じます。マークを読み取るとなるとこのずれが問題になるのです。そこで、読み取った各答案のずれを補正する仕組みが欠かせません。細かい話になるので詳細は書きませんが、いかにこのずれを補正するかが、腕の見せどころになります。
うまく読み取った答案(左) 読み取りに失敗した答案(右)
(注) 本稿の答案はすべて試行用の模擬答案であり、実際の学年末テストの答案ではありません
また、間違えてマークしたときに消しゴムで消した部分をちゃんと「白」と認識できるか、薄い鉛筆でマークした箇所をちゃんと「黒」と認識できるかも問題となります。つまりどの程度黒ければ「黒」なのか、どの程度白ければ「白」なのかの線引きが問題になります。
その他、テストでは例えば2番と3番が両方正解で初めて点数がもらえる「完答」という設定が必要になることもありますし、順不同で正解にする必要がある場合もあります。このような仕組みもちゃんと書いておかなければ使い物になりません。
こういった細かな調整が必要なので、定期テストで使う前に、生徒たちの協力も得て何度も何度も試行を繰り返し、最終的に学年末テストで使用しました。その結果、なんとか高2生の答案175枚を正確に読み取るソフトが出来上がりました。正確に言うと、175枚中7枚読み取りエラーが発生しましたが、2回読み取ることですべて正しく読み取ることができました。せっかく作ったので次年度も使っていきたいと思いますので、生徒の皆さんは
* 濃くマークする
* 間違ったときはきれいに消す
* ロケータを汚さない
の3つを守ってください。
情報Iという科目は非常に守備範囲が広く、プログラミングやデジタル画像もそのうちの一つです。今回簡易OMRを作ったのは、情報Iで習う事柄の一つの応用例という意味もあります。情報Iの範囲の知識で作れるものではありませんが、それが基礎になっていることに間違いありません。今の時代、アプリやAIなど様々な便利な道具が私達の身の回りに溢れていますが、とはいえ自分の仕事や研究で必要とするぴったりの道具はないことも多いです。ないものは自分で作る。こういう態度も情報という教科で教えていくべき大きな目標と私は考えています。