プログラミングシンポジウムでの情報教育の議論について

今年のプログラミングシンポジウムの夜のセッションでは情報教育についての熱い討論が行われました。その場で出た「この議論に関してブログなどに書くことは有益」という意見に賛成なのでこの記事を書きました。

手段の良しあしを議論するためには、まず「その手段を行うことでで達成したい『目的』は何なのか」が明確である必要があります。そうしなければ「手法Xは(目的Aのために)有益だ」「いや、手法Xは(目的Bのためには)有益ではない」という無意味な水掛け論につながるからです。

以前、首藤先生が指摘されたことですが、プログラミング教育の目的は少なくとも3つあります。「プログラミングのやり方の教育」「コンピュータ科学教育」「プログラミング行為の楽しさの伝道」です。

「『プログラミング教育』とひとくくりにされていて、違いが認識されていないことは、不幸のもとかもしれない」(首藤先生) この意見に私も賛成です。

2番目の目的には、コンピュータサイエンスアンプラグドとかビスケット開発者「原田ハカセ」のコンピュータサイエンス入門などがあります。会場で原田さんに、トランプを伏せて二人組で片方が指示だけして片方だけがトランプを見ることで「やり方(アルゴリズム)の工夫によって効率に大きな差が出るんだ」ということを教える話を聞いて、とても感銘を受けました。オセロのコマを使った誰でもできるマジック(種はパリティビットの概念)の話も面白かったです。

この種の「コンピュータ科学教育のやり方」を、もっと作ったり、共有したり、実際に使ってみたりして、改善のサイクルを回していくことで、目的2を達成しやすくなるでしょう。


目的の別の切り口として「a. すでに頭角を現しているトップ軍団を加速する」「b. 将来トップ軍団に入りうる人を見つけるための選抜を行う」「c. 広くすべての国民の底上げを図る」の3つがあります。会場での話題を見ていると 2-c「広くすべての国民にコンピュータ科学の基礎を習得させる」がよいことでありやるべきことであると前提した発言もあったように思います。この前提に関しては私は疑問ですが「全国民に習得させる」という手段の良しあしを議論するのであれば、その目的がなんであるかをまず明確化する必要があるでしょうね。