小学校でプログラミング教育が始まった理由の1つに「論理的思考を鍛えるため」というのがあります。しかし、角川アスキー総研の遠藤諭氏はあえて論理的思考を“避ける”ことを考えるのがプログラミングと言います。その真意はどこにあるのでしょうか。

プログラミングをするときにいちばん大切なことはなにか

情報処理学会の『情報処理』最新号(2021年月号 Vol.62 No.3)に記事を書きました。といっても、それほど大げさな内容ではなく、「プログラミングをするときにいちばん大切なことはなにか」について書いたつもりです。

これからプログラミングをはじめる子どもたちが、近くにいる保護者や先生たちの参考なるかもしれないので、そこで述べたことの一部を紹介したいと思います。

プログラミングを初めて見た子どもたちが「プログラミングってむずかしいな〜」と思うことがあると思います。ひょっとしたら「もうプログラミングなんて一生やりたくない」と思う子もいるかもしれません。

なぜそのように感じるかというと、算数の問題やパズルを解くように「ウンウン」と頭を使わないといけないように見える可能性があるからです。

NHK for Schoolの『テキシコー』

画像: NHK for Schoolの『テキシコー』

NHK for Schoolの『テキシコー』という番組があります。地上波のEテレで放送されたときに、ご覧になった人も多いかと思いますが、いまでも公式サイトで、2020年に放送されたすべての番組を見ることができます。

実際に、ホームページで動画をクリックして見てもらうとよいのですが、第1回のオープニングでいきなり紙生物(かみせいぶつ)「ゲソタラズ」(映像の中ではこの名前は紹介されないのですが、足の数が6本しかないのでこう呼ばれているようです)がテーブルの上を歩いています。その歩くようなダンスのようなもったいぶった動きが、なんともユーモラスでもあり、惹きつけられます。

「複雑な足さばき」「わさわさと動いている」「無秩序にみえるだろ」「それがなんと法則がある」……ときて、「テーブルの下では」と仕掛けが紹介されます。

ゲソタラズの足の裏に金属片がついていて、テーブルの下から磁石で操作していたのでした(中国の屋台で平たい水槽の中の金魚に金属片を呑み込ませておいて下から磁石で操るのと同じ)。ここにちょっと工夫があって、6本の足が1つおきに3本ずついっしょに動くようになっている(そのために3つの端に磁石のついた三角形を2枚重ねて机の下で動かしている=映像で見ていただくのがよいと思います)。

「なあ〜んだこんな簡単なしくみだったのか!」と思われた方がほとんどではないかと思います。そうなのです。プログラミングも「誰もがパッとみてわかる簡単なしくみ」であることが大切なのです。この動画は、目の前で起きていることを観察することのほうがテーマなのだと思いますが。

同じテキシコーの第1回の前半に出てくるプラレール(模型の電車)を使った部分は、ゲソタラズとは対照的に「ウンウン」と頭を使わせるものになっています。円形のプラレールの上を電車が走っていくと遮断機にぶつかって止まる。

実は、レールのほうがグルグルと回る仕掛けになっていてその端に固定された三角形も一緒に回ってきて遮断機を持ち上げ、電車はそれをくぐってまた走り出す。以下繰り返す……。

子どもはビックリするような動きが好きなので、積極的に「こんなことまで起きちゃうゾ!」ってことでこのシーンはあるんだと思います。しかし、これを「頭の中で手順をたどる」のはかなり大変です。

プログラミングで大切なのは頭の中で考えることではない

画像: プログラミングで大切なのは頭の中で考えることではない

私のプログラマー時代の同僚に「これと同じ動作をするものを作るにはどうしたらいい?」と聞いたら、愛用の《リングノート》を取り出して、まずは丸いレールの図を描くと思います。次に、電車がグルリと回ることもかきこみます。最後に、遮断機のところに「5秒おきに開閉する」と書き込むんじゃないかと思います。

これなら、誰でもパッと見て理解できると思います。頭で考えずにノートに鉛筆でここで起こることにを描いいく。うまく表現できなかったときは、「ビリッ」とそのページをやぶってポイと捨ててしまいます。

プログラミングで、大切なことは頭の中で考えることではないと思うのです。

もう1つ、テキシコーの第1回のいちばん最後にビデオ取材的に出てくる郵便局のお話は、おそらく私のような仕事でプロクラミングにかかわった人は「おおーっ、そうでしょうそうでしょう」と声をあげた人も多いのではないでしょうか。

郵便局では毎朝《組み立て》という作業を行うそうです。この組み立てで使うのが《配達原簿》というリストで、それによって配達員はひと筆書き的に一方通行や右折禁止を配慮して郵便物を配達できる。たぶん、そうした交通制限を加味したうえで最短ルート的なものになっていると考えられます。「巡回セールスマン問題」というコンピューターの世界では有名な難しい問題の匂いもします。

この《配達原簿》があるおかげで、郵便配達員の人たちは、交通安全にだけ注意しながらラクラクその日の仕事を終えることができるのでした。

プログラミングで楽しいのは(というよりもうまくいくときというのは)、ゲソタラズの足と磁石とか、配達原簿を作ったところで、ほとんど90パーセント決まってしまうのです。それは、誰が見てもすぐにわかる。それに対して、プログラミングで苦しいのは(つまりうまくいかないバグがでるときというのは)、「ウンウン」と頭で考えるようなアルゴリズム的な仕掛けを考えてやろうとしたときなのです。

人間は完全に論理的にきっちりとやれない生き物

画像: 人間は完全に論理的にきっちりとやれない生き物

プログラミングを学ぶときに大切なのは論理的な思考であるなどといわれます。逆に、子どもがプログラミングを学ぶことで論理的な思考がやしなわれるなどとも言われます。ところが、完全に論理的にきっちりとやれない生き物だから人間なのです。ここに、プログラミングというものの宿命的な矛盾があるといってよいでしょう。

ということは、むしろ論理的思考(ウンウンと考える)を避けることを考えるのが、プログラミングではないかと思うのです。

子どものプログラミングという前提ではこのあたりまでですが、『情報処理』では、仕事などでプログラミングをするような人たちについても書きました。建築物のことを考えるとわかりやすいのですが、どのビルも同じように壁や床や天井からなっていて、ドアやエレベーターや非常階段などあります。万博のパビリオンみたいな変わった建築もあるかとあると思いますが、そこには長い間に蓄積されてきた技術的ノウハウをもとに作られるはずです。

プログラミングも同じで、スマホアプリにしろWebアプリにしろ業務用ソフトにしろ、たいてい同じような作りになっています。そんなときに、毎回、天井を支える構造やエレベーターの設置法などを自分で工夫して考えていたらたいへんです。大変なだけならいいのですが、自前でやるとミスを犯しがちです(そのことについて初心者ですからね)。

コンピューターサイエンスの世界には、ちょうど囲碁や将棋の「定石」のような評価も安定したアルゴリズムというものがあります。本もたくさん出ています。自分で「ウンウン」と頭を使って考えるよりも、そうしたアルゴリズムをどう応用するかに頭を使うのがよい。これは、仕事でプログラムを書く人だけでなく、プログラムを学ぶ高校生・大学生についても言えるのではないか? といったことを書きました。

「学ぶべきは柱の立て方ではなく、建築物で使われてきたさまざまな構造の種別をきっちりやることなのではないか」というわけです。

アルゴリズムの研究者をめざすなら別ですが、99%の人はこちらのはずなのです。ここでも「論理的な思考」から逃げることこそが本当の「コンピューター使い」なのだといってよいと思います。たぶんそこで必要となるのは、どちらかというとグラフィックデザインに近いセンスです。テキシコーに出てくる「ゲソタラズ」は、まさにそんな感じでした。歩かせるという連続的な動作を、磁石のついた三角形2枚というデータに置き換えたのです。

プログラムは、ひたすら「ラクに誤解なく伝わることだけが大切」なのです。プログラミング言語とはよく言ったものです。そこまでいったら、「ウンウン」と頭を使うエネルギーは、自分が作るプログラムが関係する分野(AIなら線形代数とか、VRなら認知科学とか、サービスなら心理学とか、地域社会の課題や民俗学を知っておくべきプログラムもあるでしょう)に使うべきなのです。

子どものプログラミングについても同じようなことがいえると思います。そして、そうしたプログラミングの学び方があるはずです。

コメントを読む・書く

This article is a sponsored article by
''.