こんにちは、若林です。
この週末、世間は選挙で騒がしかったようですね。私が住む町でも町議会議員選挙が行われるはずでしたが、立候補締め切り後の候補者数が定数と同じだったので無投票になりました。
SNSでは「わが町の投票率が低い!」となげく声もありましたが、選挙が行われる余地があるだけマシです。
ちなみに、定数10で立候補者の平均年齢が60.7歳、一番若い候補者が48歳。高齢者がダメだとは言いませんが、若返りの必要性をひしひしと感じます。
■コンピュータを使わないプログラミング教育
来年のプログラミング教育必修化に向けて色々な動きがある中で、「アンプラグド」と呼ばれる、コンピュータを使わないプログラミング教育が話題になっています。
「アンプラグド」とは「コンセントに挿さっていない」=「電気を使わない」という意味で、かつてはアコースティック楽器のみのライブでも使われた言葉です。
この言葉がプログラミング教育界隈で使われるきっかけになったのは、「CS Unplugged」という本の存在。この本では、コンピュータを使わずにコンピュータサイエンスを学ぶ(Computer Science without a computer)をテーマに、その実践方法を紹介しています。
CS Unplugged
https://www.csunplugged.org/en/
日本語版はこちら
https://csunplugged.jp/
この本が扱っているのは、「コンピュータサイエンス」であって「プログラミング」ではありません。
実際読んでみれば分かりますが、この本には「プログラムを作る」ことは一切出てこないのです。どちらかといえば、「プログラムを作る時に必要になる基礎的な考え方やセオリー」を取り扱っています。
この本をきっかけに「コンピュータを使わない=簡単」と誤解されたのか、なぜかプログラミングにも適用され、「コンピュータを使わないプログラミング教育」という考え方が生まれてしまったようです。
プログラミングが小学校の授業に導入されるにあたって、コンピュータが苦手な現場の先生から反発があるんじゃないか? という「忖度」が働いた結果、「アンプラグドなら簡単」とかいう認識が広まったのではないかと。
でもはっきり言います。それ間違ってます!
「アンプラグド」という手法は魔法ではありません。なんでもかんでも「アンプラグド」で簡単になったりしません。一見簡単になったように見えるかもしれないけど、実は遠回りしているだけかもしれない。
そこを考えられるのは本質がわかっている人だけなので、「プログラミング」や「コンピュータサイエンス」をわかってない人が、「アンプラグド」に手を出すのは危険だからやめとけと言いたいです。
「アンプラグド」流行の発端となった「CS Unplugged」の内容にしても、「アンプラグドだから低学年でやろう」と考えるのは早計。
この本には「テキスト圧縮」や「エラー検出とエラー訂正」の考え方を、コンピュータを使わずに理解するというところがありますが、今の職業エンジニアだって、全員がこれ分かってるわけじゃありません。
もちろん、そういう基本的な知識が備わっているべきとは思いますが、知らなくてもエンジニアとして仕事する上で差し支えありません。
「テキスト圧縮」や「エラー検出とエラー訂正」の方法を知らないエンジニアでも、ライブラリやフレームワークを使えば、データの圧縮や通信処理を使ったソフトウェアを作れてしまうのが現実です。
そういった状況で「テキスト圧縮」や「エラー検出とエラー訂正」を低学年で学んでも、それを実際に使うケースが出てくるのはかなり先ですし、もしかすると出てこないかもしれません。
むしろ、そういう知識が必要になる、もっと高次の教育課程において導入としてやった方が絶対効率的です。こういうことって、その中身をきちんと分かった人でなければ判断できないんです。
このように書くと「そもそも、コンピュータサイエンスが分かってないのにプログラミングやるの?」という意見もいただきそうですが、「プログラミングがコンピュータサイエンスに触れる入り口になってもいいんじゃない?」と思ってますし、それはまた別の議論だと考えています。
けっして「CS Unplugged」がダメだといいたいわけではありません、むしろこの本の内容は素晴らしいと思っています。
ただ、その扱い方は難しい。「プログラミング」や「コンピュータサイエンス」に色んな方が関わるようになった今、必ずしもみんながみんな、その本質を理解しているとは思えないので、自分たちの都合に合わせて「アンプラグド」という言葉を使うことに警鐘を鳴らしたいのです。
【若林健一 / kwaka1208】
https://croads.jp/aboutme/
子供のためのプログラミングコミュニティ「CoderDojo」
https://croads.jp/CoderDojo/