はじめに
セキュリティ・キャンプ全国大会にて講義を実施してきました。
講義の反省点と今後の改善について、自分が忘れないよう記録として本記事を執筆したいと思います。
実施した講義の内容
講義では、TLS1.3をメインとした暗号化通信を扱いました。
講義の流れとしては以下の通りです。要素技術について学んだ上で実際に通信を行うという形の設計です。 各技術を学ぶ章では、ハンズオンやクイズを用いることで、実例をもとに学べるような形にしていました。
- (事前学習)TLS登場の背景や通信に関する基本的な情報
- TLS通信の全体の流れ
- 公開鍵暗号、鍵交換
- 共通鍵暗号(ストリーム暗号、ブロック暗号)、AEAD
- PKI、証明書、デジタル署名
- TLSパケットのデータ構造、通信のハンズオン
反省点
スライドに文字をあまり入れなかった
直近で学会発表などを複数回行っていた影響もあり、「スライドには文字をあまり入れないようにして、説明は口頭で行う」ということが先行しすぎてしまい、 必要な文字まで削ったスライドになっていました。
これは学会発表のような、資料配布がなくその場限りの発表では良しとされることが多いと思いますが、今回のケースでは以下の問題があると感じました。
- 講義の内容に途中でついて来られなくなった受講生が後から追いかけられない
- 口頭の説明が多すぎると困惑する。今どこを見ていて、どこについて話しているのかがわからなくなる
- 後日スライドを見返した際に、何を話していたかを思い出しづらい
スライドに書くより口頭で説明したほうが伝わるという考えは一定正しいと思うのですが、説明して理解してもらえなかった際のことを全く考えていませんでした。
ハンズオンが少なかった
講義は、座学とハンズオンが1:1くらいの割合になるように設計しました。 しかし、一部では1時間ほど座学が続いてしまう部分もあり、これは良くないと思いました。 (予想では20〜30分ほどになる予定だったのですが、思ったよりも理解できていない方が多く、説明を重ねているうちに長引いてしまいました)
やっぱりキャンプ当日は眠たいですし、長く人の話を聞いていると集中力も切れてしまいます。 自分もキャンプに参加した当時、座学でスヤァと眠っていたこともあり、座学は少なめにと考えていたのに1:1の割合でやってしまった部分が反省点かなと思いました。
また、座学は現地じゃなくてもできるので、あえて現地でやる必要は無いのかなと思います。なので、もし次回も講義を実施するのであれば、座学とハンズオンは3:7か2:8くらいの割合にしても良いのかなと思いました。
ただ、その分事前学習にある程度時間を割いてもらう必要はありそうです。
機器を使った演習を行わなかった
Aクラスの他の講義では、機器を用いて演習を行うものが多かったのですが、自分の講義では機器は一切用いず、ソフトウェアのみを用いました。
これは単純に作る時間が取れなかったのと、機器を使った方が良い演習というのを思いつけなかったことが理由です。
画面の中で作業をするだけの演習だと眠たくなってしまいますし、やはり現地にいるからにはそこでしかできない演習をやったほうが良かったなと後悔しています。
事前学習が適切ではなかったかもしれない
事前学習としては「購入した書籍の第一章を読んでもらう」というものでした。
ただ、これも良くなかったかもしれないと思っています。まず、書籍は私が書いたものではないため、余分な情報が含まれています。 私としては全部読んでほしいところではありますが、これはかなりの負担になっていたかもしれません。
そのため、書籍で事前学習を行うよりも、1〜2時間の動画形式でサクッと説明するのが良いのかなと思いました。 そのうえで、難しい技術に関する部分は説明してしまい、質問を受け付けて、必要に応じて別途時間を取ってサポートするのが良いかなと思いました。
書籍を購入したのなら、書籍を参照しつつ、読まなくて良い部分はスキップして進めるような動画にしても良いかもしれません。
次回があるならこうする
アプローチを変える
自分としてはこれ以上わかりやすい説明は難しいと考えています。 説明をよりわかりやすくするより、実装や検証を通して理解できるような形にするのが良いかなと考えています。
あるいは暗号に関する難しい部分は事前学習に押し込んでしまい、長い時間を掛けて理解してもらう、とかでも良いかもしれません。
スライドを使うのをやめる?
今回スライドを作っていて強く思ったのが、スライドの順番の難しさです。どっちを先に説明した方が良いか、先に説明すると伝わりづらいから結論から話すか……といった部分で非常に悩みました。
そのため、場合によってはスライドを作らず、全部ドキュメント形式のものにしてしまっても良いかもなと思いました。 その方がコードとかを入れたりできますし、スライドに入り切らない解説も全部入れることができます。
機器を使った演習を入れる
IoTクラスなのに実機がないのはかなり寂しいです。何かしらの機器を使って演習を含めた講義にするのが良いかなと思いました。
おわりに
一方で、講義だけで内容をすべて理解できてしまうような設計にも、それはそれで問題があると考えています。あまりに簡単すぎる講義では、成長の機会になりません。
重要なのは、「受講生にとってどんな講義にしたいのか」をまず考え、それに合わせて内容を設計することだと、講義を終えてから感じています。たとえば、次のような方向性が考えられます。
- 技術的な深さは追求せず、「普段はできない体験」や「記憶に残り、後から思い出したくなる時間」を提供する講義
- 内容を完全に理解してもらったうえで、今後学ぶべきことを示し、さらなるステップアップにつなげる講義
- 受講生が内容の大半は理解できるものの、少し難しく理解できていない場所が要所要所に発生し、それを理解するようになることが宿題になる講義
このように、いろいろな形があると思います。たとえば1であれば、キーボードの自作や、マイコンを使ったラジコンの工作などが挙げられます。要求される技術はそこまで高くないものの、ゼロから一人でやろうとすると時間がかかるものや、普段は触れることのできない機器を扱えるものは、体験として強く記憶に残ります。
どの方向性を選ぶにしても、一番避けたいのは、「何をやっているのかすらわからず、今後にもつながらない講義」「なんのための講義だったんだろう、と受講生が消化不良のまま終わってしまう講義」です。 その場で理解できなくても後々点と点がつながり、理解することができるようになる部分があれば良いなと考えています。
まだまだ未熟ですが、経験を積んで、より良い講義ができることを目指したいと思います。