全国情報技術教育研究会(全情研)が主催する「令和5年度(2023年度)第43回全国高校生プログラミングコンテスト」の本戦(決勝戦)が11月11日、日本工業大学(埼玉県南埼玉郡)で開催された。全国の予選を勝ち抜いた上位8校が出場。午前の予選と午後の決勝トーナメントを勝ち抜き、宮城県工業高等学校(宮城工業)が2017年以来、6年ぶりの優勝に輝いた。
「全銀システム障害の原因はメモリ不足が起因で金融機関名が格納されているインデックスデータに不正なデータが混入したといわれている。エラーとしては些細な原因だが、なぜこんな障害が発生したのか。人為的なデバックのミスや、データ構造とハードウエアの状況を把握しながらの作業が不十分だったと推測される。皆さんもプログラミングをする上で何度もエラーを経験していると思うが、全体のアルゴリズムとデータ構造の全体像を把握し、理解した上で作業を行ってほしい。これが必要不可欠な力でありスキルになる。今後、プログラムは複雑さを増すだろうが、人々の役に立つプログラム、サービスを提供する技術者になってもらいたい」と出場校にエールを送った。
「全国高校生プログラミングコンテスト」(全国高校プロコン)の本戦に参加するまでには、1次予選と2次予選を通過する必要がある。1次予選では、運営委員会指定のマップでCPUクライアントプログラムとオンラインで対戦。対戦結果のポイント数で順位付けし、上位16校が2次予選に進む。
2次予選は、各チームが作成したクライアントプログラムを事務局に提出。そのプログラムを使って運営委員会がリーグ戦を行う。各試合での獲得点数を合計し、得点の高い順位によって、上位8チームが本戦に出場する。
11月11日の本戦に出場した8校は、埼玉県立三郷工業技術高等学校(三郷工業)、愛媛県立松山工業高等学校(松山工業)、栃木県立栃木工業高等学校(栃木工業)、埼玉県立越谷総合技術高等学校(越谷総合技術)、山梨県立都留興譲館高等学校(都留興譲館)、宮城県工業高等学校(宮城工業)、埼玉県立久喜工業高等学校(久喜工業)、熊本県立八代工業高等学校(八代工業)(予選通過順)だ。
コンテストで使われる対戦ゲームは「CHaser(チェイサー) Online」。マス目状のマップに散らばった化石やアイテムを、化石発掘マシーン(自コマ)で探査・発掘していく。あらかじめ決められた、いくつもの動作や探索方法を組み合わせてプログラミングする。
例えば、上下左右の動きのほか、前方の数マスをサーチしながら前進、相手のポイントを奪って一歩下がる「Put!!&Walk」や3歩進む「Walk3系」などを駆使しながら、得点を重ねたり、ステージから外れると減点となったりする。
午前のリーグ戦は「8クライアント対戦×4ルーム」で行われ、上位4クライアントが午後の上位トーナメントに進む。
リーグ戦は、初出場の八代工業の攻めのプログラムがはまって圧勝した。同校はプログラミングの部活があるわけではなく、学校の中でプログラミングが好きな有志5人(男子生徒3人、女子生徒2人)が集まって結成されたチームで、自分たちでエントリーしたという。
まず初戦では、午前中に好調だった八代工業がまさかのループにはまるというアクシデントに見舞われた。序盤は1万点の大差をつけていたものの、対戦相手の三郷工業が残りのターン数でポイントを獲得し、追い抜いて決勝に駒を進めた。もう一試合は松山工業と宮城工業の対戦で、宮城工業が決勝に進んだ。
決勝戦は三郷工業と宮城工業の対戦。三郷工業が場外から戻れなくなるループが発生。宮城工業が近づいてきて三郷工業にプットしたことにより、三郷工業がマップの中に戻ってくるという“奇跡”が起きて会場が沸いたが、ループのターンが長かったことから追い付けず、安定して得点を稼いだ宮城工業が優勝した。
サーバーにアクセスしてから表示されるマップは事前に知らされているわけではない。また午前と午後の間にプログラムを調整することも許されている。冒頭挨拶で染谷明生会長が語ったように、全体像を把握し、理解した上でプログラミングするスキルを、宮城工業の生徒たちが見事に発揮した勝利のように思えた。(BCN・細田 立圭志)
アルゴリズムとデータ構造の全体像の把握が大事
主催者代表挨拶では、全情研の染谷明生会長(埼玉県立川口工業高等学校校長)が10月に発生した全国銀行データ通信システム(全銀システム)の大規模障害を例に挙げながら次のように語った。「全銀システム障害の原因はメモリ不足が起因で金融機関名が格納されているインデックスデータに不正なデータが混入したといわれている。エラーとしては些細な原因だが、なぜこんな障害が発生したのか。人為的なデバックのミスや、データ構造とハードウエアの状況を把握しながらの作業が不十分だったと推測される。皆さんもプログラミングをする上で何度もエラーを経験していると思うが、全体のアルゴリズムとデータ構造の全体像を把握し、理解した上で作業を行ってほしい。これが必要不可欠な力でありスキルになる。今後、プログラムは複雑さを増すだろうが、人々の役に立つプログラム、サービスを提供する技術者になってもらいたい」と出場校にエールを送った。
「全国高校生プログラミングコンテスト」(全国高校プロコン)の本戦に参加するまでには、1次予選と2次予選を通過する必要がある。1次予選では、運営委員会指定のマップでCPUクライアントプログラムとオンラインで対戦。対戦結果のポイント数で順位付けし、上位16校が2次予選に進む。
2次予選は、各チームが作成したクライアントプログラムを事務局に提出。そのプログラムを使って運営委員会がリーグ戦を行う。各試合での獲得点数を合計し、得点の高い順位によって、上位8チームが本戦に出場する。
11月11日の本戦に出場した8校は、埼玉県立三郷工業技術高等学校(三郷工業)、愛媛県立松山工業高等学校(松山工業)、栃木県立栃木工業高等学校(栃木工業)、埼玉県立越谷総合技術高等学校(越谷総合技術)、山梨県立都留興譲館高等学校(都留興譲館)、宮城県工業高等学校(宮城工業)、埼玉県立久喜工業高等学校(久喜工業)、熊本県立八代工業高等学校(八代工業)(予選通過順)だ。
コンテストで使われる対戦ゲームは「CHaser(チェイサー) Online」。マス目状のマップに散らばった化石やアイテムを、化石発掘マシーン(自コマ)で探査・発掘していく。あらかじめ決められた、いくつもの動作や探索方法を組み合わせてプログラミングする。
例えば、上下左右の動きのほか、前方の数マスをサーチしながら前進、相手のポイントを奪って一歩下がる「Put!!&Walk」や3歩進む「Walk3系」などを駆使しながら、得点を重ねたり、ステージから外れると減点となったりする。
午前のリーグ戦は「8クライアント対戦×4ルーム」で行われ、上位4クライアントが午後の上位トーナメントに進む。
初出場の八代工業がリーグ戦で圧勝!
午前10時30分、リーグ戦の第一試合が「よーい、接続!」の号令とともに開始。8校が一斉にローカルサーバーにアクセスして対戦の火ぶたが切られた。サーバーへ正常に接続するところから勝負が始まっているのだ。実際、サーバールームに8校がアクセスしたが、動いていないクライアントが2校あり強制ログアウトになってしまったケースもあった。リーグ戦は、初出場の八代工業の攻めのプログラムがはまって圧勝した。同校はプログラミングの部活があるわけではなく、学校の中でプログラミングが好きな有志5人(男子生徒3人、女子生徒2人)が集まって結成されたチームで、自分たちでエントリーしたという。
決勝トーナメントで「ループ」のアクシデント
午後の決勝トーナメント戦に進出したチームは、八代工業、松山工業、宮城工業、三郷工業(リーグ戦通過順)――の4校に絞られた。1対1による対戦で決勝の2校が決まる。まず初戦では、午前中に好調だった八代工業がまさかのループにはまるというアクシデントに見舞われた。序盤は1万点の大差をつけていたものの、対戦相手の三郷工業が残りのターン数でポイントを獲得し、追い抜いて決勝に駒を進めた。もう一試合は松山工業と宮城工業の対戦で、宮城工業が決勝に進んだ。
決勝戦は三郷工業と宮城工業の対戦。三郷工業が場外から戻れなくなるループが発生。宮城工業が近づいてきて三郷工業にプットしたことにより、三郷工業がマップの中に戻ってくるという“奇跡”が起きて会場が沸いたが、ループのターンが長かったことから追い付けず、安定して得点を稼いだ宮城工業が優勝した。
サーバーにアクセスしてから表示されるマップは事前に知らされているわけではない。また午前と午後の間にプログラムを調整することも許されている。冒頭挨拶で染谷明生会長が語ったように、全体像を把握し、理解した上でプログラミングするスキルを、宮城工業の生徒たちが見事に発揮した勝利のように思えた。(BCN・細田 立圭志)