2019年03月28日

20年度の小学校教科書、「プログラミング」が必修に

 オーツは日経新聞で読みました。
https://www.nikkei.com/article/DGXMZO42915160W9A320C1MM8000/
(2019/3/26 14:47)
 小学校で 2020 年度からプログラミング教育が始まるということで、教科書にプログラミング教育が入ったという話です。
 オーツがこの記事を読んだとき、いくつかの違和感がありました。
 第1に、プログラミングとは何かという問題です。まさか、学習指導要領を作る側がプログラミングの経験がないとは思いませんが、ここで取り上げられている話がプログラミングなのだろうかという疑問です。
 第2に、オーツが初めてプログラミングを学んだのは 1973 年度ですから、もう50年近く前ですが、そのころオーツが感じたことと、今回の記事で感じたことで相当にギャップがあったということです。この半世紀でプログラミングのあり方が変わったのかもしれません。オーツの知識はその意味で古いものなのでしょう。しかし、本質は変わっていないように考えています。オーツの見方でいうと、今回のプログラミング教育は本当にプログラミング教育なのかという疑問がわきます。
 オーツがプログラミング教育を受けたのは、学部学生の3年生のときでした。そのときはプログラミング教育だということを知らずに、コンピュータが使えるようになるらしいという程度の知識で受講したのでした。
 当時は、今のように各種ソフトが発達しておらず、コンピュータを使うということは、すなわち自分でプログラミングをするということだったのです。他人のプログラムを使うということはあまり(というかほとんど)行われていませんでした。
 オーツの考えるプログラミングというのは、コンピュータに対する(非常に細かい)個々の命令を組み合わせて、しかるべき並びにして、どういう順番に実行され、どんな条件のときにどの順番に進むかというようなことを組み合わせて、全体として動作するプログラムを作ることでした。
 そういう目で新聞報道のプログラミングを見ると、これでいいのかなと感じることがいくつかあります。
 オーツがコンピュータに触りながら一番おもしろいと思ったことは、自分の命令のままに機械が動作することです。命令を組み合わせることでかなり複雑なことまで命令通りに実行することができます。時折変な動作もしますが、それは命令書(プログラム)が間違っているのであって、機械が間違って動作しているのではありません。この割り切り方がおもしろかったと思います。そんなことを考えると、プログラミングは、実際にコンピュータを動作させて、どんな実行結果が出るかを経験させなければならないと思います。
 新聞記事は短すぎてよくわかりませんが、小学校のプログラミング教育の例題を見ても、これを子供たちが本当にコンピュータを操作して実行できるのか、わかりませんでした。
 添えられた例題を見ると、ソート(並べ替え)が挙がっていますが、こういう操作のありがたさや必要性がわかるのは、実際にデータを入力して、何か計算をしたり処理をしたりして、その結果をアウトプットすることがあり、その途中で並べ替えが必要になるという場合ではないでしょうか。オーツは、実際の処理、また入力から出力までの経験が重要だと考えていますが、そういう観点からは、ソートを取り上げるのは、かなり先の話だと思います。入力・処理・出力をすっとばして、ソートだけを教えることに意味があるでしょうか。
 正多角形の話は、たぶんタートルプログラミングの話なのでしょう。だから、シミュレータを用意すれば、かなり簡単に実現できそうだし、プログラミングらしくなるような気もします。しかし、これだけでは、単に「図を書く」だけの話に過ぎません。これを応用して、プログラミングの面白さが経験できるでしょうか。オーツは寡聞にして知りません。
 どうにも、小学校のプログラミング教育というのは中途半端な気がします。
 プログラミングの前に、もう少し基礎的な教養を身につけるべきだし、プログラミングをやるなら、何かのプログラミング言語を決めて、その全体を一通り学べるようにしないといけないのではないでしょうか。一部だけ小学校でやって、また一部を中学校でやって、高校段階で追加して全体が学べるというようなものでいいのでしょうか。
 たとえていえば、外国語教育の場合、外国語という複雑なものを学ぶことになるので、少しずついろいろな表現を学んでいく積み上げ型にせざるを得ないと思います。一方、プログラム言語の場合は、複雑とはいえ、人工言語だし、言語要素が(自然言語に比べて)圧倒的に少ないので、あるときに一気に教える方が望ましいと思います。タートルプログラミングでいえば、タートル言語のすべてを一気に教えるべきであって、それを各学校の段階で少しずつ教えるというのは変だと思います。そして、上の段階に進んだら、違うプログラム言語を教えるのがよいように思います。英語を小学校で終えて、中学校はフランス語をやり、高校で中国語を学ぶようなイメージです。それぞれの言語を通して見えるコンピュータ(世界)が違ってきます。
posted by オーツ at 04:04| Comment(2) | ニュース時評 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
お書きになっている「プログラミング」はFORTRANやC++などの言語を使ってある種の仕事をさせることをイメージなさっているのではないかと思います。ご存じかもしれませんが、数年前から小学生の間では簡単なゲームを作る「プログラミング」が流行しており、タブレットとフリーの言語で書いて図形を動かすなどの作業をさせるようです。『5才からはじめるすくすくプログラミング』(日経BP社)(Scratch言語)という本もあります。高学年ではUnity(言語)やAndroid OS用アプリ開発のJAVAが人気があるようです。子供向け「プログラミング教室」も増えていて「プログラミング」の意味と目指す方向が以前とは異なってきているようです。
Posted by 通りすがり at 2019年03月28日 22:00
通りすがり様
 コメント、ありがとうございます。
 教えてくださったような最近の傾向は、まったく知りませんでした。
 オーツ自身は、考え方が古いので、今の傾向を十分理解しているとは思いませんが、「プログラミング」とは何かに関して大きな違和感があります。
 自分自身ではゲームなどを一切やらないので、その種の「プログラミング」には興味がありません。
 古い人間の繰り言ととらえていただいてけっこうかと思います。
Posted by オーツ at 2019年03月29日 04:42
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。