2023/9/15(金) プログラミングの演習

勉強とはなんだろう」にて、 「研究」には「答えの分からない問題に対し、解決方法もわからないままに取り組む」という側面がある、と述べた。
皆さんがこれまで講義で取り組んで来たや課題や演習は、1 週間もあれば答えにたどり着けるものがほとんどだったであろう。
しかし、研究では「答えも解決方法もわからない問題」の解決に 1 ヵ月とか半年かけることは普通にある。
そのような状況でも粘り強く考えられることが重要なのである。

そこで、そのような状況に触れるための練習として、「解決方法がわからない問題に取り組む」という演習を行ってもらう。
「答え」は教員である私は当然把握しているが、皆さんにはわからないはずである。
そのため、皆さんの立場からは「答えも解決方法もわからない問題に取り組む」という演習になるだろう。

もちろん、これは「研究」そのものとは言えないが、「研究」に取り組むための練習、というくらいの位置付けになるだろうか。
皆さんがその過程で何かを学び、習得したならば「勉強」になるだろう。

とは言え、実際には答えのある課題なのであるから、勘の良い学生は簡単にできてしまうのかもしれない。
こればかりはやってみないとわからない。

質問について

なお、今回の演習に質問する際も、あるいは今後皆さんが就職してからも、以下のような質問は避けて欲しい。 これでは、質問された側は答えようがない。なぜなら、質問者がどの程度の知識を持っているかわからないし、
場合によっては答えを全て教えなければならなくなるからである。

それに対して、良い質問は例えば以下のようなものである。 このような質問ならば、質問者がどの程度の知識をもっているかわかるし、
何を回答すればよいのかが明確であるというメリットがある。

簡単に言えば、すぐに答えを求めるのではなく、自分で考え抜いた上で質問しなさい、ということである。
あるいは、自分がどこまで分かっていてどこから分からないかを明確にしてから質問しなさい、ともいえる。


人物認識に関わる演習

まず、下記の演習で行った操作を十分習得しておくこと。 そして、最後のポーズ認識プログラム mp_pose_recognize_skeletons.py に関して、以下の問題に回答せよ。
プログラムの変更が必要な場合 Spyder 上で行い、変更後上書き保存してから実行して動作を確認すること。

ヒントは特にないが、 mp_pose_recognize_skeletons.py ではプログラミング言語として Python3、
画像処理ライブラリとして Python 用の OpenCV が用いられていることを知っておくと、自分で調べるときの助けになるかもしれない。

ロボットの演習

まず、下記の演習で行った操作を十分習得しておくこと。 その上で、以下の演習を行え。

エラーメッセージを読むことについて

プログラムを自分で変更するようになると、エラーがでてプログラムが動作しなくなることがある。
ここではそのエラーメッセージを読むことについてコメントを記す。
主に人物認識プログラムに関連する内容である。

カメラを用いた人物認識プログラムでは、下図のようにファイルごとの実行設定を
「現在のコンソールで実行」から「外部システムターミナルで実行」に変更して実行してもらった。



これにより、プログラム実行時に黒い画面 (外部システムターミナル) が現われるようになる。
この設定をする理由は、これをしないと「プログラム終了時にカメラが正常終了せず、次にプログラムを実行できなくなる」という問題が
環境によっては起こり得るからである (そうなった場合は Spyder を再起動することになる)。

その問題は、外部システムターミナルの利用で回避できるというわけである。しかし、それにより今度は
プログラムがエラーを出力して強制終了するとき、外部システムターミナルにエラーメッセージが表示されずにプログラムが終了する
という問題が起こり得る (この問題が起こる環境と起こらない環境があり、その違いは現状分かっていない)。

プログラムが強制終了するとき、エラーメッセージを読んで原因を探らなければならないが、
それが表示されないので原因を探りようがない、というわけである。

そのような場合、上のファイルごとの実行設定画面で
「外部システムターミナルで実行」の設定を「現在のコンソールに実行」に戻せば良い
それにより、Spyder 内のコンソールにエラーメッセージが追加されるようになる。

ただし、その設定によりカメラが正常終了しない、という問題が起こり得る可能性があるが、
エラーが解決するまではエラーメッセージを表示することを優先しよう、というわけである。



3年生向けページに戻る