繰り返しになりますが。プロジェクトの本文や、活動報告についての感想、ご意見、ご質問を、ぜひコメントでお寄せいただければと思います。現在は支援募集期間中であり、本企画の実施期間ではないため、お寄せいただいた感想などについてはリターンとしてではなく、お返事や回答をさせていただきます。
また、私個人についてはこちらをご覧ください。
では本題です。
2020年からのプログラミングの必修化は、「プログラミングで教科を学ぶ」というコンセンプトです。これを素直に解釈したいと思います
科目が、「日本語」、「算数・数学」、「理科(物理、化学、生物、地学)」、「社会(日本史、世界史、地理)」、それと「英語 (or 外国語)」だとします。ほかに「音楽」、「図画工作」なんかも対象にはなるのかもしれませんが。
この中で、プログラミングをそのまま導入できそうなのは、「算数・数学」と「理科 (物理)」といったところでしょうか。
残りをすこし整理すると「語学(日本語、外国語)」、「理科(化学、生物、地学)」、「社会(日本史、世界史、地理)」となります。「社会 (道徳 or 倫理)」あたりも入れえときたいような気もしますが、それはあとで余裕があたら書きます。
「理科 (化学、生物、地学)」、「社会(日本史、世界史、地理)」あたりで共通しそうなのは、データ・ベース、あるいは表計算−−かつスクリプトを使わずに−−でもかまわないかもしれないということです。表計算でセルに値や関数を入れるのは、ある意味、グラフィカルなプログラミングとも言えるかと思います (ヴィジュアル・プログラミングという言葉もありますが、これはデザインの世界でも使われる言葉なので、ここではグラフィカルなプログラミングと言っておきます)。どうせなら、「算数・数学」と「理科 (物理)」も、表計算でかまわないようい思いますが。あるいは、知識ベースとして表計算を使うなら、「もういっそのことProlog使う?」と思えるものでもあります。
「理科 (地学)」では、環境の変化の計算というのは計算の対象になるかもしれません。環境の変化、とくに地球の熱収支については小学校ではやらないかもしれませんが、私の小品『Jailbreak』(あるいは『Jailbreak』)では、熱収支は資料を用い、熱収支の変化、およびそれによる環境の変化の簡単な計算は表計算で行ないました。
あるいは、日食・月食あたりの計算も表計算で可能でしょうし、そのグラフ化も、動画になるかはともかくとして表計算で可能でしょう。
さらにあるいは、「理科 (生物)」や、「社会 (いろいろ)」は「捕食-被食関係」だとか、その「ロトカ・ヴォルテラの方程式」なんかをやってみるということもあるかもしれません。ですが、考えてみればこれも表計算でできる。
それら以外のことについては、やはりデータ・ベースか、あるいはやはり表計算でできるかと思います。
といったところで考えると、表計算で計算をするか、表計算を知識ベースとして使うかで、ことが済んでしまうようにも思えます。もっとも、表計算だとプログラミングにおいてあちこちに出てくる、探索を扱うのはすこし難しいかもしれませんが。知識ベースとして表計算を使うなら、先にも書きましたが、「もういっそのことProlog使う?」とも思えます。
これに当てはまりにくいのが「語学 (日本語 or 外国語)」かなとは思います。と言うのも、児童・生徒が形態素解析や統語解析をするのは難しいと思うからです。もっとも、そのデータを試料として児童・生徒に渡すなら、計量言語学みたいなことはできる気がします。それも表計算で。それ以外の使い方だと、単語帳でしょうか。対話モデルも、試料を用意すればできるかもしれません。
そうすると、「プログラミングで教科を学ぶ」というコンセンプトがあったとしても、かなりの部分は表計算で済んでしまうような気もします。表計算で済んでしまうのが悪いというわけでもなく、すくなくとも、おかしな業界団体があったとしても、そこが口を出す機会が減るだろうという利点はあるかと思いますが。
ですが、「プログラミングで教科を学ぶ」というコンセンプトをどう生かすのかはかなり難しい課題のように思えます。「プログラミングで教科を学ぶ」というコンセンプトを外すと、「検索してみましょう」みたいな話もあるのかもしれませんが、それだと現状と変わらないように思います。
試験的な授業が行なわれてはいますが、詳細は知りません。実際どうやっているんでしょうか?
根っこに戻ってみると、「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」あたりには、こうあります:
| ○ プログラミング教育とは、子供たちに、コンピュータに意図した処理を
| 行うよう指示することができるということを体験させながら、発達の段
| 階に即して、次のような資質・能力を育成するものであると考えられる。
|
| 【知識・技能】
| (小)身近な生活でコンピュータが活用されていることや、問題の解決に
| は必要な手順があることに気付くこと。
| (中)社会におけるコンピュータの役割や影響を理解するとともに、簡単
| なプログラムを作成できるようにすること。
| (高)コンピュータの働きを科学的に理解するとともに、実際の問題解決
| にコンピュータを活用できるようにすること。
|
| 【思考力・判断力・表現力等】
| ・ 発達の段階に即して、「プログラミング的思考」(自分が意図する一
| 連の活動を実現するために、どのような動きの組合せが必要であり、一
| つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、
| 記号の組合せをどのように改善していけば、より意図した活動に近づく
| のか、といったことを論理的に考えていく力) [5]を育成すること。
|
| 【学びに向かう力・人間性等】
| ・ 発達の段階に即して、コンピュータの働きを、よりよい人生や社会づ
| くりに生かそうとする態度を涵養すること。
|
| [5] いわゆる「コンピュテーショナル・シンキング」の考え方を踏まえつ
| つ、プログラミングと論理的思考との関係を整理しながら提言された
| 定義である。
ここにも出てくる「プログラミング的思考」と言っているあたりで、プログラミングにしても他のことにしても、「明後日の方向を向いているんだろうなぁ」とは想像できるのですが。とくに “[5]” は注ですが、もうなんか、これだけで「あ、これ駄目だ」という雰囲気というか匂いというか、そんな感じが。
昔々ですが、「プログラミングを勉強すると、数学ができるようになる」というようなことが言われていた時期がありました。もちろん、因果関係と言えるほどに強い関係が両者にあるわけではありません。すくなくとも小中高くらいでは。ですが、その延長線上でまだやってるのかというような印象があります。もちろん、パパートやその他の研究者のやってきていることは少なく見積もっても無駄ではありませんが、一枚フィルターを通すと台無しになる例のような気がします。
ついでになりますが、「社会 (道徳 or 倫理でしょうか)」についてですが、Prologなどに条文を書き直してやり、矛盾点などを探すという研究が、それなりの歴史を持って行なわれています。そのように、法律などが論理的であるかを確認してみるのも面白い課題だと思います。あるいは、一歩進めて、論理に基づく法律、つまり「論理法」を考えてみるのも面白い課題だと思います。もっとも、これは児童・生徒を対象にするには難しいかもしれませんが。