こないだから,母校,奈良高専で3年生のプログラミングの授業のお手伝いをしています.
基本的にお仕事の内容は,授業中に教室の中を歩き回って「困っている人がいたら助ける」という内容なのですが,これが非常に難しい.何が難しいって,人に教えるっていう行為が非常に難しい.
たとえば,授業中に「せんせー,これ動かないんですけどー.」って質問を受けたとします.
私は,スーパーハカーではないですし, 得意言語はVHDLっていう設定なので,C言語はそれほど得意ではありません.だけども,エラーメッセージを見てソースコードを見れば, ほとんどの場合は原因がわかる程度のC言語の知識は持ち合わせているつもりです. だけども,どうやって学生にアドバイスをすればいいかってのは,すごく難しい.
そりゃ,間違いを指摘するだけなら簡単です. 「ほら,この行の最後にセミコロンがないよ」とか. でも,それじゃ意味がないんじゃないかなーって思うんです.指摘された点を修正すれば,とりあえずコンパイルは通るけど, 次に同じ様なトラブルにあったとき,その学生に何ができるのか? そう考えた場合,エラーメッセージを読んでエラー内容を判断して, どうやって修正すればいいのかを自分で考えれるようになってもらわなければなりません.
セミコロンとかは簡単な例なんだけど, たとえばアルゴリズムで学生が考え違いをしていた場合とかだと, どのようにアドバイスしていけばいいか,とかかなり迷います.
でね,考えてるうちにですね,学生のほうが何を勘違いしたのか, 「先生にも原因がわからないに違いない」とか思われたのか, 「あ,いいです.もうちょっと考えてみます」とか言われたりするんですよ. これ,すごい凹みます.
…もっと勉強しないとだめだなぁ.