コードもしっかり書く所まで教える子ども向けプログラミングスクールの講師を5年間やって分かったこと
— programming, school, education — 17 min read
はじめに
まず、ここで語ることの真実味を与えられる程度に自分がどんな人かを明かしておく。 私は(この記事を執筆時点で)大学を卒業して大学院生をしている。学業の傍ら小学生の頃から趣味のプログラミングを今まで続けており、これまで個人でウェブサイトや簡単なゲーム、アプリを作ったりしてきた。 また、大学に入学した頃から子ども向けのプログラミングスクールの講師をしていて、これまで5年間ほど続けている。
そのスクールはロボットを主な教材にプログラミングを学ぶ、いやゆるロボット系のスクールで、最初は楽しく色んなロボットを作って遊びながらプログラミングの基礎的な概念(条件分岐、ループ、変数、関数など)を学んでいく感じで、最後の方のコースでは実際に Python を書いて生徒1人1人独自のアプリなどを制作するところまで行く ような感じだ。
小学生の頃から独学でコードを書き始めた経験から、子どもたちがすんなり理解できること・理解が難しいことが何かを人より分かっているつもりで、その経験を活かして講師をしている。
この記事では、その5年間の講師・教室運営を通して気づいたこと、特に子どもにプログラミング教育を行う上で知っておくべきことを自分なりにお伝えしようと思う。
特に幼児~中学生くらいのお子さんを持つ親御さんで、子どもにプログラミングを教えることに興味がある方にはとても参考になると思う。
この記事で話すこと
この記事では、以下の項目について話していく。
- プログラミング教育を受け始めてから辿る子どもの成長段階
- スクール選びのポイント
- 通わせるうえで親御さんが意識することと取るべき姿勢
親御さんがエンジニアであるか否かで親御さんのリテラシーが大きく変わると思うが、ここからはエンジニアでない(仕事で開発をしたことはない)前提に話を進める。
まず、プログラミングすることをメタ認知するまでの子どもの成長段階をざっくりと説明する。
コーディングの経験があったり、エンジニアの方であれば、自分が何も書けなかった頃からの成長を思い出せば想像できる感じではあるが、そうでない場合はわからないと思うので詳しく説明する。
こどもの成長段階
プログラミング教育を受け始めた子が自発的にテキストのコードを書いて開発ができるようになるまでは、おおよそ次のような段階を踏む。
- プログラミングを学習している自覚は当然無く、ただ楽しい空間・時間で過ごしている感じる段階
- 自分でコードを書くことで(ビジュアルコードも含む)何かが動くという過程に「モノづくり」と同じ楽しさを感じる段階
- 自分で何かを作りたいとアイデアを考えて、実現するためにはそのアイデアをコードに変換していけばいいんだと分かる段階
1. プログラミングを学習している自覚は当然無く、ただ楽しい空間・時間と感じている段階
1つめの段階では、プログラミングを学習しているとメタ認知しているわけではないので、今日どんなプログラミングを学んだの?と聞いても、その質問に対してのストレートな回答は返ってこないと思う。
おそらく、作ったロボットの話やミッション、チャレンジの話をなんとか教えてくれるのが関の山。
だいたい未就学児~小学校低学年くらいの子どもがこの段階のボリュームゾーン。
2. 自分でコードを書くことで何かが動くという過程に楽しさを感じる段階
2つめの段階にいけば、ついに自分の作ったコードがうまく動かないと「つまらな~い」と感じるが、「つまらな~い」と1度でも感じてしまう前に、自分で作ったコードで何かがパッと見で分かる程度にうまく行ったら、なんだか嬉しい・テンションがあがると感じている。
その実、先生にその日教えてもらったコードをほぼそのまま写しているだけだが、値を変えたりコードの一部を変えることが、絵を描いたり粘土で何かを作ってみることと同じ楽しさを感じ始める。
なので、迎えの時や家に帰ってきたときに、今日のレッスンで何をしたの?と聞くと(その日に「つまらな~い」となっていなくて、上に述べたような喜びを感じられた日に限り)「○○のロボットを作ったよ!」とか「○○のミッションをクリアしたよ!」など、お家の人とお話できて楽しいではなく、自分が作れたことに興 味をもってくれてなんだか嬉しいと感じて、いきいきと話してくれると思う。
深堀りの質問をしていくと、結構どこまでも話してくれる感じ。
ただし、その日のレッスンで1度でも「つまらな~い」と感じてしまった場合は、(まだコードを書くことそのものの楽しさに気づいている段階ではないため)「わからない」とか1つ前の段階で返ってくる応えのように楽しかった部分、耳に残っている先生の言っていた言葉を思い出して、なんとか自分で言葉にしてくる感じになる。
3. 自分で何かを作りたいとアイデアを考えて、実現するためにはそのアイデアをコードに変換していけばいいんだと分かる段階
3つめの段階では、ついに自分で何かを作りたいとアイデアを考えると、それを実現するためにはコードを書く必要があるということに気づく。
例えば、〇〇のゲームを作りたいと思ったら、そのゲームのルール・仕組みを考えると、その自分で考えた各ルール・仕組みとコードに変換していく作業が頭の中でリンクして認知ができるという感じ。
ここまでくれば、正直プログラミング教育は大成功。自分で何かを作りたいと思ったら、コードを書かなきゃと変換できるので、プログラミングを学ぶことが自分の何かをつくることを実現する手段として認識できるようになる。
なので教室に居るときには先生が、可能であれば加えて迎えの時・帰宅後では親御さんが上手に実現できるよう助けてられる前提だが、子どもが能動的にプログラミングを学ぶ。