Pravidlá uvedené na tejto stránke majú len informatívny charakter. Pri riešení sa vždy riaďte konkrétnymi pokynmi uvedenými v letáku so zadaniami úloh príslušného ročníka a kategórie.
Olympiáda v informatike má dve kategórie. Ľahšia kategória B je určená prvákom a druhákom na stredných školách (a zodpovedajúcim ročníkom viacročných gymnázií). Náročnejšia kategória A je určená všetkým žiakom stredných škôl.
V kategórii B má súťaž domáce a krajské kolo, v kategórii A domáce, krajské a celoštátne kolo.
Teoreticke úlohy sa riešia na papieri a cieľom je navrhnúť a popísať čo najefektívnejší algoritmus na riešenie zadaného problému. Riešenie má obsahovať popis algoritmu, zdôvodnenie správnosti algoritmu a diskusiu o jeho efektivite. Popis má byť dostatočne podrobný a zrozumiteľný, aby bolo možne pochopiť algoritmus aj bez nahliadnutia do priloženého programu.
Riešenie má tiež obsahovať program v jazyku Pascal alebo C/C++. Zo zápisu programu však možno vynechať jednoduché operácie ako sú vstupy, výstupy, implementácie jednoduchých matematických vzťahov a pod.
Pri hodnotení sa prihliada predovšetkým na správnosť algoritmu. Nefunkčný algoritmus môže zväčša získať nanajvýš veľmi malý počet bodov. Ďalším dôležitým kritériom je časová a pamäťová efektivita algoritmu, ako i kvalita popisu a zdôvodnenia algoritmu.
Niektoré teoretické úlohy sú aj z iných oblastí, ako napríklad formálne jazyky a automaty, kombinačné obvody, kódovanie a šifrovanie a podobne. V týchto úlohách zvyčajne nie je potrebné písať program, no aj tu je potrebné riešenie dostatočne zdôvodniť. Súťaž nevyžaduje žiadne predchádzajúce znalosti z takýchto oblastí - všetky potrebné pojmy sú vysvetlené v zadaní.
Praktické úlohy sa riešia pri počítači a cieľom je nielen navrhnúť algoritmus, ale ho aj implementovať a odladiť v jazyku Pascal alebo C/C++. Požiadavky na riešenie praktických úloh domáceho kola sú vždy uvedené v zadaniach príslušného kola.
Vyhodnocovanie praktickych úloh celoštátneho kola prebieha po skončení súťaže pomocou automatického testovača. Riešenie sa skompiluje a spustí na niekoľkych testovacích vstupoch, ktoré súťažiaci počas súťaže nepoznajú. Za každý testovací vstup, pre ktorý program v určenom časovom limite vypíše správnu odpoveď, dostane súťažiaci príslušný počet bodov. Cieľom je teda napísať predovšetkým funkčný a dostatočne efektívny program. Hodnotenie je založené výlučne na výsledkoch testovania, neberie sa do úvahy samotný zdrojový kód programu, ani sa nepožaduje dokumentácia.