プログラミング教育

「プログラミング教育」について

お子さんのいる親御さんだけでなく、全ての大人の人に知ってもらいたい

 プログラミング教育についての誤解

2020年度から小学校で「プログラミング教育」がスタートして、早くも2年が経ちました。

僕も、民間のスクールで子ども達に「プログラミング」を教えているという立場柄、子どもを持つ親御さんや小学校に通うお孫さんを持つ方々から、小学校での「プログラミング教育」について質問を受けることがあります。

今回は、そうした質問にお答えする中で、保護者の方が「それは知らなかった!」「考え違いをしていた」と言ってもらえた話題について紹介しつつ、少しでも多くの方々に「プログラミング教育」についての誤解を解いて、理解を深めてもらえたら、と思っています。

まず、一番多い「プログラミング教育」についての誤解は

「プログラミング教育って、プログラマーを育成するんでしょ」

というものです。

これは、「プログラミング教育」という言葉自体が招いている誤解で、仕方のないことかもしれません。

個人的には「プログラミング教育」という言葉自体を一刻も早く変えた方がよいくらいだと思っているのですが、それはさておき、「プログラミング教育」は決して「プログラマー育成」のための教育ではありません

次に多い誤解が「プログラミング教育って、Excelやパワポ(PowerPoint)の使い方を教わる事でしょ」というものです。

これは、プログラミングがどういうものかがイメージできないため、「パソコン教室」と混同しているせいだと思います。

確かに、小学校のプログラミング教育の授業でExcelやPowerPointを使うことはあるかもしれませんが、それらコンピューターソフトウェアの使い方を覚えることが「プログラミング教育」の目的ではありません。

そして、「最近、子どもが学校からパソコンを与えられたり、学校でインターネットができるようになったが、あれもプログラミング教育ですか?」という質問も多いです。

これは、いわゆる「GIGAスクール構想」と言われるもので、政府が生徒一人一台にパソコン(またはタブレットPC)を与え、学校内に無線LAN環境を整備するといった、授業を受けるための学校環境を時代に合わせてアップデートする取り組みのことです。

もちろんパソコンの台数が増え、無線LANが整備されることは「プログラミング教育」にとってプラスになります。

せっかく整った環境で、従来の教科だけを教えているだけでは、「プログラミング教育」とは言えません。

最後に、これは根本的な疑問ですが「プログラミング教育って、本当に必要なんですか?」というものです。

面と向かって口に出して仰る方はさすがに多くないですが、お話をする中で、多くの大人の方々は本心ではそう思っているように感じています。

これについては、子ども向けのプログラミングスクールを経営している、ということを抜きにして声を大にして言えることですが

プログラミング教育は必要です!!

それでは、これらの誤解や、「プログラミング教育は不要」という最大の誤解を解くべく、これから僕なりに解説していきたいと思います。

 

 プログラミング教育が開始された経緯

そもそも、「プログラミング教育」必修化の出発点は2013年4月に政府主導で開かれた「第6回産業競争力会議」と言われています。

この会議では産業界からも多くの著名人が参加しており、国内のIT人材不足を解消するため、義務教育からプログラミング教育を行うべき、という提言がありました。

また、AI(人工知能)、IoT、量子コンピューター、ブロックチェーンなどなど、急激なコンピューターテクノロジーの進歩によって、社会は世界規模で大きな変革の時のただ中にあります。

これからの時代では、誰もがITやコンピューターに対する、深い知識と理解がますます重要視されるようになってきました。

こうした全世界的な時代認識のもと、2017年3月、文部科学省では、10年に一度更新する「新学習指導要領」によって、小学校、中学校、高校での「プログラミング教育」必修化が決定されたのです。

 

 プログラミング教育はプログラマーの育成が目的ではない

確かに、先進諸国の中で日本のIT人材の数が少ないのは事実です。

国内でプログラミングなどの高度ITスキルを持った人材を増やすことは急務であるように思えます。

ですが、2017年に文部科学省が策定した、「新学習指導要領」には、小学校における「プログラミング教育」の目的として「IT人材、プログラマーの育成」といった言葉はほとんど出てきません。

文部科学省の「小学校プログラミング教育に関する手引き」よると

文部科学省「プログラミング教育の概要」より

 

そこに書かれている「目的」は、「これからの社会を生きていく子ども達にとって、将来どのような職業に就くとしても極めて重要な能力を身につける」こと、と書かれています。

「AI(人工知能)によって人間の仕事が奪われる」という脅迫めいた言葉を耳にしたことがあるかと思いますが、確かに無くなる仕事は多いでしょう。

18世紀の産業革命において、蒸気機関が発明されたことで、馬車が蒸気機関車や自動車に置き換わっていったように、今回も多くの仕事がAIやロボットに置き換わり、代わりに新たな仕事が登場するでしょう。

新たな仕事とはなにか?これは現在進行形でどんどん新しい仕事が生まれているので、数年後のことは、誰も正確に言い当てることが出来ない状況です。

ただ、この先どのような職業でも、コンピューターテクノロジーを抜きにしては成立しないだろう、ということは言えると思います。

そこで、先述の「将来どのような職業に就くとしても」、コンピューターテクノロジーを活用して様々な問題に対処するということが、「極めて重要な能力」となってきます。

この、コンピューターテクノロジーを活用して問題に対処し、解決するために必要とされるものが、「プログラミング教育」の”ねらい”の第1に掲げられている「プログラミング的思考」なのです。

 

 プログラミング教育のねらい「プログラミング的思考」とは

さあ、「プログラミング教育」の意味もよく分からないのに、「プログラミング的思考」って何?とますます混乱されるかもしれません。

分からないのも当然です。「プログラミング的思考」なんて言葉は(今のところ)広辞苑にも載っていませんし、英語で「programming thinking」と検索しても意味不明の結果が返ってくるだけだと思います。

「プログラミング教育」という言葉と同じく、「プログラミング的思考」も完全に、文部科学省が造り出した造語です。

文部科学省の資料には、随所に、「プログラミング的思考」の説明が記載されていますが、はっきり言って、とても難解です。読めば読むほどチンプンカンプンですね(笑)。

この「プログラミング的思考」、日本独自のものと言いましたが、実は元になった考え方があります。

それは「コンピューテーショナル思考」と言います。

「コンピューテーショナル思考」とは、欧米を中心に確立され、大学に学部まで存在する「コンピューターサイエンス」という学問に出てくる思考法のことです。

このコンピューターサイエンスを研究する学者のことを「コンピューターサイエティスト」といいますが、「コンピューテーショナル思考」とは、コンピューターサイエンティストが様々な問題を解決する際に用いる思考法のことです。

「コンピューターサイエンス」というのは簡単に言うと、コンピューターを使って社会の諸問題を解決するにはどうしたら良いか、を研究する学問です。

この「コンピューテーショナル思考」は、「明日の晩御飯は何にしよう」「どうしたら給料が上がるのだろう」といった個人的な小さな問題から、「失業率を減らすには」「食料自給率をあげるには」といった社会的な大きな問題を解決するのに、とても有効な思考法と言われています。

似たような言葉に「論理的思考(ロジカルシンキング)」があります。

「論理的思考(ロジカルシンキング)」も、ビジネスの現場では問題を解決する際のスキルとして近年重要視されていますが、「コンピューテーショナル思考」ととても共通部分が多いです。

ただ、「コンピューテーショナル思考」は、問題解決の具体的な手段としてコンピューターを活用することを前提としている点が特色となっています。

以上のことから「プログラミング的思考」とは、「コンピューテーショナル思考」の日本的解釈であり、コンピューターを活用して、論理的に様々な問題を解決するための思考法である、と言えるでしょう。

 

 「プログラミング的思考」を身につけるには

「プログラミング教育」の目的は「プログラミング的思考」を育成すること。

そして「プログラミング的思考」とはコンピューターを活用してさまざまな問題を解決する思考方法のことでした。

では、「プログラミング的思考」を身につけるためには、何を学べは良いのでしょう?

「プログラミング的思考」では、問題を解決するために「コンピューターを活用する」ことが求められます。

そのためには、まず「コンピューター」の仕組みを深く理解することが大切です。

コンピューターの中身がどうなっているのか?それぞれの部品はどのような役割を果たしているのか?また、インターネットに関しても、その仕組みや、使用する際の注意点(ネットリテラシー)を学ぶ必要があります。

これらの知識は教科書などから得る事も可能ですが、やはり、実際にパソコンを操作したり、インターネットを利用して実地に体験として学びを得る事が大切です。

仕組みを理解したら、今度はコンピューターに、人間が意図した通り動いてもらう必要があります。

コンピューターに正しく動いてもらうためには、コンピューターが理解できるように正確な指示を人間が出さなければいけません。

このコンピューターに対する指示書こそが「プログラム」と呼ばれるもので、その「プログラム」を作成することを「プログラミング」と言います。

「コンピューター」とは、言ってみれば高度な計算機みたいなものです。それも、とても融通の利かない頑固アタマの持ち主です。

人間同士だったら、曖昧な言い方をしても、相手は理解してくれるかもしれませんが、コンピューターはそうはいきません。

一文字でも指示が間違っていたり、指示する順番が違っていたら、頑として動いてくれません。

なので、人間はコンピューターに合わせて、曖昧でなく正確に、そして順序だてて「論理的に考えて」指示する訓練が必要となってきます。

 

 パソコンを使わなくても「プログラミング教育」はできる

「プログラミング的思考」を身につけるには「論理的思考(ロジカルシンキング)」も不可欠です。

そして「論理的思考」は、パソコンが無くても養うことができます。

例えば、朝起きてから学校に行くまでの行動をフローチャートにして、無駄がないか、各行動の順番を変えた方が良いのではないか、と考えることも、立派な「論理的思考」の訓練=プログラミング教育と言えます。

日常の行動をフローチャート化するのも立派なプログラミング教育

 

また、最近ではおもちゃ屋の「知育玩具」コーナーなどで見かける、パズルやボードゲームの形をした、いわゆる「アンプラグド(電源につながない、電子機器を使わない)教材」が多く登場しています。

スイッチオンが開発したアンプラグド教材「ALGOGLA(アルゴグラ)」

 

小学校低学年のお子さんなどに、いきなりパソコンを使わせるには抵抗があるという方には、こうしたパソコンを使わない教材はうってつけでしょう。

 

 パソコンを使ったプログラミング教育の例

パソコンを使わなくても「プログラミング的思考」や「論理的思考力」を養うことはできるのですが、やはり、「プログラミング教育」ではコンピューターを使いこなしてこそ、です。

パソコンを使ったプログラミング教育では、例えば「Scratch(スクラッチ)」という、プログラミング学習用のソフトを使って、ゲームをプログラミングします。

プログラミング教育の定番教材「Scratch(スクラッチ)」

 

また、ロボットにプログラミングして思った通りに動かしたり、ロボット同士を競争させたりと子ども達が大好きなゲーム要素が盛りだくさんです。

プログラミング教育用ロボット教材「mBot」

 

「プログラミング教育」、というと“勉強”というイメージが強く、どうしても嫌々やらされているように思われるかもしれません。

ですが、実際には「プログラミング教育」の授業では、子ども達が目を輝かして自発的に取り組む、という傾向にあります。

 

 Excelやパワポなどアプリを使いこなすことがプログラミング教育ではない

ゲームを作ったり、ロボットを動かしたり、それじゃあ遊んでいるだけじゃないか。だったらExcelやパワポの使い方を教えた方が、将来、よほど実社会で役に立つのでは?

こう思われている方も、多いのではないでしょうか。

ですが、考えてみてください。

これからコンピューターテクノロジーが急激に進歩していくなか、今使われているコンピューターソフトは10年先、20年先も使われているでしょうか?

今、仕事で有用なアプリも、子ども達が大人になったときには使われていない可能性があります。

実はこのことは、プログラミング言語にも言えます。

現在プログラミング言語にはJava、C++、Pythonなどなど、数百種類あると言われています。そして新たなプログラミング言語もつぎつぎと生み出されています。

プログラミング言語にも流行り廃りがある

 

例えば現在、身につけると就職に有利と言われるプログラミング言語が、10年後もそうであるかと言われると、誰も保証できません。

それに、ちょっとしたプログラムなら、これからはAIが作成してくれるようになります。生半可なプログラミングのスキルではAIに太刀打ちできないでしょう。

こうしたことから、アプリの使い方、プログラミング言語を覚えるといったスキルの習得自体は、無駄とは言いませんが、その将来性については何とも言えません。

有名な話ですが、Appleの創業者でiPhoneなどを生み出したスティーブ・ジョブズはプログラミングが出来なかったそうです。

ただ、プログラマーたちに指示をするには、それなりにプログラミングの知識は持っていたはずです。

プログラミングが出来なくても、世界を変えるような製品を創造することができるという好例でしょう。

ただ、誰もがスティーブ・ジョブズのようになれる訳ではないので、これは極端な例かもしれません。

ですが、この事例からもプログラミング教育の目的が見えてくるはずです。

「プログラミング教育」とは、プログラミングのスキルやアプリの使い方を覚えることより、世の中の役に立つ製品や、まだ誰も気付いていない問題点を明らかにして、その解決方法を導き出すことができるという、より高位のスキルの習得が目的なのです。

 

 やっぱりプログラミング教育は必要!

 

どうでしたか、ここまでで、少しでもプログラミング教育に関する疑問や誤解が解消できたでしょうか?

おそらく、また新たな疑問が生まれたり、ますます分からなくなった、という方もいるかもしれません。

どうしたって、大人の方は、自分が子どもの頃に「プログラミング教育」を受けて来たわけではないので、イメージしづらいのは仕方ないことです。

 

現在、日本は「失われた30年」と言われる経済の低迷に加え、コロナ禍によって、ますます先行きの見えない状態にあります。

「第4次産業革命」「Society5.0」など、今、確実に世の中は大きな変化を迎えています。好むと好まざるとにかかわらず、この大きな変化の激流の中で子ども達は生きていかなければならないのです。

そうした悲観的な状況を打ち破って、少しでも明るい未来を子ども達に残してあげたい。そうした切なる願いは、大人であれば少なからず誰もが持っているはずです。

そして、私たち大人が子ども達にできることは、「良質は教育」を与えることに勝るものはないと思います。

これから、子ども達にとってどんな教育が必要か?

少しでも真剣に考えることが大人としての責務ではないでしょうか?

世界からは周回遅れと言われていますが、それでも日本でも「プログラミング教育」必修化がスタートしました。

まだまだ「プログラミング教育」について、問題点は多いのは事実ですが、問題が多いのなら、なおさら「プログラミング的思考」でその問題を解決していけば良いのではないでしょうか?

本音を言いますと、子ども達より、私たち大人にこそ、「プログラミング的思考」が必要だと思っています。

「わたしにはチンプンカンプンだけど、子どもにだけはプログラミングを学ばせたい」

そういう保護者の方は大変多いです。

失礼かもしれませんが、一番身近にいる親御さんが、自分には関係ないからと投げ出しているものを、子どもが好き好んで学ぼうとするでしょうか?

そうした親御さんや大人の方にプログラミング教育を受けてみろ!とは言いません。

ですが、プログラミング教育がどういうものなのか?なぜ今、必要とされているのか?といったことを、自分で情報を集め、自分の頭で考え、時にはお子さんにも話してあげたり、少しでもそうした時間を持ってもらうだけでも、日本のプログラミング教育は大きく前進していくはずだと、僕は確信しています。

この記事が、少しでも「プログラミング教育」について考えるきっかけになってくれればこれに勝る喜びはありません。

 

 

合同会社スイッチオン代表 田代 英一郎

コメント

この記事へのコメントはありません。