競技プログラミング
競技プログラミング(きょうぎプログラミング、英: Competitive programming、略称: 競プロ)とは、 解くべきプログラミング課題が与えられ、プログラムを作成し、解くまでにかかった時間や正解数などを競い合う競技[1][2][3][4]。
概要
[編集]競技プログラミングでは、参加者全員に同一の課題が出題され、より早く与えられた要求を満たすプログラムを正確に記述することを競う[1]。コンピュータサイエンスや数学の知識を必要とする問題が多く、新卒学生の採用活動などに使われることもある[5][6][7]。多くのコンテストでオンラインジャッジが採用されている。また、競技プログラミングに参加する人を「競技プログラマ」[8][9]または「競プロer」[10]と呼ぶことがある。
競技プログラミングのコンテストは、プログラミング教育において注目されている競争型学習において演習方法に適しているとする意見もある[11]。
歴史
[編集]古いものとしては1970年代にアメリカのテキサスA&M大学で開催されるようになったen:International Collegiate Programming Contest (ICPC)を挙げることができる[12]。これは2011年大会では88カ国で開催されるまでに成長した。
1990年から1994年にかけて、アメリカのen:Owen Astrachan、Vivek Kheraらが上述のICPCの影響を受けつつインターネット上でプログラミング競技会を開催した。[13]
主要なコンテスト
[編集]主にインターネット上、各種ウェブサイトで、定期的に開催されている。
日本国内
[編集]サイト名 | 概要 | ウェブサイト |
---|---|---|
AtCoder | 高橋直大が代表取締役を務めるAtCoder社が提供するプログラミングコンテストサイト。 | atcoder |
日本情報オリンピック(Japanese Olympiad in Infomatics(JOI)) | 高校生向けプログラミングコンテストの国際情報オリンピック(IOI)の代表選考のためのコンテスト。 | www |
海外
[編集]サイト名 | 概要 | ウェブサイト |
---|---|---|
Topcoder | アメリカのAppirio社が提供するプログラミングコンテストサイト。 | www |
Codeforces | ロシアの大学 (Saratov State University) に所属するMike Mirzayanovらが実施するプログラミングコンテストサイト。 | codeforces |
HackerRank | アメリカにあるプログラミングコンテストサイト。 | www |
CodeChef | Directi社が運営・提供するプログラミング学習サイト。 | www |
Project Euler | 数学の問題が出題される。 | projecteuler |
国際大会
[編集]大会名 | 略称 | 概要 | ウェブサイト |
---|---|---|---|
Google Code Jam | GCJ | Googleが実施するプログラミングコンテスト。 | https://code.google.com/codejam/ |
Facebook Hacker Cup | FHC | Facebookが実施するプログラミングコンテスト。 | https://www.facebook.com/hackercup/ |
ACM-ICPC 国際大学対抗プログラミングコンテスト | ACM-ICPC | 大学対抗のプログラミングコンテスト。1970年から始まり今に続く歴史あるコンテストである。 | https://icpc.baylor.edu/ |
TopCoder Open | TCO | TopCoderが実施する祭典コンテスト。 | (2016年度)https://tco16.topcoder.com/ |
ICFP Programming Contest | ICFPC | 関数型プログラミング言語のカンファレンスが実施するコンテスト。 | https://www.icfpconference.org/contest.html |
Microsoft Imagine Cup | マイクロソフトが実施する学生向けのプログラミングコンテスト。 | https://www.imaginecup.com/ | |
国際情報オリンピック(International Olympiad in Informatics) | IOI | 高校生向けのプログラミングコンテスト。参加するには日本情報オリンピックで代表に選ばれる必要がある。 | ioinformatics |
国際大会における日本人参加者の成績
[編集]- 岩田陽一、副島真が「2010 TopCoder Open」の異なる部門で優勝し、日本人が2部門を制した[14]。
- 慶應義塾大学(当時)の高橋直大がMicrosoftが主催するImagine Cup 2008アルゴリズム部門で世界第3位となった[14]。
- 東京大学(当時)の岩田陽一がGoogleが主催するプログラミングコンテスト「Google Code Jam 2009」で3位に入賞[14]。
競技プログラミングでの雇用
[編集]TopCoderやGoogle Code Jamなどの海外の多くの競技プログラミングサイトでは会員登録の際に求人情報の紹介を受けるかどうかを選択できる。日本においてはリクルート (CODE FESTIVAL、CODE VS、CodeIQ) やギノ (paiza) などで学生や転職希望者向けの求人の紹介が行われている。
教育機関における競技プログラミング
[編集]会津大学がAizuOnlineJudgeというオンラインジャッジを公開しておりICPCの過去問などを出題している[15]。
日本語の「競技プログラミング」の初出
[編集]2007年に、東京大学理学部情報科学科に当時所属していた松本宜丈が「東京大学競技プログラミング同好会 2007年春台湾合宿」と銘打ったパンフレットを作成したときが初出である[16]。台湾合宿には大学同期12人が参加し、この合宿のメンバーを総称して、東京大学競技プログラミング同好会の名称が付けられた。また、松本は競技ダンスからの類推でつけたと述べている[17]。後に東京大学競技プログラミングクラブと改名して継続的な勉強会となり、後輩の育成にも励んだため、競技プログラミングという言葉が広く使われるようになった[16]。
出典
[編集]- ^ a b 高橋直大、AtCoder (2016年7月27日). “競技プログラミングを知ろう! [第1回]”. Tech Book Zone Manatee. マイナビ出版. 2016年8月3日閲覧。
- ^ 周藤瞳美「「競技プログラミング」で世界に挑戦してみよう! - TCO15 in Tokyo」『マイナビニュース TECH+』2015年7月22日。2016年8月3日閲覧。
- ^ 小松智希(インタビュアー:西村岳史)「競技プログラミングに参戦、発想力での難問解決を楽しむ」『日経クロステック』、2013年5月15日 。2016年8月3日閲覧。
- ^ 土屋亘「イマドキの“学生プログラマー”は何を考えているの?:求めているのは、楽しさと環境」『ITmedia』2014年11月26日。2016年8月3日閲覧。
- ^ ガチ鈴木「いきなり最終面接も 採用直結の競技プログラミングコンテスト“ドワンゴからの挑戦状”開催」『週刊アスキー』2014年12月26日。2016年8月3日閲覧。
- ^ 森川, 潤「次代の教養プログラミング リクルート、ドワンゴが囲い込む、隠れた「天才プログラマー」たち」『NewsPicks』2016年7月30日。2016年8月1日閲覧。
- ^ 薬, 文江「トヨタも注目の「競技プログラミング」、最先端のIT人材発掘の場」『日経ビジネス』2022年8月22日。2023年7月7日閲覧。
- ^ フォルサ「中高生の競技プログラマー日本一が決定! 「第21回日本情報オリンピック」」『マイナビニュース』2022年2月16日。2023年7月7日閲覧。
- ^ MOLOKHEIYA「特別企画@プログラミング+ 日本のITは"部活"が支えている!! パソコン甲子園2016レポート(前篇)」『ASCII.jp』2016年12月12日。2023年7月7日閲覧。
- ^ “その2「競プロer増加中!AtCoderの高橋直大さんに会ってみた」(Vol.60 No.10)”. 情報処理学会. 連載漫画「IT紀行」. 2023年7月7日閲覧。
- ^ 富永 et al. 2008, p. 50
- ^ Li, Yujia; Choi, David; Chung, Junyoung; Kushman, Nate; Schrittwieser, Julian; Leblond, Rémi; Eccles, Tom; Keeling, James et al. (2022-12-09). “Competition-Level Code Generation with AlphaCode”. Science 378 (6624): 1092–1097. arXiv:2203.07814. doi:10.1126/science.abq1158. ISSN 0036-8075.
- ^ Khera, Vivek; Astrachan, Owen; Kotz, David (1993). “The internet programming contest”. ACM SIGCSE Bulletin 25 (1): 48–52. doi:10.1145/169073.169105. ISSN 0097-8418. オリジナルの2017-08-08時点におけるアーカイブ。 2020年3月10日閲覧。.
- ^ a b c 西尾泰三「コーダーの聖地「TopCoder Open」で日本人が2部門制覇」『ITmedia』2010年10月19日。2016年8月1日閲覧。
- ^ “AIZU ONLINE JUDGE”. 会津大学. 2016年8月1日閲覧。
- ^ a b “競技プログラミングという言葉の誕生”. MAYAH.JP (2019年7月25日). 2020年6月13日閲覧。
- ^ {白,黒}のカピバラの左随伴右随伴 [@ainsophyao] (2019年7月28日). "午後2時14分投稿のツイート". X(旧Twitter)より2020年6月13日閲覧。
参考文献
[編集]- 富永, 浩之、倉田, 英和、林, 敏浩、安藤, 一秋、垂水, 浩幸「コンテスト形式による初級Cプログラミングの演習支援」『情報処理学会研究報告 コンピュータと教育(CE)』第42号、情報処理学会、2008年、49-56頁。