Programozási alapismeretek gyakorlat
Nappali tagozat
2019/2020 I. félév
Alapadatok
-
A tantárgy kódja: IBN850L
-
Kreditérték: 2.
-
Heti óraszám: 2 .
-
A tantárgy típusa és értékelés módja: laboratóriumi gyakorlat, gyakorlati jegy.
-
Tantárgyfelelős:
Dr. Holló Csaba, egyetemi adjunktus,
Szoftverfejlesztés Tanszék.
-
Oktatók:
Tematika
-
A C programozási nyelv alapjai.
A DevCpp konfigurálás, fordítás,
hibakeresés.
A C nyelv alapvető típusai (int, float, double,
char), alapvető műveletei (+,-,*,/,%, i++).
Bevitel (scanf) és kivitel (printf).
Változó. Az előfordító, #include, #define.
-
Egy és több dimenziós tömbök,
sztringek és karaktertömbök használata.
-
Struktúrák és struktúra tömbök használata.
-
Alapvető fájlkezelés: fprintf, fscanf.
Programok közötti adatcsere fájlok
használatával.
-
Alapvető szelekciós és ismétléses vezérlések
(if-else, for, while, do-while), megvalósítás
C-ben.
-
Függvények és eljárások.
Paraméterátadás (érték és cím szerinti).
Mutatók.
Tömbök, struktúrák átadása paraméterként.
A -> művelet.
Blokkstruktúra.
Globális, lokális és statikus változók.
-
Alapvető probléma-megoldási módszerek:
sorozatszámítás (összeg, szorzat, logikai
műveletek, számlálás), keresés, eldöntés,
kiválasztás, válogatás, rendezés, rekurzió.
Rekurzív és iteratív képletek számolása.
Ajánlott irodalom
-
Juhász István, Kósa Márk, Pánovics János, Édelkraut Róbert:
C példatár
- Márton Gyöngyvér, Sapientia
Megoldott programozási feladatok standard C-ben
-
C programnyelv kezdő programozóknak
-
C programozás középiskolásoknak
-
C programming Solved Programs/Examples with Solutions
-
Learn C - Interactive C Tutorial
- Pohl László, BMGE
A programozás alapjai
-
Dr. Schuster György:
C programozási nyelv
- Burián Ágnes, BMF:
A C programozási nyelv
-
Kochan, Stephen G., Programfejlesztés C nyelven :
átfogó bevezetés a C programozási nyelvbe, Budapest,
Kiskapu Kft., 2008, 550 oldal, ISBN: 9639637450
-
Andrew Koenig, C csapdák és buktatók, Kiskapu Kft. 2005,
208 oldal, ISBN: 9789639301900
-
Herbert, Schildt, C/C++ Referenciakönyv, Panem, 1998.
A kurzus felvételének feltétele
-
Az
IBN850E Programozási alapismeretek előadás párhuzamos felvétele.
A foglalkozásokon való részvétel követelményei
és a távolmaradás pótlásának lehetősége
-
A gyakorlatok látogatása kötelező.
Hiányozni annyit lehet, ami még lehetővé teszi a
szükséges pontszámok elérését, azonban a foglalkozásokon
(előadás, gyakorlat) elhangzottakat ismerteknek tekintjük
és a hallgató semmilyen célból nem hivatkozhat
arra, hogy hiányzása következtében ezekről nem
szerzett tudomást. Igazolás nem szükséges,
pótlás nem lehetséges.
A félévközi ellenőrzések
(beszámolók, zárthelyik) száma,
témaköre és időpontja, pótlásuk
és javításuk lehetősége
-
A korábbi (előző félévekben kifejtett) gyakorlati teljesítmény
nem vehető figyelembe, ezért az aktuális félév gyakorlati
kötelezettségeinek teljesítése alól sem mentesít.
-
Zárthelyi dolgozatok a következő
témakörökben, pontozással és ütemezéssel:
-
Minden zárthelyi dolgozatban:
-
Amennyiben a program nem jól szervezett,
algoritmikusan megfelelően kialakított,
és/vagy nem pontosan azt csinálja,
amit a feladat kér, az eltérés mértékétől
függően a ZH-ban gyűjthető pontszám a
gyakorlatvezető megítélése szerint
tetszőlegesen csökkenthető akár
0 pontig.
-
Átlátható (jól tabulált, függvények)
program készítése:1 pont / ZH.
-
Hibajavítás, szintaktikailag hibátlan
program készítése: 3 pont / ZH.
-
Alapvető szelekciók és ciklusok
megfelelő használata (mikor melyiket
és hogyan kell használni):
if-else: 2 pont, for: 3 pont, while: 2 pont,
do-while: 2 pont, tehát
összessen 9 pont,
zárthelyi dolgozatonként legalább az egyik
részismeret ellenőrzése megtörténik.
-
1. ZH (5. hét: szept. 30. – okt. 3.):
-
Adatok felhasználótól történő bekérése,
illetve kiíratása: 2 pont
-
Egy és több dimenziós tömbök
használata: 4 pont
-
Sztringek beolvasása és eltárolása:
2 pont.
-
Műveletek sztringekkel: 1 pont.
-
Több sztring tárolása egy
többdimenziós tömbben:
2 pont.
-
Struktúrák használata: 3 pont
-
Adatok tárolása struktúra
tömbökben: 2 pont.
-
Megfelelő adatszerkezetek kialakítása
tömbökkel és struktúrákkal: 1 pont.
-
Fájlkezelés használata adatok
tárolására (kiírás + beolvasás): 5 pont
-
Függvénykönyvtárak használata: 1 pont.
-
Összeg. Szorzat. Logikai műveletek.
Számlálás. Átlag.: 3 pont
-
Lineáris keresés. Eldöntés.
Kiválasztás, maximum.: 4 pont
-
2. ZH (7. hét: okt. 14. – 17.)
-
Függvények használata érték szerinti
paraméterátadással: 7 pont.
-
Paraméterként átadott tömb
módosítása: 3 pont.
-
Struktúra átadása függvény
paramétereként: 3 pont.
-
Cím szerinti paraméterátadás
használata (nem tömb): 4 pont.
-
Globális, lokális és statikus változók
megfelelő használata: 3 pont.
-
3. ZH (10. hét: nov. 4. – 7.)
-
Képletek számolása.: 7 pont
-
Rekurzió a képletek számolásában.: 3 pont
-
Szétválogatás. Kiválogatás.: 5 pont
-
4. ZH (12.-13. hét: nov. 18. hétfő,
nov. 20 szerda,
november 28. csütörtök)
-
Metszet. Unió.
Összefuttatás (rendezett sorozatok
uniója).: 7 pont
-
Rendezés: 3 pont.
-
Zárthelyi dolgozatokban nem számonkért,
de indokolt esetkben hsználható és
plusz pontot érő ismeretek:
-
Esetkiválasztásos szelekció
(switch-case) használata: 2 pont.
-
Dinamikus memóriafoglalás és
felszabadítás: 2 pont.
-
Hatékony (dinamikus) adatszerkezetek
(pl. láncok, fák) használata: 4 pont.
-
Rekurzió, mint feladatmegoldási
módszer: 3 pont.
-
További programozási ismeretek: az
ismeretektől függően legfeljebb 3 pont.
-
Az összpontszám kiszámításához
nem a zárthelyi dolgozatokban elért
pontok adódnak össze, hanem az egyes
ismeretekre szerzett pontok.
A fokozatosan egyre bonyolultabb
feladatok jellegéből következően
bizonyos ismeretek több ZH-ban is
előfordulhatnak, ebben az esetben az
ilyen ismeretre nem jár plusz pont,
de helyes használata növelheti az adott
ismeretre előzőleg szerzett
részpontszámot.
-
Az ZH-k a félév végi Javító/Pót ZH
keretében javíthatók, pótolhatók.
További javítás, pótlás nem lehetséges.
-
Javító/Pót ZH
-
Megírható a szorgalmi időszak 14. hetén
(dec. 2. – 5.)
-
Tartalmazni fog a fenti pontozás szerint
legalább 90 pontnak megfelelő kötelező
ismeretet.
-
Az egyes ismeretekre előzőleg kapott
pontszámokat nem csökkenti, mélyebb
ismeret bizonyítása esetén növeli.
-
Gyakorlati tevékenyég
-
A gyakorlaton való részvételre, és a
feladatok másolgatására önmagában
nem jár pont.
-
Hogyha a hallgató bizonyítja a
gyakorlatvezetőnek valamely fenti
ismeret megfelelő mélységű
elsajátítását (pl. jó kérdés, megjegyzés,
feladatmegoldás során egyedi ötlet stb.
által), akkor jár annak az ismeretnek a
ZH pontszáma (azaz, hogyha a ZH-ban
elrontja, ez a pontszám akkor is meglesz).
-
A gyakorlaton önállóan megoldandó
feladatok számától, nehézségétől és
a megoldások önállóságának
valószínűségétől függően a hallgató
gyakorlatonként legfeljebb 2 pontot
kaphat.
Ebből arra, hogy a hallgató önállóan
igyekszik megoldani a feladatokat
(még ha az nem is sikerül) 0.5 pont jár,
további pontokat önálló megoldásokra
kaphat.
-
A hallgató gyakorlatokon kifejtett
elvárhatón felüli igyekezetére és olyan
kivételesen jó meglátásaira, ötleteire
(melyek akár kérdésben is
megfogalmazódhatnak), melyekre az
ismeretek táblázatában nem adható pont,
a gyakorlatvezető gyakorlatonként
további 1-2 plusz pontot adhat.
-
Projekt munka
-
A projekt munka készítése opcionális,
ugyanakkor nagyon ajánlott, és
esetlegesen javíthatja az egyes
ismeretekre a ZH-kban szerzett
pontszámokat.
-
A projekt munkát - kivételes esetektől
eltekintve - ugyanabba a gyakorlati
csoportba tartozó hallgatókból álló
4 fős csapatokban lehet elkészíteni.
Minden csapatban kell lennie egy
csapatvezetőnek, aki a projekttel
kapcsolatos szervezési feladatokért
(pl. a projekt leadásáért) felel.
-
A projekt munka egy vagy több
C vagy JavaScript programból állhat,
mely(ek)nek témáját a hallgatók találják
ki, annak figyelembe vételével, hogy
abban csak a ZH-ban is pontozható
ismeretek lesznek értékelve, előre
közzétett pontozás szerint.
-
A projekthez készíteni kell egy leírást,
amiből kiderül, hogy mi a feladat,
a programo(ka)t hogyan kell használni,
és a résztvevők közül ki melyik rész
elkészítésében vett részt olyan szinten,
hogy azt teljes mértékben ismeri. Ez
fogja képezni a pontozás alapját.
-
Beadási határidő: a 13. héten (nov. 25. – 28.)
a hallgató gyakorlatának napján,
23 óra 55 percig a CooSpace-ben erre
a célra létrehozott Feladat eszközben.
Mivel nincsenek kötelező elvárások,
ezért javítási lehetőség sincs.
-
A hallgató csak akkor kap pontot a
projekt leírásában általa ismertnek
deklarált részére, ha azt megvédi.
A védés a 13. vagy 14. héten,
a gyakorlati csoporttal megbeszélt
és a CooSpace-ben előre kihirdetett
időpontban történik.
A projekt védés azt a célt szolgálja,
hogy a gyakorlatvezető meggyőződjön
arról, hogy a hallgató a projekt általa
ismertnek deklarált részét ismeri,
így a védésre külön pont nem jár.
A védés során az oktató a projekt
megfelelő részének tartalmával és
az annak megvalósításához szükséges
ismeretekkel kapcsolatban kérdéseket
tehet fel, illetve annak olyan helyben
történő módosítását kérheti, melyhez
a projekt adott részének elkészítéséhez
szükséges ismeretek és készségek
használatára van szükség. Amennyiben
a hallgató ezekre a kérdésekre nem tud
válaszolni, vagy a kért módosításokat
nem tudja elvégezni, ez annak bizonyítékául
szolgál, hogy a projekt adott részét a
hallgató nem teljes mértékben ismeri,
akkor a védés sikertelen, csalásnak
pótlása nincs, a hallgató a projektre
nem kap pontot.
Tehát, bemutatót készíteni nem kell,
de készülni kell, mert az oktató olyan
kifogást nem fogadhat el, hogy valaki
a projekt megírása óta annak
tartalmát, vagy az ahhoz szükséges
ismereteket elfelejtette.
-
Mivel a védés során nem ellenőrizhető,
hogy a feladat megoldásának logikáját a
hallgató találta-e ki,
ezért a projektben csak a Programozási
eszközök kategóriába tartozó ismeretek
lesznek pontozva, a fenti pontozásnál
jelentősen kisebb pontszámokkal.
Amennyiben a védésen a
gyakorlatvezetőnek lehetősége lesz
valamely ismereteket az átlagosnál
mélyebben is kikérdezni (például azért,
mert az ismeretek egy részének
elsajátítását a hallgató a ZH-kban már
bizonyította), akkor azokra az ismeretekre
akár több, legfeljebb az adott ismereteknél
fentebb meghatározott pontszámot is adhat.
A kurzus teljesítésének feltétele:
-
a fenti ZH-kban számonkért ismeretekből
a Programozási eszközök ismerete
témakörből legalább 34 pont elérése, ÉS
-
a fenti ZH-kban számonkért ismeretekből
az Alapvető probléma-megoldási módszerek
témakörből legalább 16 pont elérése.
-
Tehát a fenti ZH-kban számonkért
ismereteken kívüli gyakorlati
tevékenységekre kapott pontok nem
számítanak bele a minimum pontokba.
Az osztályzat kialakításának módja
-
Összegzésre kerülnek az egyes
részismeretekből szerzett pontrszámok és
a gyakorlati tevékenységből származó
plusz pontok.
-
Az osztályzat kiszámítása:
-
50-64 pont: elégséges (2),
-
65-79 pont: közepes (3),
-
80-89 pont: jó (4),
-
90-111 pont: jeles (5).
További tudnivalók
-
A számonkéréseken a hallgató köteles személyazonosságát
igazolni. Amennyiben a diákigazolványban található fénykép
alapján nem azonosítható egyértelműen, úgy köteles más
érvényes fényképes igazolvánnyal is azonosítani magát.
-
A számonkérések során semmilyen segédlet nem használható.