子ども向けプログラミング教室のゴールとは?
〜テキスト言語にステップアップすることがゴールではないんです〜
先日ある方に、「子ども向けのプログラミング教室のゴールって何ですか?」と聞かれました。「ゴール」ですか、なるほど。実はそのときまであんまり考えたことが無かったのですが、そのときわたしはとっさにこう答えました。
「自分で作ったプログラムが、自分でデバッグできるようになること」
わたしの教室で教えている生徒は、小中学生です。またわたしのプログラミング教室では、Scratchのみ教えていて、Java Scriptや、Python、Cとかのいわゆるテキスト言語は一切教えていないんです。ですから、Scratchから始めて、いずれCをやりましょう、それがゴールですみたいな考え方ではないわけです。
ですから、わたしの教室でプログラミングを学ぶ生徒さんは、まず自分のアイデアや作りたいものをScratchのプログラミングに落としてそれを作る、さらに自分のコードにあるバグをきちんと見つけてそれを修正できる。ここまでScratchでできていたら、おそらく将来必要になれば、Java Scriptだろうが、Cだろうが、勉強してできるようになるはずなんです。それも、Scratchをやってこなかった人より、短時間でキャッチアップできるようになると思うのです。ですから、わたしの教室でも、そういう意識で子どもたちに接しています。
でもやはり「ゴール」という認識であるだけ、ハードルも高いんです。
教室では、よく子どもたちにこう言われます。
先生ー、バグった!
これは子どもの心の声を要約すると、
・うまく行かない
・なんでこんなことが起きるのかわからない(オレのせいじゃない)
・だから先生直して(答え教えて)
ということなんですね。
ときどき、意地悪く「バグったぁ? バグは勝手に起きるもんじゃねーぞ。お前がバグ作ったんだぞー」みたいなことを言うときもあるんですが(笑)、でも、これは真実ですよね。
ただ、こういうことを言うと、だいたい子どもは一様に「いや〜な顔をします」(^^)
でも、本当はここがスタート地点なんですよね。画面上で自分の意図と異なる動きが見えたとき「何故そうなっちゃったか」を自分のプログラム内で発見して、その理由が理解出来れば、正しく修正することが出来るはずなんです。
ですから、そういうときは、なるべく丁寧に、どこが間違っているのか、なぜそうなったのかを説明しようとするのです。
ところが、中にはそれがどうしても受け入れられないというか、そこに興味が向かない子がいます。まあ算数のテストで答えにバツもらったときに、途中の式のどこが間違ってるのかをもう一度確認するってのは、自分の経験を思い返しても、一番やりたくない作業ではあるのはよくわかります。でも、プログラムの場合は、ちょっと直すだけですぐ結果が出る分、それよりはやりやすいのではないかと思うのですが、やはりこれを「めんどくせー」と感じる子が多いのですね。
中には、「バグったー」と叫んだ次の瞬間、わたしが見る前に全部きれいさっぱりプログラムを消しちゃったりする子がいたりするんです。
間違った内容を確認する前に消しちゃったら、何を間違ったかわからないじゃん!
と言うのですが、そういう子は、何か「間違えること」に対して、すごく臆病というか、「間違えると怒られる」みたいな意識にとらわれているのかもしれません。
こういう極端な子はそれほど多くないのですが、それでもほとんどの子は、バグったプログラムを突き止めて、それを修正するという点については、苦手としているというか、積極的にそういうことはしたくないような態度を見せる子が多いのですね。
そういう子たちのバグを見つけながら、「このプログラムだと、こういう動きになる。なぜなら・・・」という話をねちっこくやるわけですね。ただ、これがなかなか浸透しない子が大多数というのが現実なんです。