わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

There is more than one right answer.

昨日の続きです.

Cプログラミング授業のマイポリシーの一つ,「複数の手段」について.

具体例を挙げると,C以前のプログラミングでは,「aの値を1増やす」には,「a = a + 1;」といった文を書きます(セミコロンは不要だったり,イコールではなくコロンイコールだったりしますが).しかしCでは「a++;」と書くのが一般的です.他に「a += 1;」とも書けます.この「+=」演算子は,forループで1ではなく2増やすなどのときによく使用されます.

これを「どれも同じ処理をする」と教えるのでは,「では,どれを書けばいいのか?」という疑問を学生が持つことになります.

これに対して私は,「一つの目的を達成するには,たいていの場合,手段が複数あり,状況に応じて手段を一つ選べばいい」と考え,自分の研究や,学生への指導に活用しています.

目的(何をするか,「what」)をまず明らかにして,その上で手段(どのようにするか,「how」)を一つ決める…この行動は,プログラミングに限らず,研究でも,社会に出ても,社会に出なくても例えば料理を作る*1ときにも,役立つものと考えます.

ところで,「複数の手段」という言葉で「TMTOWTDI」 (There's More Than One Way To Do It.)を連想するかもしれませんが,これはPerlのスローガンということで,学生指導には使わないようにしています*2.本日のタイトルは,英辞郎に載っていたものです.

*1:この発想のベースになっているのは,私が入学したときの,ある教官のコメントです.「一人暮らししなさい.自炊することで,工学的センスが磨ける」と書かれていました.当時は「工学的センス」って何? と思ったものですが,働き始めて,なるほど納得と感じるようになりました

*2:正確には,最近,学科内の教員へのメールにこの言葉を使って,あとでPerl用語であることに気がついたのでした.