PUTKA (Preverjanje Učinkovitosti, Temeljitosti in Korektnosti Algoritmov) vsebuje avtomatiziran sodniški sistem za testiranje programov. Sistem je bil prvotno zasnovan za vodenje mladinske šole računalništva na Zavodu za računalniško izobraževanje Ljubljana (ZRI), kmalu pa je bil razširjen s podporo za izvedbo tekmovanj.

Sistem Putka je dosegljiv na https://putka.si; Javno dostopen je vzorec nalog, sicer pa je dostop do sistema namenjen registriranim uporabnikom. To so praviloma učenci mladinske šole programiranja pri ZRI in udeleženci uradnih in neuradnih tekmovanj iz programiranja v Sloveniji.

Zgodovina in razvoj

Prve ideje in pilotni projekti so bili napravljeni večinoma na raziskovalnih poletnih šolah na ZRI med 1996 in 2003. S tako pridobljenim znanjem in izkušnjami je bil v letu 2004 v okviru poletne raziskovalne šole računalništva pri ZRI Ljubljana napravljena prva verzija sistema Putka. V naslednjih letih je bila precej dodelana in se od leta 2007 dalje operativno uporablja pri pouku učencev ZRI in pri pripravi tekmovanj. Za sistem skrbita Sinel in ZRI Ljubljana in pri vzdrževanju dosedanjih verzij je bilo vključenih veliko sedanjih in bivših učencev ZRI ter njihovih učiteljev in mentorjev.

Trenutna verzija ima oznako 4.3. Operativna je od 27.5.2023 dalje.

Reference

  • Od leta 2007 se Putka intenzivno uporablja pri pouku mladinske računalniške šole na ZRI Ljubljana.
  • Putka je bila večkrat uradno okolje za izvedbo državnih tekmovanj v znanju programiranja.
  • Sistem je bil preizkušen z izvedbo več deset tekmovanj odprtega in zaprtega tipa.
  • Putka je do danes ocenila prek 90.000 programov.

Tehnične značilnosti

Sistem je sestavljen iz dveh glavnih komponent, ki po potrebi tečeta na ločenih računalnikih: uporabniškega vmesnika (ki prikazuje spletne strani) in testerjev (ki zaženejo uporabniške programe v strogo nadzorovanem okolju in jih ocenijo). Sistem trenutno omogoča avtomatsko ali ročno preverjanje programov napisanih v naslednjih programskih jezikih:

  • Pascal
  • C oz. C++
  • Python
  • Perl
  • Logo (ročno ocenjevanje)