学問・大学選び支援サイト

第88回情報処理学会全国大会 第8回中高生情報学研究コンテスト

「密」を防いで満足度アップ!現場で進化し続けた、熱い文化祭のDX大作戦

東京都立国立高等学校

チーム名:都立国立高校エンジニア班    

メンバー名:石田康治さん(2年生)、杉本佑樹さん(2年生)、中島大河さん(2年生)、O.Kさん(1年生)

(2026年3月取材)

来場者の分散と情報の連携による円滑な文化祭運営

来場者1万人に迫る国立高校の文化祭。コロナ後の混雑と安全の課題に対して、「エンジニア班」のメンバーは独自システムを開発しました。9千人の来場者の来場希望時間帯をプログラムで自動最適化し、各来場者に最適化された来場時間帯を割り振ることで来場者が特定時間帯に集中することを回避。さらに二次元コードで各来場者の滞在時間を管理して「密」を防ぎ、各教室の混雑状況をリアルタイムで共有しできるようにしました。現場の状況に合わせ、文化祭当日もシステムを改良。データ活用によって安全確保と自由な楽しみの両立を実現しました。

 


※クリックすると拡大します

 

◆今回発表した研究を始めた理由や経緯を教えてください。

 

本校の文化祭は、コロナ禍前は例年2日間で1万人の方に来場いただいており、非常に混雑していました。特に一部の時間帯に来場者が偏るなどの課題も抱えていました。コロナ禍以降、事前抽選制によって混雑を防いでいましたが、今年度は昨年度に開発したシステムを改修すれば、抽選をせず、すべての希望者に来場してもらえるのではないかと考え始めたことがきっかけです。

 

なお、私はシステムの仕様の決定や Web系のシステム (来場者に公開する Webサイト、文化祭当日の受付システム、入室管理用のシステム) などを主に担当しました。(石田さん)

 

コロナ禍以降、熱中症予防などのために、文化祭において混雑を軽減することが課題となっていましたが、それを解決するために情報技術を活かそうという動きが数年前からあったからです。以前から生徒が行っていた作業をWebシステムに置き換えつつ、より文化祭を運営しやすくしています。(O.K.さん)

 

私たちの学校では文化祭が盛んで、約1万人が来場します。コロナ禍以前には事前申し込みがなく、自由に来場できたので、一部の時間に来場者が偏ってしまっていました。

 

コロナ禍で抽選制を導入して来場者を6000人ほどに制限したことで混雑は緩和しましたが、落選者が多く出てしまいました。そのため今年度から、事前申し込みをすれば必ず来場できる仕組みにしました。そこで、来場者が一部の時間帯に偏らないように運営側でうまく来場時間を指定して、その時間に来場していただくことにしました。今年度(2025年度)は12個の時間帯を用意して、事前申し込み時に希望を調査するようにしました。その後、来場者をこれらの時間帯に分散させるのですが、この作業は手動で行うと時間がかかりすぎるので、プログラムを書いてコンピュータを使って実行することにしました。

 

また、今年度は混雑を緩和するために滞在時間と入場可能な展示の数に制限を設けたので、昨年度のシステムを改良し、来場者の滞在時間は展示の入室をデータベースで管理することで、制限を実施できるようにしました。(杉本さん)

 

昨年度までやコロナ禍以前の文化祭の抱えていた問題については他の三方が挙げていた通りで、エンジニア班は自分たちの持つ技術を使って文化祭をより良いものにしたいという思いで開発をはじめました。石田くんを中心として、解決したい課題や「こんなことできたら楽しいよね」といったシステムの要件を洗い出し、計画を始めました。(中島さん)

 

 

◆今回の研究にかかった時間はどのくらいですか。

 

6月ごろから開発を始めて、仕様変更に合わせながら8月に完成させ、運用しました。しかし、実際に運用した完成形を作っていたのは最後の2週間程度でした。つまり、最終的に形にならなかったプログラムもありました。(杉本さん)

 

2024年度の文化祭の改善策を考えるところから起算すれば2024年10月から、システムを本格的に開発するところから起算すれば2025年の5月末から研究を重ねています。

 

2024年度9月の文化祭終了後は、2024年度の文化祭の課題について議論を重ねました。2024年度もエンジニア班がシステムを開発して運用しており、そのシステムで集めたデータ等を分析し、文化祭の実行委員会等と2025年度に向けて改善案を出していきました。特に2024年度までは事前抽選制で実施してきていましたが、2025年度からは抽選を廃止して、希望者が全員来場できるようにすることが最大の目標となり、混雑による事故の防止等と両立することが最大の焦点となりました。これを実現するため、エンジニア班は、システムを新たに開発し、来場者を分散させることによって混雑防止することを提案しました。

 

提案にあたっては、自分たちにそのシステムを開発できる実力があるか、安定して運用できるかを見極めるため、技術調査や小規模なプロトタイプの開発を繰り返して、仕様の方針を決めました。実行委員会との話し合いで出た要望についても、自分たちの技術力では難しいと判断した場合には、文化祭の実施方法や仕様を調整するなどして、当日に障害を起こさないことを第一に考えて議論しました。

 

2025年の5月末以降は、 Webサイトのデザイン・実装等を進めていきました。文化祭の実施方法が2024年度と大きく変わり、データベースの構造を抜本的に変更する必要がありました。そのため、Webサイトのシステムはほとんど引き継ぐことができず、ゼロから開発し直したり、新しく開発したりしました。7月には全校生徒でシステムを一斉に使用して、サーバーにかかる負荷を確認したり、生徒からフィードバックをもらったりして、文化祭直前まで改善につなげていきます。

 

また、杉本くんが主に担当した来場者分散システムや、3年生の演劇観劇権の抽選システムは、今年度新たに開発したものです。公平性が強く求められる領域であるため、その点を特に意識して設計・実装を行いました。

 

文化祭が終わったあとは、システムで集まったデータを分析し、来年度に向けたさらなる改善案を出しています。(石田さん)

 

私の担当部分は、7月中旬ごろから1ヶ月と少しで開発しました。私が担当したのは、来場者数や各クラスの展示に入った人数をデータベースから取得しリアルタイムで見られるようにするWebページの制作です。在校生向けのWebページということで、それほど早くまでに完成させなければならないわけではなかったので、7月からの開発になりました。(中島さん)

 

私は1年生で、昨年度までのシステムをもとに作っているので、正確な期間はわかりません。4月に入学して、5月か6月には開発を始めましたが、先輩はそれ以前から行なっていました。(O.K.さん)

 

  

◆今回の研究ではどんなことに苦労しましたか。

 

本格的なプログラミングが初めてだったので、DBの活用やエラー修正、セキュリティなど、いろいろなことに苦労しました。(O.K.さん)

 

来場者を分散するアルゴリズムを作る際には、全部で12個と時間帯の数が比較的多いこと、第1希望から第5希望までを事前申し込み時に尋ねているので希望順位を考慮しなければならないことに苦労しました。これらを踏まえて、ヒューリスティック的な視点で、最終的なプログラムは、「貪欲法」と呼ばれる次の一手が最善になるように順に考えていくアルゴリズムと、乱択アルゴリズムを組み合わせて実装しました。(杉本さん)

 

コロナ禍以降初めて、抽選の文化祭を行うことになったので、実際どれほどの申し込みがあるのか、どれくらいの人に来場するのかが、まったく予想できませんでした。そのため、実際の数値が出るまで文化祭の実施方法の細かい点が決定できなかったり、それによってシステムを修正しないといけなかったりした点に苦労しました。(石田さん)

 

Web開発において、サーバーサイドの実装をしたことがなかったため、データベースの扱いや動的なページの生成に慣れるところからだったのが大変でした。また私は部活動にも力を注いでいて、隙間時間を使って開発していたので、シンプルなページでしたが開発にかなりの期間をかけてしまいました。そのため本番当日にアップロードするようなギリギリの作業になってしまいました。本番数日前からは学校にいる間も開発をしていましたが、校内のWi-Fiではテスト用サーバーがブロックされており、学校内は携帯電話の回線も悪かったため、回線の比較的良い屋上でテザリングを使用して作業するしかなかったことに苦労しました。(中島さん)

 

 

◆「ココは工夫した!」「ココを見てほしい」という点を教えてください。

 

文化祭のシステムは、文化祭の来場者などの外部の人が使用する上、文化祭当日に障害を起こせば混乱が起こってしまいます。そのため、システムの些細なミスが命取りになりかねません。エラーハンドリングは普段以上に慎重に実装しています。またエラーが起きた際には詳細にログを残すようにして、のちの修正がしやすいようにしています。

 

また、高度にアクセシビリティに対応するのは、非常に高い技術力が求められ、残念ながらエンジニア班にはそこまでの技術力はありません。しかし、一方で多くの人が見やすく使いやすいデザインにすることに配慮し、特に Webサイト中に表示される文字については、コントラスト比が WCAG レベル AA レベル以上になるように実装しています。(石田さん)

 

来場者を分散するプログラムの作成では、できるだけ多くの人のより上位の希望をかなえられるようにアルゴリズムを作成しました。結果として、来場者を分散させつつ、全来場者のすべてを第3希望までの時間帯に、全来場者の約70%を第一希望の時間帯に割り当てることができました。

 

また、3年生が行う劇を観るための抽選も行ったのですが、希望した来場時間帯によって当選率が変わることがないように、時間帯ごとに抽選をするのではなく、全体から抽選をしてその後当選者の時間帯を決定するというようにアルゴリズムを工夫しました。(杉本さん)

 

データベースへのアクセスを減らして負荷を低減するためにキャッシュを使用したことや、ユーザーがさまざまなデバイスでページを見ることを考えてスタイルを決めたことなどが工夫した点です。(中島さん)

 

私が作った部分は工夫したものは特にありませんが、他のメンバーはレイアウトやデザインなど様々なことを工夫したのではないかと思います。(O.K.さん)

 

 

◆今後「こんなものを作ってみたい!」「こんな研究をしてみたい」と思うことがあれば教えてください。

 

次は私がエンジニア班のリーダーになるので、文化祭のシステムに何か新しい機能をつけたいです。また、情報学単体だけでなく、他の学問と組み合わせて研究していきたいです。(O.K.さん)

 

来場者を分散するアルゴリズムを改良して、もっと多くの人が来ても希望が偏っていても対応できるようにしたいです。実際に2026年1月頃に違うアルゴリズムで実験してみたのですが、そのときに見つかったネットワークフローに関する課題が今後の研究テーマとしてもよいかもしれません。

 

チーム全体としては、来場者の展示への入室データからリアルタイムで標準的な待ち時間を計算して来場者に見せること、今年度集まったデータをもとに来年度の文化祭の安全と来場者の自由を両立したルールを考えることが挙がりました。(杉本さん)

 

おそらく僕が高校で文化祭のシステムを開発するのは今年度が最後になると思います。そのためこの文化祭のシステムを僕が直接改善する機会はないかなと思います。文化祭当日は、インターネットの速度が低下しやすい傾向にあり、受付等で時間がかかってしまうケースが見られたのですが、例えば、一時的にオフラインでも動作できるような機能を実装するなどして、来年度以降スムーズに受付がしやすくなるように改善してほしいなと思っています。(石田さん)

 

私が文化祭のシステム開発に直接関わることはもうないと思いますが、私の作った小さなページひとつにも、もっとこうしておけばよかったと思うところはいくつもありました。今後もWeb開発をする機会はたくさんあると思うので、今回の開発で学んだたくさんの知見を生かして、良いものを作っていきたいです。(中島さん)

 

 

Copyrights © Kawaijuku Educational Institution All Rights Reserved.