全くの無知でした。数学オリンピックはあるのはずいぶん前から知っていたのですが、情報オリンピックなるものがあるのなんて。

アルゴリズムの作成を競うオリンピックです。与えられたお題に対し、アルゴリズムを考え、プログラミングし動かす、というところまでを競います。使える言語はC,C++など結構制限があるので、本当にきちっとしたロジックを組んでいかなければなりません。いまどきの言語だとハッシュテーブルとかソートなど便利な関数、クラスがいっぱいあるので1,2行でかけてしまえたりするのですが、C、C++などプリミティブな言語ではそいう便利関数はないので、必要に応じてイチから作ったりする必要があります。

その際にもメモリ効率などいろいろ考えたりしないといけないので、ほんとうの意味でのアルゴリズムの知識が必要だったりします。

ちなみに今現状だと、Webでよく使われているような言語は、大概、ほとんど考えずとも便利なクラスがたくさんあるので、それらを組み合わせるだけ。いい意味で簡単。悪い意味でアルゴリズムもクソもないというようなプログラミング手法へと変わってきているので、こういう情報オリンピックで本物の情報工学を学んでいけることは非常に重要です。

学生、子供への教育の一環として、すぐ使えるような手法(Webプログラミング技術なんかがあたるか?)ではなく、じっくりと考えていくような手法(それこそソートのアルゴリズムなんか)を教えていく必要があるのかなと最近思ってきていたりします。

 

すぐ使える知識はすぐ使えなくなりますので。