いける学生・あかん学生をビデオに撮って,学生に見せるだとか,動画として公開するだとかできればなあと思ったりします*1.
学生の名誉を考えると,授業中の実際の状況というよりは,再現VTR風のほうがいいでしょうね.
1. 課題プログラム打ち込み編*2
- いける学生は,問題文に一通り目を通してから,打ち込み始める.
- あかん学生は,とりあえず打ち込んで,打ちにくい行に苦労する.
- いける学生は,課題に取りかかる前に,使用するソフトウェアをすべて起動する.
- あかん学生は,ファイルを打ち込み終えてから,ターミナルを起動するので,時間をロスする.
- いける学生は,テキストエディタは最初の1回だけ起動し,作業に必要な分だけファイルを開く.
- あかん学生は,一つのファイルにつき一つのテキストエディタを起動する.複数起動していると,どのファイルを編集しているか間違える.*3
- いける学生は,インデントはテキストエディタに任せる.
- あかん学生は,インデントの空白を律儀にタイプする.
- いける学生は,同じや類似のコードにはコピー・ペーストを活用する.
- あかん学生は,同じ処理でも一つ一つ打ち込む.
- いける学生は,数行前に「{」を忘れていてインデントがおかしくなったのに気づくと,必要最小限の操作で補正する.
- あかん学生は,数行前に「{」を忘れていてインデントがおかしくなったのに気づくと,BackSpaceで削除して,打ち直す.
- いける学生は,シェル上で,上矢印やTab補完などを活用して,コンパイル・実行時のタイプ数削減に努める.
- あかん学生は,コンパイル・実行のコマンドを,毎回毎回1文字ずつタイプする.
- いける学生は,コンパイルエラーが大量に出たら,エラー発生の最初の行からプログラムを読み直す.
- あかん学生は,コンパイルエラーが大量に出たら,エラー出力の終わりの表示をもとにバグ取りを試みる.またはエラーメッセージを無視してプログラム全体を読み直す.
2. プログラム作成編
- いける学生は,ノートまたはメモ用紙を用意し*4,プログラムの構想を練る.
- あかん学生は,いきなりプログラムを打ち込み始め,頓挫する.
- いける学生は,メモ用紙にプログラムコードを書かない.文字や数値などで,プログラムの期待する動作を図にしていく.
- あかん学生は,先生から「メモ用紙に書いてみるといいよ」と言われて取り出し,プログラムコードやフローチャートを書いていく.
- いける学生は,main関数から書くが,複数の自作関数を呼び出すだけとする.
- あかん学生は,main関数にすべての処理を書こうとする.
- いける学生は,プログラムコードだけでなくコメントも記述する.
- あかん学生は,プログラムコードだけで突っ走る.
- いける学生は,ライブラリルーチンを積極的に活用する.
- あかん学生は,使用するといいよと言われたライブラリルーチンだけを使う.
- いける学生は,論理エラーに気づくと,期待する動作と現在の挙動との違いをよく見て,解決を試みる.
- あかん学生は,論理エラーに気づくと,変数に1足したり引いたりといった,小手先だけのやり方で解決を試みる.
- いける学生は,不要と分かったコードを,テキストエディタのカット機能で削除する.やっぱり必要と思ったら,ペーストする.
- あかん学生は,不要と分かったコードを,BackSpaceで削除する.やっぱり必要と思ったときに,テキストエディタのさまざまな機能を試みるが,10分ほど頑張ってから,あきらめて打ち直す.
- いける学生は,必要に応じて手持ちの本を開いたり,ブラウザから検索をしたりして,あやふやな知識を見直す.正しい知識を,メモ用紙や,ソースファイルのコメントに残す.*5
- あかん学生は,テキストエディタとにらめっこする.うまくいかないときは友人や教員に相談するが,そこで得た重要な情報を記録しないため,聞き直すこともしばしば.
- いける学生は,友達が多い.プログラミングについて友人から相談を受けることもあり,議論を通じて自分の考えの正しさを確認したり,おかしなところを修正したりする.
- あかん学生も,友達が多い.プログラミングについて友人から相談を受けると,適当に答え,あとで「ちゃうかったやんけ」と叱られても悪びれない.