競技プログラミング
競技プログラミング(英: Competitive programming、略称: 競プロ)とは、プログラミングコンテストで行われる競技の一種である[1][2][3][4][5][6]。
概要編集
競技プログラミングでは、参加者全員に同一の課題が出題され、より早く与えられた要求を満足するプログラムを正確に記述することを競う。コンピュータサイエンスや数学の知識を必要とする問題が多く、新卒学生の採用活動などに使われることもある[7][8]。多くのコンテストでオンラインジャッジが採用されている。また、競技プログラミングに参加する人を「競技プログラマ」または「競プロer」と呼ぶことがある。近年、プログラミング教育において、競争型学習が注目されている。特に、一定の時間内にプログラミング問題を解く競技系のコンテストは、授業中の演習形式として期待される。しかしこれらは高度であり入門的な授業にコンテストを取り入れるには、初心者向けに視野を広げる適応を考える必要がある。
語源編集
2007年に、東京大学理学部情報科学科に当時所属していた松本宜丈が「東京大学競技プログラミング同好会 2007年春台湾合宿」と銘打ったパンフレットを作成したときが初出である[9]。台湾合宿には大学同期12人が参加し、この合宿のメンバーを総称して、東京大学競技プログラミング同好会の名称が付けられた。また、松本は競技ダンスからの類推でつけたと述べている[10]。後に東京大学競技プログラミングクラブと改名して継続的な勉強会となり、後輩の育成にも励んだため、競技プログラミングという言葉が広く使われるようになった[9]。
主要なコンテスト編集
主にインターネット上の各種ウェブサイトで、定期的に開催されている。
日本国内編集
サイト名 | 概要 | ウェブサイト |
---|---|---|
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 |
国際大会における日本人参加者の成績編集
競技プログラミングでの雇用編集
TopCoderやGoogle Code Jamなどの海外の多くの競技プログラミングサイトでは会員登録の際に求人情報の紹介を受けるかどうかを選択できる。日本においてはリクルート (CODE FESTIVAL, CODE VS, CodeIQ) やギノ (paiza) などで学生や転職希望者向けの求人の紹介が行われている。
教育機関における競技プログラミング編集
会津大学がAizuOnlineJudgeというオンラインジャッジを公開しておりICPCの過去問などを出題している[12]。
出典編集
引用文献 富永浩之 コンテスト形式による初級Cプログラミングの演習支援 2008 年 5 月 17 日 p49 ~50 都築夏樹 競技プログラミングの提出コードを用いたファジングツールの定量的評価 2019 年3 月7日 p1~3
- ^ “競技プログラミングを知ろう! [第1回 - Tech Book Zone Manatee]”. 2016年8月3日閲覧。
- ^ “「競技プログラミング」で世界に挑戦してみよう! - TCO15 in Tokyo - マイナビニュース”. 2016年8月3日閲覧。
- ^ “【プレスリリース】ドワンゴ、競技プログラミングコンテスト第2回「ドワンゴからの挑戦状」2016年1月23日より開催 - INTERNET Watch”. 2016年8月3日閲覧。
- ^ “競技プログラミングに参戦、発想力での難問解決を楽しむ”. 2016年8月3日閲覧。
- ^ “求めているのは、楽しさと環境:イマドキの“学生プログラマー”は何を考えているの? (1/3) - ITmedia エンタープライズ”. 2016年8月3日閲覧。
- ^ “日本の競技プログラミングを世界水準に引き上げる レッドコーダー秋葉拓哉”. 2016年8月3日閲覧。
- ^ “いきなり最終面接も 採用直結の競技プログラミングコンテスト“ドワンゴからの挑戦状”開催 - 週刊アスキー”. 2016年8月3日閲覧。
- ^ “リクルート、ドワンゴが囲い込む、隠れた「天才プログラマー」たち”. newspicks.com. 2016年8月1日閲覧。
- ^ a b “競技プログラミングという言葉の誕生”. 2020年6月13日閲覧。
- ^ “yamatsux 本人は競技ダンスからの類推でつけたと言っております。”. 2020年6月13日閲覧。
- ^ a b c “コーダーの聖地「TopCoder Open」で日本人が2部門制覇”. www.itmedia.co.jp. 2016年8月1日閲覧。
- ^ “AIZU ONLINE JUDGE”. judge.u-aizu.ac.jp. 2016年8月1日閲覧。