Programozási alapismeretek A+B. szeminárium
Levelező tagozat
2023/2024 I. félév
Alapadatok
-
A tantárgy kódja: ITLA2502ABsz.
-
Kreditérték: 1.
-
Féléves óraszám: 6.
-
A tantárgy típusa és értékelés módja: szeminárium, gyakorlati jegy.
-
Tantárgyfelelős és oktató:
Dr. Holló Csaba, egyetemi adjunktus,
Szoftverfejlesztés Tanszék.
A kurzus célja
-
A hallgató segítése a Programozási alapismeretek A. és
Programozási alapismeretek B. kurzusok tananyagának
megértésében.
-
A Programozási alapismeretek A. és B. kurzusok
tananyagának elmélyítése és kiegészítése
annak jobb megértése céljából.
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.
-
A számítógép működésének alapjai.
Értékek memóriabeli tárolásának alapjai
(példa: egész értékek tárolása).
Adattípusok. A C nyelv elemi adattípusai.
A programkódba beírt értékek jelölése és tárolása.
-
További műveletek.
Signed és unsigned összehasonlítása.
Feltételes művelet. Inkrementáló műveletek.
Értékadó műveletek és kifejezések.
Szintaxisdiagram. Kifejezések kiértékelése
(prioritás, asszociativitás).
-
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ő vezérlések
C-ben.
Egyszerű és többszörös szelekciós vezérlések.
Kezdőfeltételes, végfeltételes és számlálásos
ismétléses vezérlések. Eljárások alapjai.
-
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.
Programok szervezése.
Függvények és eljárások. Blokkstruktúra.
Globális, lokális és statikus változók.
-
Mutatók. A -> művelet.
Paraméterátadás (érték és cím szerinti).
Tömbök, struktúrák átadása paraméterként.
-
Mutatók és dinamikus változók.
Mutatók és egydimenziós tömbök.
Dinamikus változók.
Felhasználó által definiált adattípus nevek.
Dinamikus adatszerkezetek, hatékonyság.
-
Rekurzió. A rekurzió működése.
-
További vezérlések (esetkiválasztásos, hurok,
diszkrét).
-
Előfeldolgozó. Paraméteres makrók.
-
További lehetőségek C-ben és más programozási nyelvekben.
Tanulási eredmények
A kurzust maximális jeggyel teljesítő hallgató
az alábbi kompetenciákkal rendelkezik.
A kurzust elégséges jeggyel teljesítő hallgató
ezeknek 50%-át birtokolja.
- Tudás
-
Ismeri a a programozási alapfogalmakat
(program, nyelv, kódolás, változó).
Elmagyarázza a fordítás célját, és a
fordítás fázisait fordító, illetve értelmező
programozási nyelvek esetén.
Felsorolja a C nyelv adattípusait és
legfontosabb műveleteit, elmagyarázza
azok működését.
-
Felsorolja a leggyakoribb szintaktikai és
szemantikai hibákat.
-
Felsorolja és összehasonlítja a vezérlési
szerkezeteket, elmagyarázza azok
működését.
-
Értelmezi az értékek bekérésének és
kiíratásának alapvető parancsait úgy konzol,
mint fájlhasználat esetén (printf, scanf,
fprintf, fscanf), illetve a fájlvége
ellenőrzésének lehetőségét (feof).
-
Leírja az egy- és többdimenziós tömbök
felépítését, használatának szintaxisát,
illetve elmagyarázza a tömbök tárolásának
mechanizmusát.
-
Ismerteti a karaktersorozatok beolvasásának,
eltárolásának módját, és a legfontosabb
műveletekhez tartozó parancsok (másolás,
összehasonlítás, összefűzés) szintaxisát és
működését.
-
Ismerteti a struktúrák felépítését és szintaxisát.
-
Leírja a sorozatszámítást megvalósító
programok vázlatát.
-
Elmagyarázza a lineáris keresés, eldöntés,
kiválasztás, maximum, szétválogatás.
kiválogatás algoritmusok működését,
leírja azok megvalósítását.
-
Ismerteti az adathalmazok tárolásának
lehetőségeit. Elmagyarázza az adathalmazok
metszetét, egyesítését, összefuttatását,
illetve buborékrendezését megvalósító
algoritmusok működését.
-
Bemutatja a számítógép működésének
alapjait. Érti az értékek memóriabeli
tárolásának logikáját, elmagyarázza az
egész értékek tárolásának mechanizmusát.
Elmagyarázza a függvények működését,
a paraméterétadás lehetőségeit, tömbök
és struktúrák paraméterként történő
átadásának működését.
-
Elmagyarázza a konstansok, globális,
lokális és statikus változók célját,
használati eseteit és működését.
-
Elmagyarázza a rekurzió működését.
-
Érti a vezérlések működését.
-
Érti a dinamikus változók és alapvető
hatékony dinamikus adatszerkezetek
(dinamikus tömb, lánc, bináris keresőfa)
működését, ismeri azok megvalósításának
szintaxisát.
Érti, hogy ezek használatával bizonyos
feladatokat miért lehet sokkal hatékonyabban
megoldani. Elmagyarázza az alapvető
hatékony dinamikus adatszerkezeteket
tartalmazó programok működését.
-
Ismerteti az előfeldolgozó célját, és a
makrók működését.
- Képességek
-
Struktúrák és tömbök segítségével az
eltárolandó adatoknak megfelelő
adatszerkezeteket hoz létre és használ.
-
Átlátható programot készít.
-
A feladatok megoldását átláthatóan és
hatékonyan függvényekbe szervezi.
-
A probléma megoldásának megfelelően
használja a konstansokat, továbbá a
globális, lokális és statikus változókat.
-
Tetszőleges rekurzív és nem rekurzív
képletet kiszámol.
-
A feladatmegoldás során szükség szerint
rekurziót használ.
-
Felismer bizonyos dinamikus adatszerkezetek
segítségével hatékonyabban megoldható
részfeladatokat.
- Attitűd
-
Törekszik a programok működésének
megértésére.
-
Programozási tevékenységét pontosan végzi.
-
Fontosnak tartja, hogy az általa készített
program hibamentes legyen.
-
Törekszik a jobb átláthatóságot biztosító
vezérlési szerkezetek és függvények
használatára.
-
Igyekszik a feladatok megoldására a tanult
algoritmusok használatával minél
hatékonyabb megvalósítást adni.
-
Programírás során igyekszik a program
átláthatóságát, hatékonyságát és
memóriafoglalását figyelembe vevő
legjobb megoldást megtalálni.
- Autonómia-felelősség
-
A képesség részben leírt tevékenységeket
önállóan végzi.
-
Önállóan dönt arról, hogy adott helyzetben
hogyan tudja minél inkább átláthatóbbá
tenni a programját.
-
Önállóan kijavítja a program esetleges hibáit.
-
Az adatok memóriabeli eltárolására önállóan
megfelelő adatszerkezeteket hoz létre.
-
Önállóan megtervezi és megvalósítja a
megoldáshoz használandó megfelelő
függvényeket.
-
Önállóan helyes döntéseket hoz a
konstansok, globális, lokális és statikus
változók használatára vonatkozóan.
Ajánlott irodalom
-
BME C programozás előadás videók, Porkoláb Zoltán
-
BME C programozás jegyzet, 2018 és
további anyagok.
-
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 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
-
Brian W. Kernighan, Dennis M. Ritchie:
A C programozási nyelv. Az ANSI szerint
szabványosított változat,
Műszaki Könyvkiadó, Budapest, 1994
-
Herbert, Schildt, C/C++ Referenciakönyv, Panem, 1998.
A kurzus felvételének feltétele
-
A Programozási alapismeretek A. ea. és B. ea.
előadások 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 foglalkozásokon való részvétel kötelező.
Hiányozni annyit lehet, ami még pontszám
szempontjából lehetővé teszi a kurzus teljesítését.
Pótlás nem lehetséges.
-
A foglalkozásokon elhangzottakat ismerteknek,
az esetleges megállapodásokat
elfogadottaknak 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.
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 hallgató rendszeresen készül a foglalkozásokra
a kiadott irodalom feldolgozásával,
illetve az esetleges házi feladatok megoldásával,
és aktívan részt vesz az egyes témák
megbeszélésében, az oktató pedig ezeket
minden alkalommal értékeli.
-
135 perces foglalkozásonként a készülésre és
a tevékenységre legfeljebb 50 pontot lehet kapni.
A kurzus teljesítésének feltétele
-
Legalább 50 pont elérése.
Az osztályzat kialakításának módja
-
az osztályzat kiszámítása az
elért pontszám arányában:
-
0-49: elégtelen (1),
-
50-64: elégséges (2),
-
65-79: közepes (3),
-
80-89: jó (4),
-
90-100: jeles (5).
Az osztályzat javítása vizsgaidőszakban
-
A TVSZ 15. pontjának értelmében a legalább
elégséges gyakorlati jegy nem javítható.
-
Az elégtelen jegy vizsgaidőszakban történő
javítása az oktató által kijelölt időpontokban
szóbeli vizsga során javítható.
További tudnivalók
-
Levélre, üzenetre csak akkor válaszolunk, hogyha az
tartalmazza a hallgató nevét, Neptun kódját, pontos
szakját (azt is, hogy nappalis vagy levelezős), és a
tárgy pontos nevét, amivel kapcsolatban megkeres.
Ezen információk hiányában a levél/üzenet válasz nélkül
törlésre kerül!
-
Kizárólag az u-szeged.hu tartományból küldött levelekre
garantáljuk a választ, és személyes információkat
(pl. pontszámot) csak a hallgató
http://www.stud.u-szeged.hu/
címen található egyetemi
levelező rendszerbeli saját címéről küldött levelére válaszolva,
vagy CooSpace üzenetben adunk ki.