日本のプログラミング教育を考えるとき、重要な概念として「プログラミング的思考」という考え方があります。今回は、このプログラミング思考という言葉について、考えていきたいと思います。
プログラミング教育に関する有識者会議の議事録を読んでみると、「プログラミング的思考」という言葉は、株式会社ソニー・グローバルエデュケーション代表取締役社長の礒津 政明氏が次のように発言したことから始まっています。
プログラミング教育の本質がなんであるかというと、御存じのとおりコーディングというよりは、プログラミング的思考、先ほどもありましたが、コンピューテーショナル・シンキングと言われているところがプログラミング教育の本質ではないかと考えておりまして、この部分を強めるのが、プログラミング教育のあるべき姿だと感じているところです。
小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議(第2回) 議事録
議事録をご覧いただくと分かる通り、礒津氏が語っているのは、「コンピューテーショナル・シンキング」の訳語として「プログラミング的思考」という言葉を使っています。この「コンピューテーショナル・シンキング」は、世界のスタンダードになりつつある考え方です。
コンピューテーショナル・シンキングとは、 アメリカのコンピュータ科学者であるJeannette M. Wing 氏が提唱する「コンピューター科学者のように考える思考法」のことで、問題解決・システムデザイン・コンピューター科学の概念に基づく人間の理解などが含まれます。
Jeannette M. Wing 氏のコンピューテーショナル・シンキングに関する論文は、日本語の翻訳で読むことができるので、興味のある方はぜひご覧ください。
この論文の中で、コンピューテーショナル・シンキングは、以下のように表現されており、一般的な分析的思考能力として扱われています。
計算論的思考は,コンピュータ科学者だけではなく、すべての人にとって基本的な技術である。すべての子供の分析的思考能力として,「読み、書き、そろばん(算術)」のほかに計算論的思考を加えるべきである。
「コンピューテーショナル・シンキング」においては、構造をとらえて細分化し、それを再構築するといったプロセスがあり、その中で行われる、「構造化」や「モデル化」という手続きを含むものです。
たとえば、イベントの準備をする時に、何が必要で、こういう時は何をするのかといったことを、自分の頭の中で組み立てることができるようになります。これはまさにコンピューター的な思考です。
「コンピューテーショナル・シンキング」と「プログラミング的思考」は似て非なるもの
「プログラミング的思考」という言葉は、上記の通り、「コンピューテーショナル・シンキング」に起源を持つ言葉で、一般的な分析的思考能力として定義されたものでした。しかし、この考え方と、現在の日本における「プログラミング的思考」は、少し異なっています。
1つは「プログラミング的思考」の解釈そのものが異なっているケースで、もう1つは「プログラミング的思考を学ぶプロセス」の理解が異なっているケースの2つです。
前者は「プログラミング的思考」をプログラミングをするという文脈に限定した考えで、後者は「プログラミングをしなくてもプログラミング的思考が育まれるので、コンピュータを使わなくてもよい」という考えです。
例えば、文部科学省は、プログラミング的思考を以下のように表現しています。
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
これは、プログラミングをする際の手続きのことを言っており、「コンピューテーショナル・シンキング」の概念よりも狭い考え方です。
プログラミング教育というのは、もともと一般的な分析的思考能力の養成が目標だったはずですが、気づいたらコンピューテーショナル・シンキングから随分離れていって、矮小化されてしまったという印象があります。
また、プログラミングをやらなければ、プログラミング的思考は身につきません。
なぜなら、プログラミングには様々な「正解」があるからです。例えば図工の活動に当てはめて考えると、どのような絵を描きたいか想像し、どのような画材や筆を使えば目的を達成できるか考え、自分の色を描く。そうしてできた作品はそれぞれ違い、そして個性のあるものとなります。プログラミングも同様で、目指す先が決められていないからこそどのようにプログラミングをしていくかを考えられる「余白」があるのです。
創造性を欠いたプログラミング教育には意味がない
「未来の学びコンソーシアム」は、文部科学省・総務省・経済産業省が連携して立ち上げたプログラミング教育に関する取り組みや教材などの情報を共有するポータルサイトです。
このサイトの中に、家庭科の授業例として、炊飯器シミュレーター使った実践例が掲載されています。
炊飯器シミュレーターでは、炊飯器でご飯が炊けるまでの手順がScratchのプログラミング・ブロックで表現されていて、このブロックを正しく並び替えていくものです。
この指導実践例は、文部科学省がプログラミング的思考として定義した「記号の組合せをどのように改善していけば、より意図した活動に近づくのか」という内容に完全に一致しています。
しかし、この活動で身につくのは、正しく並べ替えるというパズルを解く力であって、プログラミング的思考が身につくわけではありません。
この実践例では、出題する側が考えた一つの答えにたどり着くことが目的になっており、子どもたちが自らの創造性を発揮する機会が存在しません。「ものを創る」という活動を通して学ぶという視点が欠けているのです。
なぜこの実践例で創造性が持てないのかというと、授業に「意図された余白」が存在していないからです。つまり、子どもたちが自分で考えて、試行錯誤する時間が存在していないのです。
指導案や教科書に沿った授業では創造性は生まれにくく、計画された外で生まれてくるのが創造性です。
教える側が生徒に指示をして、「これをやって、次はこれをやって」という活動では、子どもたちが作品を完成させることができたとしても、それは子どもたちがやった風に見えるだけで、そこからは創造性は生まれてきません。教師の誘導は、子どもたちの創造性を奪うことになりかねないでしょう。
例えば、図工の授業が終わった後に、全員が全く同じ絵を描いていたら、とても違和感があります。つまり、これは子どもたちが作り上げた作品に見えても、実はやらされているだけで、そこには創造性がありません。
プログラミングもこれと全く同様です。授業が終わったときに、すべての生徒が全く同じ作品を完成させているとしたら、そこには創造性がありません。
MYLABのレッスンでは、子どもたちが自由に改造したり、子ども本人が考えて試行錯誤する時間が、意図的に設けられています。こうした、子どもたち自身が主役になる時間が、創造性を生むのです。
宮島 衣瑛(みやじまきりえ)
株式会社 Innovation Power 代表取締役社長CEO
学習院大学大学院人文科学研究科教育学専攻博士前期課程
1997年5月生まれ。プログラミング教育を始めとするICT教育全般についてのR&D(研究開発)を行っている株式会社 Innovation Power のCEO。2017年4月より柏市教育委員会とプログラミング教育に関するプロジェクトをスタート。市内すべての小学校で実施するプログラミング学習のカリキュラム作成やフォローアップを担当。2017年11月より一般社団法人CoderDojo Japan理事。大学院ではコンピュータを基盤とした教育について研究している。