コンピュータとは何かを知るためのアプローチとして、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%程度ではないかと感じています。それだけ、コンピュータにはまだまだ大きな可能性が秘められています。例えば、今までのコンピュータはキーボードやマウスの入力が常識となっていましたが、最近になってようやくタッチの入力が広まりつつあります。常識にとらわれず、今あるものを疑問に思って、豊かな創造性でコンピュータの新たな可能性を切り開く人材が育つことに期待しています。
今の情報化社会は一部のお金持ちとエンジニアが作っているものです。ここに、一般の人が入ってこないと文化として豊かなものになりません。これからの情報化社会を文化的に豊かにするために何ができるのかを、私も、皆さんと一緒になって考えていきたいと思います」
政府の成長戦略の中で小学校の「プログラミング教育」を必修化し2020年度に開始することが発表され、さまざまな議論を生んでいる。そもそも「プログラミング」とは何か、小学生に「プログラミング教育」を必修化する意味はあるのか、「プログラミング的思考」とは何なのか、親はどのように準備しておけばいいのか、小学生の教員は各教科にどのように取り入れればいいのか――本特集では、有識者へのインタビューなどで、これらの疑問を解きほぐしていく。
Copyright © ITmedia, Inc. All Rights Reserved.