A programozás az ágazati informatika alapvizsga egyik legfontosabb gyakorlati területe. A vizsgázónak Python nyelven kell megoldania három, egymástól független, fokozatosan nehezedő részfeladatot. Nemcsak a helyes végeredmény számít: a megírt forráskódot is be kell adni, és pontot érhet egy részben működő, de szakmailag helyes megoldás is.
A programozási alapokkal minden informatikai és távközlési ágazatban tanuló diáknak foglalkoznia kell, tehát ez a tudás nem kizárólag a szoftverfejlesztő és -tesztelő szakhoz tartozik. Az ágazati alapvizsga követelményei az ágazat szakmáin egységesek, így a Python-programozási feladatra más informatikai szakokon is készülni kell.
Hol jelenik meg a programozás az ágazati alapvizsgán?
A programozás elsősorban a gyakorlati vizsgatevékenységben jelenik meg, annak egyik önálló feladataként. A gyakorlati vizsga három, egyenként 40 pontos feladatból áll:
| Gyakorlati feladat | Pontszám |
| Weboldalak kódolása | 40 pont |
| Programozás Pythonban | 40 pont |
| Otthoni és kisvállalati hálózatok kialakítása | 40 pont |
A teljes gyakorlati vizsga 180 perces. A hivatalos követelmény mindhárom feladatra 60–60–60 percet javasol, de a vizsgázó a rendelkezésére álló időt maga oszthatja be. A gyakorlati vizsgatevékenység akkor eredményes, ha a vizsgázó a teljes 120 pontból legalább 48 pontot, vagyis 40 százalékot elér.
Fontos: a 40 százalékos határ a gyakorlati vizsgatevékenység egészére vonatkozik, nem külön-külön minden feladatra. Ettől függetlenül nem érdemes egyetlen területet sem kihagyni, mert a Python-feladattal a gyakorlati pontok egyharmada szerezhető meg.
Lesznek programozási kérdések az interaktív vizsgán?
A jelenlegi követelmény az interaktív teszt önálló témakörei között nem nevez meg külön Python-programozási kérdéscsoportot. Az interaktív részben ugyanakkor szerepelhetnek például verziókezeléssel, Git használatával, csoportmunkával és projektmenedzsmenttel kapcsolatos kérdések. Ezek a szoftverfejlesztéshez is kapcsolódó ismeretek, de nem azonosak a Python-programozási gyakorlati feladattal.
A Python-tudást ezért főként működő program elkészítésével kell bizonyítani. A felkészülés során a gyakorlati kódolásra érdemes helyezni a hangsúlyt.
Hogyan épül fel a Python-feladat?
A feladat három, egymástól függetlenül is megoldható részfeladatból áll. Ezek fokozatosan nehezednek, ezért akkor is érdemes elkezdeni a következő részt, ha egy korábbi megoldás nem lett tökéletes.
| Részfeladat | Pontszám | Jellemző |
| 1. részfeladat | 8 pont | A legegyszerűbb, rövid idő alatt megoldható rész. |
| 2. részfeladat | 14 pont | Közepes nehézségű, több programozási eszközt összekapcsoló feladat. |
| 3. részfeladat | 18 pont | A legösszetettebb rész, amely alaposabb tervezést és önálló megoldást kíván. |
Előfordulhat, hogy egy teljes alkalmazást kell önállóan elkészíteni, de az is lehetséges, hogy egy megadott, hiányos programkódot kell kiegészíteni vagy módosítani. A kódrészletek értelmezése ezért ugyanolyan fontos, mint az üres fájlból történő programírás.
Milyen programozási tudást mérhetnek?
A hivatalos vizsgakövetelmény alapján a feladat az alábbi készségeket mérheti:
- önálló alkalmazás készítése Python nyelven;
- meglévő program kiegészítése vagy módosítása saját kóddal;
- összetett kifejezések használata aritmetikai, relációs és logikai operátorokkal;
- saját függvény definiálása és meghívása, paraméterek és visszatérési érték alkalmazása;
- modulok használata;
- saját osztály létrehozása, valamint saját vagy megadott osztály példányosítása;
- adatok beolvasása szöveges fájlból;
- a beolvasott adatok tárolása egyszerű vagy összetett adatszerkezetben;
- adatok kiírása szöveges fájlba;
- egyszerű algoritmusok programozása.
Változók, adattípusok, be- és kimenet
Biztos alapokra van szükség a változók, az értékadás és az alapvető adattípusok használatában. Tudni kell számokkal, szövegekkel és logikai értékekkel dolgozni, valamint szükség esetén adattípust konvertálni.
A feladatban gyakori lehet:
- adat bekérése az
input()függvénnyel; - eredmény megjelenítése a
print()használatával; - egész és valós számok közötti átalakítás;
- szövegek összeállítása és formázása;
- beszédes változónevek és áttekinthető programkód használata.
Operátorok, elágazások és ciklusok
A vizsgázónak képesnek kell lennie összetett feltételek megfogalmazására. Ehhez ismerni kell az aritmetikai műveleteket, az összehasonlító operátorokat, valamint az and, or és not logikai műveleteket.
Az algoritmusok megvalósításához magabiztosan kell használni:
- az
if,eliféselseelágazásokat; - a
foréswhileciklusokat; - a
range()függvényt; - az egymásba ágyazott vezérlési szerkezeteket;
- a ciklusok és feltételek együttes alkalmazását.
Listák, szövegek és összetett adatszerkezetek
A beolvasott adatokat rendszerint valamilyen adatszerkezetben kell eltárolni. Ez lehet egyszerű lista, szótár, tuple, egymásba ágyazott adatszerkezet vagy objektumokból álló gyűjtemény.
Érdemes gyakorolni a listaelemek elérését, módosítását, bejárását és szeletelését, továbbá a szövegek feldarabolását és összefűzését. Egy fájl sorainak feldolgozásakor gyakran kell a sorvégi karaktereket eltávolítani, az adatokat elválasztó karakter mentén felbontani, majd a számként használt értékeket átalakítani.
Egyszerű algoritmusok
A „programozási tétel” elnevezés nem feltétlenül szerepel majd a feladatszövegben, a megoldáshoz azonban tipikusan ilyen gondolkodási mintákra lesz szükség. Gyakorláskor érdemes saját kóddal megoldani például az alábbiakat:
- összegzés és átlagszámítás;
- minimum vagy maximum kiválasztása;
- adott feltételnek megfelelő elemek megszámlálása;
- annak eldöntése, hogy létezik-e megfelelő elem;
- adatok kiválogatása egy új gyűjteménybe;
- egy keresett adat és a hozzá tartozó információ megtalálása.
Függvények és modulok
A vizsgakövetelmény külön is nevesíti a saját függvény készítését. Tudni kell paramétert átadni, visszatérési értéket létrehozni, majd a függvényt a program megfelelő részén meghívni. Fontos megérteni a különbséget egy eredmény visszaadása és egyszerű kiírása között.
A programozási tananyag a modulok használatára is kitér. A vizsgázónak fel kell ismernie, hogyan importálható egy modul vagy annak egy eleme, és hogyan használható fel a programban. A tananyagban többek között a math, a random és a platform modul is megjelenik, a konkrét vizsgafeladat azonban mindig a kiadott feladatleíráshoz igazodik.
Osztályok és objektumok
A Python-feladat objektumorientált alapismereteket is kérhet. A vizsgázónak képesnek kell lennie egyszerű saját osztályt létrehozni, abból objektumot példányosítani, illetve egy előre megadott osztályt használni.
Gyakorlásként célszerű olyan osztályokat készíteni, amelyek egy-egy beolvasott rekord adatait tárolják. Ilyen lehet például egy versenyző, egy mérési eredmény, egy eszköz vagy egy hálózati esemény adatait leíró objektum.
Szöveges fájlok kezelése
A fájlkezelés a hivatalosan megnevezett vizsgakövetelmények közé tartozik. Tudni kell szöveges fájlt megnyitni, annak tartalmát soronként vagy egyben beolvasni, az adatokat feldolgozni, majd szükség esetén eredményfájlt készíteni.
A felkészülés során különösen ezeket érdemes gyakorolni:
- a fájl biztonságos megnyitása
with open(...)szerkezettel; - a fejléc vagy az üres sorok kezelése;
- a sorok felbontása megadott elválasztó karakter alapján;
- a beolvasott szövegek számmá alakítása;
- az adatok listában, szótárban vagy objektumokban tárolása;
- a kiszámított eredmények szöveges fájlba írása.
A forráskód beadása nélkül nincs értékelhető megoldás
A hivatalos követelmény szerint egy részfeladat csak akkor értékelhető, ha a megoldás forráskódfájlja vagy forráskódfájljai megtalálhatók a beadott állományok között. Nem elegendő tehát, ha a program korábban lefutott, vagy csak az általa készített kimeneti fájl maradt meg.
Vizsga közben rendszeresen menteni kell, a fájlneveket és a mentési helyet pedig pontosan a feladatleírás szerint kell megválasztani. A végén külön ellenőrizni kell, hogy minden szükséges .py fájl bekerült-e a kijelölt vizsgakönyvtárba.
Részben működő programért is járhat pont
Egy futási hibát tartalmazó vagy csak részben helyes programot is értékelni kell. Ha egy pontozott programelemhez tartozó kódrészlet hibátlan, arra részpont adható akkor is, ha a teljes alkalmazás más hiba miatt nem fut végig.
Ezért vizsgahelyzetben sem érdemes törölni egy megkezdett megoldást. Ha egy nehezebb rész nem készül el, maradjon a fájlban a biztosan helyes beolvasás, függvény, ciklus, feltétel vagy számítás. A kód legyen szintaktikailag a lehető legrendezettebb, és lehetőség szerint az egyes részek külön is legyenek kipróbálva.
Milyen gyakorlófeladatokkal érdemes készülni?
- Olvass be egy fájlból neveket és pontszámokat, majd számíts átlagot, minimumot és maximumot.
- Számold meg, hány rekord felel meg egy összetett feltételnek, és írd ki ezeket új fájlba.
- Készíts saját függvényt egy gyakran ismétlődő számításhoz, paraméterrel és visszatérési értékkel.
- Hozz létre egy egyszerű osztályt a fájlból beolvasott rekordok tárolására.
- Egészíts ki hiányzó sorokkal egy megadott programot, majd keresd meg és javítsd a hibáit.
- Oldj meg három különálló részfeladatot legfeljebb 60 perc alatt, majd ellenőrizd a beadandó fájlokat.
Felkészülési stratégia a vizsgára
A hatékony készüléshez nem elegendő a mintakódok olvasása: rendszeresen kell önállóan programot írni. Először a rövid, egyetlen algoritmusra épülő feladatokat érdemes begyakorolni, majd ezekből lehet összetettebb, fájlkezelést, függvényeket és osztályokat is használó alkalmazásokat építeni.
Vizsgán célszerű először mindhárom részfeladatot áttekinteni, majd megszerezni a könnyebb rész biztos pontjait. Ezután lehet továbblépni a közepes és a nehezebb feladatra. Közben rendszeresen futtatni és menteni kell a programot, a végén pedig a forrásfájlok meglétét is ellenőrizni kell.