論理的思考を“避ける”のがプログラミング 遠藤諭が考えるプログラミングにいちばん大切なこと

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

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

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

情報処理

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

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

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

NHK for Schoolの『テキシコー』

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

テキシコー | NHK for School

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

子どものプログラミングという前提ではこのあたりまでですが、『情報処理』では、囲碁や将棋の「定石」にあたるアルゴリズムを学ぶことが大切だと書きました。残念ながら自分でオリジナルで考えるよりも、そうしたみんなが使った実績もあるアルゴリズムを応用したほうが、うまくいくことのほうが多い。本もたくさん出ていますね。

アルゴリズムを研究するような立場の人は違うと思います。しかし、一般的な何か作るものがあってプログラミングをする人たちは、建築にたとえるなら、「学ぶべきは柱の立て方ではなく、建築物で使われてきたさまざまな構造の種別をきっちりやることなのではないか」というわけです。

もっと全体的にとらえた、自分が作るものを取り巻くさまざまな事柄や関連する技術や知識なども含めたものにエネルギーを使いたいということです。

これまでの【遠藤諭の子どもプログラミング道】は

© Valed.press