メインメニューをとばして、このページの本文エリアへ

プログラミングは語学系科目である

義務教育化の際に、先細りの数学・理科の時間を食いつぶすな

山内正敏 地球太陽系科学者、スウェーデン国立スペース物理研究所研究員

 小中学校教育で英語と道徳の教科化が矢継ぎばやに決まったと思ったら、今度はプログラミング教育の義務化だそうだ。いかにプログラミング教育が重要とはいえ、急速な科目増に不安を覚えるのは私だけではないだろう。たとい独立した教科ではなくとも、評価(試験)は必要となれば、生徒・教師双方の更なる負担増を意味するからだ。

三鷹市立中原小学校 で開かれているプログラミング教室=2016年5月7日、杉山麻里子撮影

 一連の「詰め込み」の弊害は多くの人が論評しているが、これらの議論で見落とされている問題に、プログラミングが日本では理系科目と勘違いされている点がある。実際、文科省は、理系・職人系(理科、数学、技術家庭)科目の授業時間の一部をプログラミング教育に振り替えることを想定している。

 世界の常識では、プログラミングとはコンピューターへの筆談であり、その習得は語学の習得と同等だ。それを義務化するのだから、他の新規2科目とあわせて、文系の学習が一気に増えることになる。全ての分野で高得点を取れる子供など皆無に等しいことを考えると、文科省の方針は、理系・職人系の科目、すなわち日本の屋台骨を実質的に疎かにする政策であり、子供たちの脳のリソースを文系に費やすことで理系的な才能を阻害しかねないと危惧する。

 これらの点を解説しつつ、日本の小学校でプログラミング教育をするならどうしたらいいのかを提案したい。

プログラミングは語学である

 本屋のコンピューター関連の棚に行くと「Fortran言語入門」「C言語入門」といった本を見かける。その名のとおり、プログラミングは「言語」である。

 私が留学したアラスカ大学では、博士になる条件として「外国語」を使いこなせないといけないが(大学教育までは英語=国語以外は必須ではなく、英語しか喋れない米国人が多いのである)、その外国語になんとプログラミング言語が含まれていた。つまりプログラミングを習得すれば英語以外に読み書きできなくても良いということだ。

 欧州でも、学生の履歴書では、スキルの欄で語学(何語が使いこなせるか)と並列でプログラミング(何語が使いこなせるか)が書かれることが多く、数学や理科社会各科目の履修履歴とは異なる扱いがなされている。

 プログラミングが欧米で言語と同列に見なされている理由は、そこに文法が存在して、プログラマーの仕事が、計算式や命令を、その文法にのっとって正確に該当言語に翻訳することだからだ。

 翻訳の際に一番難しいのは、けっして計算式ではない。論理の翻訳だ。日本語を英語や中国語に翻訳する際、単純に単語を置き換えるのでなく、その位置を変え、人称など日本語にない要素を加えなければならないが、その部分がプログラミングで一番難しい。特にプログラムを修正する際は、前に翻訳した論理を読み取った上での作業となるからバグを生み易い。

 次に難しいのはWEBRONZA『天文衛星「ひとみ」失敗に未来世界の恐怖を見る』にも書いたようにバグを探すことだ。これらの事情は英文を書くときと共通している。

 もちろん語彙力も重要だ。それに対応するのが、外部関数とかサブルーチンというやつだ。たとえば「高所恐怖症」という単語を知らない場合、高い所が怖い症状といちいち説明しないといけない。外部関数やサブルーチンも、それがあることを知らなければ、その計算式や命令式を自分でプログラミングしないといけない。その点でもまさに語学である。

 一番古いFortranやCのような言語が未だに幅を利かせているのも語学だからこそだ。特にFortranは絶滅危惧種と言われつつも、シミュレーションを中心に未だに広く使われているし、私もFortranをいまだに一番愛用している。

 かつて、英語よりも優れた言語という売り込みでエスペラント語が提唱されたが、結局のところ英語にとって代わられることはなかった。これと同じ状況がプログラミングの世界にはあるのだ。科学分野だったら、合理的な新方式が古い方式を駆逐するのが当たり前である。

勘違いの理由

 日本で勘違いが広がっている一番の理由は、

・・・ログインして読む
(残り:約1483文字/本文:約3151文字)