Lassan két hete, hogy véget ért Gdyniában az idei CEOI. A magyar csapat teljesítménye átlagosnak mondható, két szakkörös diákom, Zoli és Gellért 20-21. helyezést, és ezzel bronzérmet szerzett. Ennek apropóján korábban is úgy terveztem, hogy írok egy posztot az programozóversenyekről, de Gellért adott még egy lökést ez irányba, amikor tegnapelőtt megköszönte a segítségemet. Nem is azzal, hogy megköszönte, hanem azzal, amit megköszönt: Kifejezetten arra gondolt, amikor azt tanácsoltam neki, hogy úgy tekintsen az olimpiai feladatokra, mintha azok matekfeladatok lennének. Azt mondta, hogy enélkül esélye nem lett volna az éremre.
Az, hogy ezt mondani kellett neki, sajnálatos következménye a magyar olimpiai felkészítés, és általában a gimnáziumi programozóversenyek színvonalának (és megjegyzem a probléma a magyarországi ACM-ICPC forduló esetében is fennáll). Szóval még mielőtt nagyon hőzöngeni kezd a lelkes olvasó, hogy miért kéne a programozóversenyen matekfeladatoknak lenniük, két dolgot megjegyeznék. Az első, hogy akár tetszik, akár nem, az informatikai olimpiákon, topcoderen és egyéb algoritmikus jellegű programozóversenyen igenis matekos beütése van a feladatoknak, mert az algoritmuselmélet matematika. A másik és még fontosabb, hogy ez a megjegyzésem nem annak szólt, hogy ezek csak matekfeladatok, hanem annak, hogy gondolkozni kell rajtuk, pont úgy, ahogy azt Gellért matektagozatosként minden matekversenyen, szakkörön, esetleg órán már megszokta. És nem úgy, ahogy a programozóversenyeken szokta meg, tudniillik, hogy abban gondolkodik az ember, hogy melyik standard algoritmust tudja ráhúzni a feladatra. Ehelyett nemzetközi szinten eredeti gondolatokra, ötletekre, kreativitásra van szükség.
Mert a Nemes Tihaméron/OKTV-n, meg az olimpiai válogatóversenyen ezt kell csinálni. Megtalálni a megfelelő standard algoritmust, és lekódolni. Mint mindenhol máshol, itt is meghatározható egy alaptudás, amiből építkezni lehet: körülbelül az, amit egy átlagos algoritmusok-könyvben megtalál az ember. Csakhogy ahelyett, hogy a válogatóverseny azt tesztelné, hogy ezt az alaptudást, mint eszközt használva, ki mennyire képes a kreatív feladatmegoldásra, az még mindig az eszköz ismeretére van kiélezve. Azt méri, hogy ki ismeri, és tudja leprogramozni a szóban forgó algoritmusokat. (Meglepő módon talán egy kicsit jobb a helyzet az oktv esetében, ott ugyanis gyakrabban fordulnak elő az ad-hoc feladatok, melyek időnként izgalmasak is. Ott viszont sajnos rendszerint a legnaivabb módszer is sikerre visz.) Ennek egyrészt okai, másrészt következményei vannak.
Következménye például a fent vázolt eset, meg az ő összes társa: a magyar feladatok színvonala fényévekkel marad el az olimpiai színvonaltól, ezek után nem meglepő, hogy 1998 óta egyetlen magyar aranyérem született diákolimpiákon. Az is Csirke volt, és nem a felkészítés volt az oka. Talán ennél is súlyosabb viszont, hogy így, hogy a válogató motorikusan megoldható feladatokból áll, nem lehet igazán jól szelektálni a jó versenyzők közül. Nem derül ki, hogy kik azok, akik egyébként képesek megoldani egy ötletet is igénylő feladatot, és kik azok, akik csak az anyag jó ismerete miatt teljesítenek jól. Mindannyian maximum-közeli pontszámot fognak szerezni, és emiatt egy esetleges elgépelés végzetes lehet a végső eredmény szempontjából.
Oka pedig például az, hogy a válogatóversenyre bekerülők fele – tipikusan az, aki első válogatóján jár – nem ismeri a standard algoritmusokat. Merthogy honnan ismerné. Iskolában nem tananyag, az oktv-n versenyzéshez nincsenek rákényszerítve. Nem teljesen tudom, hogy ezen a problémán mivel lehet segíteni. Az egyik lehetőség persze mindenféle szakkörök (a tananyagba természetesen esélytelen az ilyesmit betenni, és nem is hiszem, hogy helyes lenne). Az oktv színvonalának megemelésére nem tudom, hogy van-e mód. A válogató színvonalának emelésével próbálkoztam én is: Idén javasoltam egy feladatot, ami szerintem egy könnyű-közepes olimpiai feladatnak megy el. Szóval gondolkodni kell rajta. A kis közvélemény-kutatásom alapján ketten jutottak túl a gondolkodós (vagy ha úgy tetszik, matematikai) részen, azaz kihámozták a programozófeladatot, rájöttek, mit kellene kiszámolni. De az erre adott algoritmusuk nekik is hibás volt, vagy elkódolták. (Attilának a tesztesetek nem szűrték ki a hibáját, ezért kaphatott mégis maxpontot.) Tény, hogy aki volt már válogatóversenyen, annak váratlan volt egy ilyen feladat, de hát nem tudom őket sajnálni. Akik tudták, hogy átnéztem a feladatokat, nagyon nem kellett tartaniuk attól, hogy azok hibásak (mint pl. a 2008/5-ös feladat), továbbá válogatóversenyen amúgy sem volt végzetes hiba az elmúlt három évben (kiszűrtük őket.. de erről lent).
De van egy másik probléma is: A feladatokat (Nemes Tihamér-, OKTV- és válogató-feladatokat egyaránt) két ember találja ki, ami alapból is kevés. Pláne hogy egyikük nem is nagyon tudna a válogatón szereplő feladatoknál nehezebbeket megoldani, és a másik sem feltétlen boldogul minden olimpiai feladattal. A különböző versenyek aktuális feladatait sem hiszem, hogy szorosan figyelemmel kísérnék, pedig a diákoknak nagy segítség tud lenni egy naprakész felkészítőtanár. (Bár azt hiszem, nincs is olyan magyar ember, aki naprakész lenne ebben.) Az előbbiek egyike sem lenne nagy probléma, ha több ember lenne ennek az egésznek a magja, akik tudásban kiegészítenék egymást. De így érthető, hogy nem tűznek ki olyan feladatot, amit ők sem tudnak megoldani. Mint ahogy az is érthető, hogy az olimpiai felkészítés sem olyan színvonalú, mint ami elvárható lenne. Van némi anyaguk, amit ilyenkor leadnak, azt esetleg a megelőző év válogatófeladataival frissítik, de egyébként lényegében ugyanazt mondják el újra és újra. Nem túl hasznos annak, aki már a harmadik olimpiájára készül(ne).
És akkor arról még nem is írtam, hogy ennek a két embernek nem is nagyon van ideje a feladatokra. Úgyhogy át se nézi őket senki alapesetben. Illetve én nézem át.. bár nekem sem volt rá túl sok időm, úgyhogy pl. az elmúlt tanév oktv-feladatait nem is láttam. Mindegy is, a lényeg, hogy el lehet képzelni, mennyi hiba marad bennük. Én pl. buktam ilyenen olimpiát. Az elmúlt két évben a válogatóverseny ideje alatt én is (ill. tavaly Mikivel) végig kódoltam, dolgoztam, hibás teszteseteket szűrtem (ja, jut eszembe: Attila az idei oktv-n a második helyről negyedikre csúszott azért, mert hibásan tesztelték a programját.. csak ez a hivatalos végeredmény minisztériumba küldése után derült ki), feladatszövegezési problémákat javítgattam, stb.
Szóval a helyzet elég reménytelen. És úgy tűnik, nem én vagyok a megoldás, mert nekem sincs erre időm. Ha matematikus leszek. Marad a szakköröm, mint próbálkozás a helyzet javítására, de erről majd egy későbbi posztban. Ha marad egyáltalán.. tekintve, hogy én disszidálok.
PS. A CEOI eredményeit egyébként olyan jól időzítve néztem meg, hogy a nem érmesek egyébként nem publikus pontszámait is láttam. Erre mondjuk csak az után jöttem rá, hogy újra betöltve eltűnt a pontszámok fele, de szerencsére sikerült megmenteni az eredményeket. Mivel szerintem hülyeség, hogy ezek nem publikusak, az érdeklődőknek felraktam ide. Még annyit, hogy az online contesten Ágoston aranyérmes kategóriába tartozó pontszámot ért el, Attila pedig az első napról lemaradva is majdnem ugyanannyit. Ők épp Thaiföldön tartózkodnak, az IOI-n, remélem hasonló formában szerepelnek ott is.