ここから本文です

プログラミング教育を“小学生”に必修化する意義

@IT 8月23日(火)6時10分配信

●コンピュータとは何か――共生のためには子どもだけではなく大人も学ぶべき

 「『2045年にシンギュラリティ(技術的特異点)が起こり、人間の仕事が人工知能つまりコンピュータに奪われる』『人類がコンピュータに支配される」などとよくいわれていますが、人間とコンピュータがそれぞれ足りないところを補って共生していくためには、全ての人がコンピュータの良いところとダメなところを知っておく必要があります。また、『コンピュータとは何か』を追究すると、『計算するとはどういうことか』『モノを覚えるとはどういうことか』など、つまり『人間とは何か』が分かってきて面白いです」

【その他の画像】「Viscuit」のサイト

 このように主張する原田康徳氏は、ビジュアルプログラミングツール「Viscuit(ビスケット)」の開発者だ。原田氏は、もともとプログラミング言語の研究をしていて、「未来のプログラミング言語はどうなるのか」という研究の過程で、2003年に「Viscuit」を開発した。Viscuitが他のビジュアルプログラミングツールと大きく異なるのは、子どもにプログラミング自体を学ばせるものではなく、「コンピュータとはこういうもの」とプログラミングを通じて直感的に知ってもらうためのツールである点だ。Viscuitを通じて楽しみながらプログラミングを行うことで、自然とコンピュータとは何かを直感的を理解できるという。

○なぜ「プログラミング教育」が否定されるのか

 子どものプログラミング教育をめぐる動きでは、政府の新たな成長戦略で2020年度から小学校のプログラミング教育がスタートすることが2016年4月19日に発表されている。また総務省は、「若年層に対するプログラミング教育の普及推進」事業を開始。その一環として、クラウドや地域人材を活用した、効果的・効率的なプログラミング教育の実施モデルの公募を5月27日に開始し、7月19日に選定結果を公開している。今回お話を伺った原田氏は、この選定を行う「第1回 プログラミング教育事業推進会議」の委員を務めており、子どものプログラミング教育を普及する活動にも意欲的に取り組んでいる。

 一方で、小学校のプログラミング教育について否定的な意見も多く挙がっているのが実情だ。この状況について原田氏は、「コンピュータという存在が理解しにくいため、『なぜプログラミング教育が必要なのか』についての議論が起こっているのだと思います。コンピュータは、今の世の中を劇的に変えている最も大きな要因の1つです。人間から仕事を奪っている一方で、その周りには新たな仕事が生まれています。それにもかかわらず、コンピュータとは何なのかを理解するのはなかなか難しい」と述べる。その理由について、原田氏は次のように話す。

 「コンピュータは、言葉では非常に説明しにくいものです。今までの発明は、ほとんどが過去のものとの差分で説明できました。例えば、自動車を見たことがない人でも、『エサのいらない馬車』『疲れない馬車』などといえば何と なく自動車というものをイメージできます。映画や写真も、この説明が通用するのに、コンピュータについてはできません。

 言葉で説明しにくいということは、本として残すこともできません。人間は本を読むことで、どんなに難しい発明や技術でも短期間で何となく理解できます。しかし、言葉で説明しにくいコンピュータは、本を読むだけでは理解できない。今の教育システムは、まさに本を読むことが中心といえるため、いつまでたってもコンピュータを理解させることはできないでしょう」

 本から学べないのであれば、自分で体験する他ない。ここに、プログラミング教育の大きな意義があるという。

 「プログラミングを行うことで、コンピュータの“ワケの分からからなさ”が少しずつ理解できます」

○プログラミング教育を“小学生”に必修化する意義

 プログラミング教育を“小学生”に必修化する意義について、「小学生にはまだ早い」「必修化するのではなく興味を持った子だけが教室などでやればいい」などさまざまな意見が出ている。これについて原田氏は「小学生からのプログラミング教育は、やらないといけませんね。今の時代の小学生は、ほとんどがゲーム機やスマホなどのデジタル機器に触れています。それだけに、できるだけ早い時期から『コンピュータとは何か』を知っておく必要があります」と訴える。

 よく「プログラミングではなくセキュリティやITリテラシを教える方が先だ」という意見もあるが、やみくもに「あれをするな」「このサイトには行くな」というだけでは、子どもが従うはずがない。プログラミングを通じて「コンピュータとはこういうものか」と体感してはじめて、「こういった使い方は便利だ」「こういったことを書き込むのは危ない」と納得して使うことができるということだ。

 また、「コンピュータの中身が分からなくても、ソフトウェアやアプリが使えればそれでいい」という意見もある。子どもにプログラミングを学ばせる理由として、原田氏が最近話しているのが「田んぼ」の例だ。

 「小学校では、田んぼでお米や野菜を育てることを子どもに体験させています。これは、お米や野菜がどうやって作られるのか、水とお日様が大事だとか、雑草をつまないと栄養が奪われるとか、小さい種から少しずつ大きくなるとか、その過程や常識的なことを長い期間をかけて直感的に学ばせることが大きな目的です。教育を『効率』『将来の効果』などの視点だけで見てしまうと、田んぼの教育はやりませんよね。でも、大半の親や教師たちは田んぼの教育を“良いこと”としています。プログラミングもそんなに難しいことではありません。田んぼと同じなんです。プログラミングを体験することで、『コンピュータとは何なのか』『普段使うアプリやソフトはどうやって動くのか』その中身が少しずつ分かってきます」

 さらに原田氏は次のように主張する。

 「小学生だけではなく、中学・高校・大学生、そして私も含めた大人まで、コンピュータを本当に理解できている人は非常に少ないのが現状です。『コンピュータとは何か』の概要的なところについては、全ての日本国民が、これから横一線で学んでいく必要があるのではないかと私は思います」

 これは冒頭にある“共生”のためだけではない。親や教師、つまり大人がコンピュータを知ることで、子どもに教える必要性や教え方を考えることができるというわけだ。

●Viscuitを触って体感する「コンピュータとは何か」

 原田氏は現在、「こどもビスケット開発室」を月2回のペースで開催しており、子どもにアプリやソフトウェアができていく過程を身近に感じてもらうだけではなく、親にもViscuitを実際に操作してもらいながら、コンピュータとは何かについて、その概要を理解させているという。

 Viscuitのアプリは、iPhoneやiPad、Androidなどのスマートフォンやタブレット、MacやWindowsなどのPCでダウンロードして操作できるようになっている(Adobe AIR製)。インストールができない環境では、Flash Playerを通じてブラウザー上で動かすことも可能だ。

 教室の開催前に行われた今回のインタビューで原田氏は、実際にタブレット端末でのViscuitプログラミングを体験させてくれた。

○コンピュータは元から頭が良いわけではない

 「Viscuitでは、タブレット上に指で絵を描いて、それを『めがね』ツールに入れると、さまざまな動きを作ることができます。『めがね』は、部品に命令を出すツールですが、『めがね』1つで出せる命令は簡単なものです」

 「『めがね』を増やせば増やすほど、複雑で難しい動きが作れます。すごいと思えるアプリも、すごい命令1つでできているのではなく、簡単な命令が何万も集まってできています。一方で、命令が1つでも間違っていると、全ての動きが停止してしまいます。コンピュータは元から頭が良いわけではありません。人が望む動きを実現するように何万もの命令を作ることが重要なのです」

 実際にViscuitを試してみると、「これがプログラミング? Scratchなどみたいに、ブロックとか文字とかは出てこないの?」と思う人もいるかもしれない。

 「『めがね』でプログラミングができるのは、Prologなど宣言型プログラミング言語の考え方をベースに作られたViscuitならではです。JavaやJavaScriptなど手続き型言語では、もっと複雑なプログラミングが必要になります。現在のITシステムの開発現場は仕様書通りに作るための手続き型言語やオブジェクト指向言語が主流ですが、小学校でのプログラミング教育を考えた場合、Viscuitのような宣言型言語の方が適していると思っています。命令を1つ足すことで一気に複雑な動きができる。手続き型言語だと、行数を増やしても複雑な動きになる度合いは低いでしょう」

○モノは移動しかできないが、情報はコピーされ増殖する

 次に原田氏は「カゼをうつしても自分は治らずにどんどん増えてゆく」という「感染のシミュレーション」を例に出した。

 「“モノ”は移動しかできませんが、“情報”はコピー(複製)されるものです。例えば『おいしいラーメン屋さんの場所を知っている』『友達が自分の悪口を言ったらしい』などの情報をある人が持っていたとします。この情報を他の人に教えても、それはなくならない。つまり忘れません。伝えると増えるだけです。情報を基にしたシステムというのは、原理的に増殖するものなのです。

 逆に、情報の上で『移動』を作るのは難しいことです。よくあるファイルの移動も内部的にはコピーした後に、元のファイルを削除するという2つの操作で移動したように見せ掛けているわけです。削除する前にコンピュータが止まってしまったら、コピーになってしまうし、順番が間違っていると消えてしまいます。

 プログラミングで何が大変かというと、『情報システム、つまりコンピュータの中に、いかにしてモノを作るか、つまり人間のリアルの生活に近いモノを作るか』です。例えば、昔はコンサートなどのチケットは決まった数の紙として扱っていたので、ある売り場で売り切れたら他のチケット売り場に行く必要がありました。しかし、今はインターネットを介して情報システムからチケットを購入できます。ここで重要なのは1つの席を複数の人に売ってはいけないということです。チケットを売るシステムつまりプログラムに間違いがあると、大変なことになってしまいます。1人に1席だけ売るということが紙でしたら簡単でしたが、プログラムだとたくさんの複雑な命令が必要です」

 モノと情報システムとの違いとして原田氏は、サーバ上にあるWebアプリがたくさんの人(クライアント)からアクセスされることを例に、次のように付け加える。

 「情報システムは、全部が一斉に動く。何度でも使える。壊れると全部が動かなくなる。でも、直すとすぐに反映されます。一方、モノの例えとして自動車のリコールと比べてみましょう。リコールのあった車種の自動車は壊れる可能性はあるけど一斉に壊れはしません」

コンピュータが、0と1だけの2進法がベースになっている理由

 原田氏は、Viscuitを通じて2進法についても解説してくれた。ここにも、コンピュータとは何かを理解する上で、人間とは何かが分かってくる一例がある。

 「めがね」に入れる命令は1+0を1にするものと1+1を10にするものの2つだけだ。これが3進法になると3個の命令が足され、5個の命令が必要になる。これが10進法になると、54個の命令が必要になるわけだ。

 「大人がなぜ10進法の方が簡単だと思っているかというと、小学生のときに54個の命令を九九のように暗記したからです。現在多く使われているコンピュータは、0と1の2進法がベースになっていますが、それは命令の数が少なくて済む、つまり電子回路が簡単で済むからです。10進法に慣れている大人の頭では、知識として知っている2進法やコンピュータをなかなか理解できません。それを、目で見て、指で操作し体験することで、自然と2進法の仕組みが身に付いていきます。

 知識だけで『コンピュータは0と1で動いている』ということを知っていると、『コンピュータは0と1だから融通が利かない』『正しいか間違っているか、しかなく冷たい』という印象を持ってしまいますが、何も怖いことはありません。よく『コンピュータ=デジタル=冷たい、アナログ=暖かみがある』などといわれますが、0と1だけという印象の悪さが原因なのではないでしょうか。もしも、人間と同じようにコンピュータも十進法で計算していたら、『デジタル』は悪くいわれなかったかもしれません。デジタルとは本来、離散量という意味だけです。人間についての表現もデジタルとアナログが使い分けられます。身長や体重はアナログですが、お金や人数はデジタルです。0と1だから『デジタル』なのではありません。人間が行う10進法の計算は、本来の意味でデジタルなのです」

○コンピュータの計算能力は人間に教えられたもの。表現の1つにすぎない

 原田氏は、人類がコンピュータの計算能力を見方に付けたことで、人生が豊かになったり正しい判断ができるようになったりということにつながったとした上で、これからのコンピュータ像として「新しい表現ツールとして見直す」ことを挙げる。

 「コンピュータというものはシリコンチップ上に電子の流れがたくさん集まっているだけで、2進法や10進法つまり、計算をもともと知っていたわけではありません。人間が計算をコンピュータに教えたら便利だったというだけで、正確な計算機としての側面ばかりが取り上げられるようになったのです」

 先ほどの2進法の計算もコンピュータに教えた表現の1つにすぎない。「0」「1」という数字を火山の煙に置き換えることで、全く違うアニメーションに見える。しかし、コンピュータが実行している命令は同じ。絵によって表現が変わり、人間の感じ方が変わっただけだ。原田氏は、こういったことを理解してもらうために、絵を描くことを中心にViscuitを開発したという。

○コンピュータを通じて直感的に新たな発想を引き出せる

 原田氏は、Viscuitを開発しているときに、「このままいくと将来的に人間はコンピュータに全てを奪われてしまうのではないか」と感じ、「コンピュータにはない人間の強みとして残るのは、ゼロから何かを生み出す『創造性』」と思うに至った。

 「Viscuitは、絵と動きを使ってプログラミングを行うことで、直感的に新たな発想を引き出せます。

 面白い例を紹介すると、幼稚園児向けのビスケット教室で、カニの動きを自由に作ってもらったところ、何人かが誰からも教えてもらうことなく、自然と“カニっぽい”動きを作ることができた。これは、タブレット上で絵をいろいろいじっているうちに、偶然できたものですが、絵と動きがベースでなければ、こんな発見にはつながらなかったはずです。その意味で、Viscuitは“粘土”に近いプログラミングツールで、創造性を高めるのにも役立つツールになっています。粘土をこねているうちに、作るモノが決まったり、新しいモノを作る方向性が決まったりするのと同じイメージです」

●コンピュータを使わずに、コンピュータとは何かの一端を考えることもできる

 コンピュータとは何かを知るためのアプローチとして、ViscuitのようなITツールを使うだけではなく、コンピュータを使わなくても効果的な方法があるという。原田氏は、その1つとして、トランプを使った遊びを紹介してくれた。

 「2人がペアになって、トランプを5枚配ります。トランプを伏せておいて、それを数の小さい順に並べるという課題を2人で解決します。1人は命令役となり、2枚のカードの数の大小を聞いて、カードを動かす指示を出していきます。もう1人はコンピュータ役で、命令役の指示通りカードを並べ替えていきます。この遊びは、『ソート(並べ替え)アルゴリズムの発見』を、コンピュータを使わずに表現したものです。コンピュータは、2つの数字を比較することしかできない。そして、それを繰り返すことで、複雑な動きを実現しているということを、身をもって体験できます」

 このトランプを使った遊びについては、ある程度記憶力が必要となるので、「中学生ぐらいからならできるのでは」と原田氏は補足する。その上で、このように実際に体験することで、どの発達段階でどのような教え方が適しているか判断できるという。また、トランプの並びを記憶することを通じて、コンピュータの記憶域(メモリ)の考え方を学ぶこともできるだろう。

 なお、この遊びは、特集第1回で紹介したコンピュータサイエンスアンプラグドの「いちばん軽いといちばん重い」を原田氏が改良したものだという。

●先生は、どう対処していけばいいのか

 このようにViscuitなどを通じてコンピュータとは何かをある程度は理解できるわけだが、小学校で子どもにプログラミングを教える側となる“先生”は、どう対処していけばいいのだろうか。

 文部科学省が2016年6月16日に公開した「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」の中では、「プログラミング教育」はいわゆる「コーディング」を身に付けることを主目的とするのではなく、国語・算数・理科・社会・図画工作・音楽などの教科で「プログラミング的思考」を生かした授業を行い、「プログラミング的思考を育む」方針が下記のように盛り込まれている。

プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、発達の段階に即して、次のような資質・能力を育成するものであると考えられる。

【知識・技能】(小)身近な生活でコンピュータが活用されていることや、問題の解決には必要な手順があることに気付くこと。(中)社会におけるコンピュータの役割や影響を理解するとともに、簡単なプログラムを作成できるようにすること。(高)コンピュータの働きを科学的に理解するとともに、実際の問題解決にコンピュータを活用できるようにすること。【思考力・判断力・表現力等】・発達の段階に即して、「プログラミング的思考」(自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力)[5]を育成すること。【学びに向かう力・人間性等】・発達の段階に即して、コンピュータの働きを、よりよい人生や社会づくりに生かそうとする態度を涵養(かんよう)すること。

[5]いわゆる「コンピュテーショナル・シンキング」の考え方を踏まえつつ、プログラミングと論理的思考との関係を整理しながら提言された定義である。

 だが、「プログラミング的思考」と「コンピュテーショナルシンキング(*)」の定義が曖昧で、これについても議論が生まれている。「プログラミング的思考」を「論理的思考」とほぼ同義に捉えている人も少なくない。

*「コンピュテーショナルシンキング」

Microsoft ResearchのVice PresidentであるJeannette M. Wing氏が2006年に発表したエッセイ。公立はこだて未来大学の中島秀之氏が「計算論的思考」として翻訳したPDFで、その考え方を日本語で読むことができる。

 原田氏は、コンピュテーショナルシンキングの重要性については認めながらも、コンピュテーショナルシンキングは、コンピュータとは何かが分かってきた上で、身に付いていくものだとし、次のように主張する。

 「『コンピュータとは何か』という純粋にコンピュータを教える時間はコンピュータの専門家が年間で2時間ほど担当するだけで十分です。先生たちには、子どもと同じ目線で授業を受けてもらい、そこから各教科にどう役立てていけばよいのかを発見していただきたいですね」

 例えば、先に紹介した2進法については、現在では、子どもが教わるのは高校生になってからだ。

 「生活においてあまり意味がなく難しいからという理由でそうなっているのでしょうが、Viscuitを使えば小学3年生でも理解できます。よく人に教えることで自分の理解を再確認するという話がありますが、例えばViscuitプログラミングで10進法のやり方をコンピュータに教えてやることで、10進法への理解が深くなります。コンピュータは一番バカ正直な生徒なのですから」

 プログラミング教育のやり方によっては算数や数学の教え方や従来のカリキュラムも変えることができる一例が、ここにはある。

 プログラミング的思考またはコンピュテーショナルシンキングを各教科の授業にどう取り入れるかについて、教育現場の意見を聞いてみたいところだ。小学生の授業にViscuitをどう取り入れるかも含めて、東京都小金井市立前原小学校校長の松田孝氏にお話を伺ったので、本特集の次回を楽しみにしてほしい。

●一般の人が入ってこないと、情報化社会が文化として豊かなものにならない

 最後に、原田氏は今後、子どもの教育に関わる全ての人たちに向けてメッセージを送ってくれた。

 「小学校のプログラミング教育では、コンピュータの深い知識を教える必要はありません。コンピュータ上で起こっている不可思議な現象には、全てちゃんとした理屈があることを、子どもたちに何となく理解してもらえればいいと思います。例えば、『海の色がなぜ青いのか』と同じように。

 コンピュータは急速な進化を遂げてきましたが、人間の活用レベルはまだ1%程度ではないかと感じています。それだけ、コンピュータにはまだまだ大きな可能性が秘められています。例えば、今までのコンピュータはキーボードやマウスの入力が常識となっていましたが、最近になってようやくタッチの入力が広まりつつあります。常識にとらわれず、今あるものを疑問に思って、豊かな創造性でコンピュータの新たな可能性を切り開く人材が育つことに期待しています。

 今の情報化社会は一部のお金持ちとエンジニアが作っているものです。ここに、一般の人が入ってこないと文化として豊かなものになりません。これからの情報化社会を文化的に豊かにするために何ができるのかを、私も、皆さんと一緒になって考えていきたいと思います」

[唐沢正和,ヒューマン・データ・ラボラトリ]

最終更新:8月23日(火)6時10分

@IT

TEDカンファレンスのプレゼンテーション動画

暗闇で光るサメと驚くほど美しい海洋生物たち
波のほんの数メートル下で、海洋生物学者であり、ナショナルジオグラフィックのエクスプローラーかつ写真家のデビッド・グルーバーは、素晴らしいものを発見しました。海の薄暗い青い光の中で様々な色の蛍光を発する驚くべき新しい海洋生物たちです。彼と一緒に生体蛍光のサメ、タツノオトシゴ、ウミガメ、その他の海洋生物を探し求める旅に出て、この光る生物たちがどのように私たちの脳への新たな理解を明らかにしたのかを探りましょう。[new]