Emacsのorg-Modeで講義の計画と記録を取る(その1)
書きたいこと
講義の計画・講義ノートの作成・ハンドアウトなどの管理を一貫したシステムで行う方法を紹介する。
本記事の説明を実施すれば、一つのテキストファイルで講義が管理できる。
3回程度に分けて執筆する予定だ。
- その1:システムの構築
- その2:システムを便利に使う
- その3:スライド作成への拡張
動機:講義の計画と記録をどうするのか
講義を管理する
みなさんは、講義をどうやって管理しているだろうか。
そもそも、講義を管理するというのはどういうことだろうか。
僕ら大学教員は「教育学」とか「教育法」的な講義を受けていないので、すべてが自己流になってしまう。 大学教員を志す者には教育方法というか、準備を含めた講義の方法を教育したほうが親切だ。 巷ではプレFDという大学教員希望者へのガイダンス的講義が取り組まれているようだが、こういうのは広がってほしい。 (というか、今からでも受けたい)
まあ、それはいいや。
講義は15回+テストの分を管理しなくてはならない。 一般的には、講義は普通4ヶ月程度に渡って続く。 この間、常に全体を見ながら、内容を調整するし、学生の動向を記録する。
学生の出欠等は最近は大学が個別に用意するシステムを使うことが多いだろう。けれども、大学のシステムでは、問い合わせ事項や特記事項をメモできないものが多い。
ついでに、講義の準備資料とそういったメモがばらばらになると、講義の準備中、「あのメモはどこだっけ?」とやりはじめると脱線してしまいかねない。
講義内容などを一覧したい
歳のせいか、講義の記録をとらないと、過去に何をやったのかわからなくなる。 当初計画した回に何をやりたかったのか、覚えてない。 同じ学期に二つ以上の講義を進行させると余計だ。
そんなわけで講義の計画とか記録を取るのだけれど、なかなかいい方法が見つからずに困っていた。 が、ようやく良さそうな方法を見つけて、しばらく運用しているので、シェアする。
講義計画といえば、シラバスが思い浮かぶ。シラバスは講義の概観を見るうえでは便利だ。シラバスは、昔はExcelの四角にちまちまといれていたし、今はWebのフォームに書き込んでいる。 全15回+テストの計画をちゃんと作らないとここで使えない。 シラバスは講義が始まるよりかなり前に作成しなければならない。
講義の準備なんて直前にならないと普通はやらない。ざっとした計画だけ立てて、実際に講義をしながら続きを作っていくなんてこともよくある。シラバスに書く講義計画は、実質、シラバスのための講義計画と言っても過言ではない。
ただ、せっかく作ったシラバスの講義計画なのだから、うまく活用できたらいい。だが、うちのはこれがまったく再利用できない。シラバスのフォームを前にして、講義計画を練り、直接計画を書き込んでしまったのならもう終わりだ。DBへのAPIアクセスでもくれればいいのだけれど、「セキュリティが!」という回答が来て終わりそうだ。
PDFで表示されるシラバスの各回に書き込んだ内容をコピペして手元に写すなんて涙ぐましい行為が求められる。
せめて、別途エクセルにでも書き込んでから、シラバスにコピペしていくべきだ。シラバスを入力するときにそこまで知恵が回れば。
というわけで、シラバスは再利用が期待できないので、講義計画とかは自分で管理することになる。 ただ、シラバスが再利用しやすくても、講義のときに気づいたこととかもメモっておきたいので、手元に記録用のファイルは必要だ。
となると、何をどうすればよいのだろうか。
ここではたと手が止まり、一覧性ならExcel、図表とかも入れやすいものならWord、講義でもそのまま使うことを想定するなら、PowerPointが思いつく。
それぞれは便利なツールだ。ちなみに僕は講義そのものはPowerPointで作成している。
計画的なものなら、Excelが便利そうだ。だが、そこにメモを入れるとなるととたんに面倒になる。
講義のプランにも使いたい
次項で詳しく説明するように、「講義管理メモ」には、もっといろいろな情報を盛り込みたい。
そうなってくると、WordやExcelでの管理はちょっと難しい。
場合によっては、講義全体を一望できるようなレポートも作成したい。
もしかしたら、外部プログラムでなにか処理できると便利かもしれない。
Wordが使えなくなる日が来るかもしれない。その日に備えて、ファイルはプレーンテキストで作成したい。
講義計画・記録システムで実現したいこと
さて、僕が抱えていたストレス・ジレンマを紹介したところで本題に入ろう。 僕は「講義管理メモ」をさらに進めて、「講義計画・講義ノート・実施記録メモ」を構築した。このシステムを構築した今、講義に関するストレスはかなり減った。
以下、講義計画・講義ノート・実施記録メモの作り方を紹介する。
講義の概要等
そもそも、講義に関する基礎情報をまとめておくと何かと便利だ。
例えば、講義時間や講義室、教室にある設備。あるいは、受講者数やWebシラバスのリンクもあると便利だ。 特に講義室。意外と忘れてしまって、毎回時間割を参照するはめになる。
たぶん、こういった情報は調べればすぐに分かる。けれど、そのたびに別ファイルを開いたりするのはめんどうだ。 Web上にあるデータとかだと、ついでにメールをチェックして、メールの中のリンクをクリックして・・・
無限ループだ。
講義準備をしているときには、基本的にそのファイルである程度完結する仕組みをつくることが効率化のために大切だ。
というわけで、「講義概要」という見出しを一つつくって、そこに講義に関する基礎情報を何でも入れていく。
特定の回で触れたい事項のメモ
おもしろいニュースとか、理論、あるいは余談まで、講義の特定の回に触れたい事項っていうのがある。
こういうのも忘れてはいけないので、どこかに書いておく。
講義で発生した細々したメモ
例えば、次のような事項をメモしたい。
- 今から3回後の講義で、学生にアンケートを配布して実施してほしいと、アンケート票を手渡されてしまった。
- 学生Aは4回目の講義で出席システムに登録していなかったけれど、実際にはいた。
- 学生Bは7回目の講義、レポートの提出に遅れたのだが、やむを得ない事情を聞いたので、提出を許可した。
最初のものは、Todoにでも入れておけばよいが、学生の事情に関しては、なんらかのメモを残す必要がある。
また、Todoに入れておけば、忘れないとは思うが、講義を計画しているときにはたぶん忘れているだろう。きっちり時間を計画しているのに、アンケート実施の時間が急に割り込んできてしまうと、対応に困る。
こういうのは、講義を計画している段階で、ちゃんと思い出せるようにしなければいけない。 となるとやはり、講義計画のファイルにメモしておきたい。
以上から、講義に関する細々したメモを記入できると助かる。
各回の内容とそれぞれの所要時間
大学の講義時間は90分と決まっている。一つの講義の中には複数のコンテンツがあるだろう。 その時間配分はどうしているだろうか。
コンテンツごとの所要時間をメモしつつ、合計時間も一望できるとありがたい。
合計時間が90分になるようにコンテンツを加減していける。
時間が10分以上ずれるばあいは、コンテンツを一つ追加するとか、削除するとかコンテンツ単位での調整が必要だろう。数分なら、コンテンツの所要時間を微調整していく。
講義ノート
講義内容に関する具体的なメモも入れておきたいコンテンツだ。 というか、メインコンテンツになる。
これは「講義ノート」として、誰もが作成しているだろう。
PowerPointに入れるほどではないものとかをどこかにメモしておきたい。 そういうのをメモする場所としても、このファイルを使いたい。
ちなみに、人によってはレクチャーノートとしてこのファイルをそのまま配布する。
講義の実施記録
各回にどんなことをやったのか、学生の反応はどうだったのか、といった情報も記録しておきたい。
次回に向けてどんな課題を自分は持ったのか、学生には与えたのかなども記録する。 特に、学生の質問とそれに対する回答は記録しておいたほうがいい。そうしないと、「言った」「言わない」問題が起きる。
項目を種類別に抽出して出力
この講義計画・記録にはさまざまなものを盛り込めるけれど、必要なものをすぐに取り出せるようにしておきたい。
例えば、ファイル中の講義ノートに関する部分だけをまとめて抽出できたらレクチャーノートの配布は簡単だ。
あるいは、実施記録だけのデータも欲しい。
各回の作業
各講義の準備の際は、以下のような作業手順が理想だ。
まず、各回の講義の目的と習得してほしい事項をまとめる。
次に、講義のコンテンツ(見出し)をおおまかにリストアップしながら時間配分していく。僕のばあいは、一つの講義は次のような構成になる。トピックは一つ20分程度。振り返りはそれぞれ10分だ。これで合計80分になる。 テーマによっては、トピックの間にWorkを追加することもある。
10分足りへんやん!と言われそうだが、トピックの説明がたいてい延びるので80分で計画すれば、僕のばあいはちょうどいい。
(オンライン講義のように事前に録画しておくものは、90分きっちりと計画してる。)
それに、ここから具体的に内容を詰めていくと、一つ20分ではおさまらないものが多い。
ちなみに、サブトピックに時間を割り当てて計画をすると、講義の合計を計算するのがめんどうになる。変更する都度、再計算して90分になっているか、確認が必要だ。
- 前回の振り返りWork 10
-
トピック1 20
- サブトピック1 10
- サブトピック2 10
- トピック2 20
- トピック3 20
- 振り返りWork 10
このように合計時間を見ながら、内容を調整したら、実際の講義内容をつくりはじめる。
講義内容については、いろんな教科書から抜書きしたりしたものが別にあるので、それを切り貼りしていく。 Web上の情報とかも引用したり、リンクをメモしたりしていく。
そうして、また時間を微調整する。
ある程度納得できれば、講義のスライドの作成を始める。
だいたいこの段階で講義の風景がイメージできて、必要なスライドも想像がつく。 そうそう、最初にスライドを作り始める人がいるけれど、PowerPointでこれをやるのはおすすめできない。 講義は先のトピックのようにツリー状になる。その状態がPowerPointでは再現できない。 なので、途中のトピックが異常に分厚くなったりしてそこに時間をとりすぎていくら準備しても間に合わなくなる。 Keynoteとかなら、スライドから作り始めても問題ない気がする。
僕は講義をコンピュータを使ったスライドショーで行っているので、ここからはメモを見ながら、PowerPointで行う。 PowerPointではまず白紙のシートを数枚作り、それぞれにトピックをわりあてる。各トピックはPowerPointのセクション機能を使う。 こうすると、トピックごとにスライドを折り畳めて編集時に便利だ。
いずれは、このスライドづくりも同じファイルでやりたいなと思っているけれど、今は過去の資産としてPowerPointのデータがあるので、それを活用している。
トピックかサブトピックに関するスライドができあがったら、ファイルの時間をまた修正しておく。 実際にスライドを作らないと、あるいはしゃべってみないとどのぐらい時間かかるかは読みにくいので、これはけっこう大事な作業だ。
でも、時間を修正することにあまり時間を取られたくはないので、合計とかは自動でやってほしい。
org-modeによる解
どんなツールを使うのか
ここまで、「講義計画・講義ノート・実施記録メモ」の様子が何となく想像できるようになっただろう。
では、これをどのようにして実現していくのか。
それは、emacsでorg-modeを使う。
emacs?viじゃダメなの?あるは、VS Codeでは?という声も聞こえるが、たぶん無理だ。
emacsってそもそもなに?という人もいると思う。emacsはコンピュータの初期の頃から使われているツールで、エディタの一種だ。つまりはテキストファイルを編集するツールでWindowsのおまけのnotepadが100倍くらい進化したものと思えば良い。あるいはコンピュータのなかにもう一つコンピュータがあるようなものと言ってしまった方がいいかもしれない。
emacsはなかなかにハードルが高いツールではあるけれど、org-modeはemacsの配布ファイルに付いてくるので、「scoopでemacsをインストール」すればもう以下のシステムが使えるようになる。
他のツールは?となるとちょっと思いつかない。もしかすると、Notionがそれに近くなりつつあるかもしれないが、やはり違う。
代替品がないので、新しいソフトを使うのと同じように、ちょっとずつ使って慣れていけばいい。
この他に、作図用のmermaid.jsとか、ファイルをPDFにするためのLaTeXとかもいずれは欲しくなるけれど、今は不要だ。
「scoopでemacsをインストール」だ。
タイトルなど講義概要関係
ファイルの拡張子は、orgとする。org-modeのファイルであることを示す。
ファイルの冒頭、本文の前にはファイルの設定を書く。org-modeは設定ファイルで設定を書けるけれど、そのファイル特有の設定などは、ファイルの冒頭に書く。 例えば、講義用ファイルで使うタグの設定などはこちらでしておくとよい。
この他、講義タイトルとか担当者、作成日付なども設定できる。
例えば以下のように設定すると、「すごい講義」というタイトルで、担当者は坂田裕輔となる。作成日付はこのばあい、2021年12月21日だ。
日付を→dayと書いておくと、コンパイルした日が作成日に設定される。
これらの情報はタイトル情報に使用される。
一方、最後のtags[]にはファイルで使用するタグを設定する。tags[]などは今使っているファイルの挙動を設定する。この他にも挙動を変える設定がたくさんある。適宜紹介する。
#+title: すごい講義 #+author: 坂田裕輔 #+date: 2021-12-21T12:59:51+09:00 #+tags[]: emacs orgmode
2021-12-21T12:59:51+09:00
ファイルの構成
さて、emacsを起動して、新しいファイルを作成したら、作業をスタートできる。
emacsが初めての人は、ファイルの作成すらわからないと思うので、最初は上に出てくるツールバーを操作すると良い。
次にやることは、org-modeの起動だ。M-x org-modeだ。(MはAltキー)この辺はいくつかリンクを紹介するので、そちらを参照してほしい。
まずは講義用のorg-modeのファイルを作成する。適当なファイル名に拡張子としてorgを追加する。
このファイルの最初に以下を入力しておく。詳しくは書かないけれど、一行ずつ、org-modeの設定をしている。慣れてきたら不要なものを消したり、欲しい物を追加したりすればいい。
設定のあとに本文を書いていく。
おすすめ設定は、#+startup: numだ。これをすることで、今の見出しが何番目なのか、連番を表示してくれる。
org-modeでは文書の見出しを半角の*(アスタリスク)で表す。*の数が増えると見出しのレベルが下がっていく。*のあとには空白が必要だ。
講義概要の後にある:noexport:はタグだ。org-modeではタグは:で囲む。二つ以上のタグは、:plan:class:のように間のコロンを一つだけ使う。
「最初の講義」のあとに、同じように半角の*を一つとスペースの後に、各回の講義のタイトルを追加していく。
最後に講義概要を入れているのは、最初の講義から最上位レベルの見出し番号=講義回数としたいからだ。 講義回数を気にしないのであれば、講義概要を一番上にしてしまってもいい。
#+TITLE: 講義名
#+AUTHOR: 名前
#+DATE: 2021年7月13日
#+COLUMNS: %25ITEM %Keywords %TIME{+}
#+startup: num
#+startup: inlineimages
#+startup: show2levels
#+org-use-property-inheritance: t
#+STARTUP: content
#+tags[]: class work keyword
#+TODO: TODO In-Progress Recording Upload | DONE
* 最初の講義
ここに各回の講義を作成する。
* 二回目の講義
二回目はこの中
* 講義概要 :noexport:
ここに講義でめざす目標や教室、シラバスへのリンクなど、基礎情報を書く。
各回の講義の中身は次のようにする。「講義」や「スライド」などは内容を示すものに変えてしまっても良い。 タグも好みで変えてよい。
* 最初の講義 ** 講義計画 :plan: ** 講義見出し1 :class: ** 講義見出し2 :class: ** スライド :slides: ** メモ :memo:
講義計画を作る
講義計画段階では、一番上のレベルに各回の見出しを追加していく。 「最初の講義」というのをもう作っているので、ここにカーソルを合わせてALT+Enterで新しい見出しができる。 ちなみに、見出しのレベルはALT+←→で変更できる。
最初は各回のタイトルをざっと書いていく。各回の内容がある程度決まっているなら、それも各回の下に書いていく。 このときに、見出しレベルを下げて書くようにすれば、混乱しなくていい。 サンプル通りの構成なら、各回の講義の頭には*が一つつくし、各回の内容のメモには*が二つつく。
ここまでの作業で以下のようなものができる。「原油問題」と「原油の最適採掘量」は講義に含まれるトピックだ。「資源の有効利用」「原油利用の歴史」や「産油国の物語」はトピックの中のサブトピックだ。 資源の有効利用の下にはさらに見出しがあるがこれらはサブトピックに対するメモだ。 サブトピックとメモの使い分けは、その場でなんとなく決めている。内容がある程度まとまったらサブトピックに昇格するという感じだろうか。
サブトピックはトピックに昇格することも多い。この場合は講義の流れにかなり影響するので慎重に決めている。
ちなみに、:class:のタグが原油問題にしかついていなくて、サブトピックにはついていない。これは、設定で、#+org-use-property-inheritance: tとしているためだ。この設定をしておくと、上位の見出しのタグを継承する。
実際の講義は、このうちclassのタグがついたものを参照しながら実施する。
* 枯渇性資源(原油)の問題 ** 講義計画 :plan: ** 原油問題 :class: *** 資源の有効活用 **** 原油はなくなる **** ?〜天然資源の問題 **** 枯渇性資源 **** 石炭から原油へ *** 原油利用の歴史 *** 産油国の物語 ** 原油の最適採掘量 :class: ** スライド :slides: ** メモ :memo:
スライドは今はまだ使わない。
コンテンツ所要時間の追加
見出しのすぐ下に、所要時間を記入する。10分なら以下のようになる。 TIME:と10の間は半角スペースがいくつか入る。(何個でもいい)また、数字は半角だ。
:PROPERTIES: :TIME: 10 :END:
所要時間の見方(プロパティの扱い方)
各トピックごとに所要時間を書いておけば、各回の所要時間を合計して表示してくれる。
やっと、いろいろ準備したけど「便利や!」という機能がでてきた。時間の再計算はけっこうめんどうだしミスが生じやすい。こういうものこそ自動で処理したいところだ。
org-modeは、各見出しにプロパティをつけることができる。これを利用しよう。 見出しにカーソルを合わせて、C-cC-xC-cとすれば、画像のようなものができる。終了は見出しにカーソルを合わせて、qだ。 (このqがわからなくて、なかなか焦るので、覚えておく。)
講義メモ等の作成
見出しの下に講義メモをどんどん作成していく。なんなら、スライドの内容も書いてしまってかまわない。 PowerPointにはこのメモからコピペすると決めておけばよいし、このファイルに書いたものをそのままプレゼンテーション用のスライドにする方法もある。
具体的なメモの書き方だが、どうやって講義を構築していけばいいのか、どんなメモが有用なのかというのは各教員が経験で身につけている。わかりやすい解説があるといいなあと思うのだが、なかなか見当たらない。
とりあえずは、「なにをやりたい」というのが明確になっていればなんとかなる。
講義時間レポートの作成
さて、講義時間のレポートだが、各回の中の配分は作成時に見れるかなと思うので、ここでは講義全体を見渡したときに、各回で何分ぐらい時間を使っているかを表示してみる。
レポートはemacsを使うと、こんな感じで作成できる。ちなみにこのレベルだとまだemacsというかorg-modeのマクロレベルだ。更に複雑なことをしたくなれば、emacsではelispという言語を使って書く。
BEGINの行でC-cC-cとすれば、自動でレポートを作ってくれる。
#+BEGIN: columnview :hlines 1 :id global :maxlevel 2 :format "%3ITEM %25ITEM %TIME{+}" #+TBLFM: $1=@#-2::$2::$3='(format "%03d" (- @# 2)) #+END:
例えば、こんな感じのアウトプットが得られる。
| 回 | ITEM | TIME | |----+------------------------------------------+------| | 0 | CONTENTS | 000 | | 1 | 概要と世界の環境問題 | 001 | | 2 | CLIMATE[100%] | 002 | | 3 | なぜ環境問題が起こるのか-03環境と公害[%] | 003 | | 4 | 市場の失敗:ごみ問題 | 004 | |----+------------------------------------------+------|
詳しい人は、formatでITEMがかぶってるやんと思うかもしれない。ここは、回数をorg-tableに入れてもらうためのダミー列なので、ここの内容はなんでもよい。
さらなる活用
僕のここまでの方法で、講義づくりがかなり楽になる。
だけど、org-modeのパワーはこれだけではない。
例えば、各回に「講義記録(n回)」という見出しをつくって記録しておく。そしてこの見出しにタグをつけておく。
ここではタグを:memo:としていた。 そして、このタグが付いている見出しとその内容だけを別ファイルに出力できる。あるいは、別ファイルにしなくても、それだけをまとめて見ることができる。使い方は、「sparse-tree」を検索してみよう。
そうすれば、全講義が終わったときに、記録をまとめてみながら、成績をつけるなんてことができる。
同じように、スライドの内容も書き込んでしまって、各回でつかうものだけを選択してエクスポートすればそれでもうプレゼンテーションができる。これも実はとても簡単なのだけれど、僕はまだ実験程度しか使っていない。気になる方は、「org-modeとreveal.js」で検索だ。
なかなか夢が広がる。
次回は講義ノートを充実させる方法を紹介する。