Programerjevo interaktivno vadbeno okolje (krajše PIVO) je spletna aplikacija, v kateri se prijavljenim uporabnikom dodeli nabor računalniških problemov, ki se jih rešuje v dogovorjenem programskem jeziku. Uporabnik v lastnem razvojnem okolju razvije programsko rešitev podanega problema, in jo v sistem PIVO odda v obliki izvorne kode.
Zaledje sistema PIVO oddano izvorno kodo prvič preišče in prepovedane sistemske izraze nadomesti s komentarji. V izvorno kodo po potrebi vključi in inicializira testne vhodne podatke. Testi kode so sestavljeni iz inicializacij spremenljivk in objektov, klica funkcij in izpisa na standardni izhod.
Odvisno od programskega jezika, strežnik kodo prvič prevede v strojni jezik. Nato se zažene ločen proces, v katerem strežnik odpre zabojnik ("container"), v katerem se koda varno zažene. V zabojniku so nekateri sistemski klici onemogočeni, dostop do sistemskih virov in datotek je omejen.
Sistem PIVO spremlja standardni izhod. Ocenjevanje oddane kode poteka tako, da se vsi testni nizi, izpisani na standardni izhod, primerjajo s pričakovanimi vrednostmi. V sistemu je možno definirati tako javne, kot skrite testne klice.
Sistem PIVO uporabniku v nekaj trenutkih poda povratno informacijo o tem, kako je koda prešla zadane teste.
Avtor sistema je as. dr. Žiga Rojec, iz Laboratorija za računalniške metode v elektroniki, FE, Uni-Lj.
Avtorji nalog so različni sodelavci Laboratorija za računalniške metode v elektroniki, FE, Uni-Lj.