Programozás I.
levelezõ tagozat
Vizsga információk
A vizsgázás feltételei
- Felhívom a figyelmet arra, hogy a TVSZ értelmében
vizsgázni csak
leckekönyv vagy teljesítéslap, illetve
fényképes személyazonosításra alkalmas
igazolvány birtokában lehet.
- Figyeljenek arra, hogy az irataikat
ne hagyják nálam!
Mit kell tudni?
- Érteni és tudni kell használni mindazt, ami a
home.inf.u-szeged.hu gépen a pub/Programozas-I/levelezo/
könyvtárban és alkönyvtáraiban el van helyezve,
továbbá a gyakorlatokon megbeszélt anyagot
(esetleges házi feladatokkal együtt).
Ezeken kívül semmi mást nem kérek számon.
- Ami a metódusokat illeti:
- Segédanyag nélkül tudni kell mindazt, ami
az előadásokon és gyakorlatokon megoldott feladatokban
szerepelt.
- Az előadásokban elmondott, de példákban
nem használt, ugyanakkor a vizsgafeladat megoldásához szükséges
metódusok neve segítségül meg lesz adva,
de tudni kell, hogy mire és hogyan használjuk.
- Az előadásokban nem előforduló metódusokra
valószínűleg nem lesz szükség, ha mégis, akkor teljes
leírásuk meg lesz adva.
Segédanyagok használata
- A vizsga írásbeli. Fontos, hogy legyen mindenkinél kék
színű írószer és ASCII vagy Unicode kódtábla (csak olyan
kódokra lehet szükség, amelyekben a kettő megegyezik).
- Nem használható semmilyen elektronikus segédeszköz
(laptop, számológép, mobiltelefon stb.).
Feladattípusok
- Teszt. Elérhető 40 pont.
- A vizsgát ezzel a feladattal kezdjük.
- A feladat 20 kérdést (80 kijelentést vagy lehetséges
választ) fog tartalmazni, erre 40 perc fog rendelkezésre
állni.
- Minden kérdésnél négy válasz (vagy kijelentés) lesz megadva,
ezek között nulla vagy több (egy sem vagy akár mindegyik)
is lehet helyes.
- Ha a vizsgázó adott válasszal pontot szeretne szerezni,
akkor nyilatkoznia kell annak igaz vagy hamis
voltáról, ugyanis ha nem nyilatkozik, az 0 pontot ér.
- Ha a vizsgázó helyes választ helyesnak nyilvánít,
az 0.5 pontot ér.
- Ha a vizsgázó helytelen választ helytelennek
nyilvánít, az is 0.5 pontot ér.
- Ha a vizsgázó helyes választ helytelennek, vagy
helytelen választ helyesnek nyilvánít, az
- 0.5 pontot ér (tehát pontlevonást jelent).
Ez nem lottó, a vizsgázó akkor válaszoljon, ha
biztosan tudja.
- A negatív pontokkal egyszerűen arról van szó,
hogy egy rossz válasz semlegesít egy jó
választ. Ha netalán több lenne a rossz válasz,
akkor a feladat nem ér pontot - de a többi
feladat pontszámát nem csökkenti.
- Egy adott kérdés négy (a,b,c,d) válaszainak pontozása
egymástól független, tehát egy négy kijelentéses
(válaszos) kérdésre lehet pl. 0.5 vagy -1.5 pontot is kapni.
- A válaszlapon csak kék színű tollal szabad bekarikázásokat
végezni. Minden más színű, vagy nem egyértelmű jelölés
pontlevonást
(darabonként -0.5 pontot) jelent.
A válaszlap másik üres oldala piszkozatként használható,
azt nem fogom javítani.
A kérdések későbbi azonosíthatóságának érdekében a
válaszlappal együtt a kérdéssort is le kell adni.
- Ha a vizsgázó valamely választ mégis rosszul
karikázta be, azt úgy javíthatja, hogy a
karikázott cellát teljesen besatírozza,
és az adott sor mellett bal oldalon a helyes
választ pl. 3c+ formában feltűnteti.
- Ha a vizsgázó úgy gondolja, hogy valamelyik kérdés
(vagy az arra adott válaszok valamelyike) nem egyértelmű
és ezt írásban alaposan indokolja, akkor arra
plusz vagy mínusz pontokat kaphat. A kapott pontok
mennyisége attól függ, hogy az indoklás mennyi tárgyi tudást
szükségeltet vagy tudatlanságot tükröz
(helyes indoklás esetén minimum a kérdés pontszáma,
azaz 0.5 pont, de ennél sokkal több is lehet).
Az indoklásra kapott pontszám a teszt pontszámával
összegződik. Ezt az indoklást a vizsgázó egy külön lapon,
a teljes vizsgájának végén (tehát a 2. és 3. feladatok
beadása után), teheti meg. Ezzel a hallgató a saját
vizsgaidejét maximum 10 perccel hosszabbíthatja meg.
A kérdéssort (válaszlap nélkül) a hallgató az
észrevételezés idejére megkaphatja. Nagyon fontos, hogy
az észrevételező lapon a hallgató tüntesse fel a
kérdéssor azonosítóját.
- Néhány példa kérdés.
- Válaszlap
- A 2.a. és 2.b. típusú feladatok valamelyike vagy mindkettő
(bonyolultságuktól függően). Összesen elérhető 30 pont.
2.a. Hibák megtalálása adott programban
- Kizárólag olyan hibákat kell keresni, melyek
a program fordítása vagy futása közbeni hibajelzést
vagy a program lefagyását idézik elő. Jelen feladatnál
semmi mást nem tekintünk hibának!
- Fordítási megjegyzés, javaslat (warning, note) nem számít
hibának, ha a program futtatható és nem áll le hibajelzéssel.
- A programnak kizárólag az a célja, hogy
a fenti hibák felismerését mérje,
semmi más logikát
nem kell keresni abban, amit a program
csinálni szeretne. Ennél a feladatnál olyan hibákat nem veszünk
figyelembe, mint pl.:
- a program mást csinál, mint amit az osztályok
nevei sugallnak,
- a kiírás nem fér ki a képernyőre,
- használatlan változók vannak deklarálva,
- felesleges számításokat végez
- stb.
Egyrészt az ilyen típusú hibák jelen formában nem
kérhetők számon úgy, hogy a hiba fogalom definiálása
egyértelmű legyen, másrészt tervezési szempontokkal
más tárgyakban bővebben fognak foglalkozni. Tehát az
egyértelműség kedvéért hiba az, ami hibajelzést ad,
vagy megakadályozza a program normális működését
(annak lefagyását vagy hibejelzéssel történő
leállását idézi elő).
- A program hibás sorait meg kell számozni és az erre
kijelölt helyen, a számozások segítségével, magyarázni
kell a hiba okát.
- Egy hiba, illetve annak javítása csak akkor ér pontot, ha
helyesen indokolva lett a hiba oka amit javít,
illetve a hiba javítása megfelelő.
- Amennyiben egy hiba további hibákat is generál,
teljes pontszámhoz az alaphibát kell megkeresni és
kijavítani (ezek egy hibának lesznek tekintve).
Pl. ha egy változó helytelenül lett deklarálva,
akkor minden sor hibás lenne, ahol ezt használjuk,
de javítani természetesen a változó deklarációját kell.
- A hibákat az eredeti programban kell megkeresni és
minden hiba javítását azután egymástól függetlenül kell
elvégezni. A hiba javítása olyan kell legyen, hogy ne
befolyásolja a talált hibától független többi hibát, vagyis
minden hiba javítása külön kell megtörténjen (természetesen
ez lehetséges lesz). Ennek megfelelően egy hibajavítás csak
egy hibához számít be, még akkor is, ha a vizsgázó olyan
javítást ad meg, ami egyszerre több hibát javít, ezért
az utóbbi megoldás kerülendő.
Tehát pl. egy teljes programrész újraírása nem célszerű.
- Egy hiba javítása nem hozhat létre újabb hibákat.
- A programban csak a minimális szükséges változtatásokat
szabad elvégezni és a további hibákat így kell keresni.
Pl. ha egy programsorban valamelyik változóra
helytelenül hivatkozunk, akkor a hiba megjelölésével
javítjuk a hivatkozást és nem a teljes sort töröljük.
- Olyan hiba is lehet, hogy a programból hiányzik valami.
Ekkor a hiányzó részt pótolni kell. Ez jellemzően néhány
karakter, de nem lehet több 2-3 programsornál.
- Téves hibajelzés vagy rossz indoklás esetenként egy hiba
megtalálásnak megfelelő pontlevonást eredményez.
Ez azért van, hogy ne lehessen azt megtenni, hogy
minden (gyanús) sor végére hibajelzést írunk, aztán
valamelyiknek már csak hibásnak is kell lennie.
Bizonyos esetekben a pontlevonástól eltekintek
(jellemzően pl. ha a hibajelzés és indoklása egyébként
korrekt, csak más típusú hiba, mint amit fentebb hibának
definiáltunk).
Tehát, hogyha valaki biztos benne, hogy hibát talált, csak
abban nem, hogy ez most annak számít-e, korrekt indoklással
nyugodtan leírhatja, csak a tipplelés, illetve a
tudatlanságot tükröző indoklás lesz büntetve.
- Fel nem derített hiba: 0 pont
- Egy példa feladat.
2.b. Mit ír ki a program ?
- Ebbe a kategóriába tartoznak az olyan jellegű
kérdések is, mint például:
- Milyen bemenetek esetén írja ki
a program azt, hogy ... ?
- Soroljuk fel azokat a programban található változókat,
melyek a C osztályban hivatkozhatók!
- A választ nem kell indokolni, viszont egyértelműen
kiemelve, pontosan és olvashatóan kell megadni
(pl. "A program azt írja ki, hogy: ..." formában).
Nem fogom keresni több eredmény között, hogy a vizsgázó
vajon mit szánt válasznak!
- Ennél a feladatnál nincs negatív pont.
- Egy példa feladat.
- Program írása. Elérhető 30 pont.
- Az előadásokon és gyakorlatokon megbeszéltekhez hasonló nehézségű programot
kell írni.
- A feladatok jellegben, időkorlátban és pontozásban teljesen
függetlenek egymástól. Ez azt is jelenti, hogy egyik feladat sem befolyásolja a többi feladatra kapott pontszámot,
azaz ha valamelyik feladatra valaki negetív összpontszámot
kapna (ilyen nagyon ritkán történt meg),
akkor az 0 pontnak számít.