教える or 教えない? プログラミング教育における子どもに考えさせることの重要性

私はCoderDojo Kashiwa-no-haで子どもがプログラミングするのをお手伝いしていますが、そこである男の子がプログラムで詰まっている場面に遭遇しました。そのときそばにいる大人は教えたほうがいいのか、それとも教えないで自分の力でやったほうがいいのか。この教育者が誰でもぶち当たる壁について、今回は考えてみたいと思います。

これまでの【プログラミング教育のホントのところ】はこちら

とある男の子がつくったScratchアニメーション

これはある日の CoderDojo Kashiwa-no-ha での出来事です。その日私が見ていた小学校中学年の男の子は、Scratchでサメのスプライトがマウスポインタと一緒に動き、食べ物をムシャムシャ食べるアニメーションをつくっていました。

彼はこのプロジェクトに情熱的に取り組んでいました。はじめはただ食べ物を<隠す>だけでしたが、自分でコスチュームを編集して、ちょっとずつ消えてなくなるようなアニメーションをつくりました。彼は自分の作品ができあがったことを喜び、お母さんに見せたり何人かのメンターに自分から紹介していました。

しかし彼がつくっていたプログラムでは、サメが離れたあともアニメーションが再生されたままになっていました。私が彼に「サメが食べ物から離れたあとも食べてるように見えるね」と伝えたところ、彼はそれを改善しようと再びコンピューターに向かいました。

少し経ったあと、様子を見てみると、どうやっていいかわからないようでした。どうやら彼は「もし◯◯なら」という条件分岐を知らなかったようです。私が少しだけヒントを出してあげようと彼に声をかけようとしたら、隣に座っていた女の子が「サメに触れたとき”だけ”スプライトを変えればいいんじゃない?」とアドバイスしました。彼女の言葉を聞いて、彼は食べ物スプライトに対してプログラムを追加しました。

続いて、サメが食べ物から離れたらコスチュームを元に戻してリセットする機能を追加しようと次のようなコードをつくりました。

男の子がつくったコード

しかしこのプログラムでは、ずっとコスチューム1と次のコスチュームを交互に表示するだけで、思ったとおりには動きません。この場合、正しいコードは次のようになります。

正しい処理

彼はこのとき<もし◯◯なら>と<もし◯◯なら〜、でなければ〜>の違いをわかっていませんでした。

メンターはどこまで手を差し伸べるべきか

さて、ここからが本題です。もし、あなたがこの子のメンターだとしたらどのように教えますか?少し考えてみてください。

教師の視点から言えば、一番簡単なことは<もし◯◯なら〜、でなければ〜>ブロックの使い方をホワイトボードやワークシートなどを使って説明し、理解させることです。しかしそれでは、子どもたち自身の発見や気づきにつながらないことが多いことに注意しなければなりません。

特にプログラミングの考え方や概念といった頭の中で考える行為は、発達段階によって得意不得意が異なります。たとえば心理学者であるジャン・ピアジェが提唱している、認知発達理論における4段階の発達段階で言えば、論理的思考力が発達するのは7歳から11歳、抽象的な思考ができるようになるのは11歳以降とされています。ただ教えて教師が満足するのではなく、子どもが本当に理解したかが重要だと言えます。

もうひとつは、子ども自身が「試行錯誤を繰り返す」ことが挙げられます。実際にその子は、ブロックを違う位置に入れ替えたりして試行錯誤を繰り返していました。しかし新しいブロックをいきなり出して試せる子どもは、私の経験上少数であると言わざるを得ません(もっと言えば私が指示をするまでずっと待ち続けている子たちがたくさんいます。これは学校文化のひとつの弊害と言えるでしょう)。適切な言葉がけによって、子どもたちが試行錯誤を繰り返すことのできる環境を整えてあげることが大切になります。

「教える」ことは簡単なことではない

今回この子たちは、<もし◯◯なら〜、でなければ〜>の壁を自分たちで乗り越えていきました。男の子が迷っていると、アドバイスをしてくれた女の子もまた一緒に考えはじめたのです。ここで私が言葉で説明するよりも、子どもたちだけで到達したほうが彼らにとって学び多くなると判断し、<もし◯◯なら〜>以外のブロックを試してみてはどうかとアドバイスしました。すると女の子のほうが<もし◯◯なら〜、でなければ〜>ブロックを見つけ、男の子に教えて、無事につくりたいものをつくれました。

「教える」ことは簡単なことではありません。子どもたち1人1人に合った学びを提供するスキルは専門性の高い行為です。だからこそ、しっかり考えていかなければならない問題なのです。先生が「教える」ことによって、子どもたちが気づく機会を奪っているとも言えるかもしれません。

今回は自戒の念も込めて、「教える」とはなにかについて具体的な事例をご紹介しながら考えてみました。ぜひ皆さんも自分にとって「教える」とはなにか、メンターや先生の役割はどのようなものなのかを考えてみてはいかがでしょうか。

この記事が気に入ったら「いいね!」をクリック!バレッドプレス(VALED PRESS)の最新情報をお届けします!

これまでの【プログラミング教育のホントのところ】はこちら

プログラミング教育のホントのところ - バレッドプレス(VALED PRESS)

© Valed.press