プログラミング部門

競技内容

プログラミング部門競技は、予選・本選・もうひとつの本選において、以下の手順によって競技を行います。

2022年度より、個人の成績をもとにチームの成績を算出する方式となります。詳しくは競技要項、FAQ(よくある質問)をご確認ください。

競技の概要

    1. 制限時間内に問題に対する解答プログラムを作成し、所定のWebサイトより提出します。
    2. 提出された解答プログラムはルールに従ってコンパイル、実行され、その出力により審査されます。
    3. 正解した問題の合計得点が生徒に与えられます。

競技要項

FAQ(よくある質問)

FAQ更新しました(2022/09/07)

競技構成

プログラミング部門競技は、予選・本選・もうひとつの本選で構成されます。
予選で選出されたチームは会津大学を会場として開催される本選に参加し、本選出場チームに より、グランプリを競います。
その他のチームは、予選と同様の方法で、本選と並行して開催さ れる「もうひとつの本選」に参加します。

最終的に、「予選+本選」又は「予選+もうひとつの本選」の合計得点が総合成績となります。

競技ルール

1

同一学校の2名の生徒でチームを構成します。

2

各生徒は、出題された問題に対する解答プログラムを考案・作成し、制限時間内に正解した問題の合計得点が生徒に与えられます。

3

競技に使用できるコンピュータは生徒1人につき1台とします。

4

使用できるプログラミング言語はC、C++、Javaです。

5

解答プログラムを審査用の環境でコンパイルし、実行します。審査用のデータに対するプログラムの出力に応じて得点を与えます。

6

審査用環境(コンパイラ及びオプション等)の詳細については、参加チームに事前に通知します。

7

予選では、競技中は生徒間及びチームと第三者との競技に関する相談を禁止します。

本選では、競技中にチーム内での相談や分担などの協力が可能です。

予選について

開催日時 2022年9月10日(土)13:30~16:30
競技会場 生徒が在籍する学校等
予選の方法
  1. 競技問題の出題と解答プログラムの提出は所定のWebサイトで行われます。
  2. 制限時間は3時間です。
  3. 競技に使用するコンピュータ(原則として生徒1名につき1台)を含む競技環境は競技者側が用意します。
  4. 競技中は、生徒間及びチームと第三者との競技に関する相談を禁止します。※今年度の変更点です。
  5. 各競技会場において監督者を配置してください。
    (ア)生徒が公正に競技していることを確認してください。
    (イ)生徒の健康管理を行ってください。
  6. 生徒が在籍する学校の学校長は、「実施報告書」を予選終了後速やかに提出してください。(様式は別途送付)
成績

予選で獲得した得点が各生徒の予選成績となります。

本選出場チーム選出方法
  1. 選出チーム数 
    36チーム程度
  2. 選出方法
    各生徒の予選成績の合計を用いて、以下のルールで本選出場チームを選出します。
    (ア)上位10チーム
    (イ)成績と地域性を考慮した26チーム程度
    ※同一校からの選出は多くとも2チームまでとします。
  3. 結果通知
    選出の結果は、2022年9月26日(月)に、出場チーム名、学校名及びチーム番号をパソコン甲子園の公式Webサイトにて発表します。また、本選出場チームには別途通知を発送します。
その他 予選にかかる経費(郵送料、通信費等)は参加者の負担とします。

本選について

開催日時 2022年11月5日(土)、6日(日)
※競技は5日(土)13:15~17:15に実施します。
競技会場 会津大学内
本選の方法
  1. 競技問題の出題と解答プログラムの提出は所定のWebサイトで行われます。
  2. 制限時間は4時間です。
  3. 競技に使用するコンピュータを含む競技環境は主催者側が準備します。その詳細は別途通知します。
成績 本選で獲得した得点が各生徒の本選成績となります。
順位付け

各生徒の本選成績を用いて、以下のルールで順位を決定します。

  1. 本選成績の高いチームを上位とする。
  2. ①において同成績の場合には、誤答回数やその成績に達した時刻等を総合して決定します。その詳細は別途通知します。

もうひとつの本選について

開催日時 2022年11月5日(土)13:15~17:15
※本選と同時開催
競技会場 生徒が在籍する学校等
実施方法
  1. 本選に準じた競技ルールにおいて実施いたします。
    (ア)競技問題の出題と解答プログラムの提出は所定のWebサイトで行われます。
    (イ)制限時間は4時間です。
  2. 競技に使用するコンピュータ(原則として生徒1名につき1台)を含む競技環境は生徒が在籍する学校等が用意します。
  3. 各競技会場において監督者を配置してください。
    (ア)生徒が公正に競技していることを確認してください。
    (イ)生徒の健康管理を行ってください。
  4. 生徒が在籍する学校の学校長は、「実施報告書」を予選終了後速やかに提出してください。(様式は別途送付)

成績及び認定について

  1. 総合成績について

    参加した全ての生徒に総合成績書を発行します。
    ※本選に参加した学生の総合成績=「予選+本選」の成績
    ※もうひとつの本選に参加した学生の総合成績=「予選+もうひとつの本選」の成績

  2. 優秀者の認定について

    予選成績が優秀であると主催者が認めたものは、予選成績優秀証が与えられます。
    予選成績優秀者には、会津大学の学校推薦型選抜における出願資格が与えられる予定です。

ソースコードの取り扱いについて

本大会で提出されたソースコードの著作権は参加者に帰属します。競技者は、主催者が大会運営等に役立てる目的で、提出したソースコードを利用または公開する権利を許諾するものとします。

競技環境

※2022年10月時点の情報です。

競技者が使用する環境(本選)

ハードウェア 型式 Lenovo ThinkCentre M80s
CPU Intel Core i5-10500 6C/12T (3.10GHz,12MB)
メモリ 16GB
ディスプレイ 液晶23.8inchモニタ(1920x1080)
キーボード 日本語108 キーボード
ソフトウェア OS Windows 10 Pro (64bit)
コンパイラ GNU Compiler Collection 11.2 gcc, g++ (cygwin 3.3.6)
OpenJDK 19
エディタ TeraPad 1.10
コンパイル用コマンド

審査環境と合わせるため、次のコマンドを使ってください。

※下記の通り、C/C++ではmath ライブラリーを利用することができます。

C gcc ソースファイル名 -o 実行ファイル名 -lm -O2
C++ g++ ソースファイル名 -o 実行ファイル名 -lm -O2
JAVA javac ソースファイル名

解答を審査する環境

ハードウェア 型式 Dell PowerEdge R330
CPU Intel(R) Xeon(R) CPU E3-1270 v6(3.80GHz)
メモリ 32GB
ソフトウェア OS CentOS Stream 8 (64bit)
コンパイラ GNU Compiler Collection 11.2 (gcc 11.2, g++ 11.2)
OpenJDK 19
コンパイルコマンド C gcc ソースファイル名 -o 実行ファイル名 -lm -O2
C++ g++ ソースファイル名 -o 実行ファイル名 -O2
JAVA javac ソースファイル名
実行コマンド C/C++ 実行ファイル名.
JAVA java -Xms512m -Xmx512m -Xss64m クラスファイル名

制限

 解答プログラムが、実行時に次の制限を超えた場合、プログラムを強制的に終了し、不正解とします。ただし、問題文で個別に指定されている場合はその制限が適用されます。

時間制限 5秒
メモリ制限 512 MByte
スタック制限(C,C++) 64 Mbyte
スタック制限(Java) 64 Mbyte

スケジュール

7月15日(金)~8月12日(金)※延長しました 参加申込受付期間
9月10日(土) 予選
9月26日(月) 本選出場チーム発表
11月5日(土)・6日(日) 本選
11月5日(土) もうひとつの本選

応募方法

  • 学校長の許可を得た上で、担当教職員が「応募受付フォーム」よりお申し込みください。
  • 一校あたりの参加申込チーム数及び応募数に制限はありませんが、同一校から同一部門の本選への出場は2チームまでとさせていただきます。
参加申込受付期間 7月15日(金)~8月12日(金)※終了しました

※申込状況はパソコン甲子園のWebサイト上の「受付状況」にアップしますので、必ず確認してください。10日以上経過しても応募の情報が反映されていない場合は、パソコン甲子園事務局までご連絡ください。

FAQ(よくある質問)

※印刷時は、本ページ上部のPDF版もご利用ください。

【競技要項について】

Q1. 「個人の成績をもとにチームの成績を算出する方式」とはどういうことですか?
A1. 予選の参加申込時から生徒2名でチームを構成する点に変更はありませんが、今年度から、予選においてはそれぞれが同じ問題を別に解き、その二人分の成績を合算したものをチームの成績と捉えることとします。

Q2. パソコン甲子園は個人戦になったのですか?

A2. チーム戦であることに変わりありません。
予選の当日こそ相談はできませんが、当日だけでなく準備の段階からチームで教え合い、切磋琢磨してお互いのレベルアップを図ってください。予選、本選のそれぞれにおいて、それまでの過程も含めて2人の総合力が試されることになります。

Q3. 予選について、生徒はそれぞれが解答プログラムを考案・作成するのですか?

A3. 予選では、チームのそれぞれが相談せず、別々に全ての問題を解きます。本選出場チームの選出には、2人の予選成績の合計を用います。

Q4. 本選について、予選と同様にチーム内での相談や分担はできなくなりますか?

A4. 本選では、チーム内での相談や分担などの協力が可能です。詳細は別途お知らせします。

Q5. 本選をチーム戦として実施する意図は何ですか?

A5.  予選では個々のプログラミング能力を中心に競いますが、本選では限られた競技時間の中でどれだけ相談や分担ができるかという、コミュニケーションやチームワークの能力を含む、チームとしての総合力が試されます。

Q6. もうひとつの本選について、予選と同様にチーム内での相談や分担はできなくなりますか?

A6. もうひとつの本選の実施方法については本選に準じた競技ルールにおいて実施いたします。詳細は別途お知らせします。

Q7. 総合成績について、本選出場チームに選出されなければ総合成績書は発行されないのですか?

A7. 本選出場チームに選出されない場合でも、予選に参加した全てのチームはもうひとつの本選に出場できます。予選ともうひとつの本選の両方に参加した場合、総合成績書が発行されます。

Q8. 予選成績優秀者はどの程度の人数に与えられるのですか?

A8. 2021大会では、参加者の約22.4%に与えられました。

【プログラミング部門全般について】

Q9. COBOLやVisualC/C++などの言語は使用できないのですか?
A9. プログラミング部門競技要項に記載のある言語以外は使用できません。
Q10. プログラムの作成形式はどうなりますか?
A10. 特に指定がない限り、問題の趣旨に沿った「コンソールアプリケーション」を作成してください。また、具体的な作成例は、「過去問」をご覧ください。

【予選について】

Q11. 指定されたプログラミング部門の予選日に学校行事が予定されているため、別の日程で予選に参加することは出来ますか?
A11. 予選は、所定の日程でのみ開催されます。別の日程にて参加することは出来ません。
Q12. 会場として学校が使えない場合はどうすればいいですか?
A12.  学校の判断において、学校以外の場所を会場とすることも可能です。
Q13. 教員の都合がつかず、監督できません。

A13. 学校の判断において、適任な大人を監督者として配置して構いません。

Q14. 新型コロナウイルスに罹患し、登校することができません。

A14. 学校の判断において、学校以外の場所で適切な監督のもと参加することが可能です。

Q15.  ビデオ会議システムを使って監督してもいいですか?
A15.  単にビデオ会議システムによりモニターするだけでは適切に監督したとは認められません。
Q16.  チームメンバーを間違えて登録してしまいました。変更は可能ですか?
A16.  予選の3日前(2022大会は2022年9月7日(水)17時まで)であれば可能です。メールでご連絡ください。
Q17.  予選でチームの一人の具合が悪く欠席した場合、どうすればいいですか?
A17.  本選出場、入賞の対象外となりますが、個人成績は発行されます。申込みをした担当教員を通じて事務局までご連絡ください。
Q18.  解答プログラムの作成にあたって使用できるライブラリの範囲を教えてください。

A18. C、C++、Javaに付随する標準的なライブラリは使用できます。詳細は公開している「解答を審査する環境」を確認してください。

Q19.  競技中にインターネットで検索して情報を得ることは可能ですか?
A19.  不可です。事前に印刷した情報を参照することは可能です。
Q20.  競技前に作成しておいたプログラムの使用は可能ですか?
A20. 紙に印刷して参照することは可能ですが、プログラムの電子的な流用(コピー&ペースト等)は認めません。
Q21.  競技中、事前にコンピュータに保存しておいたPDFや画像ファイルなどを参照することは可能ですか?
A21. 不可です。事前に印刷した情報を参照することは可能です。
Q22.  普段使用しているエディタやコンパイラの使用は可能ですか?
A22.  可能ですが、「解答を審査する環境」と同様のオプションを設定することを推奨します。(Q19も併せてご確認ください。)
Q23.  エディタによるコード補完機能を利用して良いですか?
A23.  プログラムの電子的な流用(コピー&ペースト等)と見なされない範囲で利用してください。
Q24.  コンピュータの標準機能の電卓は使用可能ですか?
A24.  不可です。問題を解くために必要な計算等はプログラムを書いて行ってください。
Q25.   競技要項「5 予選について」に、「競技に使用するコンピュータ(原則として生徒1名につき1台)を含む競技環境は生徒が在籍する学校等が用意します。」とありますが、自分で所有するコンピュータを使用しても問題はありませんか?
A25. 競技に使用するコンピュータは学校が所有するものの他、学校の判断で適切と認めたものを使用することができます。
Q26.  本選出場チームの選出方法について、競技要項「5 予選について」に「各生徒の予選成績の合計を用いて」とありますが、各生徒の予選成績の合計が同じだった場合、どのように本選出場チームが決定されますか?
A26. 上位10チームの選出は、以下のとおり行います。

 (1) 得点が高いチームを上位とする。
 (2) (1)において同得点の場合には、正解した問題に対する誤答回数が少ないチームを上位とする。
 (3) (2)において誤答回数が同じ場合、より早くその得点に達したチームを上位とする。

オンライン講座

オンライン講座とは

  • パソコン甲子園予選・本選で使用する競技システムを使って、プログラミングを学習できるオンライン講座を開講します。
  • 提出された解答プログラムは自動的に採点され、即座に結果を知ることができます。
  • 自分のペースで学習ができ、プログラミング初心者から経験者まで広く活用されています。
  • 参加費用は無料です。

活用方法

(1)プログラミング初心者向け 

 プログラミング言語の基礎を学び、パソコン甲子園予選問題のうち、難易度の低い問題が解けるレベルを目指します。

(2)プログラミング経験者向け

 パソコン甲子園の過去問を中心に演習を行い、競技環境の習熟とさらなるレベルアップを目指します。

(3)パソコン甲子園プログラミング部門参加チーム向け

 予選はオンライン講座と同じURLよりログインし、実施します。予選前にネットワークの接続やシステムの使い方の確認をしてください。

実施方法

 インターネットにアクセスできるコンピュータからブラウザを用いて、オンライン講座(Active Learning Studio)のURLにアクセスしてお使いください。
 エディタやコンパイラがあれば便利ですが、それらが無くても学習は進められます。

実施期間 ~2023年3月31日(金)
対象者 小・中・高等学校・高等専門学校等に在籍する生徒及び教員

過去問題

パソコン甲子園で使用した問題及びその解説の著作権は、全国高等学校パソコンコンクール実行委員会に帰属します。
私的使用のための複製など著作権法により利用が認められる場合を除き、本サイトから入手できる全ての問題・解説について、上記実行委員会の許諾を得ない使用はできません。
なお、学校における部活動での教材としての使用には、許諾申請は不要です。

全国高等学校パソコンコンクール実行委員会