はじめに
hkob の雑記録の第395回目(通算792日目)は、試験問題作成を Notion AI にサポートしてもらうことで時短になったことを記録しておきます。
これまでの試験問題作成
普段のプログラミングは課題で評価しているので、定期試験については論理的思考力だけを見る穴埋め問題にしています。試験が終わってから返却まで時間が少ないということもあります。これまでは、テストと実装をエディタで作成し、その後穴埋め箇所を決めて Pages に転記する作業をしていました。実際の試験はこんな感じで、穴埋め部分を「(a)」のような形で手で記載していました。

ネタを考えることも大変なのですが、ようやくネタを思いついた後でここまでの形にするまでが大変な作業でした。
- 穴埋めの文字を間違えやすい
- 穴埋めにした部分を正答に記載するときにプログラムと見比べなければならない
- 問題文のキーワードを書き間違えることがある
プログラムの部分はテストを通しているので間違うことはないのですが、問題部分に記載するときにタイプミスすることがあり、誤答を導き出してしまうことも何度もありました。
本日の作業
問題作成作業
実際にまだ実施していない試験なので、内容については触れないように実施した手順を紹介します。最初に Notion のページに上のコードのテキストを Codeblock に記載して、こんな感じで始めました。
AAAAAA の Python クラスに関する試験を作成したいです。昨年度はページ内の codeblock のような形で RepeatDate クラスを使った試験にしていました。同じように BBBBB というクラスにして、CCCCC と DDDDD を引数にした fixture を作成し、そのコンストラクタのテストまで書いてください。
結果、以下のように作成してくれました。よい感じです。
RepeatDate の形式に合わせて、3つの異なるパラメータの AAAAAAA インスタンスを fixture で作成し、各プロパティの検証とエラーケースのテストを含めています。
この後、値があまりよくなかったので、3つ目の数値を作り直してもらったりしました。また、さらに一部確認したい項目があったので、穴埋めを追加したりしてみました。
EEEE の FFFFF、GGGGGG、HHHHHH も穴埋めにしましょう。
無事穴埋めにはなったのですが、「完了。FFFFFFF(j)、GGGGGG(k)、HHHHHHHH(l)も穴埋めになりました。」と言ってきました。順番を気にせず新たに番号を振ってしまうお莫迦さんです。直してもらいましょう。
アルファベットの順番が入れ替わってしまったので、aからlの順にしてください。
これで無事に先頭から正しく番号が振られました。あとは問題文です。こんな感じでお願いしました。
先ほどのコードの上に既存の問題文を記載しました。今回の AAAAAA に合わせて問題文を書き換えてください。
ここまで形式ができてしまえば、特にガイドすることもなく指示するだけで終わりそうです。過去問のテキストを貼り付けたあとで、こんな感じで済んでしまいます。
この次の問題はこのコンストラクタに対する穴埋めでした。同様に今回の問題用に書き換えてください。
うまく問題文もいいように書き換えてくれました。ただ、問題文にほぼ答えを解説している文章があったので、以下のように削除してもらいました。
ヒントをあげすぎな気がするので、2文目は要らないです。
検証作業
信じていないわけではないですが、動かないコードだとテストにならないので、これまでとは逆にテスト問題からコードチェックをしてみます。問題文をエディタに貼り付けたところ、Copilot が穴埋め部分の修正提案をしてくれます。単に穴埋め部分にカーソルを持って行って、タブを押すだけでした。同様に実装部分も問題文からコピーして、同様に Copilot に修正してもらいます。結果、テストは無事に通過しました。
新規問題への対応
途中までは同一形式の問題を作りましたが、今回は新しい種別の問題を追加してみました。テストを書くのが面倒なので、問題文だけ書いてテストを記載してもらいました。
II として AAAAA の JJJJ の問題を作成してみました。このテストを追加してください。
こんな適当な指示でも想定していたテストを記載してくれました。そのままエディタの Copilot が穴埋めを修正してテストを通過させてくれました。問題ないようです。
正答の自動作成
これまで作成するのが面倒だった正答作成ですが、こんな感じで指示を出しただけで自動生成してくれました。やったことは先ほど動作したエディタのプログラムを貼っただけです。
問題文の後ろに今回作成したプログラムを掲載しました。穴埋めの答えをプログラムの後ろにまとめてください。
こんな感じでまとめてくれました。
プログラムの後ろに、(a)から(KKK)までの全LL個の穴埋め解答を表形式でまとめました。
問題作成
試験問題自体はこれまで通り Pages で作成します。今回、Notion で全て作成しましたが、作成された Notion のテキストをそのまま Pages にコピー&ペーストしただけで、完了してしまいました。Notion だと Rich text のコピーができるので、Pages 側で特に書式を細かく設定する必要がなくなりました。また、穴埋めの記号も自動で割り振られるので、飛ばしてしまうなどのミスを気にする必要がなくなりました。
おわりに
例年であれば1日近くかかる試験問題作成が、2時間もかからずに完了してしまいました。今後もうまく活用していければと思います。