Skip to content
meekradio
GitHub

コードもしっかり書く所まで教える子ども向けプログラミングスクールの講師を5年間やって分かったこと

programming, school, education17 min read

はじめに

まず、ここで語ることの真実味を与えられる程度に自分がどんな人かを明かしておく。 私は(この記事を執筆時点で)大学を卒業して大学院生をしている。学業の傍ら小学生の頃から趣味のプログラミングを今まで続けており、これまで個人でウェブサイトや簡単なゲーム、アプリを作ったりしてきた。 また、大学に入学した頃から子ども向けのプログラミングスクールの講師をしていて、これまで5年間ほど続けている。

そのスクールはロボットを主な教材にプログラミングを学ぶ、いやゆるロボット系のスクールで、最初は楽しく色んなロボットを作って遊びながらプログラミングの基礎的な概念(条件分岐、ループ、変数、関数など)を学んでいく感じで、最後の方のコースでは実際に Python を書いて生徒1人1人独自のアプリなどを制作するところまで行くような感じだ。

小学生の頃から独学でコードを書き始めた経験から、子どもたちがすんなり理解できること・理解が難しいことが何かを人より分かっているつもりで、その経験を活かして講師をしている。

この記事では、その5年間の講師・教室運営を通して気づいたこと、特に子どもにプログラミング教育を行う上で知っておくべきことを自分なりにお伝えしようと思う。

特に幼児~中学生くらいのお子さんを持つ親御さんで、子どもにプログラミングを教えることに興味がある方にはとても参考になると思う。

この記事で話すこと

この記事では、以下の項目について話していく。

  • プログラミング教育を受け始めてから辿る子どもの成長段階
  • スクール選びのポイント
  • 通わせるうえで親御さんが意識することと取るべき姿勢

親御さんがエンジニアであるか否かで親御さんのリテラシーが大きく変わると思うが、ここからはエンジニアでない(仕事で開発をしたことはない)前提に話を進める。

まず、プログラミングすることをメタ認知するまでの子どもの成長段階をざっくりと説明する。

コーディングの経験があったり、エンジニアの方であれば、自分が何も書けなかった頃からの成長を思い出せば想像できる感じではあるが、そうでない場合はわからないと思うので詳しく説明する。

こどもの成長段階

プログラミング教育を受け始めた子が自発的にテキストのコードを書いて開発ができるようになるまでは、おおよそ次のような段階を踏む。

  1. プログラミングを学習している自覚は当然無く、ただ楽しい空間・時間で過ごしている感じる段階
  2. 自分でコードを書くことで(ビジュアルコードも含む)何かが動くという過程に「モノづくり」と同じ楽しさを感じる段階
  3. 自分で何かを作りたいとアイデアを考えて、実現するためにはそのアイデアをコードに変換していけばいいんだと分かる段階

1. プログラミングを学習している自覚は当然無く、ただ楽しい空間・時間と感じている段階

1つめの段階では、プログラミングを学習しているとメタ認知しているわけではないので、今日どんなプログラミングを学んだの?と聞いても、その質問に対してのストレートな回答は返ってこないと思う。

おそらく、作ったロボットの話やミッション、チャレンジの話をなんとか教えてくれるのが関の山。

だいたい未就学児~小学校低学年くらいの子どもがこの段階のボリュームゾーン。

2. 自分でコードを書くことで何かが動くという過程に楽しさを感じる段階

2つめの段階にいけば、ついに自分の作ったコードがうまく動かないと「つまらな~い」と感じるが、「つまらな~い」と1度でも感じてしまう前に、自分で作ったコードで何かがパッと見で分かる程度にうまく行ったら、なんだか嬉しい・テンションがあがると感じている。

その実、先生にその日教えてもらったコードをほぼそのまま写しているだけだが、値を変えたりコードの一部を変えることが、絵を描いたり粘土で何かを作ってみることと同じ楽しさを感じ始める。

なので、迎えの時や家に帰ってきたときに、今日のレッスンで何をしたの?と聞くと(その日に「つまらな~い」となっていなくて、上に述べたような喜びを感じられた日に限り)「○○のロボットを作ったよ!」とか「○○のミッションをクリアしたよ!」など、お家の人とお話できて楽しいではなく、自分が作れたことに興味をもってくれてなんだか嬉しいと感じて、いきいきと話してくれると思う。

深堀りの質問をしていくと、結構どこまでも話してくれる感じ。

ただし、その日のレッスンで1度でも「つまらな~い」と感じてしまった場合は、(まだコードを書くことそのものの楽しさに気づいている段階ではないため)「わからない」とか1つ前の段階で返ってくる応えのように楽しかった部分、耳に残っている先生の言っていた言葉を思い出して、なんとか自分で言葉にしてくる感じになる。

3. 自分で何かを作りたいとアイデアを考えて、実現するためにはそのアイデアをコードに変換していけばいいんだと分かる段階

3つめの段階では、ついに自分で何かを作りたいとアイデアを考えると、それを実現するためにはコードを書く必要があるということに気づく。

例えば、〇〇のゲームを作りたいと思ったら、そのゲームのルール・仕組みを考えると、その自分で考えた各ルール・仕組みとコードに変換していく作業が頭の中でリンクして認知ができるという感じ。

ここまでくれば、正直プログラミング教育は大成功。自分で何かを作りたいと思ったら、コードを書かなきゃと変換できるので、プログラミングを学ぶことが自分の何かをつくることを実現する手段として認識できるようになる。

なので教室に居るときには先生が、可能であれば加えて迎えの時・帰宅後では親御さんが上手に実現できるよう助けてられる前提だが、子どもが能動的にプログラミングを学ぶ。

なので、レッスン中の子どもは、「先生、~をつくりたいんですけどー、どうしたらいいですか?」とか「先生、これがうまく動かないんですけどー、どうしたらいいですか?」みたいに

作りたい機能がある → どうすればいいか分からない or 自力でコードを書き始めたはいいけど、うまく動かない → 先生に相談する

という流れで活動する。

迎えの時や帰宅後に、「その日レッスンで何教えてもらったの?」とか「前、作るんだよねって言ってたやつ、どんな感じなの?」とか聞くと

上で述べたレッスン中の子どもの活動と同じように、

「~という何か(ミッションとかチャレンジとかゲームとかその一部の機能とか)を作ろうと思ったんだけど、うまくいかなくて先生に聞いたら、~~すればいいって教えてくれて、やってみたらできたよ」とか話してくれると思う。

これはうまくいった日の場合で、うまくいかなかった日は落ち込んだりしていると思うけれども、「~作ろうと思って、全然分からないから先生に聞いたら~~すればいいって教えてくれたけど時間になって終わっちゃった。次はできるようになるかな」とか話してくれると思う。

先ほども言ったが、この段階にお子さんが到達することができれば、プログラミング教育は大成功だと思う。

スクールを卒業した後、教わったプログラミング言語に特有のコード書き方を忘れたとしてもプログラミングに共通の概念は忘れないし、たとえそれすら忘れたとしても、何かを作りたいと思った時にそれを実現するためにはコードを書く必要があることは、そうそう忘れない。 卒業後に何かのきっかけで何かを作りたいと思ったときには、自発的にプログラミングを学び直し始めるか、学びたいと親御さんに言ってくれると思う。

当然、子どもは各段階の間にいるようなグラデーションのある成長をしていくが、まずこの成長過程を踏むんだということを理解しておくべきだ。

また、後の「通わせるうえで親御さんが意識すべきことと取るべき姿勢」でも話すが、お子さんが今どの段階にいるのかを把握することが、親御さんがスクールの外でお子さんのプログラミング教育をサポートする方法を決める上で大事な判断材料となる。

スクール選びのポイント

親御さんが絶対意識しておくべきスクール選びにおいて他と大きく差をつけて最も重要なことは、子どもに教育を施す先生の質だ。

当たり前だが入学する学校が決まれば教えてくれる先生が選べない小学校~高校とは異なり、プログラミングスクールは幾つもあるわけで親御さん・お子さんがスクールをつまり教えてくれる大人を選べる。

子どもは全く知らない段階から始まるのだから、プログラミングの概念だけでなく考え方や考える姿勢そのもの、プログラミングの楽しさみたいな精神的なところすら、子どもは先生の姿勢、言動をもとに無自覚に継承するということを忘れてはならない。

なので、スクール選びの際には先生の質を重視することが大切である。ただし次点で大切な選択肢には指導形態や教材もある。それらを分けて解説していく。

大事なポイントをまずは列挙

  • 指導してくれる先生について

    • その先生は、こどもが好きか?(こどもと一緒に何か活動するのが好きか?)
    • その先生は、コードを書いているか?
    • その先生は、子どものころにプログラミングを自発的に学び始めたか?
    • その先生は、今後も継続的に指導ができるか?
  • 教材

    • ロボット
    • ゲーム
    • スクラッチ
  • 指導の形式

    • 1on1 (親御さん自身または家庭教師がフルオーダーメイドに時間を書けて教えられる場合)
    • 1on1 (オンライン指導)
    • 対面の集団指導

指導してくれる先生について

はっきり言おう。距離、費用のフィルターを通過した物理的に通わせることのできるスクールの候補のなかで、 教えてくれることになる先生が、子どもと何か活動するのが好きで、今もコードをどんな形であれ書いていて、子どもの頃にプログラミングを自発的に学び始めた人であれば、そのスクールを最優先に検討するべきだ。

最良の選択

  1. 先生は子どもと一緒に何か活動するのが好き? → はい
  2. 先生はどんな形であれコードを書いている? → はい
  3. 先生は子どもの頃(通わせたいと思うお子さんの年代)にプログラミングを自発的に学び始めたか? → はい

以下、加筆中。