プログラミング教育はやればいいというものではない。流行りに便乗してやらせても意味がない。

SONY - MESH

《ただ今キャンペーン中!》
蘇我教室
無料学習法診断受付中!

西船橋教室
プレオープン説明会予約受付中!

プログラミング教育が公教育でも取り入れられるようになり,国をあげてIT化に適応した人材を育てようとしていますね。そのため,プログラミングをうたった塾もどんどん登場しています。しかし,実はほとんどのプログラミング教育が流行りに乗っているだけな中身がないんですね。全てというわけではありませんが,ほとんどのプログラミング教育が便乗商法と言って間違いありません。学校教育で取り込まれているプログラミングですら,本質を欠いているものがほとんどです。今回はそんなプログラミング教育についてお話したいと思います。

そもそもプログラミング教育はなぜ始まったのか

これは非常に単純な理由で,日本が世界の中でIT化に遅れを取っているためです。例えば,皆さんがお使いのスマホはどこのメーカーですか?パソコンはどこのメーカーですか?家電のメーカーはどこになっていますか?SNSは何を使っていますか?これらメーカーや会社は一時期日本が一世を風靡していましたが,現在は海外にシェアが奪われてしまっています。自動運転にしてもそうです。海外の方が進んでいるイメージがあると思います。これらの原因は,日本にプログラミングができる人,エンジニアが少ないということなのです。だからプログラミングに小さい頃から触れさせることで,IT人材を確保し,今後のIT化に遅れを取らないようにしようという政策なのです。

IT人材が少ないのはプログラミング教育をやっていなかったせいではない

ここで重要なのは,そもそもなぜIT人材が少ないのかということです。いかにも世界ではプログラミング教育が盛んだから日本も遅れを取らないように,みたいな印象を受ける政策ですが,プログラミング教育の導入が遅かったせいではないんですね。

今の保護者世代の方は思い出して頂ければおわかりになると思いますが,根本的に理系の教育が弱かったせいなのです。ゆとり教育が始まり,理系の負担が重いということで学習内容が次々と減らされていき,その結果理系の大学を志望する人が激減。その結果プログラミングを扱える人材が減ってしまったのです。

今も高校のクラスの割合を見て頂ければお分かりになると思いますが,圧倒的に文系が多く,理系クラスは数クラスしかないという学校が少なくありません。

幼少期のプログラミング教育は根本的な解決にならない

とりあえずプログラミングを小さいことから触れさせることで抵抗を少なくしようという政策ですが,今学校で行われているプログラミングをやっておけばIT人材の確保につながるのでしょうか。

もうおわかりだと思いますが,現在学校で行われているプログラミングはプログラミングもどきなんですね。これができるからといって,プログラミングができるようにはなりません。おままごとのようなものなんですね。

おままごとというのは,子どもが料理を作る真似事をするお遊びで,イメージをつけるという意味では一役買いますが,おままごとがうまいからといって料理がうまくなるとは限りません。また逆に,おままごとをしていなかったからといって,料理が下手,できないとも限りません。なぜならおままごとは料理に直結していないからです。

おままごとをする年齢は幼稚園から小学校低学年程度まで。その頃まではおままごとからリアルな料理にも興味を示すきっかけになるかも知れませんが,そのままリアルな料理の世界に入る子は実際には少なく,ほとんどの子が他の遊びや勉強へと移っていきます。そして中学,高校と,ほぼ料理と触れないまま大人になり,必要に迫られて料理をする。この頃には既におままごとの記憶なんて忘れているので,おままごとの経験があるかないかはほとんど関係なくなっているのです。

おままごともそうですが,プログラミング教育もリアルに活かすためにしたければ,やるべきことは1つ。経験を継続させることです。小学校,中学校,高校と料理を続けてきている子はさすがに料理がうまくなります。こういった子の大人になったときの料理は,料理をやり始めた子と比べてクオリティも手際の良さも全くことなっていることが多いのです。プログラミング教育も,これをきっかけとして自主的に続けていかなければ意味がないのです。家庭科の授業で料理や裁縫に触れても,大人になって「なんかやったなぁ」と言っているのと同じになってしまうのです。

プログラミング教育で大切なのはプログラミングすることではない

確かに今行われているプログラミングはプログラミングで間違いありません。それを否定するつもりは全くありませんが,今行われているプログラミングの実情は,与えられたツールを使って命令を作成し,命令通り動くことを確認する,自分が動かしたいように動かすだけなのです。

よくここで,「プログラミング教育を受けることで,プログラミングの基礎を学べる」とか「命令を構築する技術が身につく」といった触れ込みを目にしますが,すでに答えが決められている,結果が分かっている世界でのプログラミングの構築は,発展性もなく,言われた通りに作り上げる技術しか身に付きません。多くのプログラミングに触れさせようとして,様々なプログラミング教育の経験をさせているという方もいらっしゃいますが,それらも扱っているものが違うだけで,枠内に収めるという域から出ることもないため,プログラムを作るという事に関して言えばほとんど効果がないのです。

例えば学校教育でも用いられている自分でメロディーを作るプログラミング。これはまず最初に先生が動かし方を説明し,動かし方の基本を学びます。次に自分たちでメロディーを作って動かしてみるという経験をさせます。メロディーを作る過程で「何を何秒間鳴らす」と言ったプログラミングの構築技術が学べますが,「メロディーを作る」という枠内からは抜け出せず,さらに構築も言われた通りの手順で行えば簡単にできる仕組みになっているため,ピアノをたたいて音を出すのと何ら変わりがないのです。

また,ロボットを動かすというプログラミングも流行っていますが,これもどうやったらどう動くという命令の構築の仕方を教えられるところから始まり,マニュアル通り作ればその通り動くことが確認できるに過ぎません。思い通り動かすところに命令を構築するスキルが問われそうな気もしますが,これも構築自体の負担は軽く,子ども達は「どう動かすか」に頭を使っていることが多いのです。

本当に学ぶべきはトライ&エラー

プログラミングを行ったことがある方はご存知だと思いますが,プログラミングの本質は,エラーとの戦いです。こうしたいと思ってプログラムを作っても,一発で思い通り動くことはほぼありません。万全を期したつもりでも,何かしらの見落としたバグがあるものなので,それを1つ1つ修正して理想に近づけていくのです。ゲームのバグをひたすら探す仕事があるというのをご存知の方もいらっしゃると思いますが,プログラマーやエンジニアにとってリリース後のバグは致命的なのです。みずほ銀行がシステムを変えるたびに大規模障害を発生させていましたが,これもシステムの構築そのものよりも,エラーを取り除けなかったことが問題だったのです。

そのため,もし本当にIT人材を育てようとするならば,にわか仕込みのプログラム作りを練習するよりも,なぜ思い通りいかないのか,どうしてこのような結果になっているのか,何度も試して何度も失敗する,こうしたトライ&エラーの繰り返しを学ばせることが重要なのです。プログラムを作れることよりも,検証して修正しての繰り返しを行える子の方が,本質的な技術としては上なのです。

プログラミングである必要は全くない

学校でプログラミングの授業があるからといって,塾に通わせているご家庭が増えておりますが,トライはともかく,エラーがない,もしくはエラーから学ぶことが少ないプログラミングは本質的には意味がないのは先に述べた通りです。ではどのようなプログラミングがいいのかと聞かれるのですが,私はそもそもプログラミングである必要はないと考えています。

例えば日常の手伝いの1つを完全に任せて責任を持たせる。お風呂掃除をしている子が多いようなので,お風呂掃除を例に考えてみましょう。お風呂掃除はただ何も考えずにパパっとこすって水を流して排水溝のネットを交換するだけの子も少なくありません。もちろんこれはこれでいいのですが,これではルーティンワークになってしまい,発展性がありません。ここで,タイルの汚れを落とすにはどうすればいいか,鏡についたウロコを落とすにはどうすればいいか,こういったことを子ども自身に考えさせ,失敗させるのです。あれこれ考えて試して目的を成し遂げる。これはプログラミングを通じて学べることとほぼ大差ありません。

ウォシュレットの水が止まらなくなったという事件が起きたことがありましたが,こういった時も,そもそもどうやって止めているのか,止めるにはどうしたらいいのか,様々な視点から考えることは命令を構築するプロセスとほとんど変わりがありません

便座に座る⇒スイッチ,もしくはセンサーで座っていることを検知する⇒この状態でウォシュレットのスイッチが押されたら水を出す⇒止めるボタンを押したら水を止める

そして水が止まらなくなってしまった原因を考えると,

  • 水を止めるスイッチが壊れた。
  • 水を止める装置が物理的に壊れた。
  • 水を止めるスイッチから命令を送る装置が壊れた。
  • 水を止めるスイッチから命令を受信する装置が壊れた。
  • 回路がショートして,送っていない命令が送られてしまった。

このように様々な原因が考えられ,止まらなくなった水をどう止めるかに関しても,

  • 便座から立ち上がる。(人が座っていることを確認するスイッチを切る
  • 鏡で人勧センサーをそらす。(人が座っていることを確認するセンサーを無効化する)
  • 水の流入を止める。
  • 電源を落としてモーターを止める。

といった手段が考えられます。これらを考えている時間はまさにプログラミングでトライ&エラーをしているのと同じなのです。よってプログラミングである必要は全くなく,日常生活で物事を解決していくプロセスで,十分プログラミングの基礎は学べてしまうのです。

プログラミングをやらせるよりも,今学ぶべきものが何なのか,をしっかり考えるべき

プログラミング教育を受けさせることが全く無駄だとは言いませんが,安直に選んだ便乗商法程度の中身のないプログラミング教育では学ぶことが少ないのです。ではどうするか。ここはやはり本質に変えるべきではないでしょうか。

結局トライ&エラーはプログラミングではなくても学べますし,そもそもIT人材の確保に苦労するのは,理系人口自体が少ないことに大きな原因があるのです。プログラミング教育を行ったからといって理系人口が増えるとは思えません。理系人口を増やしたければ,やはり理系の考え方を学ぶ場,学ぶ時間,触れる時間を増やしていくべきなのです。

そもそも理系ができなくなってしまった原因は,思考力を奪って公式に当てはめ,言われた通りに解く解き方が蔓延したためであり,早く正確に点数を取ることを目的として,教育そのものが極端に効率化されてしまったことに大きな要因があります。

つまり,もしプログラミングをできるようにしたければ,システム化された理系ではなく,本質的な理系の勉強をさせるべきなのです。結果的に本質的な理系を学んだ子は,大学,もしくは社会人になって必要になった時に初めてプログラミングに触れても飲み込みが早く,遅れを取ることはほとんどないのです。私の教え子にはgoogleやyahooのエンジニアもいますが,彼らも決して小さい頃からプログラミングに触れていたわけではないのです。通常の勉強や生活を通じての学習でトライ&エラーの素地を鍛えていたから,優秀なエンジニアになれたのです。

それでも子どもはプログラミングに興味を持つ

理想をいくら掲げても,現実的に今の親世代で理系が少ないのは事実。そして親が理系嫌い,理系を避ける様子を見せると,子どもも理系を避けるようになるのも事実。そして学校における理系教育は変わりつつあるとはいえ,まだまだ本質的な意味での浸透には時間がかかる様子。つまり,悠長なことを言っている間に技術はどんどん進み,諸外国の技術に日本が追いつけなくなってしまうのです。そのため,起爆剤的な役割としてのプログラミングというのは効果がある可能性は十分あります。なぜなら,10人いれば,1人ぐらいプログラミングの本質を自ら学ぶ子がいるからです。そしてこういう子は大抵先生の話をろくに聞かずに自分で勝手にいじりだしてしまう子。学校というルール的にはよろしくありませんが,トライ&エラーという意味では,プログラミング教育の本質をついた学び方なんですね。

そして言われた通りにプログラミングを学ぶ子も,本質はズレていても,命令を作り上げた先にある結果,動作には興味を持つ子が多いのです。何でもそうですが,思い通りにいくと気持ちいいですからね。

そこで最後に,本質を学ばせることができるプログラミング教育とはどういうものかをご紹介したいと思います。実は同業者の方々にもプログラミングを導入し始めたところが増えて来たのですが,私が一般的なプログラミング教育の在り方に否定的だったため,「切替先生ならどうするの?」と言われておりました。この度それを実践しましたので,ご紹介したいと思います。

リアルな世界にプログラミング教育を持ち込む

先程お話した通り,プログラミングの本質はトライ&エラーです。これを学んでいる子は,自前でプログラミング教室に通わなくても,学校のプログラミング程度なら簡単にこなしてしまいます。最もこういう子は先生の話を聞かずに触りだしてしまい,成績としての評価は低くなってしまう可能性がありますが,プログラミング教育の本質を理解している先生であればそんなことはしないでしょう。

実際にPHIでもプログラミング教育を行ってみました。その時の様子をお話したいと思います。

用意したのはSONYが出しているMESH(メッシュ)という教材です。

これは大きめのレゴブロックのようなものがいくつかと,タブレット,もしくはスマホを利用するプログラミング教材です。ブロックにはそれぞれ役割があり,人感センサーを搭載したもの,明るさを検知するもの,動きを検知するもの,光るもの,スイッチになっているもの,温度や湿度を検知するもの,といった様々な役割のブロックがあります。これらを組み合わせることで,目的に合わせた動作をさせるプログラミング教育になります。

例えば人が来た時に来訪を知らせるセンサーを作ると言った場合,人感センサーに反応があったら音を鳴らす,といったものが作れるのです。ちょっと回路をつくる技術が必要ですが,ある温度になったらエアコンのスイッチを入れるとか,暗くなったら電気をつけるとか,身近の「あったらいいな」を組み合わせることで作り上げることができるのです。

MESHの素晴らしいところは,画面の中だけで完結しない,そのプログラムだけで完結しないところです。リアルな世界との融合を考えられるところに他のプログラミング教育にはない強みがあります。もっと言ってしまえば,身近な生活の全てをプログラミング教育の題材にしてしまうことができるツールなのです。

口を出さずに好き勝手やらせることこそ最高のプログラミング教育

さて,このMESHを使ってPHIではどのように学ばせたのかと言いますと,実は完全に放置です。与えただけで,全く関与していません使い方も一切教えていません。最初の設定から全て子どもに任せ,完全に放置。通常プログラミング教室にいくと,「はい,ではまず〇〇をしてみましょう」から始まりますが,私はそもそもこれが間違っていると思うのです。興味さえ引き付ければ,子どもは勝手に学びます。プログラミング教育という意味では,トライ&エラーにさえ持ち込めればいいのです。

実際与えて放置したらどうなったかと言いますと,

「何これー?どうやって使うの?」

「先生もわからん。わかっているのは,面白いことができそうだということだけ。好きに使っていいよ。」

早速子ども達は開け始め,色々といじりだしました。説明書は読みません。いきなり触り出すのです。これが子どもです。ところがここであることに気付きました。私もすっかり失念していたのですが,一番最初に充電が必要だったのです。子ども達はこんなことを話し始めました。

「全然反応しない…」

「壊れてるんじゃない?」

「開けたばかりなのに全部壊れてるってことはないでしょ。」

「じゃあ何で動かないんだろう。」

「ねぇ,これってスマホを充電する穴じゃない?」

「あ,ほんとだ。もしかしてこれ充電してないんじゃない?」

「ねぇ先生,これ充電した?」

「や,何もしてない。充電必要なの?」

「多分。説明書見てみる。」

ここで初めて説明書を開き始めました。そして,

「やっぱり充電が必要だって!」

「そうか,じゃあ充電コード持ってくるよ。」

「7個もあるから沢山持ってきてね!」

「え!?そんなにケーブル持ってないよ!?」

とりあえず3本見つけたので,持ってくると,

「ねぇねぇ。1つ充電するのに約1時間だって。」

「てことは3本しかないから全部充電するまでに3時間か。」

「帰る時間になっちゃうね…」

「もー先生,しっかりしてよー!」

こんな感じで渡した初日はいきなり生徒に怒られました(^^;
でもこれがかえって良かったのか,何もできないから説明書を見ておこうという流れになって,みんなで説明書を読み始めました。そして

「これ面白そう!これ作ってみたい!最初にこれ作ってみよう!」

という感じで,人が入ってきたら「こんにちはー!」と挨拶を流す装置を作ることになったようです。そして次の機会に早速考えていたものを構築し,完成させてしまいました。

実はこの間にもなかなか思った通り動かず,紆余曲折があったのですが,私が直接手を出したのは,スマホの調子が悪かったので再起動をしたことと,設定の途中でスマホが求めた許可をしたぐらいです。いずれもスマホにロックがかけてあったので,子どもだけではできなかった部分です。そして最初の充電。それ以外は完全にノータッチ。というより,子どもたち自身も完全に手詰まりにならない限り私の所に持ってきません。普段の授業からそもそも自分で解決させてきているので,聞くことにあまり期待していないというのもあるかも知れませんが,楽しいのもあって自分で解決してしまうのです。大人向けの説明書を読んででも。

そして充電に際しても,「もっと容量の大きい充電器はないのか」とか「コンセントを増やせ」だとか注文をされました。そして「満充電にしなくても,30分ぐらいで半分充電すれば使えるだろうし,使いたいやつから優先して充電すれば1時間でできる」といった話も出ました。まぁ結局1時間でもすぐ帰りの時間になってしまうので,満充電で落ち着きましたが,こういった思考こそプログラミング教育を通して学べる大切な時間なのです。

さて,人を検知して挨拶をするシステムが完成したところで満足するかと思いきや,

「夜になって『こんにちは』っておかしくない?」

と言い始めて,明るさセンサーを組み合わせ,明るければ「こんにちは」,暗ければ「こんばんわ」と声をかけるように改良していました。さらに声だけだと味気ないとかで,ライトを光らせるように組み合わせて…

授業の関係があったので,残念ながらここで打ち切りました。多分放っておけばずっと遊んでいると思います。そうすれば勝手にプログラミング教育を学んでくれるのです。そして思考力も勝手につけていき,問題を解決する力もつけていきます。

PHIの子はなぜ勝手に学んでいくのか

もちろんこれには「PHIの子だからできた」という意見もあります。しかし目の前にあるものに興味を持ち,自分で解決する力を身につけさせたという以外,何もしていないのです。そのため,PHIの子だからできたのではなく,PHIの子にはその素地が備わっていただけで,誰でも同じように学ぶことはできるのです。大切なのは手取り足取り学ばせることではなく,失敗して学べる環境を作ってあげることではないでしょうか。

プログラミングも同じです。下手にプログラミング教室に通わせるぐらいなら,MESHを与えて好き勝手遊ばせる方が,余程質の高いプログラミング教育になります。結局決められた枠を出ることができないプログラミング教育では,本質的なことなど全く学べないのです。プログラミング教育自体を否定するつもりはありませんが,本当に大切なのは何をするかではなく,どんな失敗から何を学ばせるか,です。流行りやあおりに踊らされて,本質的な勉強,本来するべき勉強をおろそかにしないように十分注意して下さいね。

PHIで実際に使っているSONYMESHこちらで購入できます。
やらせようとせず,子どもが勝手に遊びだすように仕向けてあげて下さい。そうすればプログラミング以外でも使える思考力が養えますよ(^^)

下のGPIOキットMESHのセンサーで感知したものと連携して動作させるためのものです。MESHの7つの本体だけで十分楽しめます。多少回路の知識が必要になるので,楽しんでいるようなら後から追加で構わないでしょう。ちなみにPHIでは消耗品だと割り切り,「壊してもいいから気にせずやってみろ」と話しています。壊しても怒られないとわかれば,子どもはあれこれ試して勝手に解決策を見つけてきます。本当に壊されると懐は結構痛いのですが(^^;

にほんブログ村 受験ブログへ
にほんブログ村

本気で現状を変えたい方へ

本気で現状を変えたい方へ

学習法指導塾PHIは本気で何とかしたい方へ学習法指導を行っております。 「勉強しても伸びない!」とお困りの方はお気軽にご相談下さい。

◆ PHI設置の教場指導
  ⇒蘇我教室
  ⇒西船橋教室
◆ 家庭教師 プレミアム ※個人契約
◆ 遠隔指導
◆ 出張指導
◆ 不登校支援事業

コメントを残す