Üldist

Mis on informaatika?

Informaatika on definitsiooni järgi teadus infosüsteemidest, hõlmates osi nii arvutiteadusest, infotehnoloogiast kui statistikast.

Mis on informaatikaolümpiaad?

"Informaatikaolümpiaad" on palju kitsam mõiste kui "informaatika". Informaatikaolümpiaadi põhiteemaks on algoritmilise iseloomuga programmeerimisülesannete lahendamine.

Mis vahe on olümpiaadi- ja tavalisel programmeerimisel?

Tarkvara koosneb tänapäeval tohutust hulgast loogilistest kihtidest, mis üksteisega andmeid vahetavad. Tavalise programmeerija töö koosneb suuresti kahest osast:

  1. Andmete kopeerimine ühest kihist teise, sooritades nendega vahepea mingi transformatsiooni.
  2. Uurimine, miks mõni üleval- või allpool asuv kiht ei tööta oodatud viisil. Kihtide hulka arvestades on tegelikult imekspandav, et vahel üldse mõni asi töötab :)

Olümpiaadil on enamik sellest kihilisusest elimineeritud ning keskendutakse konkreetsele ülesandele: kuidas leida lähteandmete põhjal konkreetne vastus.

Võime tuua ka sellise võrdluse: olümpiaad on nagu rallisõit ja tavaprogrammeerimine on nagu liinibussi juhtimine. Sarnased, kuid siiski erinevad.

Mis on olümpiaadi ajalugu?

Esimene rahvusvaheline informaatikaolümpiaad (IOI) toimus 1989. aastal Bulgaarias. Sellest ajast saadik on olümpiaadi raskus järk-järgult tõusnud, kooskõlas sellega, et suuremad riigid muudavad oma ettvalmistusprogramme põhjalikumaks. Läbi aegade parimad üksikvõistlejad IOI-l on olnud:

  1. Gennady Korotkevich – Valgevene
  2. Filip Wolski – Poola
  3. Rares-Darius Buhai – Rumeenia
  4. Rumen Hristov – Bulgaaria
  5. Martin Pettai - Eesti
  6. Andrzej Gąsienica-Samek - Poola

Parimad riigid on olnud Hiina, Venemaa, USA, Poola, Korea, Rumeenia, Iraan

Korraldus

Kes olümpiaadi korraldab?

Ei ole ühtki inimest, kelle ametinimetus oleks "informaatikaolümpiaadi korraldaja". Korraldustoimkond on grupp vabatahtlikke, keda organisatsiooniliselt toetab Teaduskool.

Kuidas võistlused toimuvad?

Võistlused on tänapäeval üpris automaatsed. Lahendusi saab tehniliselt kirjutada ükskõik millises Internetiga ühendatud arvutis. Žüriil on testimisserver, kuhu osalejad oma lahendused esitavad. Testimisserver kompileerib programmi ja käivitab selle erinevate testidega. Olenevalt võistluse formaadist saab lahenduse esitaja tulemuse teada kas kohe või hiljem.

Millised võistlused aset leiavad?

Hooaja jooksul toimuvad traditsiooniliselt järgmised võistlused:

Kuidas ma osaleda saan?

  1. Jälgi infot olümpiaadi kodulehel ning olympiaadid-meililistis.
  2. Lahtisele võistlusele saab end veebis ise registreerida ja siis ülesandeid lahendada.
  3. Eelvoorul osalemiseks leia endale lähim kool, mis eelvooru korraldab ning registreeri ennast seal.
  4. Ülejäänud võistlustele saadetakse vajadusel juba spetsiaalne kutse.

Lahendamine

Milliseid programmeerimiskeeli saab kasutada?

Milline on hea olümpiaadiülesande lahendus?

Olümpiaadiülesande lahendamisel on kaks peamist aspekti:

  1. Korrektsus ja täielikkus. See tähendab, et programm peab hakkama saama igasuguse lubatud sisendite kombinatsiooniga.
  2. Efektiivsus tähendab, et programm peab hakkama saama võimalikult suure sisendi käsitlemisega minimaalse aja jooksul. Peamine mõõdik on siin algoritmi ajaline keerukus. Näiteks kui me suurendame sisendit 10 korda ja programmi tööaeg pikeneb samuti 10 korda, on meil tegemist lineaarse keerukusega algoritmiga. Kui tööaeg pikeneb sisendi 10-kordsel suurendamisel aga 100 korda, on tegu ruutkeerukusega algoritmiga. Mida kiiremini pikeneb tööaeg sisendi suurendamisel, seda suurem on ajaline keerukus (niisiis näiteks ruutkeerukus on suurem kui lineaarne keerukus). Enamasti on olümpiaadiülesannetel mitu erinevat võimalikku lahendust ning väiksema keerukusega lahendus saab rohkem punkte kui suurema keerukusega lahendus, sest suurema keerukusega algoritmid ei suuda suurematel sisenditel jääda etteantud ajalimiidi piiresse.

Kuidas valmistuda?

Informaatikaolümpiaad on teiste olümpiaadidega võrreldes hea selle poolest, et veebis on massiliselt erinevaid ressursse, mida kasutada, toimub palju online-võistlusi jne.

Vt näidetena:

Lehekülg viimati muudetud January 25, 2017, at 11:15 PM