Zadaci za harakiri

U zadacima se već drugu godinu zaredom pojavljuje previše grešaka. Ima tu svega, od dvosmislenih zadataka, pobrkanih naziva i nejasnih objašnjenja varijabli, nedovoljno ili pogrešno opisanih problema, preko viška rečenica koje pripadaju nekom drugom zadatku, pogrešnih test primjera itd…

Istaknimo samo neke loše ‘primjere’ iz različitih zadataka sa županijskih i državnih natjecanja:

– Crtež je napravljen u nekom drugom programu (u razgovoru s autorima doznali smo  da je rabljen Corel) i to izrazito loše ako govorimo o  proporcijama i skaliranju crteža. U zadatku se nigdje ne spominje koliki je kut između krakova, pretpostavlja se da su to jednaki kutevi.

– Za test primjer koji j naveden u zadatku PRUGA 5 10 5 30 10 [[2 -20] [8 0] [3 -30] [10 0] [3 30] [5 0]] nije data odgovarajuća slika.To je zbunjivalo natjecatelje i trošilo im vrijeme pri razumijevanju zadatka

– U tekstu zadatka pobrkane su ulazne i izlazne vrijednosti, točnije varijabla :n koja u zadatku predstavlja i ulaznu i izlaznu vrijednost, što ne bi smjelo biti tako

– Navedeni test primjeri u zadatku su u potpunoj suprotnosti sa zadatkom.

– Na bodovanju su se priznavala rješenja samo kako je autor mislio, a da prethodno nije jednoznačno definirao uvjete za takvo shvaćanje zadatka.

– Službeni test primjeri bili su isti kao i test primjeri iz zadatka. Dakle, dovoljno je bilo samo upotrijebili test primjere i dobiti su 42/50 bodova.

– Objavljeno službeno rješenje bilo je netočno (umjesto lt 10 treba pisati lt 20 što uvelike mijenja kosinu nogu). A na osnovu tog netočnog službenog rješenja bio je izrađen i test primjer u zadatku.

– Ulazna varijabla :alfa se u tekstu spominje pod drugim nazivom :kut.

– Nigdje u zadatku nije objašnjeno niti je na crtežu označeno da se biljarska kugla odbija pod onim kutom pod kojim je i udarila u rub pravokutnika. Svi natjecatelji te dobi (radi se o 5. razredu) to ne mogu pretpostaviti niti zaključiti jer bi prethodno trebali biti upoznati sa zakonima biljara i zakonima fizike.

Grešaka je bilo mnogo, bilo je i na tu temu rasprava na forumu, od koji neke donosimo u analizi, a neki najbolji natjecatelji su s pravom rekli da su zadaci za harakiri.

Logično jest, ako se ni priznanja ne mogu dodijeliti prema propozicijama, kako će onda zadaci, kao najvažniji i najsloženiji dio posla, biti besprijekorni.

No evo kratke analize:

Kratka analiza grešaka u zadacima iz Loga

Iz izvrsnosti u prosječnost?

Međunarodni uspjesi sustava natjecanja u programiranju

Rezultati hrvatskih učenika na IOI

Najvažnije i najcijenjenije međunardno natjecanje  srednjoškolaca u programiranju svakako je Međunarodna informatička olimpijada (International Olympiad in Informatics, IOI). Održava se jednom godišnje i okuplja 80ak zemalja sudionica, od kojih svaka sudjeluje sa po 4 natjecatelja koji se natječu individualno. Medalje na olimpijadi dodjeljuju se svim učenicima plasiranim iznad polovice od ukupnog broja sudionika i to tako da omjer zlatnih, srebrnih i brončanih medalja bude 1:2:3 (dakle zlatnu medalju dobija prva dvanaestina od ukupnog broja sudionika).

Osvojene medalje hrvatske reprezentacije na IOI od 2000. godine do danas prikazane su na Grafikonu 1. Osim jednog relativno slabijeg nastupa, može se zaključiti da su uspjesi kroz desatak godina kontinuirani i kao takvi teško da mogu biti rezultat slučajnosti i doprinosa nekolicine nadarenih pojedinaca, već su proizvod, pa i brend, uhodanog sustava i rada najboljih udruga u bazi, te trajnog doprinosa Hrvatskog saveza informatičara (HSIN) koji iz godine u godinu priprema najbolje natjecatelje za olimpijske nastupe.

Usporedba s olimpijadama iz drugih područja

Osim na Međunarodnoj informatičkoj olimpijadi, Hrvatska sudjeluje i na srodnim olimpijadama znanja: Međunarodnoj matematičkoj olimpijadi (IMO), Međunarodnoj olimpijadi iz fizike (IPhO) i Međunarodnoj olimpijadi iz kemije (IChO). Usporedimo li osvojene medalje u posljednjih desetak godina na informatičkoj olimpijadi i ostalim olimpijadama (Grafikon 2), razmjeri uspjeha postaju još evidentniji – dok je na ostalim olimpijadama srebrna medalja rijetkost, a zlatnih gotovo uopće nema (samo jedna na olimpijadi iz kemije 2002. Ivana Kassala, prva hrvatska zlatna medalja s olimpijada znanja uopće), na IOI zlatne medalje osvajaju se od Luke Kalinovčića i 2003. redovito, a srebrne samo što nisu postale prosjek.

Usporedba uspjeha hrvatskih informatičara i drugih područja na olimpijadama

U obzir treba uzeti i to da je princip dodjeljivanja medalja na svim olimpijadama isti, ali se olimpijade razlikuju po broju natjecatelja iz svake zemlje: ekipa na matematičkoj olimpijadi broji šest članova, na olimpijadi iz fizike pet, a na olimpijadama iz informatike i kemije po četiri člana. Više članova ekipe znači veći maksimalni broj medalja koje ekipa može osvojiti i veći ukupni broj podijeljenih medalja na toj olimpijadi.

HONI, COCI i IOI u Hrvatskoj

Dobar glas u svjetskim razmjerima nemaju samo naši natjecatelji nego i naša natjecanja te naši zadaci. Osim brojnih pohvala usmenim putem od natjecatelja i voditelja timova iz drugih zemalja (a to uključuje i zemlje iz samog svjetskog vrha, kao što su Bugarska, Rumunjska, Poljska), koji treniraju na zadacima s hrvatskih natjecanja, stigla su i formalna priznanja: Hrvatskoj je povjereno domaćinstvo IOI 2007. te je gotovo sav kreativni  i tehnički posao oko natjecanja obavila domaća ekipa (http://ioi2007.hsin.hr/tasks/solutions.pdf) pod okriljem HSIN-a.

Zadnjih godina svjetski se afirmiralo Hrvatsko otvoreno natjecanje iz informatike (HONI), u engleskoj varijanti Croatian Open Competition in Informatics (COCI), također u organizaciji HSIN-a, na kojem u 7 kola godišnje na svakom sudjeluje po dvjestotinjak natjecatelja iz Hrvatske i petstotinjak natjecatelja iz cijelog svijeta. Kvalitetu tog natjecanja možda najbolje ilustrira podatak da američki pandan takvog natjecanja USACO u prošlogodišnjem kalendaru u svom newsletteru osim vlastitih događaja imao upisan samo IOI i COCI. Osim navedenog Zagrebački računalni savez već gotovo deset godina održava četverodjelno natjecanje u kojem u odvojenim ligama sudjeluju učenici razredne nastave, stariji osnovci i srednjoškolci, kao jedinstveni primjer u svijetu. Pomalo nevjerojatno, zar ne? Netko bi se mogao (možda i trebao) zapitati, kako i zašto je uopće došlo do ovakvih uspjeha?

Što je sve potrebno za dobar zadatak i zašto je to uopće važno

Natjecanje u programiranju specifično je utoliko što se od natjecatelja očekuje rješenje u obliku računalnog programa. Time je bitno određen proces organizacije natjecanja: automatizacijom je znatno olakšano ocijenjivanje učeničkih rješenja, ali je proces pripreme natjecanja zahtjevniji. Za kvalitetan zadatak potrebni su:

  1. Ideja – danas na internetu postoje baze sa velikim brojem zadataka koje nude automatsko ocijenjivanje rješenja te su one vrlo popularne među učeničkom populacijom, ali i među studentima i profesionalcima. Da bi zadatak bio izazovan, rješenje ne smije biti očito, po mogućnosti treba biti kreativno i ne smije biti već viđeno u istom obliku. Netko, tko nije vidio i riješio barem stotine i stotine takvih zadataka, teško može procijeniti koliko je neka ideja ili zadatak dobar, i ne može nikako znati je li zadatak već viđen.
  2. Tekst zadatka – kako bi se natjecanje učinilo zanimljivijim učenicima, tekst zadatka je obično uklopljen u neku neformalnu priču. Istovremeno tekst mora dati jasne i nedvosmislene specifikacije o tome što se u zadatku traži, kakvi su ulazni podaci i kakvi izlazni podaci se očekuju.
  3. Rješenja – osim što rješene mora biti koncepcijski točno, potrebno je napisati i točan program. Kako je u svakom programiranju mogućnost pogreške relativno velika, barem nekoliko ljudi treba napisati i usporediti rezultate svojih rješenja.
  4. Test podaci – to su podaci prema kojima se testiraju i boduju učenička rješenja, tj. programi. Osim točnog rješenja, potrebno je predvidjeti moguća učenička kriva ili neefikasna rješenja. Za svako od takvih predviđenih rješenja treba napisati program koji ga implementira, pronaći slučajeve kad takva rješenja ne daju dobre rezultate i odrediti koliko bodova neko netočno ili neefikasno rješenje zaslužuje i sukladno tome generirati test podatke.

Zadaci na županijskim i državnim natjecanjima, nekad i sad

Od 1991., kad je održano prvo državno natjecanje iz informatike, posao organizacije natjecanja i izrade zadataka obavljala je nacionalna udruga Hrvatski savez informatičara (HSIN). Ključna karakteristika sustava informatičkih natjecanja bila je što su se stručni poslovi sastavljanja zadataka i rada s nadarenim učenicima povjeravali onima koji su to mogli raditi najbolje: bivšim natjecateljima, i to najboljima među njima.

A oni su najbolji za taj posao iz više razloga: sami su prošli kroz natjecanja i pripreme i znaju sve zadatke koji su se pojavili proteklih godina na svim razinama u Hrvatskoj i inozemstvu, znaju koje su poteškoće u napretku i savladavanju teških algoritama i zadataka, i ono ključno, osjećaju entuzijazam. Oni su prošli kroz taj sustav, svjesni su koliko su profitirali od toga i najčešće se žele odužiti svojim doprinosom kako bi taj sustav bio još bolji.

I stvarno, sustav je iz godine u godinu bio sve bolji, zadaci sve teži, zanimljiviji, kreativniji i vrijedniji pažnje nadarenih učenika. Učenici su reagirali na to, baza se znatno prošrila, stvorila se pozitivna kompetitivna atmosfera i sve više učenika provodi svoje slobodno vrijeme entuzijastično učeći algoritme, vježbajući programiranje i rješavajući zadatke.

Pravo osvježenje u našem obrazovnom sustavu koji počesto favorizira repetitivno učenje i mediokritete.

Nekome se to ipak nije sviđalo. Navodno zbog spora s HSIN-om koji je rezultirao javnim pismom HSINa, Agencija za odgoj i obrazovanje (AZOO) 2010. godine odlučuje oduzeti županijska i državna natjecanja udruzi koja je ta natjecanja stvorila i dovela na svjetsku razinu i povjeriti natjecanja u programiranju tek osnovanoj udruzi (DUMP), čiji se najistaknutiji članovi mogu podičiti plasmanom na državno natjecanje u programiranju, ali bez zapaženijih uspjeha na njima (možda je još skandaloznija činjenica da su se istovremeno nacionalna natjecanja u izradi softvera povjerila stranoj tvrtci Microsoft, ali to nije tema ovog članka).

U međuvremenu se kvaliteta zadataka na županijskim i državnim natjecanjima drastično srozala:

apsolutno svi zadaci do ovogodišnjeg državnog natjecanja su bili već viđeni i neoriginalni, rješenja zadataka su očita i često samo direktna primjena poznatih algoritama koja ne zahtjevaju ni trunke kreativnosti i razmišljanja, broj zadataka na državnom natjecanju u programiranju za srednje škole smanjen je gotovo četverostruko (dva dana natjecanja su svedena na jedan, isti zadaci su zadani starijoj i mlađoj podskupini), tekstovi zadataka su nejasni, često i pogrešni, te nerijetko različito interpretirani od strane učenika i autora zadataka, česte su greške u test podacima, zabilježeni su slučajevi potpuno pogrešnog službenog rješenja zadatka, što je rezultiralo i pogrešnim test podacima, netočnim bodovanjem tog zadatka i sasvim neregularnim natjecanjem, prezentacija rješenja na državnom natjecanju za srednje škole svedena je na trajanje od svega 10 minuta, što nije ni približno dovoljno za detaljna objašnjenja iz kojih bi sudionici mogli nešto i naučiti, te ostavlja dojam da je cilj prezentacije da vas autor zadataka uvjeri kako on sam zna o čemu se tu radi.

Kako to utječe na entuzijazam učenika da se za takvo natjecanje pripremaju i koliko samim time uspjeh na takvom natjecanju manje vrijedi mislim da nije potrebno analizirati, a ako stvari ostanu kakve jesu, neminovno je da će i vrijeme to pokazati.

Budućnost natjecanja u programiranju u Hrvatskoj

Nažalost, u sudaru s birokracijom, pojmovi kao što su kvaliteta i rezultati relevantni su kao i lanjski snijeg.

U vremenu kad su korupcija, nepotizam i političke veze ključne za uspjeh pojedinca i njegov dolazak na poziciju na kojoj se odlučuje, bespredmetno je čuditi se ignoranciji ljudi iz AZOO, ako se uopće o ignoranciji radi. Natjecanja se, uz veće ili manje poteškoće, i dalje održavaju, forma je zadovoljena, psi laju, a karavane prolaze. Kako će pad kvalitete utjecati na budućnost ovih natjecanja? Hoće li se kroz nekoliko godina pozitivna atmosfera i interes mladih ljudi za ova natjecanja osipati, rezultati na međunarodnim natjecanjima vratiti u okvire prosjeka, a jedan izuzetan projekt izgrađen na entuzijazmu mnogih biti uništen?

Hoće li netko iz raznih agencija i ministarstava to ipak primjetiti?

Posljedice toga nećemo osjetiti odmah, ali za deset ili dvadeset godina kao društvo možda nećemo imati neke kvalitetne ljude i kadrove koje smo mogli stvoriti, jer ih sustav nije potaknuo da razvijaju svoj talent nego je taj talent ugušio. A ti ljudi bi svojim izvanserijskim sposobnostima mogli dati značajan doprinos našem gospodarstvu: zaposliti druge ljude, izvesti proizvode, zaraditi novac i platiti porez u našu zajedničku blagajnu. Ponekad se čuju i argumenti kao, “zašto bi mi ulagali u najbolje kad oni i tako odlaze u inozemstvo”. Istina je da se dio vrhunskih natjecatelja zaposlio u inozemstvu, i to u kompanijama kao što su Google, Facebook I slično, ali još uvijek većina ostaje raditi u Hrvatskoj. Osim toga, oni koji su otišli nikako za naše društvo nisu izgubljeni. Kroz neko vrijeme neki od njih će napraviti karijere, steći će znanje, novac, iskustvo i poznanstva. Dio njih će sasvim sigurno odlučiti to uložiti natrag u Hrvatsku.

Sama srednjoškolska natjecanja prosječnom građaninu ne znače mnogo, ali posljedice mnogih sličnih nebriga iz prošlosti na raznim poljima svi mi osjećamo svakodnevno – one su satkane u našu današnju realnost.

Pogledajmo priču u cijelosti (dvaput je dvaput):

Iz izvrsnosti u prosječnost, o zadacima za srednje škole

Što sve moraju raditi zaljubljenici u programiranje da bi pokušali zaštiti pravo učenika na priznanje i nagradu za postignuti rezultat

Jedan od najsjajnijih hrvatskih osnovnoškolskih mentora, nekada je i sam bio programer i osvajao najviša mjesta na županijskim i državnim natjecanjima. Ime mu je Kristijan Burnik, vlada programskim jezicima Logo i C++, vodi napredne programerske radionice i izrađuje zadatke za ZG. Informatijadu Božo Težak, voli glazbu i uživa u WEB dizajniranju, student je FER-a i tajnik udruge informatičara Božo Težak. No povrh svega izrazito je ustrajna i uporna osoba, osobito osjetljiva na pogreške i nepravde prema svojim štićenicima, darovitim programerima osnovnoškolcima. Svoje učenike uči da se vlastite greške moraju uočavati i ispravljati te da se mora boriti za svoja prava. Na koji način Kristijan to čini i u stvarnom životu, najbolje pokazuje odlučnost kojom se borio da se ispravi greška i nepravda prema Dominiku Fistriću. Sada već mnogi znaju da je Dominik oštećen na državnom natjecanju u Rapcu 2011. godine. Tada je, suprotno važećim propozicijama, bio proglašen trećeplasiranim među petašima, a zapravo je bio pobjednik među četvrtašima.

Njegov mentor Kristijan pisao je žalbe, pisma, predstavke, a često i požurnice jer nije dobivao odgovore. Trebalo je imati petlju i ostati korektan, istine radi:

Požurnica na dan oslobođenja, 7.8.2011.

I istina ima pravo ugledati sunce, zar ne?