プログラミングコンテストで数々の実績をもつ同校がなぜTOPSICを始めるに至ったのか。その背景からアルゴリズムの重要性まで、数理研究部顧問の内田芳宏教諭、TOPSICを運営するシステムインテグレータ代表取締役社長の梅田弘之氏、TOPSICの問題作成を手掛けるAtCoder代表取締役社長の高橋直大氏に話を伺った。
設立47年の実績ある数理研究部
東京・池袋の立教大学の並びに建つ立教池袋中学校・高等学校は、立教大学をはじめとした有名大学への進学率も高く、中高一貫の名門校として人気を誇っている。クラブ活動の豊富さも特徴で、中でも1971年に設立された数理研究部は、歴史と伝統のある部活動の一つだ。
「数理研究部が始まった1970年代はまだ高等学校は設立されていなかったため、中学校しかありませんでした。それでも、当時から数学好きが集い、なんと『ユークリッド原論』を6冊読み通したという記録が残っています」と話すのは、数理研究部の顧問である内田芳宏教諭だ。
部に所属する60人の生徒のうちの3分の2がUnity(ユニティ:ゲームを制作できるプログラミングツールの一つ)を扱えるという数理研究部では、プログラミングに挑戦する生徒が多い一方で、数学を極めて「数学オリンピック」などに挑戦する生徒もおり、部員が各々興味のある分野を模索・研究する場になっている。
また、数理研究部では5年前から「国際学生対抗バーチャルリアリティコンテスト(IVRC)」のU-20部門に毎年挑戦しており、今年もフランスで開催されたコンテストにおいて、出場した部員が発表を行った。内田教諭によると、「VRのコンテンツを作成するためには、リアルとバーチャルの狭間をいかに繋げるかが重要で、非常に難しい」と言う。
最初は部員が一人ひとりコンテストへの課題に悩んでいた中で、次第に「プログラミングは苦手だけれど、3Dの『Shade(シェード)』ならできる」「じゃあ、音楽を担当する」といったように、それぞれが自分の得意分野でできることを分担しあう方向へ変わり、各自で悩んでいた状況がコンテストに出ることで融合された。その成果として、2017年にはユース部門で銀賞、ならびに未来観客賞を受賞するという快挙を成し遂げた。
「そうした高校の先輩の姿を見ている中学生達が高校生になると、『今度は自分達がやる!』と、挑戦を続けています」
学生のうちからアルゴリズムを学ぶ機会を作りたい
数理研究部は、最初は数学がメインの部であった。しかし、マイコンなどがブームになった1980年代に、コンピュータの知識がある内田教諭が顧問になったことで、部にコンピュータが導入されたと言う。
当初はパソコンで地道にプログラミングをしながら、「クイックソート」や「バブルソート」の違いなど、アルゴリズム(問題を解くための手順を表現したもの/コンピュータで計算を行うときの計算方法)を真剣に学んでいた。しかし、1987年に登場したアップル(当時アップルコンピュータ)の「HyperCard(ハイパーカード)」をきっかけに、開発環境が大きく変わる。
「それまではプログラミングといえばテキスト言語を打っていくしかなかったものが、HyperCardによってビジュアル言語化されたのです。その時期からプログラミングが大きく変わり、開発環境がどんどん自由になっていったことで、次第にアルゴリズムを意識しなくてもプログラミングができるようになっていきました」
そうした中で、今年「TOPSIC」の導入を決めたのは、生徒たちに今だからこそアルゴリズムの重要さを知ってほしいという思いがあったと内田教諭は話す。
「現在、プログラミングを好きで学んではいるものの、アルゴリズムが分からない生徒がほとんどです。アルゴリズムを知っていれば、プログラミングを覚えるのは簡単ですが、逆は難しい。だから、新しいプログラミング言語を学ぼうとしても、敷居が高く感じてしまうようです」
プログラマにならなくても「論理的思考力」と「アルゴリズム」は重要
「TOPSIC(Test of Programming Skills for International Coders)」は、企業などに採用されているプログラミングスキル判定サービスで、試験者が実際に書いたプログラミングを自動判定し、リアルタイムでスキルを測定することができる。プログラミングの熟練度はこれまで数値化することが難しかったが、TOPSICによって、「TOEIC」をはじめとした英語の標準的な試験のように、「実力を客観的に測定し、見える化」することが可能になった。
しかし、内田教諭は決して生徒の実力を測るためにTOPSICを導入したわけではない。
「TOPSICは、生徒達がアルゴリズムの楽しさを知るきっかけになると思っています。私にとっては、プログラミングをする上でアルゴリズムは当たり前のものですが、生徒達にとっては非常に新鮮に感じるようです」と、内田教諭は話す。
アルゴリズムの重要さについては、TOPSICを運営するシステムインテグレータ代表取締役社長の梅田弘之氏も、以下のように語っている。
「プログラミングを必要とする市場は大きいですが、プログラミングを書く上でアルゴリズムが根幹にあるという意識を持っている人は、現在非常に少ないです。また課題として、アルゴリズムの理解度を可視化できるツールが今までありませんでした。
そこで、TOEICを参考にして作り上げたのが「TOPSIC」です。プログラミングに対してしっかりと向き合っている立教池袋高等学校・中学校の数理研究部のような生徒さんだからこそ、TOPSICを通じて、学生の時点からアルゴリズムが重要であることを知ってほしいと思います」
そして、このTOPSICの問題を作成しているのは、競技プログラミングで数々の実績をもつスタッフが集う企業、AtCoderだ。同社の代表取締役社長である高橋直大氏は、自身も競技プログラミングにおいてチーム戦で世界一を3回、個人戦でも世界2位を2回取る実績を持つ実力者である。高橋氏は、7月に開催された数理研究部とAtCoderとの交流会において、論理的思考力とアルゴリズムの大切さを生徒達に熱く伝えた。
「論理的思考力は、プログラミングだけでなく、どんなジャンルにも役に立ちます。ITエンジニアやプログラマにならない場合でも、結局は『ものを作る』ことにつながっていくことが多いですし、プログラマに必要なものを伝えるためには、論理的思考力が必要です。
そして、コンピュータの計算を早くするための手法がアルゴリズムです。このアルゴリズムが得意な人は、プログラミングスキルがとても伸びます。アルゴリズムの力は、競技プログラミングやTOPSICを通じて鍛えることができるのです」
AtCoderでは、誰でも参加できるオンラインのプログラミングコンテスト「AtCoder(アットコーダー)」を開催している。コンテストは一般的に「競技プログラミング」と呼ばれており、出題された問題を解くためのプログラムを組み、正解数やプログラミングにかかった時間などを競う。プログラミング初心者でも気軽に挑戦することができるが、いかに「正確に早く解く」ことが問われるため、何度も挑戦するうちに自然にアルゴリズムを意識するようになると言う。
「競技プログラミングは楽しいからやっている人が多いです」と、高橋氏は話す。「AtCoder」は、同時接続者数において世界で3300人、日本では2000人超という数を誇り、今やブームになりつつある。
「競技プログラミングはネットゲームだと思っている」と断言する高橋氏は、同時にこうも語っている。
「実はそこで育つ人材の評価が高く、企業の採用においても非常に注目されています。これだけ評価され、世の中の役に立ち、勉強につながるネットゲームはないでしょう。そして競技プログラミングは数学に密接に結びついており、やっていく内に数学の力も鍛えられます。中学生や高校生にも、ぜひ一度体験してみてほしいですし、TOPSICはその導入の一つとなると思います」
「繰り返しやる」ことが、アルゴリズムを考える力を鍛える近道
現在、数理研究部では、高校1年以上がTOPSICのアカウントを持っており、各々で挑戦を始めている。
「10年以上前にアルゴリズムを学び始めたときは、本以外の学ぶ手段がほとんどありませんでした。そのため、先生が問題を考え、限られていた数問をひたすら繰り返すような状況でした。
しかし、現在はTOPSICを利用することで、生徒は多くの問題に触れることができます。問題の種類が多い方がとっつきやすいようで、興味のある生徒ですとどんどん取り組んで、問題を次から次へとクリアしています。難問にあたって玉砕しても、TOPSICであれば何度も挑戦することができます」と内田教諭は、現在の活用状況を話す。
この「繰り返しやる」ことこそが、アルゴリズムを考える力を鍛える近道だと、梅田氏は言う。
「サッカーにおいて選手の基礎体力が重要なのと同様に、プログラミングにおいてもアルゴリズムの理解は非常に重要です。しかし、アルゴリズムを考える力は現在あまり訓練されていないのが現状です。その力を鍛えるには、基礎体力と同様にひたすらやることが手っ取り早いと考えています」
新科目「理数探究」への期待と構想
内田教諭によると、現在はTOPSICの利用は部活動内にとどまっているが、今後は授業での導入も視野に入れていると言う。
「数学の授業は非常に抽象的で、具体的な演習問題は山のようにありますが、今学んでいる数学は、現実世界においてどう結びつくのかという実感を伴った授業はほとんどありません。知る術がほとんどないため、『世の中のいろいろな場面で数学が使われているよ』といっても、生徒はピンときません。そこで、その"つなぎ"としてさまざまな事象を数字化して、プログラミング化してコーディングしてみる。ここでアルゴリズムを考えてプログラミング化できないと、その事象をコンピュータ化して再現させることは、おそらくできないと思います。
アルゴリズムは『数学は世の中の問題解決にこう役に立っている』という、中高の数学の中で欠落している部分を補えると思っています」
しかし、既存の教科の中に入れ込むのは難しいのも実情だ。そうした中、内田教諭は、2020年からの新学習指導要領で追加される新科目「理数探究」に期待を寄せている。
「この理数探究では『事象を分析しなさい』といったものも含まれているので、「ある事象を具体化してアルゴリズムを考え数式化する」ということができるのではないかと思っています。その上で、1つの方法として、TOPSICを活用することもできるのではと構想的には考えています」
まずは、第一段階として、理数研究部においてTOPSICの活用をさらに試みていく。内田教諭はTOPSICでアルゴリズムを習得する効果を以下のように話した。
「プログラミングでエラーが出た時に、アルゴリズムによる問題解決などの思考が加われば、生徒達がコーディングにかけている時間も減るのではとも期待しています。
また、アルゴリズムが考えられれば、違う言語で対応できるため、新しい言語を覚えるときに、非常にやりやすい環境を作ることできます。複数の言語を覚えたいと思っている生徒が違う言語で書き直した時に、自分が書いたものが合っているかどうかをTOPSICですぐに判定してもらえるからです。
最近は、C#(シ―シャープ)だけでなくPython(パイソン)を覚えたいという生徒が増えてきましたが、C#とPythonでは文法が異なります。そこで、自分の知っている知識をPythonに当てはめたらどうなるかということを、TOPSICでやってみることで一目瞭然になり、新しい言語をより簡単に身に着けることができるのではないかと思っています」
数理研究部の挑戦は始まったばかりだが、TOPSICの導入によって生徒たちにどんな効果がもたらされていくのか、そしてアルゴリズムという新たな武器を手にした生徒達がどのような作品を生み出していくのか、今後の活躍にも期待していきたい。
なお、TOPSICは公式サイトから、無料で「トライアル版」が体験できる。また、学校&企業対抗プログラミングコンテストが11月中旬に開催予定である。興味のある方は、ぜひ挑戦してみることをおすすめする。