A verseny tárgya, követelményei:
A verseny elsődleges célja az, hogy az általános- és a középiskolák tanulóinak lehetőséget adjon programozási ismereteik és képességeik összehasonlítására.
A versenyt három fordulóban rendezzük meg: az első (iskolai) fordulóból továbbjutó versenyzők közül a második (területi) fordulóban legjobban szereplők jutnak be a harmadik fordulóba, a döntőbe.
- Az első fordulóban a tanulók analizáló képességét tesszük próbára. 5-10 kisebb feladatot (algoritmus- vagy programrészletet, működési vázlatot) kapnak a versenyzők, és olyan kérdésekre várunk választ, mint pl. (1) mi hiányzik belőle? (2) milyen hibák vannak benne? (3) milyen feltételek mellett működik? (4) hajtsd végre a szövegesen megadott algoritmust! (5) találd ki a feladatot megoldó algoritmust és hajtsd végre! stb.
- A második fordulóban 3-7 kisebb, konstruáló, szintetizáló jellegű feladatot kell megoldani számítógépen. A versenyzőknek a feladatot megoldó program forráskódját kell elkészíteniük és beadniuk egy automatikus, online értékelő rendszerben. Csak a futási eredményt értékeljük, nem pedig a megírt program szövegét.
- A harmadik fordulóban a második fordulóhoz hasonlóan 3-7 nagyobb, esetleg már részben megoldott, konstruáló, szintetizáló jellegű feladatot kell megoldani.
Arra törekszünk, hogy a versenyfeladatok a problémamegoldó, algoritmizáló, modellalkotó, modularizáló készséget mérjék fel. A programozási feladatok megoldásának elkészítéséhez több programnyelv közül választhatnak a versenyzők. A hangsúly nem az egyes nyelvek részleteinek, hanem a módszeres programozás fogalmainak, elveinek és gyakorlatának, a helyes programozási módszereknek és stílusnak géptől és nyelvtől független ismeretén van.
A fordulók lebonyolításával, értékelésével, valamint a rendelkezésre álló szoftvereszközökkel kapcsolatos pontos részletekért nézze meg az aktuális versenyfelhívást!
Elvárt alapvető ismeretek középiskolásoktól:
- Egy Neumann-elvű programozási nyelv elemei. Szintaxisábrák, BNF-jelölés. Strukturált vezérlési szerkezetek: felsorolás (szekvencia), választás (elágazás), ismétlés (ciklus), rekurzió.
- Adattípusok: egész, valós, logikai, karakter, szöveg. Összetett adatok: tömb, halmaz, rekord, lista, verem, sor, fa, gráf, állomány stb. Láncolt ábrázolás.
- Felülről lefelé haladó programozás, lépésenkénti finomítással. Programok élesztése, tesztelése, hatékonysági megfontolások.
- Számábrázolás bináris, oktális, decimális, hexadecimális számrendszerben. Átalakítások, alapműveletek. Fixpontos és lebegőpontos ábrázolás. Pontosság, túlcsordulás.
- Boole-algebrai és matematikai logikai alapismeretek.
- Programozási típusalgoritmusok: rendezések, keresések, megszámolás, összegzés, maximumkiválasztás, kiválogatás, stb.
- Szövegfeldolgozási algoritmusok: tömörítés, keresés.
- Gráfalgoritmusok: gráfbejárás, fabejárás.
- Dinamikus programozás, mohó algoritmusok, kombinatorikai és geometriai algoritmusok.
és általánosiskolásoktól:
- Egy Neumann-elvű programozási nyelv egyszerűbb elemei. Strukturált vezérlési szerkezetek: felsorolás (szekvencia), választás (elágazás), ismétlés (ciklus).
- Adattípusok: egész, valós, logikai, karakter, szöveg. Összetett adat: tömb, halmaz.
- Felülről lefelé haladó programozás lépésenkénti finomítással. Programok élesztése, tesztelése, hatékonysági megfontolások.
- Számábrázolás bináris, decimális számrendszerben. Alapműveletek. Pontosság, túlcsordulás.
- Boole-algebrai és matematikai logikai alapismeretek.
- Programozási típusalgoritmusok: rendezések, keresések, megszámolás, összegzés, maximumkiválasztás, kiválogatás, stb.
A versenyt három korcsoportban hirdetjük meg:
- I. korcsoport: 5-8. osztályosok
- II. korcsoport: 9-10. osztályosok
- III. korcsoport: 11-13. osztályosok
Felhívjuk a figyelmet arra, hogy a 3. korcsoport nem azonos az OKTV Digitális kultúra II. kategóriával! Ebbe a korcsoportba elsősorban az OKTV versenykiírásának nem megfelelő, és az OKTV második fordulójába be nem jutott 11-13. osztályos diákokat várjuk.
A 2. és 3. korcsoport feladatsorai azonosak.
Nevezés
Mindig az aktuális versenyfelhívás szerint.
Ajánlott irodalom
Alapvető számítástechnikai és programozási ismeretek
- Szlávi P., Zsakó L.: Módszeres programozás, MK, Budapest, 1986
- Számítástechnika középfokon, OMIKK, Budapest, 1987
- J. Hvorecky, J. Kelemen: Ötlettől az algoritmusig, TK, Budapest, 1987
- C.H.A. Koster: Programozás felülnézetben, MK, Budapest, 1988
- Gács P., Lovász L.: Algoritmusok, TK, Budapest, 1987
- D.E. Knuth: A számítógép-programozás művészete. 1-3., MK, Budapest, 1987-88
- T.H. Cormen et al.: Algoritmusok. MK, 1997
- Rónyai L., Ivanyos G., Szabó R.: Algoritmusok, TYPOTEX, 1999
Alkalmazások
- Filep L.: Játékelmélet (középiskolai szakköri füzet), TK, Budapest, 1985
- J. Nievergelt, J.C. Ferrar, E.M. Reingold: Matematikai problémák megoldásának számítógépes módszerei, MK, Budapest, 1977
Példatárak
- Programozási feladatok I-II., Kossuth Kiadó, Budapest, 1997
- Programozási versenyfeladatok tára (1985-1994), NJSzT, Budapest, 2002
- Programozási versenyfeladatok tára (1995-1999), NJSzT, Budapest, 2005
- Programozási versenyfeladatok tára (2000-2004), NJSzT, Budapest, 2007
Letoltheto tananyagok, példatárak
Példatárak
- Programozási versenyfeladatok I.
- Programozási versenyfeladatok II.
- Programozási versenyfeladatok III.
- Programozási versenyfeladatok IV.
- Programozási versenyfeladatok V.
C#
Versenybizottságok
Regionális versenybizottságok:
A Regionális Versenybizottságok (RVB) az első és második fordulók szervezésében, lebonyolításában és értékelésében vesznek részt. Minden megyében - Budapestet is beleértve - több RVB is lehet, a második forduló után közös regionális eredményt hirdetnek. Ha egy településen két vagy több iskola is fogad versenyzőket a regionális fordulóban, megoszthatják egymás között a versenyzőket (a) terület, (b) korcsoport szerint is.
Országos Versenybizottság:
Az Országos Versenybizottság (OVB) a verseny központi szervezési feladatait, az egyes fordulók koordinálását, a feladatsorok összeállítását és az automatikus értékelő rendszer üzemeltetését végzi.
Az OVB részt vesz további, az NJSzT hatáskörébe tartozó nemzetközi versenyek előkészítésében, olimpiai válogatóversenyek szervezésében és lebonyolításában.
E-cím: nemes_prog@inf.elte.hu
Tagok és elérhetőségek:
- NJSzT OVB
1364 Budapest, Pf. 201.
Tel.: (1) 472-2720, Fax: (1) 472-2728
Titkárság: titkarsag@njszt.hu - Dr. Németh Zsolt
ELTE IK Numerikus Analízis Tanszék - Erdősné Dr. Németh Ágnes
ELTE IK Média- és Oktatásinformatikai Tanszék - Dr. Horváth Gyula
ELTE IK Média- és Oktatásinformatikai Tanszék - Pőcze Barnabás, Nikházy László: verseny kiértékelő szoftver üzemeltetése