演習課題7-5(11月20日)に関する担当教員からのコメント
公開: 2025-11-20 17:13:07
全般に関わるコメント:
- 第7回の午後の演習、実習は基本的に個人ベースのコーディングが主ではあるものの、グループの構成メンバーとのやりとり(TAの適切な助言も含む)があることで完遂できたことを覚えておいてほしい。人間同士のやりとりでは自然言語を適切に使うしかなく、言語化を少しずつ明瞭に行うことが奏功した主たる理由だからである。
- デバッグの重要性を強調したい。0と1の並び(リスト)が得られたとして、それが正しいのかどうか判定できないのはデバッグが追いついていないからである。隣の人と結果が同じになるかどうかでプログラムの正しさを判定してはいけない。
- コンピュータは人間の指示どおりに確実に動作する。コンピュータは間違えないし、期待と違う動きをしているならば、それは人間の指示が間違っている。
- コンピュータの動作結果が、人間の期待と同じであるかどうかは、人間が判定する他なく、AIが判定することはできない。そのためにも、人間側の期待を自然言語で適切に表現することは極めて重要である。
- 本日の実習で(結果的にできたとしても)うまくいかなかった試行錯誤の時間が長かった人ほど、デバッグの必要性を理解できるし、今後のコーディングに役立つ力を得たといってよい。
デバッグに関する具体的なコメント:
- プログラムが意図したように動かない場合や、動いているけど何か様子がおかしい場合は、まずはひたすらprint文を追記し続けるとよい。これがもっとも簡単なデバッグの方法(printデバッグ)である。
- if-else分岐、for-loopの始まり、ファイルの入出力の前、変数の初期化や代入の前後・・・などなどで、 (
print("ここからif↓↓")←このようなもの構わないので、とにかく(ただし、わかりやすく) )print文を挿し込み続けてみよう。 - そうすると思ったようにif分岐をしていなかったり、変数の値が変わっていなかったり、といったバグに気づくことができる。
- if-else分岐、for-loopの始まり、ファイルの入出力の前、変数の初期化や代入の前後・・・などなどで、 (
その他のコメント:
- グループAでは「プログラムが期待どおりに動作しているのかを確認するため」、第5回の地図を描画するコードを活用することを発想して試み、成功した。自らの要求にもとづいてコードを発展させ、目的を達成していると言える。本当の意味でのプログラミング力を発揮したと評価でき、他の受講者もこれを手本として活動してほしい。