デバッグと問題解決能力
小学6年生の生徒さんがUnityでタイピングゲームを作っているのですが、「!」や「:」等の記号がうまく入力判定できないと質問がありました。
キーボードから何キーが押されているかを判別するためには、「KeyCode」を取得し、それが表示されている文字と一致するかどうかでチェックをします。
このKeyCodeをリアルタイムで出力してみたところ、キーボードの種類によっては、公式からでているKeyCodeとずれる場合があることがわかりました。
実際のKeyCodeに合わせてプログラムを修正すると、無事に記号の判定ができるようになりました。
今回のように、プログラム上は間違っていなくても、実際に動かしてみると想定通りに動かないということはよくあります。
その場合は、なぜ動かないのかの原因を突き止め、それにあった修正を行います。
これを「デバッグ」といいます。
プログラミングはこのデバッグ作業の繰り返しなので、
問題の原因を突き止める → 解決策を考える
という、「問題解決能力」が自然と身についてきます。
先生がすぐにこたえを教えることは簡単ですが、
それだと子供たちは何が原因だったのか、どうして解決できたのかを、
きちんと理解できないまま進んでしまうため、次に同じような問題が起きた時にも同じように行き詰ってしまいます。
今何が問題なのか。原因は何なのか。それを解決するにはどうしたらいいのか。
こちらからヒントを出しながら、子供たちが自分で「あ!こうすればいいんだ!」と気付くお手伝いをしてあげることが、成長につながると思います。
そして一緒に考えながらバグを解消できると、「やったー!」と拍手しながら喜びます。
この達成感もプログラミングの醍醐味の一つですね!