プログラミング教育の間違い事例 その1
プログラムが正しく動かないときに、間違い探しのように正解例とプログラムを見比べている
プログラムが正しく動かないときは、正しいアプローチでデバッグする必要があります。正解例を見てプログラムの間違い探しをするのではなく、プログラムを最初から動かして、どこでおかしくなっているのか、変数の値はどうなっているか?ということを調べながら解決する道筋をつけてあげるのがインストラクターの役割です。
この作業を繰り返すことで、問題解決力や論理的思考力が養われます。また、原因がわかって、その部分をなおすことで、「自分で問題を見つけて思い通りになおった!」という喜びを受講生に感じてもらうことが大事です。
プログラミング教育の間違い事例 その2
レッスンを教材任せにして生徒と向き合えていない
最近では、プログラミング市場の広がりとともに、多くの教材(テキストや動画教材など)が出てきています。プログラミングレッスンを教材任せにしていませんか?
生徒と向き合う時間が減ると、生徒がどこでつまずいているのか?正しく理解し、プログラミング的思考を学んでいるのかということが分かりません。生徒が離れていく原因は、まさにここにあると思います。
生徒は内容を理解できないと楽しくありません。自分でプログラミングできる楽しさを感じられないと離れていきます。教材をうまく使いながら、生徒と向き合い、理解度を確認しながら、生徒のモチベーションを保ち続けるのが、インストラクターの役割です。
プログラミング教育の間違い事例 その3
一見正しく動けば「OK」として、その他の条件で動作するか確認できていない
プログラミングでゲームを作っていく場合、ゲームが一見正しく動けばOKとしていることはないでしょうか?プログラミングで表現したことが、すべてのパターンでうまく動作するのかテストを行う必要があります。
たとえば、条件分岐(if)を使っている箇所があれば、すべての条件分岐が通ったケースでうまくゲームが動作するのか確認する必要があります。子供たちにありがちなのが、正常パターンがうまくいったからすべて問題ないと判断してしまうことです。論理的にあり得るケースはすべてテストする習慣をつけましょう。それが論理的思考の教育になります。
プログラミング教育の間違い事例 その4
生徒本人には分かっても他人が見て分かりにくいプログラムには…?
無駄な変数などを大量に作りすぎたり、同じような処理を作りすぎて、プログラムが自分でも解析できないほど複雑になっているケースが見受けられます。
生徒本人は満足げですが、これでは、プログラムの共有ができません。
プログラミングの開発現場では、作業をチーム分けして、内容をシェアしながら進めることが理想です。プログラムを作った人がデバッグを行うとは限らず、むしろ、ほとんどの場合、作った人とは違う人がデバッグをすることになります。
「他の人が見てもわかりやすいか?」
「関数がシンプルにまとまっているか?」
「ロジックが見やすいか?」
ということも意識しながら作る必要があります。
<無駄の多いプログラムの例>
①たとえば下のようなロジックがあったとします。
X=0,Y=0
繰り返し処理(10回) {
Xを1つずつ増やす
}
繰り返し処理(10回) {
Yを1つずつ増やす
}
この処理を動かすと、それぞれXもYも9になります。これはこれで1つのロジックですが、
②下記のように
x=0,y=0
繰り返し処理(10回) {
xを1つずつ増やす
yを1つずつ増やす
}
同じ回数だけ繰り返すのであれば、繰り返し処理は1回でやったほうがシンプルにまとまります。
③そして、繰り返し回数をnという変数にすれば、
x=0,y=0
n=10
繰り返し処理(n) {
xを1つずつ増やす
yを1つずつ増やす
}
のように改造でき、変数の値を変えるだけで、自在に繰り返し回数を変えることができます。
「自分が何をしたいのか、論理的に考え、 プログラムに落とし込んでいく」
「他の人が見ても 制作者の意図を容易にくみ取れる」という状態にするのがよいプログラムです。
プログラミング教育の間違い事例 その5
基本も完成していないのに、いきなりカスタマイズしようとする
ゲーム制作をしていると、やりたいことが強すぎて、基本をはしょって、カスタマイズからしようとする生徒がいます。特に、頭がよく、理解が早い子ほど、自分はできると思い込み、どんどん進めようとします。
それはそれで悪いことではないのですが、やはり、基本のロジックをしっかり抑えておく必要があります。 「守破離(しゅはり)」という言葉がありますが、まずは基本のスタイルを学び、そのあと、アレンジをしていくという流れを組む必要があります。
プログラムを作る際は、フローチャート(流れ図)という設計図を作り、何をどういう順番でプログラミングしていくのか、あらかじめ計画してから進める必要があります。 いきあたりばったりで行動してもうまくいかないのと同じように、プログラムもしっかり計画をして作っていく必要があります。