AtCoder Junior League 2023 ランキング上位校インタビュー 第1回 筑波大学附属駒場中・高等学校

取材日:2023/7/5

取材訪問者:高橋直大(AtCoder株式会社代表取締役社⻑、以下高橋)、kaede2020(AtCoder株式会社AtCoder Junior League運営担当)


AtCoder Junior League 2023(以下AJL)は、今年5月に新しくスタートしたAtCoderが主催する中高生向け学校対抗競技プログラミングです。12月まで続く長期リーグ戦です。参加登録は無料で、一回登録をすると、開催期間中に参加したAtCoderのプログラミングコンテストの成績を用いてスコアが算出されます。期間終了後には、中学部門、高校部門の各上位20校および、個人の各学年上位20名を表彰予定です。2023年9月現在、全国41の都道府県の234校の中高生、約800名が参加しています。

「AtCoderのことをもっと早く知りたかった」「AtCoderでがんばっていることを学校の先生に評価してもらえない」といった声は以前からありました。AJLは中高生のコンテスト参加を促し、競技プログラミングの楽しさを知ってもらうこと、同世代間のつながりを強化し、お互いが切磋琢磨する環境を作ること、学校の先生方に競技プログラミングに熱心に取り組んでいる生徒がいることを知ってもらい、応援してもらうことの3つを目的としています。実際AJLを開始したことで、これまで可視化されていなかった中高生の競技プログラミング参加者の奮闘ぶりが見えてきました。

この連載では中高生がどのように競技プログラミングに取り組んでいるのか、また、教師や親等、大人たちが子どもたちのためにできることは何かについて伝えていきたいと思います。

(AtCoder Junior League 2023 について詳しく知りたい方はリンク先をご覧ください。AtCoder Junior League 2023の詳細および参加登録方法

第1回はAJL2023で2023年8月現在、中学部門では暫定2位、高校部門暫定トップである筑波大学附属駒場中・高等学校のパーソナルコンピュータ研究部(以下パ研)所属の部員11名、および顧問の渡邉先生、須藤先生にお話を伺いました。

筑波⼤学附属駒場中・⾼等学校

パーソナルコンピュータ研究部について教えてください

—筑波大学附属駒場中高等学校のパーソナルコンピュータ研究部(通称:パ研)の現在の部員数は何人ぐらいいますか。(聞き手:kaede2020以下省略)

パ研部長の高1関口さん:僕もあまり正確に把握していないところがあるのですが、中高合わせてだいたい40人くらいです。中学生と高校生がちょうど半々ぐらいです。

—活動時間や活動内容について教えてください。

関口さん:基本的にはみんなが決まった曜日にここで活動しようみたいなものはなくて、平日の放課後に来たい人が来て、そこの技術室奥で作業や活動を行っています。あとはオンラインで夜、いろいろ問題を解いたり、パソコンを使って自分の好きなことをしています。だから放課後ここに来るのは6、7人くらいです。それが毎日続いているような感じですね。競プロをやっている人は家に帰ってからやるって人が多いです。ここのパソコンは自分の環境じゃないっていうのもありますし、性能もそんなに良くないので。どっちかというとパ研は家での活動が大きめで、この部室はコミュニティみたいなイメージです。そこに集まって、みんなでワイワイするみたいな。それくらいな感じです。

—競プロ以外で他にしている活動はありますか。

高1小熊さん:競プロ以外はゲームセンターです。

その場が笑いに包まれました。

—ゲームがあるのですか。

関口さん:どちらかというと、ブラウザゲームです。ボードゲームをやっているときもあります。10年ぐらい前はWindowsだったのが今はUbuntuなので普通のパソコンゲームは動きません。

競技プログラミングに取り組むようになったきっかけを教えてください

—どのようなきっかけでAtCoderを知ったのかを教えてください。

中学部長の中3筧さん:僕は部活です。歓迎会でパ研が紹介されていて、一度行ってみるかと放課後パ研に行ったら、先輩たちにまずは競プロ、AtCoderっていうのを調べてやってみてと言われて始めました。パ研では、競技プログラミングがまず最初に位置づけられていて、中1のうちは競技プログラミングをすごくおすすめされます。プログラミングに慣れて、中2になったら、たとえばCTFとかゲームの開発とか、いろんな方面に飛んでいくっていう流れになっています。でも大体は中2になってからもずっと競技プログラミングを続ける人が大多数なので、結局パ研にいる人はほとんど競技プログラミングをやっていますけど。

—そのときAtCoderのことをどう思いましたか。

筧さん:小学生のときはほとんど受験勉強しかしていなかったので、ここに入ってからも、例えばテニス部とか野球部とか卓球部とか色々あるけど、どこに入ったとしても新しいものっていうのはやっぱり触れなきゃいけないわけじゃないですか。だったら、そのうちのひとつとしてAtCoderがあるのだとしたら、じゃあAtCoderをまあ1回頑張ってやってみてもいいかなっていう気持ちでやっていました。

—入学前からパ研に入ろうと思っていた人はいますか。

11名中4人の方が手を挙げてくれました。それ以外の人に、どうして入部したのか、その理由をたずねてみました。

中2井上さん:めっちゃ宣伝をしてたので、ちょうどコロナの期間暇だったから、じゃあ入ってみようと思いました。

小熊さん:最初は親からすすめられました。先輩に連絡したら、そのまま入って逃げられなくなって、ある程度のところまで勉強させられたら、はまっちゃったのでみんなにも紹介しました。

パ研では中1から入っていない人がそれなりの割合でいるとのことでした。高1からだったり、厳しい部活に合わなかった人など、理由はいろいろとあるそうです。筑駒出身の髙橋も自分の過去を振り返り、「自分もパ研がっつりは高2くらいなので。野球部は途中で辞めたので。」と発言していました。

渡邉先生:部活への出入り(入部時期や退部時期)は自由なんです。

パ研の自由な雰囲気がよく伝わってきました。

競技プログラミングを始めるときのことを教えてください

—新入部員にはどのようなことを教えていますか。

筧さん:今はAPG4bをすすめることしか基本的にはできていません。AtCoder Problems上でバーチャルコンテストを立ててA問題、B問題を解いてもらったりもしましたが、ある程度理解しておかないと解けないので、(APG4bの)1の1から1の15まで読んでとお願いしています。まず1回、どこまでAPG4bを進められたかを聞こうと思っています。

関口さん:学校が始まると案外すぐ音楽祭があって、音楽祭練習で部活に積極的に参加する雰囲気が途切れてしまい、音楽祭の練習が終わったら次は期末試験でした。それが終わってやっと今、そろそろいろいろとできたらなと思っています。

取材に伺ったのは期末試験最終日。ちょうど部として活動を再開するところのようでした。

小熊さん:自分たちの代はちょっと違って、ふたつ上が72期なんですけど、問題リストを作ってもらいました。アルゴリズムについて例題をふたつぐらいと、そのアルゴリズムについて先輩が教えてくれたのでよかったと思います。

関口さん:バーチャルコンテストもほぼ毎日行っていました。そのときオンラインで学校が休校だったので暇な時間を持て余していました。

関口さん:Discordでパ研のサーバーを作っているので、そこで連絡を取り合っています。

中1で活動している人数をたずねると、今年は少ないとのことで3人と答えが返ってきました。また、新入部員のプログラミング言語についてたずねると、手探りな部分はあると話していたものの、C++が圧倒的に多いとのことでした。最初はコードテストの使い方を教えていて、その後やる気のある人は各自で自分のパソコンの環境構築をがんばっているとのことでした。

パソコン所持率について教えてください

—自分のパソコンは持っていますか。

渡邉先生:ほぼ全員持っていると思います。

筧さん:僕が1年生のときは自分のパソコン持ってなかったんですけど、そのときはお母さんのパソコンとか、家で共用のパソコンをを使ってやっていました。

技術室奥にあるパ研部室

髙橋:部活に来るときもパソコンは持って来ない?

高1鈴木さん:高校生は持って来ますね。

関口さん:自分の環境の方がしやすいのとパソコンが足りないこともあるので自分のパソコンを持ってきています。

高橋:パソコンを持ってきても良いのですね。

渡邉先生:この仕組みになったのは今年からなので試験的にやっています。

競技プログラミングをやめようと思った経験について教えてください

—AtCoderをやめようと思ったことはありますか。

筧さん:あります。去年のHACK TO THE FUTURE 2023 予選というのがあって中高生で上位10人が決勝に進める2週間のコンテストに参加しました。誰が中高生だかわからなかったのですが観測範囲で10位でした。でも最後の提出をミスしてしまい、30分のインターバルもあって出し直すことができなくて落ちました※。そのひとつ前の提出だったら決勝に行けたらしいと知り、すごく悔しい思いをしました。もうやってられるかという気持ちになったときが1回だけあります。まあ、4、5日くらいで競プロは再開したのですが。

※1回提出をしたら30分しないと次の提出をすることができない長期ヒューリスティックコンテストで採用されているルール

ヒューリスティック・コンテストに参加したことのある人はいますかとたずねると、ほぼ全員の手が挙がりましたが、そこまで積極的に参加している人は多くないということでした。

高橋:スパコン※には出ているのではないですか。

※スパコン:Supercomputing Contest 2023のこと。予選が6月にあり、本選が8月に開催される。

「はい」と複数の部員が答えてくれました。

関口さん:今日もスパコンのTシャツを着ている人がいますね。

吉田さんを見ながら関口さんが言います。吉田さんの胸には富岳の文字とイラストがプリントされていました。

関口さん:今年も太田のチームと、僕と吉田とあともう1人のチームがあって、そこは(予選を)通っています※。

※本選には太田さん、小熊さんのチーム、関口さん、吉田さん、松井さんのチームが出場し、そのうち、太田さん、小熊さんのチームが3位になりました。

高橋:ちなみに僕の初コンテストはスパコンです。スパコン2006に出て6位を獲りました。あ、これ競プロ向いてるじゃんって思って、そこから取り組むようになりました。

パ研に脈々と受け継がれているものを感じました。

競技プログラミングの目標について教えてください

—競技プログラミングをやる上で、いちばん目標にしていることは何ですか。

「僕はIOI※です。」「僕もIOIです。」口を揃えて、みな一斉に頷きます。IOIを目標にしている人に手を挙げてもらうと、全員の手が挙がりました。

※IOIは国際情報オリンピックのことで、JOI(日本情報オリンピック)の本選で日本代表選手候補として選ばれた上、さらに春合宿で好成績を修めて上位4名に入る必要があるため、狭き門となっています。

高橋:IOIまでみんな言うんだね。情報オリンピック本選とかにならないんだ。ちなみにその次は何ですか?

「AtCoderの赤※」とパ研部員の方から声が上がりました。

※AtCoderのレーティングの色のこと。上位から赤、橙、黄、青、水色、緑、茶、灰、黒(未参加)と分かれていて、赤は最上位を表す色になります。

—AtCoder以外に他に出ているコンテストはありますか。

ここにいた高校生のほぼ全員がロシアのCodeforcesをやっているとのことでした。他にも小熊さんがTopcoder、インド(CodeChef)、インドネシア(TOKI)など複数の海外コンテストの名を挙げてくれました。

関口さん:AtCoderしかやっていないとAtCoderのレートで一喜一憂しがちだから、リスク分散みたいな気持ちでいろんなコンテストサイトに出ています。

顧問の先生と生徒たちの関わり合いについて教えてください

—渡邉先生にお話を伺いたいと思います。パ研部員のみなさんにここまで質問をしてきましたが、顧問の先生に何かをしてもらったという話が出てこなかったように感じています。

渡邉先生:学校の風土もあるのですが、彼らの自主性が全てです。今回の話を受けて、何か語れることがあるかなって考えてみたんですけど、基本ないんです。唯一言えるとすれば、部活なので要所要所で組織としての動きが生じていて、そこだけは顧問が必要な時があります。そこがひとつの存在価値だなって思っています。彼らの能力はどの学年をとっても高いんで、やりたいことを尊重しているといった感じです。また、学年によって、そ の年の部員の数が全くわからないのが特徴です。多いときもあれば少ないときもある。入ってくるタイミングも全くわかりません。高校生で突然やる子もいますし、中学までの子もいる。着任して10年になりますけど、ずっとそうなんですよね。

—それでは頼られるときというのはどういうときですか。

渡邉先生:組織として動くときです。競技プログラミングは基本、個人じゃないですか。参加する、しないも自由意志だと思います。そうじゃないときだけ、やっぱり必要になるんですよね。文化祭の事務的なやり取りだとか、日々の活動の責任だとか。賞状も大量に送られてくるので、その処理はひたすらやっています(笑)。

—「こういうものがあるから出るように」と先生が勧めることも特にないということでしょうか。

渡邉先生:すごくシンプルなんですけど、うちの学校の部活動への参加は、、自由意志なんですよ。張り紙もそこに貼っているだけ。貼ってある情報を自分の考えで判断し、やるかやらないかを決めている。教師側もそのことを大事にしています。

須藤先生:私は部員の立場と顧問の立場の両方経験している身なので、それでいくと、顧問が出てくるときは、大体ピンチです(笑)。簡単に言うと、顧問の名前が出てこないときは、平和な時期なんです。

競技プログラミングと教育カリキュラムでのプログラミングの違いについて教えてください

—教育カリキュラムでのプログラミングと競技プログラミングについてどのように考えているかを教えてください。つながっているのか、別物なのか。それについてもご意見があれば伺いたいです。

渡邉先生:彼らには全く授業を合わせてないです。やっぱり合わせられないです。ただ、中学の技術の授業で、4ビットコンピュータっていうアセンブリでのプログラミングをやっています。直大君の時もやっていました。

高橋:あの80byteで組むやつですね。

須藤先生:私もやっています。

渡邉先生:当時だったらこれをきっかけにやってみようかなってことがあったのかもしれないですけど、今はプログラミングへの導入は沢山ありますから、必ずしもこれがきっかけになるということはないと思います。ただ感覚的にはパ研のレベルにぎりぎり合う授業内容で、やりがいもあったとは思います。

—4ビットコンピュータというのはどのようなものですか。

高橋:8型のモニターがひとつとランプが7つくらいあって、0からfまでのボタンがある。機械語を入れる感じで0f00ebf00ってすると0が入力を受け付けて入れる入れないで分岐してf00がジャンプで最初に戻る。この0っていうので押されると、f00をスキップして次の命令に行って、ebがあるレジスタに入ってる音を流すっていう仕組みになっています。

教材で使用されている4ビットコンピュータ

須藤先生:よく覚えていますね!

「あったあった!」パ研部員たちも口を揃えます。

渡邉先生:当時やっても今やっても、変わらないです。学び方としては全然。よくできた教材です。

須藤先生:教材として30年持っているっていうことですからね。

渡邉先生:この4ビットコンピュータを今も変わらず使っているのは駒場だけなんです。駒場以外は全滅です。今はもっといろいろとできるものがあると思いますが、できることが少ないからこそ意味があるというか。頭の使い方は変わらないです。

渡邉先生が実物を持ってきてくださると、直大が操作し始めます。今でも使用方法を覚えていることに一同騒然となりました。直大が習っていたのは今から20年も前のことです。

髙橋とパ研部員のみなさん

競技プログラミングの取り組みを家族がどう思っているかについて教えてください

—競技プログラミングをしていることを家ではどのように思われていますか。

高2林さん:親の思想もあると思うんですが、僕が何をやっても本当に何も言ってきません。そもそも競プロが何かもわかっていなくて。毎週夜になったらただパソコンに向かってるなとしか思っていないと思います。だから反対も賛成もないと思います。

中2永重さん:コンテストの後にDiscordで解法などを話し合っていたら早く寝なさいと言われます。あとCodeforcesはコンテストの時間帯が遅いと言われます※。

※ロシアのプログラミングコンテストサイトのため開始時間が日本時間の午後11時35分開始のことが多い。

競技プログラミングと学業の兼ね合いについて教えてください

—学業と競プロを両立するのが難しくて困っている人はいますか。

高橋が真っ先に手を挙げると、他にも一人、二人とパ研部員の手が挙がりました。

高1吉田さん:競プロで影響が出るやつは他のことをやっても影響が出るから。

関口さん:仮に競プロをやめても、その時間で勉強するわけでもない。

—逆に競プロが勉強に役立っているという人はいますか。

中2井上さん:数学を学ぶモチベーションにはなります。

—数学の勉強が進んでいないからAtCoderの問題が解けなくて悔しかったという思いをしたことはありますか。

「ああ」、「あります」と頷く声が多数聞こえました。

関口さん:僕は中3のときに黄色※だったのにABCのD問題の三角関数が全く解けないときがありました。

※AtCoderのレーティングの色のこと。上から赤、橙、黄であり、上位3%にあたります。

吉田さん:当時を思い出すと競プロの問題を解くときにわからなかったけど調べて分かったという記憶があります。数学は競プロをやりなが進めていました。

副部長の高1太田さん:高校範囲も超えて行列の話とか難しい数学の話も出てくるんだけど、そこは自分で学ぶしかないので競プロの記事を見ながらやったりしました。

高橋:競プロがうまくいったら家族にほめてもらえますか?

高橋の問いかけに4名ほどの部員の手が挙がります。

筧さん:JOIで春合宿に行けたときはさすがにほめてもらいました。

その一方で「特にない」と答える部員の声も聞こえます。

須藤先生:学校の集会で表彰されるっていうのは結構大事なステイタスだと思います。親御さんにとっても、賞状を持って帰るわけですから。

競技プログラミングと学校の関わり合いについて教えてください

—学校側がどれぐらい支援してあげる必要があるのでしょうか。

須藤先生:やっぱり⼈の出会いの場がいちばん⼤事ですよね。部活としてこうやって枠があるっていうのがとても⼤事です。私達は何も教員として⽀援してることはないけれども、パ研がなかったら競プロに出合わなかった層が⼀定層必ずいて、それがこう、なんかのきっかけで集まってくるのがすごく⼤事なことだと思うんですよね。そして、謎の隔年現象がある。2個上、3個上の先輩のインパクトというのを私はすごく感じています。この効果がすごく⼤きいと思っています。

渡邉先生:部活はすごい大事な存在です。やりたいって人が一定数いる以上は大事な存在。場所もたかだかあのスペースなんですけど、確かに好んで来てるんですよね。

吉田さん:中3が中1を教えるとか、高1が中1を教えるとかそういう構図が結構あります。

高橋:6学年くっついているのがでかい。

その場にいた部員や先生方全員が頷くのが見えました。

将来について教えてください

—将来はIT関連の仕事に就きたいですか。

多数の手が挙がりました。AJLに参加している中高生に向けたアンケートでは3割くらいなので、その志望率はとても高く感じられました。逆に手を挙げていなかった吉田さんの意見を伺います。

吉田さん:情報は活かすけどプログラミングっていうよりは数学系に寄ったりとか、応用的な何かに取り組んでみたいと思っています。機械学習でもそうですけど。1回大学に行ってみないとわかりません。

AtCoderに望むことはありますか

—最後にAtCoderに対する要望があれば教えてください。

「AJLに賞金をつけてほしい。」「オンサイト」「中学生向けの大会」等いろいろなご意見をいただきました。中でも多かったのは初心者向けのコンテストを望む声でした。

鈴木さん:ABCのAがどんどん難しくなっていたので、そこはもう1個、灰色とか茶色のためのコンテストがあったらうれしいです。

中2大谷さん:灰色とか茶色とかの教育コンテストみたいなものがほしいです。

永重さん:ABCビギナーみたいなものがあればよいと思います。

高橋:部活動がやりやすくなるっていうとその辺になるのかな。例えばだけど、部活の時間に公式でバーチャルコンテスト※を用意したらうれしいですか。

※過去に出題された問題を解くコンテストのこと。過去問を自由に組み合わせたり、コンテスト時間を自由に設定することもできる。

「かなりうれしい気がする」「学校によって時間が違いそう」「16時~17時とかなら」「3時間のうち40分とか50分とかを選んでという形なら良さそう」と企画段階の公式バーチャルコンテストに対する意見もパ研部員の方たちからいただきました。

—以上でインタビューを終了させていただきたいと思います。本日はお忙しい中どうもありがとうございました。

最後に技術室奥の部室前で全員で記念撮影をしました。終始笑顔が絶えず、和気あいあいとした雰囲気のパ研部員のみなさんでした。

(写真向かって左より前列渡邉先生、大谷さん、井上さん、永重さん、kaede2020、筧さん、小田さん。後列向かって左より鈴木さん、小熊さん、太田さん、吉田さん、高橋直大、林さん、関口さん、須藤先生。)


インタビューを終えて

お話を伺って印象に残ったのは、渡邉先生の自主性を重んじているという言葉でした。

中学受験の偏差値の高さを見れば、入学したどの生徒も、小学生のときは自分は勉強ができると思っていたことでしょう。ところが入学して早い時期に自分以上にできる人間がいると気づき、「勉強ができる自分」の「勉強ができる」部分が外されて、ただの「自分」になってしまいます。そこからまた新しいものに触れて、自分探しを始めなければいけないというのは過酷にも見えますが、それを見守る環境があるのを感じました。中学1年生のときから、得意な勉強以外にさらに自分が熱中できる何かを探し始めるのです。上には上がいると思うから生徒たちは自分が勉強ができると思わなくなってしまうのかもしれませんが、本当は十分に優秀なまま成長を続けていることを感じました。

AtCoderのコンテストで習っていない三角関数を使う問題が出てきて困ったと言いながらも、「自分で勉強した」と特に特別なことでも何でもないように答えが返ってきたことに、これがAJLのランキングでトップを走る強さの秘密のひとつなのかもしれないと思いました。言われてみれば確かに学校が教えてくれるまで待つ必要はありません。現在の教育の主流である「教わる」という行為。この受け身の行為が続くと、未履修の何かに出合ったときに「まだ習っていないからできない」と、そこから先に進むことができなくなってしまうのではないかと思っています。

コンテストが毎週のように開かれ、解説もそろっていて、自分でどんどん進めていくことのできるAtCoderと相性が良いのも当然のように思えました。それは受験のためではなくとも勉強の場であることに変わりはありません。

解く楽しさを知ってしまったら、そのために学ぶことに何の抵抗もないことでしょう。そして、彼らには競い合い、高め合い、楽しみを共有することのできる仲間がいます。

「今日は特別きれいなんですよ。」

部室として使われている技術室奥に案内してくださった渡邉先生の笑顔を見ながら、この場所で過ごし、巣立っていくパ研部員の皆さんを想像して、とても幸せな気持ちになりました。

(文:kaede2020)