データ処理としてプログラミング教育を考える

6月に行なわれた日本カリキュラム学会に参加して、3月に告示された学習指導要領に関する議論にいろいろ触れてきました。学会の性格上、個別の内容について善し悪しを論じるというよりは、学習指導要領の成立過程や影響について注目して議論が行なわれました。

その中でも、初等教育への「プログラミング教育」導入は、3回の有識者会議(「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」)だけで教科横断的に受け入れを飲み込ませてしまったことなど、行政手続法の精神に鑑みて不適切さが残り、唐突感が否めないという指摘もなされました。

プログラミング教育を2017年3月告示の学習指導要領に盛り込むためにとった手続きの是非について、立場によっては不適切論を一蹴する人たちも居るでしょう。

今次の改訂に盛り込まなければ10年後になってしまう、であるとか。コンピュータ技術に触れて学ぶことは喫緊の課題であるから今回の手続きは相応なものであった、という見解もあると思います。物事には場合によって形式的手続を省略すべきときがあるのも、大人の世界ではよくあることです。

学習指導要領改訂の背景で「子供たちに、情報化やグローバル化など急激な社会的変化の中でも、未来の創り手となるために必要な知識や力を確実に備えることのできる学校教育を実現します。」と謳った以上、プログラミング教育は何が何でも盛り込みたかったのでしょうし、有識者会議を3回(2016年 5/13, 5/19, 6/3)にせざるを得なかったのは、すでに2015年11月から始まっていた各教科等のワーキンググループの議論が、グループによって4〜8回ほど検討を重ねていたため、なるべく早く対応を求めたかったという事情もあったと考えられます。

いずれにしても行政手続的な妥当性については、別途ちゃんとした議論が必要になるでしょう。

一方、プログラミング教育にまつわる議論は、率直に言って、おかしな方向へ転がっています。

どの識者や論者の主張も、理屈として必要性を述べることはできていても、個々の学校で取り組む理由や文脈を作り出すところまで繋げられるよう説得的には論じられていません。(参考リンク

グラフィカルなプログラミングツールやロボット制御の実践は華やかで、その一つ一つの持つ面白さや効果について疑うわけではありません。とはいえ、それを学校の文脈に馴染ませるためには、大文字の必要性を自校の必要性にブレークダウンしなければならないはずで、それに成功している事例は滅多にありません。(大文字のまま受け取って納得し楽しめているのであれば、それはそれで一つの在り方です)

たとえば、小学校段階の「プログラミング教育」を「プログラミング技術習得ではない」「プログラマー育成ではない」と断わらなければならないのは、それを教えられる人がいないという現実を配慮した結果だといえば、理にかなっているように思えます。しかし、そのために「プログラミング的思考」という言葉を作って、情報技術の進展した社会における問題解決のための論理的思考を養うものだとしたところから、議論はねじれを生むだけでした。

有識者会議の議論の取りまとめは、総花的であるため、一方で論理的な記号操作レベルによって一連の意図した処理が行なえることを関知させることをねらい、一方で身近な場面で論理的な思考が役立つことを実感させて自分の生活レベルで生かそうとすることを求めるという、両者の間に大きな飛躍を必要とするものが共存する形になっています。

人工知能や第四次産業が建前であることはよいとして、そこから、全国の様々な市区町村が設置者である小学校という場で、自校がプログラミング教育を積極的に取り組む理由へとつなげるための、その言葉がまるで紡ぎ出されていないのです。

全国に散らばる各地域の立場で想像してみてください。

地域の子供たちが未来の創り手になることに異論はないとしても、そのためにカリキュラム・マネジメントの手間をかけてプログラミング教育を取り入れる内発的動機を抱くことは、それぞれの地域において難しくないでしょうか。

地域に根ざした学校教育という文脈に、情報化やグローバル化の文脈を接合するために「現実直視」や「危機意識」だけを外から持ち込めば、それで事は動くのでしょうか。そこで提示されているのがゲームやロボットを題材にした実践ばかりであったとき、説得力を持ち得るのでしょうか。

何のための「プログラミング教育」であるのか。教師一人ひとりが自身で構築すべき理路のために提供されている言葉や視野は、あまりに少な過ぎます。

Jeannette M. Wing氏は「Computational Thinking」(コンピュテーショナル・シンキング/計算論的思考)という論稿で、プログラミング的思考の元ネタである計算論的思考について「コードをデータとして,データをコードとして解釈すること」と記述しています。

コンピュータプログラミングの世界では、アルゴリズムだけでなく必ずデータ構造の存在を言及するのが通例です。アルゴリズムに関する古典的著作『アート・オブ・コンピュータ・プログラミング』第1巻も情報構造(データ構造)に関して一章割かれていますし、その他多くの教科書がデータ構造の重要性に言及しています。

そもそも学習指導要領が「情報活用能力」の育成を目指してきたこと、高等学校の数学Iでデータ分析の単元が含まれていること等を踏まえれば、学校でデータを扱うことの重要性についてもっと論を展開すべきであることは合点の得やすい話です。

プログラミングとくると「アルゴリズム」を想起しやすいですが、ここで注目すべきは「データ」ではないか。プログラミングをデータ処理の手段として眺め直したところで、プログラミング教育を組み立てていくと、様々な議論が先へ進み出すのではないかと考えています。

データ処理としてのプログラミング教育。

たとえば、従来提示されてきた、ゲームやロボットを題材としたものも、データによって駆動している/されているという視点で捉え直すことは可能です。有識者会議の議論の取りまとめも音楽に関する記述で、音や曲をデータとして捉える視点が含まれていたと読みとることができます。

こうしたデータ的な視点で話を膨らましていきましょう。

人工知能に関する近年の注目は、ビッグデータを前提とした機械学習のブレークスルーにありました。これはプログラミング技術の進歩というよりも、データ処理技術の進歩であり、人工知能デザインに必要なのはプログラミング技術というよりも学習データデザインの技術といってよくなっています。

全国の地域社会にとって、地域の統計データは、利活用によって様々な可能性を生み出す資産だといえます。地域活性化やコミュニティデザインの取組みにおいて、地域の様々な情報をデータ化し、ビジュアライズしていくことは重要な手段となっています。地域を学ぶこと、それは地域のデータを学ぶこと。そして、地域のオープンデータと関わっていくという活動の中でデータ処理を学んでいくようにデザインすることも一つのやり方です。

昨今は収集された個人情報こそがビジネス価値の源泉と言われています。ビジネスにおけるデータ分析やデータ加工の技能は、プログラミング技能を上回って重要なものです。

データを扱う基礎技能は、国語や算数数学における表やグラフ等に対する情報リテラシー学習に始まり、理科の実験データ記録や加工、社会科における統計データ解釈といった主要教科での要素によって養われているわけで、これをさらに他教科の中にも再発見していくことは難しいことではありません。

こうしたデータを処理する手段として、アナログ的な処理から始めつつも、プログラミングによる計算処理へと繋げていくことで、その意義や可能性を学ぶことも盛り込めるのではないでしょうか。アンプラグドからプラグドへの流れも位置づけやすいということです。

これは単なる見せ方の違いだ、という指摘もあり得ます。

そう考えてもよいと思います。

ここまであちこちで披露されているプログラミング教育の実践事例について、私自身は否定をしているつもりはありません。お菓子を使ったプログラミングも試みとしては大いに結構。目標に応じてどのような方法を開発したり選択するかは、当事者や学習者が決めればよいことです。

ただ、プログラミング教育について、なにゆえ、こんなにも議論しにくい状況が生まれているのか。

解説の言葉、「〜ではない」という言葉が飛び交う中で、結局のところプログラミング教育とは何をするのかという「答え探し」が終らない現実。

こういう状況を解きほぐす一つの糸口として「データ」処理から考えるプログラミング教育という語り方を提示してみるのも重要かなと、私は考えています。