Olympialaisiin osallistuminen

Olympialaisiin osallistutaan 6:n hengen joukkueella, joka koostuu joukkueen johtajasta, varajohtajasta sekä 4:stä kilpailijasta.

IOI-kisatehtävissä suunnitellaan ja toteutetaan tehokkaita (ja oikein toimivia) algoritmeja annettuhin ongelmiin. Ongelmien määrittelyssä pyritään siihen, että toteutetun ohjeman syöte (input) ja tulos (output) ovat mahdollisimman yksinkertaisia ja selkeitä. Esimerkkejä ongelmista löytyy aiempien kisojen kotisivuilta, ks.

Tehtävissä koetetaan pyrkiä siihen, että ongelmat olisivat myös suuren yleisön ymmärrettävissä vaikkakin niiden tehokkaat ratkaisut saattavat olla hyvinkin monimutkaisia ja vaatia syvällistä osaamista. Joihinkin ongelmiin ei välttämättä ole edes tiedossa parhaan mahdollisen ratkaisun antavaa algoritmia (ns. “open-ended tasks”). Aiemmin tehtävät olivat usein ns. eräajoluonteisia, eli toteutus luki syötetiedoston ja tulosti tulostiedoston. Nyttemmin tehtävissä pyritään yhä enemmän interaktiivisiin, reaktiivisiin, animoituihin tai hajautettuihin ongelmiin, ja ratkaisujen hyvyyttä arvioitaessa pyritään ottamaan huomioon muitakin seikkoja kuin pelkkä suoritusaika.

Kisoissa menestyminen edellyttää syvällistä (yliopistotasoista ja jopa sen yli) perehtymistä paitsi olemassaoleviin algoritmeihin ja tietorakenteisiin myös niiden taustalla oleviin suunnitteluperiaatteisiin, joiden avulla voi räätälöidä omia algoritmeja ja yhdistellä
olemassaolevia kulloisenkin ongelman ratkaisemiseksi. Kirjallisen perehtymisen ja valmennukseen osallistumisen lisäksi omaehtoinen ohjelmointiharjoittelu (esim. ratkomalla aiempia kisatehtäviä) on välttämätöntä hyvään kisamenestykseen; kansainvälinen kärki on erittäin kovatasoinen.