わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

プログラミングとノック

これまで3回,木曜の夕方に,Cプログラミングの補習をやってきて,思い返してみると,私は受け持ち生徒に,野球のノックをしているみたいに思えてきました.
打球に対する恐怖感こそない(初心者は脱している)けど,「うまく取れるか心配」という不安が多いようで,こちらはそんな感情をよそに「ほないくぞー」と,カンコン打っているわけです.
こちらとしては,球を取って当たり前.と言いたいけれど,少し取りにくいも出します.ここで根性(プログラミングの場合,自分なりにとことんまで考えてみること)を見ますが,根性だけでダメっぽいなら,技法(野球だと,グローブの出し方.プログラミングでは言わずもがな)を言って,試してもらいます.
ここまでならば,ほほえましい光景なのですが,学生にはどうも伸びていく気配が見られません.「ノックに時間を費やして,おしまい」となってしまいそうに感じます.
というのも,これも野球でたとえると,彼らは1個の球を直視しすぎているように思えます.そして1回のサイクルで,どう行動すればよいかが身についていない.自分を越えてしまった球は全速力で走って取りにいくのが基本(バックアップがいれば別)なのですが,後ろを見て「あー,行ってもた」という表情です(たいてい,言葉に出しません).
あるいは,幸いにも,いや本人の努力の結果,球を取れたのはいいけど.そこでおしまい.グローブに球が入った状態で,次の打球を取りに行こうとします.ノックする側(私)は,そこで続けてノックするわけにいかないので,少し時間を置き,納得した表情になるまで待ちます.
本来のノックというのは,「捕球する」で終わらず,取った球を「捌く」,つまり1塁とかホームとかに投げ,次の打球を待つことまでが要求されるはずです*1.難しい球を取れば周囲が歓びの声をかけます.簡単な球が取れなければ,取りに行って返送し,ポジションについてやり直し.そういう反復練習を通じて,打球に対して瞬時に反応できるようになるまで,体を鍛えるわけです.
サイクルの違い(ノックの1回とプログラミング一つにかける時間の違い)*2というのは重々承知していますが,それにしても,このままのやり方では,学生が,問題文を見て瞬時にプログラムがイメージできるようになってくれそうにないなあ.なんとかしたい….

*1:私自身の野球経験を書いておくと,小学2〜4年のころに,堺の少年野球に入っていました.ビッグベアーズという名前でした.レギュラーにはなれなかったし.ノックを受けた記憶もありません.

*2:「ノックの1回」をプログラムのどこと対応させるべきかという問題もありますね.「プログラム全体を組むこと」よりも,「1行〜数行のまとまった処理を書くこと」を対応付けるほうがいいのかな.