テスト用紙と模範解答用紙を同時につくる

org-modeでテストをつくる

にわかに、オンライン講義が注目されている。 人によっては、zoomなどのビデオ会議ツールを使うようだし、Powerpointデータと音声データを配布する人もいるらしい。

どの手法がいいのか、試行錯誤が続いているが、決め手はまだないようだ。Zoomはプライバシーの問題と爆撃の問題があって、使いづらいようだ。

爆撃の問題は、一方通行ではなく、双方向のやりとりをする以上、それはしょうがない。顔が見えず、匿名を許すことで、発言はしやすくなる。それで自由に発言ができることと、くだらない発言が出ることのトレードオフだ。 僕が講義にニコ動的な発言がパワーポイント上に流れるシステムを導入したときもそうだった。

僕は、10年ぐらい前から、放送大学で講義を担当している。こちらはしっかり作りこんだ教材(テキスト)と講義(ラジオまたはテレビ)を使用している。 受講生は好きな時間に視聴できる。 そのかわり、発言はできないし、質問は掲示板を通してなので、返事は数日後だ。

前置きはこのぐらいにして、本題に入ろう。

今回、とりあげるのは、テストをどうつくるのかだ。 オンライン講義に限らず、講義内容の定着をはかるためには、テストの活用が大切だ。けれども、それをどうつくるかにはあまり知見がない。 Moodleなどを使ってアプリでテストをすることもよいが、紙ベースを使いたいケースもけっこうあるはずだ。 そういった際には、Wordを使ってつくる人が普通だろう。 最近は説明責任の関係で、定期テスト等の模範解答を公開しなければならないという時代だ。 そこで、試験問題と解説の2種類を用意しなければならない。

学生に配布するための試験問題と模範解答の試験問題の同期は意外とめんどうだ。 普段は、模範解答を作成して、配布資料にコピペしている。 でも、印刷前に配布資料の確認をしているときに、間違いに気付き慌てて修正するばあいなど、模範解答の修正まで間にあわなくて、そのままになってしまうこともある。

同じような作業は、講義・講演資料と手持ち資料の使いわけでも生じる。 講義資料は記入してもらいたくて、わざと簡潔に書いておく。自分用の手持ち資料には参考資料も含めて、詳しく書くのが僕のスタイルだ。

同期作業は単純にもかかわらず、ミスしやすい作業の一つだ。 なぜこんな作業をAI時代にちまちまとやらねばならないのか。

そんな不満を感じつつも、日々の忙しさにかまけて、放置してきたというのが、これまでだ。 だが今日、その状態を打破すべく、仕組みを考えて、構築に成功した。

といっても、ググっただけだ。 長らく感じている不満がちょっと検索するだけで解消することはよくあることだ。 不満を持ち続ける人とそうでない人の違いは、解消に向けて行動するかどうかの違いだけなのかもしれない。

org-modeを使用した配布資料と模範解答の作成

作成例

以下のような用紙を作成したい。

模範解答・手持ち資料

解答用紙・配布資料

方針

問題部分が共通なので、ついコピペしたくなる。だが、それをするとミスが発生するし、手間でもあるので、やりたくない。

解答用紙は、模範解答部分を隠すだけである。コンピュータ側で「隠す」処理をするようにすれば、模範解答用紙を一つ作るだけで、解答用紙も作成できる。

記述方法

emacsのorg-modeを使って、例えばexam.orgというファイル名で以下のようなファイルを作る。

配布資料を作成するときは、EXCLUDEをaとする。sとすれば、解答が表示されているすスペースが空欄になり、解答を記入できるようになる。

資料の作成はorg-exportを使う。

 #+EXCLUDE_tags[]: s
 #+OPTIONS: tags[]:nil
 * Question :q:
   経済が下降すると、庶民の暮らしが苦しくなると言われている。
   この理由を述べよ。

 **  Answer     :a:
   :PROPERTIES:  
   :UNNUMBERED: t
   :END:  
   この点についての解説は、別紙に譲りたい。

   まじか。。。
  
 ** Space         :s:
   :PROPERTIES:  
   :UNNUMBERED: t
   :END:  
   以下、スペースを開ける
   \vspace{3cm}

 * 次の質問です

解説

必要な準備

さらっと書いてきたが、ここまでの道のりはなかなか遠い。

必要なものは、Windowsのばあいは、以下だ。

  • msys2
  • emacs
  • texlive

msys2のインストールは、MSYS2のインストールと設定は、MSYS2によるWindows 10でのBash環境構築メモ - Qiita あたりを参照されたい。

emacsについては、msys2のコンソールから、以下のようにして、標準のものをインストールすればよい。 いろいろな情報があるが、今は標準環境でじゅうぶんに日本語が使用できる。 (こうなったのは、識者の方々の努力のおかげだ。ありがたいことだ)

  pacman -S emacs

texliveも標準的な設定でかまわない。

あとは、Windowsで環境変数を設定しておく。

orgファイルの設定

まず、見出しに切り替え用のタグをつけておく。問題にはつけなくてもよいと思うが今回はなんとなくつけてみた。

解答と解答欄は別々のタグにする。これで、二つの資料を切り替える。

ポイントとなるのは、EXCLUDEだ。ここに、表示したくない方のタグを指定することで、欲しい資料を作成できる。

このままでは、資料作成のためにつけたタグが資料に表示される。これは、利用者には意味不明なので、消しておいたほうがよい。 資料にタグを表示させないためには、OPTIONS: tags[]:nilとオプションを指定しておく。

また、解答スペースや解答に番号をつけたくないばあいは、PROPERTIESで UNNUMBERED: tとしておく。 こうすることで、texの見出しに*付きのものを使用してくれる。(sctionの代わりにsection*になる)

出力

以上で、準備が整ったので、出力する。

これは、ここまでの準備ができていれば、C-c C-e l oとすればpdfが作成される。ただし、2種類を作るので、EXCLUDEのところをaとsで書き変えて、それぞれ実行する。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。