HTML

kdanoblog

Friss topikok

Linkblog

Naptár

április 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

disclaimer

Az oldal tartalma minden bizonnyal fikció. (Elvégre ki akarna matematikus lenni...)

A Közép-Európai Informatikai Diákolimpia és egyéb programozóversenyek

2011.07.25. 02:05 kdano

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.

2 komment

Címkék: programozás ceoi

A bejegyzés trackback címe:

https://kdano.blog.hu/api/trackback/id/tr913095086

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Muri 2011.10.02. 00:02:13

Kedves kdano!

Jó végre az enyémhez hasonló véleményt találni!
Én eddig 3 alkalommal vettem részt a Nemes Tihamér versenyen. Nem ismerem az egésznek a hátterét, csak azt láttam amit elém raktak.

3 éve, az első versenyemen szinte gyakorlás nélkül jutottam a döntőig, ott viszonylag az elején végeztem. Nem ismertem a standard algoritmusokat, nem tanultam soha programozást. Elsőként az tűnt fel, hogy furcsa feladatokat adnak. Pl. a papírra leírt algoritmusnak nem tudom hogy melyik változó a bemenete, melyikben tárolódik az eredmény, ezt mind a versenyzőnek kell kitalálni. Vagy az algoritmus közepén előkerül egy új változó, ami nem tudom hogy milyen típusú / mit csinál. Aki leírta az biztos értette, de az olvasónak már nem egyértelmű. Persze ez lehet hogy némelyik iskolában/egyetemen elfogadott és ezt tanítják.

Következő évben csak a második fordulóig jutottam, és az első fordulóban itt már sokszor emlegettem hogy ez egy hülyeség. A második fordulón egy osztálytársammal együtt vettem részt. Elmondása szerint több feladatot oldott meg helyesen mint én, ennek ellenére 0 pontot kapott. Ezt meg is írta a szervezőknek, akik kb. egy hónap múlva válaszoltak hogy sajnos a megoldásai elvesztek.

A tavalyi versenyen meg nem jutottam sehova. Első olvasásra találtam vagy 5 helyesírási hibát a feladatlapon. Ezután elkezdtem megoldani a feladatokat, több elvi hibát is találtam. Biztos vagyok benne hogy ezek valódi hibák, többször átgondoltam. Az egyik feladatnál már örültem is hogy megvan a hiba, le is írtam, és talán még pontot is adnak érte. Nem adtak.

Ezek után nem tudom komolyan venni ezt az egész versenyt. Szerintem szégyen hogy ilyen dolgok előfordulhatnak.

kdano 2011.10.04. 11:44:55

@Muri: szia!
Egyrészt, három éve, a 2008 őszi első fordulót átnéztem, és elküldtem a hibákat, azt hiszem, egy kivételével ki is lettek javítva, tehát az speciel egy olyan forduló, amit én vállalhatónak tartok. Olyanok tényleg vannak, hogy az input egy előre meg nem nevezett tömbben van megadva (általában valami ésszerű néven), vagy hogy a pszeudokód közepén megjelenik egy másik tömb, de szerintem ezeket ki tudja találni a versenyző.
A nagyobb baj azzal van, amit te is említettél: a múlt tanévben nem nézte át senki a feladatokat, emiatt gondolom rengeteg hiba maradt benne, ami az érthetőséget, szintaktikát befolyásolta. Ha valakinek van valamennyi rutinja ebben, akkor általában (de nem is feltétlen mindig) ki tudja találni, hogy mire szerettek volna gondolni a feladatkitűzők, de egy újonc versenyzőre katasztrofikus hatással lehet.
Ezért kezdtem el én is a lektorálást, a problémák legfőbb oka ugyanis, hogy ketten csinálják az egészet (beleértve a reklamációkat, mint ahogy az osztálytársadét is), és ők sem főállásban, hanem egyéb egyetemi teendőik mellett. Egyszerűen nincs energiájuk rá.
Én próbáltam segíteni, terveim szerint még fogok is, de nem tudom, hogy mivel lehetne ezt megjavítani.
Ja még a programozós fordulókról: itt is előfordul, hogy hibás adatokkal tesztelik a programokat, de azért ez a ritkább. Amikor valaki nem kapja meg a pontszámot arra a feladatra, amit szerinte megoldott, olyankor áltaálban a diák megoldásában van a hiba: elgépelt vagy elnézett valamit. Ilyenkor érdemes elkérni a teszteseteket, hogy magának leellenőrizze az ember, és ha tényleg azokkal van a hiba, a konkrét problémát megírni a szervezőknek. Az ilyen emaileket magasabb prioritással kezelik.
süti beállítások módosítása