体操だけでは語れないアルゴリズムの重要性

オピニオン

2018/09/24 12:00

 「プログラミングって面白い」と題したワークショップ。見学して驚いた。机の上に用意されていたのは、課題を印刷した4枚の紙とメモ用紙1枚。トランプ1セット。そして鉛筆1本。ただそれだけ。パソコンどころか電卓すらない。対象は中高生。プログラミングの天才が教えると聞いていたから、PCがずらりと並ぶ光景を想像していた。もしかすると参加者は拍子抜けしたかもしれない。はじめは――。

パソコンが登場しないワークショップ「プログラミングって面白い」

 最初の課題は「トランプの並べ替え」。シャッフルした1セットのトランプを順番に並べ替えるというものだ。ジョーカーは省いておく。絵柄はクローバー、ダイヤ、ハート、スペードの順。そして数字は小さい順だ。つまり、クローバーのエース、ダイヤのエース、ハートのエース、スペードのエースと並べ、次はクローバーの2、ダイヤの2という順に並べていくという課題。方法は3つ。1つめはクローバーのエース、ダイヤのエースと小さい順に探していって取り出し並べていく、というもの。目的のカードが出てくるまで延々と探し、それを何度も繰り返すため、とても時間がかかる。ただ時間さえかければ最後には完成する。次の方法は、まず数字の大きさで、ざっくり4つの山に分ける。1(エース)~3、4~6、7~9、10~13(キング)という具合だ。次に山ごとに順番に並べ、最後に山を順番に並べておしまい。3つめは、7並べのように、机の上を広く使ってトランプを並べていく方法だ。2つめ、3つめは最初の方法に比べ、かなり短時間にできた。
 
トランプを机の上に並べる方法を使うと速くできた

 紙にはこんなヒントも記されている。ほかにどんな方法が考えられるか。カードが1000枚あったら……。10人で協力できるとしたら……。課題用紙のタイトルは「アルゴリズムを体験しよう」。なるほど。これこそ「ソート」のアルゴリズムそのものだ。プログラミングといっても、いきなり書き始めるわけではない。まず、どんな方法で課題を解決するかを考えなければならない。それがアルゴリズムだ。アルゴリズムができていれば、あとはプログラムで表現するだけ。これはテクニックだ。プログラムの達人に頼んでもいいかもしれないし、もしかするとAIがやってくれるかもしれない。しかし、その元になるアイディアこそが大事なのだ。ワークショップではそれを教えたかったのだろう。参加した子どもたちは、結構楽しそうにトランプを並べ替えていた。まさに「アルゴリズムを体験」するワークショップだ。もう1つは最短経路を調べる課題。「駅すぱあと」や「乗換案内」を自分でつくるようなものだ。「ダイクストラ法」というアルゴリズムの一例が紹介された。
 
情報科学で問題を解決するにはアルゴリズムが重要と話す、
ワークショップの講師、山下洋史さん

 講師は東京大学・情報理工学系研究科博士課程に在籍する山下洋史さん、アシスタントは同じく東京大学・教養学部理科1類1年の髙谷悠太さん、河原井啓さん、坂部圭哉さん。全員、世界の中高生がプログラミングで競う国際情報オリンピックのOBだ。講師の山下さんは22回のカナダ大会で、アシスタントの3人は昨年29回のイラン大会でそれぞれ日本代表として出場しメダルを獲得した。特に髙谷さんは84の国と地域から308名が参加した国際情報オリンピックで世界1位を獲得しただけでなく、同年度に開かれた数学オリンピックでも世界1位を獲得した逸材中の逸材。とても豪華な講師陣だったわけだ。「『国際科学オリンピック日本開催』シンポジウム」で「情報コース」として開かれたワークショップの一コマ。関係者はみな口をそろえて言う。大事なのはアルゴリズム。アイディアやひらめきだ、と。そこでパソコンは不要だ。
 
情報オリンピック・メダリストのOBがアルゴリズムを直接教える
(左から河原井啓さん、坂部圭哉さん、高谷悠太さん)

 2020年度から、小学校でプログラミング教育が必修化されることになっている。しかし、昨年7月に告示された小学校の新学習指導要領解説には「プログラミングに取り組む狙いは、プログラミング言語を覚えたり、プログラミングの技能を習得したりといったことではなく」と書かれている。プログラミング教育だがプログラミング言語やプログラミング技能の習得が目的でないとしたら、じゃあ、一体何を教えるんだ。誰が考えたのか知らないが、コンピューターを使いこなし、理論的な思考力をもつ人材を育てる教育を指して「プログラミング教育」とするのは大きな誤りだ。多少わかりにくくても、アルゴリズム教育とすべきだ。言葉の認知度は「アルゴリズム体操」で高まっている。(BCN・道越一郎)