1 アルゴリズム+ データ構造

「アルゴリズム+ データ構造=プログラム」。すなわちプログラムはアルゴリズムとデータ構造から成る。

それらを深く理解することでより良いプログラムを作ることができる。情報理工学部では1 回生後期に「プログラミング演習2」と「データ構造とアルゴリズム」でこれを学習するが、内容が少なくまた浅い。これを学習するにあたってAOJ1を利用することを勧める。

2 AOJ とは

会津大学の提供するオンラインプログラミングチャレンジ環境「Aizu Online Judge」の頭字語。サイトトップのタブからCourse を選び、問題を選んで解く。解答をAOJ に提出すると成否が判定(Judge) される。また他人の解答を見て学ぶことも出来る。AOJ は執筆時現在C, C++, Java, C#, D, PHP, Javascript,Ruby, Python に対応している。なおAOJ にはパソコン甲子園やACM-ICPC といったプログラミングコンテストの過去問が掲載されており、これらも同様にジャッジされる。

3 ACM-ICPC

ACM-ICPC は世界的に有名な歴史あるプログラミングコンテストである。同じ大学に所属する3 人の学生が1 台のコンピュータ(と共用プリンタ, 紙のリファレンス) のみを用いて5 時間で10 問程度の問題をC,C++, Java のいずれかで解く。難解な問題や実装が手間な問題が多いと言われる。日本から参加する場合、国内予選、アジア予選を経て本戦に至る。日本国内予選はインターネット上で行われる。本年度大会2予選は7 月11 日。申し込み締め切りは6 月27 日。参加にあたっては選手3 人とコーチ、監督各1 人を用意する必要があるが、コーチは複数チームを掛け持つことが出来る。また監督は大学でひとり居れば良いが、本学ではRiPPro 他で調整する(はず)。参加料もかからないので気軽に参加して下さい。

Twitterでフォローしよう

おすすめの記事