コロナ禍で生まれた採点ソフト
一括採点の最初のバージョンは、2020年にPythonで開発されました。 本記事では、開発の経緯と、Python版が果たした役割を振り返ります。
開発の背景
一括採点は、2020年2月〜3月にかけて開発されました。 ちょうどコロナ禍が始まった時期です。
当時、開発者は大学4年生で、卒業を間近に控えていました。 本来であれば卒業旅行や友人との時間を楽しむ時期ですが、 感染拡大の影響で外出もままならず、自宅で過ごす日々が続いていました。 「この時間を何かに使えないか」と考え、以前から興味のあった採点ソフトの開発に取り組むことにしました。
当時、デジタル採点システムは存在していましたが、高価であったり、導入に手間がかかるものが多く、 個人や小規模な学校では利用しにくい状況でした。 既存のシステムの多くは、サーバーへのデータアップロードが必要だったり、 年間契約が必要だったりと、手軽に試せるものではありませんでした。
「インストール不要で、無料で、すぐに使えるもの」を目指して開発をスタートしました。 約3週間、自宅にこもって集中的に開発を行い、最初のバージョンをGitHubで公開しました。
先人たちのソフトウェア
一括採点の開発にあたっては、以下のソフトウェアから影響を受けています。
- 採点革命(竹内俊彦氏) - 「同じ設問を一覧で採点する」という発想の原点
- 採点斬り(島守睦美氏) - 採点革命を発展させたソフト。2004年リリース
- 採点斬り 2021ver(phys-ken氏) - 採点斬りのPython再実装版
技術構成
Python版は、以下の技術で構成されています。
- Python - メインの開発言語
- Tkinter - GUIライブラリ(Python標準)
- Pillow - 画像処理
- OpenCV - 画像の読み込み・変換
- PyInstaller - 実行ファイル化
Tkinterを選んだ理由は、Python標準ライブラリであり、 追加のインストールが不要なためです。 Windows、Mac、Linuxで動作し、PyInstallerによる実行ファイル化も比較的簡単でした。
画像処理にはPillowとOpenCVを組み合わせて使用しています。 PDFの読み込みにはpdf2imageを、Excelファイルの出力にはopenpyxlを使用しています。 これらのライブラリはすべてオープンソースであり、商用利用も可能です。
主な機能
Python版の主な機能は以下の通りです。
- 解答欄の一覧表示による効率的な採点
- キーボードショートカットによる高速採点(Q/E/F/J/Oキー)
- 自動合計点計算
- 採点結果のExcel出力
- 採点済み答案のPDF出力
- 丸・バツ・三角の記号付与
- 部分点の設定
「解答欄の一覧表示」は、一括採点の核となる機能です。 従来の採点では、1枚の答案を最初から最後まで採点してから次の答案に進みますが、 一括採点では同じ設問を全員分まとめて採点します。
この方式により、採点基準のブレが少なくなり、 また同じ解答パターンを連続して処理できるため、判断の効率も上がります。 特に記述問題での効果が大きく、「同じ間違いを何度も見る」ストレスも軽減されます。
キーボード操作へのこだわり
特に、キーボードによる採点操作は、開発当初からこだわったポイントです。
マウス操作では、「ボタンを見つける→カーソルを移動→クリック」という 3つの動作が必要ですが、キーボード操作では「キーを押す」だけで完了します。 1回の操作で節約できる時間はわずかですが、 100人分の答案を10問採点すると1000回の操作になります。 この積み重ねが、全体の採点時間に大きく影響します。
- Q - 未採点
- E - 正答
- F - 部分点
- J - 保留
- O - 誤答
- W / A / S / D - 上下左右の移動
Q/E/Fは左手、J/Oは右手と、両手を使って採点操作を行います。 移動のW/A/S/Dは左手で操作します。 ゲームのWASD操作にヒントを得た配置で、 この操作体系は現在のElectron版にも引き継がれています。
ユーザーからの反応
公開後、多くの教育関係者からフィードバックをいただきました。
好評だった点として、以下の声がありました。
- 「採点時間が半分以下になった」
- 「計算ミスがなくなった」
- 「無料で使えるのがありがたい」
- 「インターネット不要なので安心して使える」
一方で、改善要望もいただきました。
- 「UIがわかりにくい」「どこを押せばいいかわからない」
- 「答案の枚数が多いと動作が重くなる」
- 「コメントを書き込みたい」
- 「見た目が古い」
これらの要望は、後のElectron版開発の重要なインプットとなりました。
Python版の役割
Python版は、約3年間にわたって多くのユーザーに利用されました。 この期間で得られたフィードバックは、一括採点というソフトウェアの方向性を定める上で 非常に重要な役割を果たしました。
「何が求められているか」「何が使いにくいか」を実際のユーザーから学ぶことで、 Electron版の開発方針を明確にすることができました。 Python版がなければ、Electron版は生まれていなかったと言えます。
Python版は現在もダウンロード可能ですが、新規利用にはElectron版を推奨しています。