競技プログラミング

競技プログラミング: Competitive programming、略称: 競プロ)とは、プログラミングコンテストで行われる競技の一種である[1][2][3][4][5][6]

概要編集

競技プログラミングでは、参加者全員に同一の課題が出題され、より早く与えられた要求を満足するプログラムを正確に記述することを競う。コンピュータサイエンスや数学の知識を必要とする問題が多く、新卒学生の採用活動などに使われることもある[7][8]。多くのコンテストでオンラインジャッジが採用されている。また、競技プログラミングに参加する人を「競技プログラマ」または「競プロer」と呼ぶことがある。近年、プログラミング教育において、競争型学習が注目されている。特に、一定の時間内にプログラミング問題を解く競技系のコンテストは、授業中の演習形式として期待される。しかしこれらは高度であり入門的な授業にコンテストを取り入れるには、初心者向けに視野を広げる適応を考える必要がある。

語源編集

2007年に、東京大学理学部情報科学科に当時所属していた松本宜丈が「東京大学競技プログラミング同好会 2007年春台湾合宿」と銘打ったパンフレットを作成したときが初出である[9]。台湾合宿には大学同期12人が参加し、この合宿のメンバーを総称して、東京大学競技プログラミング同好会の名称が付けられた。また、松本は競技ダンスからの類推でつけたと述べている[10]。後に東京大学競技プログラミングクラブと改名して継続的な勉強会となり、後輩の育成にも励んだため、競技プログラミングという言葉が広く使われるようになった[9]

主要なコンテスト編集

主にインターネット上の各種ウェブサイトで、定期的に開催されている。

日本国内編集

サイト名 概要 ウェブサイト
AtCoder 高橋直大が代表取締役を務めるAtCoder社が提供するプログラミングコンテストサイト。 atcoder.jp
日本情報オリンピック(Japanese Olympiad in Infomatics(JOI)) 高校生向けプログラミングコンテストの国際情報オリンピック(IOI)の代表選考のためのコンテスト。 www.ioi-jp.org

海外編集

サイト名 概要 ウェブサイト
Topcoder アメリカのAppirio社が提供するプログラミングコンテストサイト。 www.topcoder.com
Codeforces英語版 ロシアの大学 (Saratov State University) に所属するMike Mirzayanovらが実施するプログラミングコンテストサイト。 codeforces.com
HackerRank英語版 アメリカにあるプログラミングコンテストサイト。 www.hackerrank.com
CodeChef英語版 Directi社が運営・提供するプログラミング学習サイト。 www.codechef.com
Project Euler 数学の問題が出題される。 projecteuler.net

国際大会編集

大会名 略称 概要 ウェブサイト
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.org

国際大会における日本人参加者の成績編集

  • 岩田陽一副島真が「2010 TopCoder Open」の異なる部門で優勝し、日本人が2部門を制した[11]
  • 慶應義塾大学(当時)の高橋直大がMicrosoftが主催するImagine Cup 2008アルゴリズム部門で世界第3位となった[11]
  • 東京大学(当時)の岩田陽一がGoogleが主催するプログラミングコンテスト「Google Code Jam 2009」で3位に入賞[11]

競技プログラミングでの雇用編集

TopCoderGoogle Code Jam英語版などの海外の多くの競技プログラミングサイトでは会員登録の際に求人情報の紹介を受けるかどうかを選択できる。日本においてはリクルート (CODE FESTIVAL, CODE VS, CodeIQ) やギノ (paiza) などで学生や転職希望者向けの求人の紹介が行われている。

教育機関における競技プログラミング編集

会津大学AizuOnlineJudgeというオンラインジャッジを公開しておりICPCの過去問などを出題している[12]

出典編集

[脚注の使い方]

引用文献 富永浩之 コンテスト形式による初級Cプログラミングの演習支援 2008 年 5 月 17 日 p49 ~50      都築夏樹 競技プログラミングの提出コードを用いたファジングツールの定量的評価 2019 年3 月7日 p1~3

  1. ^ 競技プログラミングを知ろう! [第1回 - Tech Book Zone Manatee]”. 2016年8月3日閲覧。
  2. ^ 「競技プログラミング」で世界に挑戦してみよう! - TCO15 in Tokyo - マイナビニュース”. 2016年8月3日閲覧。
  3. ^ 【プレスリリース】ドワンゴ、競技プログラミングコンテスト第2回「ドワンゴからの挑戦状」2016年1月23日より開催 - INTERNET Watch”. 2016年8月3日閲覧。
  4. ^ 競技プログラミングに参戦、発想力での難問解決を楽しむ”. 2016年8月3日閲覧。
  5. ^ 求めているのは、楽しさと環境:イマドキの“学生プログラマー”は何を考えているの? (1/3) - ITmedia エンタープライズ”. 2016年8月3日閲覧。
  6. ^ 日本の競技プログラミングを世界水準に引き上げる レッドコーダー秋葉拓哉”. 2016年8月3日閲覧。
  7. ^ いきなり最終面接も 採用直結の競技プログラミングコンテスト“ドワンゴからの挑戦状”開催 - 週刊アスキー”. 2016年8月3日閲覧。
  8. ^ リクルート、ドワンゴが囲い込む、隠れた「天才プログラマー」たち”. newspicks.com. 2016年8月1日閲覧。
  9. ^ a b 競技プログラミングという言葉の誕生”. 2020年6月13日閲覧。
  10. ^ yamatsux 本人は競技ダンスからの類推でつけたと言っております。”. 2020年6月13日閲覧。
  11. ^ a b c コーダーの聖地「TopCoder Open」で日本人が2部門制覇”. www.itmedia.co.jp. 2016年8月1日閲覧。
  12. ^ AIZU ONLINE JUDGE”. judge.u-aizu.ac.jp. 2016年8月1日閲覧。

関連項目編集

関連人物編集

関連分野編集