空欄補充問題生成ツールをアプリ化

学士研究:サムネイル画像4 IT研究(学士)

前回で、空欄補充問題を自動生成・自動採点するアルゴリズムが完成しました。

完成後は、ゼミとかで演習問題の代役をするときに使用していたのですが、もう少し利便性を向上させたいと感じたのでアプリにします。

問題点

不便と感じている項目が2つあります。

  • パソコンが無いと使用できない
  • コマンドプロンプトから操作するのでツールっぽくない

ここら辺を改善したいなと思っていました。

パソコンが無いと使用できない件

空欄補充問題を自動生成・自動採点できる点までは良いのですが、パソコンを起動しないといけないので地味に面倒くさい…

スマホからも使用できれば空き時間で即使えるので利便性がかなり向上します。

コマンドプロンプトから操作するのでツールっぽくない件

ツールと言ってもプログラムを一つに統合しているだけなのでツールっぽくない。

操作もコマンドプロンプトからしてるのでプログラムを実行している状態に近いです。

アプリ化してGUI操作にしたいところ。

実装

フレームワークにはstreamlitを使用しました。

Pythonのみで手軽にアプリケーション化できるので、使用感を軽く試すには丁度いいです。

デモアプリケーションは下記に用意しています。

「😴」が表示されている場合は、

「Yes, get this app back up!」

ボタンを押すと、1分ほどで起動します。

流石に演習問題をそのまま公開すると知的財産的によろしくなかったため、デモアプリケーションではChatGPTで生成した演習問題に置き換えています。

初期画面

初期画面では、空欄補充問題にできるプログラムの一覧を表示しています。

空欄補充問題自動生成採点アプリ:アプリケーション画面1
初期画面

問題選択画面

演習問題の選択項目は、ワンタッチで選べるようにしました。

予め演習問題として出題しようと思っていたファイルを登録しています。(計36個)

空欄補充問題自動生成採点アプリ:アプリケーション画面2
空欄補充問題の選択画面

問題生成ボタン

「空欄補充問題を生成」ボタンを押すと、下記が出現します。

  1. 元プログラム
  2. 空欄箇所
  3. 空欄補充問題
  4. ダウンロードボタン
空欄補充問題自動生成採点アプリ:アプリケーション画面3
空欄補充問題生成後の画面

項目1~4の詳細を説明します。

1. 元プログラム

「ソースコード」を押すと元プログラムの全内容を閲覧できます。

空欄補充問題自動生成採点アプリ:元プログラムの内容
元プログラムの内容

2. 空欄箇所

「空欄の行:計n行」を押すと空欄箇所の詳細を閲覧できます。

空欄補充問題自動生成採点アプリ:空欄箇所の詳細
空欄箇所の詳細

「:」の右側には空欄に置換した行と変数を示しています。

3. 空欄補充問題

「空欄補充問題」を押すと生成された空欄補充問題の全内容を見れます。

空欄補充問題自動生成採点アプリ:空欄補充問題の内容
空欄補充問題の内容

4. ダウンロードボタン

「ファイルをダウンロード」を押すと空欄補充問題(prob.c)がダウンロードされます。

空欄補充問題自動生成採点アプリ:空欄補充問題のダウンロード
空欄補充問題のダウンロード

内容は項目3の空欄補充問題と同一です。

解答コード採点

実行形式を「採点」に変更すると、採点画面に移動します。

空欄補充問題自動生成採点アプリ:自動採点画面
自動採点画面

提出ボタンが5個あります。

  • ans.c
  • ans.txt
  • prob.c
  • student_c.zip
  • student_txt.zip

提出されたファイルのファイル名や拡張子が異なるとエラーメッセージを表示します。

ans.c

ここには模範解答を提出します。

 そのため空欄補充問題の元としたプログラムを提出する必要があります。

ans.txt

ans.cの実行結果を提出します。

prob.c

空欄補充問題を提出します。

student_c.zip

学生が空欄補充問題を解答するので、その解答プログラムを提出します。

人数が多いのでzipファイル形式にしてます。

中のファイルに.c以外のファイルがある場合はエラーメッセージを表示します。

student_txt.zip

student_cの実行結果を提出します。

これも人数が多いのでzipファイル形式にしてます。

中のファイルに.txt以外のファイルがある場合はエラーメッセージを表示します。

採点ボタン

全部提出すると「採点を開始」ボタンが出現し、押すことで採点が開始されます。

空欄補充問題自動生成採点アプリ:採点開始ボタン
採点終了後の画面

採点が終了すると以下の項目が表示されます。

  • 別解のファイル一覧
  • 制約違反のファイル一覧
  • ダウンロードボタン

別解と制約違反のファイル一覧を表示する領域は折り畳み式にしてます。

ダウンロードボタンを押すと採点ファイル(.zip)がダウンロードされます。

自動採点した採点結果

採点ファイルには下記を表示しています。

  • コードの相違点
  • 実行結果の相違点
  • 各空欄の正誤判定
  • 総合点

総合点は〇の数を空欄数の合計で除算してるだけなので、正答率によって点数を変えるとかはしていません。

そのようにする場合は各空欄の正答率に応じ変動係数等で重み付けする処理が必要ですが、受講生視点だと返って配点方法が理解しづらくなるため、当授業では不要と判断しました。

評価

使ってみた感じかなり良いです。

次のような場面でも使用できます。

  • 各講義の休憩時間
  • 電車に乗っているとき
  • 運転中、コンビニに立ち寄ったとき
  • 急に空いた謎の時間

手元にあるスマホで演習問題をすぐに作成&採点できるようになりました✨

タイトルとURLをコピーしました