情報教育にプログラミングは必要か?

情報教育:小学校でプログラミングを学ぼうという記事を読みました。
ドリトル」(DO-Little)というオブジェクト指向プログラミング言語を使った情報教育についてです。


「情報教育」、つまり「いかにコンピュータを正しく使うか」ということの手法としてのプログラミングをドリトル作者の兼宗進助教授は主張しています。
自分でプログラムを書くことによって、世の中には悪意のあるプログラムがある事などを学んで欲しいということなのですが。
うーん…。
「悪意のあるプログラム」ってのは相当習熟していないと書けないと思うんですけどね…。
ハードウエアを直接叩けたりとか、OSのセキュリティホールに習熟しているとか。
「ドリトル」の場合そこまでのことはできません。「DO-Little」なのですから。


道具を使いこなすために、その道具のしくみを知る必要があるのか?
ある程度は知っている必要があるとは思います。
ただ、果たして自分でプログラミングすることがそれに繋がるのか?と。


「ドリトル」の問題点を言うとまず日本語プログラミング言語(しかもオブジェクト指向)ということかな。
日本語とプログラミング言語の相性は最悪です。
日本語というのは非常に文法が曖昧というか、あって無いような自然言語なので。
加えてLOGOのタートル・グラフィックという手法。
私は小学生の頃パソコン部でMS-DOS版のLOGOを使ったのですが非常にイラつきました。
ある程度BASIC(N88-BASIC)でプログラミングが出来たので。
タートル・グラフィックは実際のコンピュータの描画原理とは大きく異なり、理解に繋がるとは思えません。
オブジェクト指向な点は良いとは思うけれども。
現在のソフトウエア開発というのはIDE(統合開発環境)を使ったGUIプログラミングが主流です。
あとはいわゆるP言語のようなWebプログラミング。
業務で使うプログラミングということだとそういう物なのに、例えばいちいち宣言しないとGUI部品が使えないような言語で良いのか?という気がするのです。


私は「プログラムを書くことによって理解する」よりも「使い方をしっかりと教えた上でしくみを教える」ほうが良いと思うのですが。
例えば電気機械のおおまかな仕組みを知っている人が全員基板の設計/制作ができるか?といったらNoです。
あまり良い例えじゃないと思うのですが、銃器の使い方のトレーニングなんかまさにそうでしょう。
一兵卒はただ自分が所属している軍隊の銃器の扱い方が分かれば良い。
ガス圧利用式とローラーロッキングの違いについて意識する必要はないんです。
ただ、特殊部隊に所属するなどとなると任務に向いた銃器を自分で選択する必要がある。そのためには仕組みに精通している必要があると。
「軍人」(=ユーザ)が「設計者」(=プログラマ)になる必要があるのか?という事です。
私はプログラミングによる情報教育よりは、しっかりとしたユーザを育てる方が良いと思うけどなぁ。


「プログラムを書いてみたい」という子供がいても、悪いけど子供のレベルじゃ無理だもんね…。
例えばゲームプログラミングなんかの場合高度な数学的知識が要求されます。
それは小学生のレベルじゃ無理というものです。
余程のことがない限り(コンピュータが大好きだ!という奇特な人以外は)プログラムを書いてみたいと思う子供なんかいないもん。


「情報教育」の方法としてはあまり良くないというか、遠回りな方法だと思います。
例えばWinnyなんかに手を出す子供も居なくはないわけで。
(キンタマウイルス踏んでも子供なら問題はさほど無いですがね)
でも、工作の時間的なトライアンドエラーの教育的効果はあると思います。ただ、それが「情報教育」に結びつくかは疑問だなぁ。
それよりは情報流出を防ぐには?とか、そういうことを教えるべきだと思うんです。でも、それは小学生には敷居が高すぎかな。
あー、小学生の情報教育というのは盲点でした。高校生ならば分かるんだけども。
次は小学生の情報教育をテーマに書こうと思います。