答えを教えないためのたったひとつの法則

この記事は、CoderDojo Advent Calendar 2016の17日目の記事です。よくCoderDojoで「教えることはしない」ということが言われていますが、具体的にそれってどういうことなの?ということについて、私なりのやり方を書いてみたいと思います。 記事のタイトルは、ありがちな本のタイトルっぽくしてみました。

答えを教える代わりにやるべきことは?

結論を一言で言うと「大きな目標を小さな目標に分解するお手伝いをすること」です。 忍者(CoderDojoでは参加する子どもたちを忍者と呼びます)たちがやりたいこと、実現したいことに対して、その目標をより小さな課題、小さな目標、具体的な行動に落とし込めるまで問いかけること。

たとえばこんな感じです。

メンター:何作りたいん?
忍 者 :シューティングゲームがつくりたいねん。
メンター:それって、なにがでてくるの?
忍 者 :自分のキャラと敵キャラ。
メンター:自分のキャラはどんな風に動くん?
忍 者 :キーを押したら右と左に動くねん。
メンター:何のキー?
忍 者 :AとD、Aを押したら左、Dを押したら右に動く。
メンター:じゃぁ、キーを押したらスプライトが動くスクリプトを作ってみよか。
忍 者 :はーい

(自分のキャラができた)

メンター:次どうする?
忍 者 :うーん、弾を撃てるようにしたい。
メンター:弾ってどんな風に動くんかな?
(以下、繰り返し)

これはあくまでも例なので、問いかけの細かさや内容はその時の忍者の状況によって変わりますし、普通はここまで細かく聞かなくてもいいし、途中で手を動かし始める子もたくさんいます。

要は忍者たちがやりたいこと、作りたいもの、実現したいことを具体的なアクションに落としていくお手伝いをしていくのです。そして、最終的に作る行動のところになれば、一緒に調べたり考えたりしていく。CoderDojoのメンターってこんな感じだと思います。

2年間のCoderDojo活動で得たこと

CoderDojoでは「答えを教えない」ということを実践しているメンターさんが多い。でも、初めてメンターとして参加した方にはとまどうことも多いかなと思います。「答えを教えずにメンターをするって具体的にどうしたらええの?そこの答えを教えてーや」と思ってるメンターさんも多いかなと。 :)

自分も初めてメンターとして参加した時はとまどいました。どうしても「こうしたらいいよ」と言ってしまいそうになりながら、なんとか答えを言わずに忍者たちを導く方法は無いものかと。どこまでを教えたら「答えを教えたことになるのか」の境目はどこにあるのだろうかと。

そんなことを考えながらCoderDojoの活動を続けて得た答えが、「ひたすら問いかけて、忍者達の目標を手の届くところまでおろしてくること」でした。

これからメンターをされる方へ

メンターを始める多くの方に「プログラミング経験が少ないけど出来ますか?」と聞かれます。プログラミング経験は少なくても大丈夫です。大抵のDojoにはエンジニアのメンターさんがいるので、技術的な面で困ったことがあれば相談すればいいんです。

それよりも、どうやって忍者たちとコミュニケーションを取って行くかが大切。プログラミングに限らず、より多くの引き出しを持っているメンターさんが、忍者たちによりよい問いかけができると思います。あと、問いかけばかりだと中には嫌になる忍者もでてくると思うので、そのあたりのさじ加減も大切。

うーん、たったひとつのってタイトルにした割にはたくさん書いてる気がする。繰り返すと、大切なのは「大きな目標を小さな目標に分解するお手伝いをすること」なんです。

最後に

2020年のプログラミング教育必修化を契機に、「プログラミング教育」とか「プログラミング的思考」といった、「なんかよーわからん言葉」が飛び交うようになっていますが、「大きな目標を小さな目標に分解する」というのは、プログラミングしていく上でとても重要なことで、またこの考え方はプログラミング以外にも生活のあちこちで必要となる力です。

CoderDojoでは、忍者達にそんな力を身につけてもらえたらいいなと思ってます。