« 「これ,あってますか?」 | メイン | 携帯の絵文字変換は中途半端 »

「動かないんですけど」 [ 教育 ]

TA中によくある質問!

発言:
「動かないんですけど」
プログラミング系のTA中に,よくある質問.
これには2パターンある.
エラーが表示されている場合と表示されていない場合だ.
前者の場合,「エラーで動かない」という意味である.
後者の場合,「期待している動作と違う」という意味である.


それに対する返答:
前者の場合,「なんてエラー?」
後者の場合,「あってるんじゃないの?」

エラーが表示されている場合,自力でどうにかできるはずである.
セミコロンがないとか,文法ミスとか,変数が定義されてないとか・・・
確かに,わかりづらいエラーがある.
全角スペースが入ってるとか,カンマとピリオドが違うとか・・・
最初は誰だってわからないので,聞くのは結構です.
でも,同じことを2度も3度も聞いてくるのは,学習してるとは思えない.
「人間誰でも忘れるんだ!」って反論があると思いますが,
そんなにすぐに忘れてしまうなら,勉強しなくても同じでは・・・?

後者の場合は大問題だ.
「あってるんじゃないの?」というと,大抵こう返ってくる.
「あ,これであってるんですか」
恐らくあってないと思うけどね.

授業で使うC言語は枯れた言語であり,潜在的バグがあるとは考えにくい.
もちろん無いとは言いきれないが,どう見てもバグでないことは明らか.
プログラムは非常に素直なものです.
指示した通りにしか動きません.
たまに,素直すぎてイライラすることもありますが・・・
ですので,その結果が期待したものと違っても,
そのプログラムの実行結果としては,何も間違っていないのです.
もしもその結果が期待のものでないのならば・・・
そうです.実装が間違っているんです.

「あってるんじゃないの?」といって,食い下がってくるやつは見所がある.
課題に対するイメージがしっかりとできている.
「この課題の結果はこうなるべき」と推測できている.
どういう実装をしたかは別として,課題の条件を満たしていないと理解している.
こういう学生には,さらにこう返す.
「じゃぁどうだったらいいの?」
ここで返事が返ってくるようだと,なかなかに理解している.
ちょちょっとアドバイスすれば,自己解決に進む.


結論:
自分が何をして,何がどうなって,それが起きたのか.
しっかりと考えよう!
「何をしたの?」「何もしてません」
なんてやりとりが行われるようじゃダメだよ.
無駄に勉強しないように.