Programozási alapismeretek előadás
Nappali tagozat
2022/2023 I. félév
Alapadatok
-
A tantárgy kódja: IBN850E
-
Kreditérték: 3.
-
Féléves óraszám: 12.
-
A tantárgy típusa és értékelés módja: előadás, kollokvium.
-
Tantárgyfelelős és oktató:
Dr. Holló Csaba, egyetemi adjunktus,
Szoftverfejlesztés Tanszék.
A kurzus célja
-
A hallgató képes legyen alapszinten algoritmikus
gondolkodásra és feladatmegoldásra: feladatok
modellezésére, algoritmusok készítésére,
eszközök választására, és kódolásra.
-
A hallgató ismerje az elterjedt programozási
nyelvek alapvető működési mechanizmusait,
annak érdekében, hogy a jövőben képes legyen új,
különböző célokra hatékonyabban használható
programozási nyelvek könnyebb megértésére és
önálló megtanulására.
-
A hallgató haladó szinten ismerje minden idők
(egyik) legszélesebb körben használt
programozási nyelvét, a C-t, annak érdekében,
hogy ezzel - számos más programozási
nyelvvel ellentétben - gyakorlatilag is
tanulmányozni tudja a tanult működési
mechanizmusokat, képes legyen gyors, akár
hardverközeli programok írására, és a
C nyelvre épülő, illetve ahhoz hasonló számos
más programozási nyelv (R, C#, C++, Java,
JavaScript, PHP, Arduino, RobotC, NXC stb.)
könnyebb megértésére és megtanulására.
-
A hallgató képes legyen programozási
ismereteit más kurzusokban sikeresen
használni.
Tematika
-
A C programozási nyelv alapjai.
A fejlesztő környezet konfigurálása, 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ő szelekciós és ismétléses vezérlések.
-
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. 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.
Blokkstruktúra. Globális, lokális és statikus változók.
-
Rekurzió, szemléltetés a Hanoi tornyai játékkal.
A rekurzió működése.
-
Esetkiválasztásos, illetve hurok és diszkrét
ismétléses vezérlések.
-
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.
-
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.
-
É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.
- 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.
-
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.
-
Igyekszik felismerni a dinamikus
adatszerkezetek segítségével
hatékonyabban megoldható részfeladatokat.
- Autonómia-felelősség
-
A képesség részben leírt tevékenységeket
önállóan végzi.
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
-
Az
IBN850L Programozási alapismeretek
gyakorlat 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
-
Az előadásokon való részvétel ugyan nem
kötelező, de fontos a tananyag megértéséhez,
az ott elhangzottak ismerete, illetve ahhoz
kapcsolódó tananyagok feldolgozása
szükséges a gyakorlatok sikeres teljesítéséhez.
-
Az előadásokon 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.
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
-
Kötelező félévközi számonkérések nem lesznek.
-
Az előadáson, illetve a tananyaggal kacsolatosan
kifejtett kiemelkedő tevékenységet az oktató
a vizsgán figyelembe veheti.
Az osztályzat kialakításának módja
-
A vizsgaidőszakban, a járványügyi helyzettől függően,
jelenléti vizsgák esetén írásbeli,
online vizsgák esetén szóbelivel kiegészített
írásbeli vizsgák lesznek, melyek során
az oktató értékeli a hallgató tudását.
-
A számonkérések során semmilyen segédlet nem használható.
-
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.
-
Az osztályzat kiszámítása a kompetenciák
elsajátításának mértékétől függően:
-
50-64%: elégséges (2),
-
65-79%: közepes (3),
-
80-89%: jó (4),
-
90-100%t: jeles (5).
A kurzus teljesítésének feltétele
-
A fentieknek megfelelően az elégséges
osztályzat megszerzése.
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.