(プログラミング1) テストとデバッグ周りのTips+関数設計Tips

Share on:

しつこく繰り返してるミニテストの方は、どうにか正答率8割〜9割にまでたどり着いたらしい。自作モジュールの使い方とか順序付きシーケンスに該当するオブジェクトを選べとかその類の設問ですが、相当繰り返してます。それでもまだ1割強が間違ってるわけですが。

13回目の授業はユニットテストとデバッグ周りの話をしつつ、関数設計というデザイン寄りの一日でした。解説自体は50分ぐらいで終えて、残りの時間はペアプロ演習。演習風景を眺めてると未だに関数実行するところで躓いてる人もいます。関数もオブジェクト同様に扱えるという話をしたせいで逆に混乱させてるという節はあるかも。

関数設計の話は、問題が目の前に提示された時に「いきなりコーディングし始める」のではなくて、タスクを理解・整理してからプログラミング言語に翻訳する必要があるよと。どんな機能が必要になりそうかを列挙するにあたり、各々の機能を「タスクを知らない人間にやってもらうにはどう伝えればよいか」を考えてみよう。まずは日本語で伝えるとしてどう伝えればよいか。相手に教えられるぐらい言語化・整理できたら、それを変数・制御文・関数なりに置き換えてみよう。といった話をしつつ、具体例で学生に質問当てたりしてみるものの、応答が「分かりません」も少なくなくて。うーん。

もっとじっくり時間かけてやっても良いのかもしれないが、うまいやり方ないかなぁ。個々の関数をどう実装するかというレベルの話ではなくて、どういう関数を用意したら良いかというレベルの話。唯一の正解があるわけではないし、間違ってもいいから歩き出すための土台(設計書)を作ろうという話なんですが。

そういうことを求めるレポート課題を出せ、という話でもあるのだろうけど、レポート書けても理解出来てるわけではないからなぁ。(課題の出し方が悪いという話はあるか)