昨日の続きです.
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.本日のタイトルは,英辞郎に載っていたものです.