アロハ-Pythonとその他日常

※採点アプリを作成したりしています。

採点アプリをつくろう!【まとめ編】

前提とこのブログの大まかな内容

中間、期末考査の採点は本当に大変です。一人で100枚以上の答案を懇切、丁寧に採点しなければなりません。その中でも何が大変で何が楽しいのかを見極め、自分なりに解決策を模索しました。

採点で大変なこと
  • とにかく単純な作業
    マル、マルマル、バツ、マル、、、
    永遠と続くこの作業も30枚ほどやると飽きてきます。ミスも出始めます。。。大変です。
  • この解答△だけど、何点にすればいいんだ?」
    いわゆる部分点問題です。バツではないけど、マルでもない、、、
    そのような解答によく出くわします。そして、何点つけたか忘れます。(模範解答とかにメモとかして対処しますが、、、)毎回、最後に確認しますが大変です。
  • 時間がかかる
     テスト終了したら大抵、土日を潰して採点しています。でないと終わりません。これがたまらなく嫌ではありますが、やらなければ終わりません。部活の大会とかあると更にカオスと化します。
採点で楽しいこと

正直、めんどくさいが勝っていて、見出すのが難しいです。でも、間違いの傾向を分析したり、何ができていて、何が難しいと感じているのか。教科ならではの分析ができると、楽しいだろうなと思っています。分析なら、PythonまたはRといったところでしょうか。ここも狙っていきたいですね。

マークシートでいいのでは?

マークシートにしてしまえばすべて解決ですが、年数回の定期考査で記述なしというのはさすがに現実的ではありません。また、市販のだと指定の用紙でないとダメなど、テスト制作の自由性がありませんし、ドケチな私にとってはランニングコストに気が引けます、、、 そこで、Pythonを学び、今現在、この問題解決に向けて勉強しています。

でたものはgithub

私が作成したものはgithubにあります。(こちらから) あがっている物の概要は以下の通りです。

kiritori.py

私が書いたコードになります。切り取り、PDFの変換等の関数を保存しております。

kousa.py

こちらは採点斬りの作成者であるphis-kenさんが公開しているものを、少しだけ弄りました。本家の素晴らしいアプリはこちらから。

phys-ken.github.io

私とは違い、自分自身だけでなく、幅広い方に対応できるように作られてあります。プログラミングの知識がない方でも利用することができます。ぜひ、参考にしてみてください。

my_gragh.py

PythonやRは分析の醍醐味ですよね。せっかく採点をPC上でできるようにしたのだから、分析もしっかり行っていきます。主にグラフ作成ツールとなっています。

white.pdf seito.pdf

white.pdfはmain1.pdfで使います。数学の解答用紙を扱うため、図形がかき込んであると自動検出に支障がでるため、あえて、白紙を用意してあります。 実際に使う解答用紙はseito.pdfの最後にベースとなる解答用紙が入っています。 (※seito.pdfにかいてある落書きは私が適当に描いたものです)

seito_meibo.csv

名簿データはあえて別で作成しています。テスト当日欠席や出席番号の関係で別で作成しておく必要があるため作成しています。

main1.py

こちらは、解答用紙を自動検出し、切り取るための準備をしています。(テスト始まる前までの処理となります。) こちらの画像が参考になります。
main1.pyの解説はこちらから
al31ufa4.hatenablog.com

main2.py

こちらはmain1の処理を元に、生徒の画像データを切り取り、白紙の解答は0点フォルダに格納しています。(テスト終了後の処理になります。)
こちらの画像が参考になります。
~切り取り直後~

~移動後~

~ここで採点~

kousa.pyを起動して、採点に入ります。

main3.py

採点終了後、グラフをかくためにデータをテーブルにまとめています。いろいろと使えると思ったので、あえて分けています。

main4.py

グラフを簡単にかくため、関数にしてまとめました。こちらも随時更新と訂正していきたいと思っています。

今後の展望

 まずは、解答の採点に〇△×をつけたいなと思っています。(今現在は解答欄の右上に配点が表示されるようになっています。) ⇒つけることができました!!!

al31ufa4.hatenablog.com

他にもOCRをつかって 自動採点ができるようになれば、更に詳しい分析だったり、小テストの回数を多く増やすことにも抵抗が少なくなりそうです。PythonやRをもっと極めていきたいと思っています。