Programozási alapismeretek A. gyakorlat
Nappali tagozat
2023/2024 I. félév
Alapadatok
-
A tantárgy kódjai: IBN8501G, ITNA1501g.
-
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ó: Oláh Tamás
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 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 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.
Egy C programfejlesztő rendszer konfigurálása,
a C program fordítása, 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.
-
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.
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 C nyelv alapvető nyelvi elemeit
(parancsok, változók, műveletek) és
az átlátható program készítésének
szabályait.
-
Pontosan leírja, illetve é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, frpintf, 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.
-
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.
-
Elmagyarázza a lineáris keresés, eldöntés,
kiválasztás, maximum, szétválogatás,
kiválogatás, buborékrendezés
algoritmusok működését,
leírja azok megvalósítását.
-
Ismerteti az adathalmazok tárolásának
egyes lehetőségeit.
- Képességek
-
C nyelvű programokat ír, lefordít és futtat.
-
Átlátható programot készít.
-
A fordítási hibajelzések alapján beazonosítja
a leggyakoribb szintaktikai hibákat.
Kisebb programok helyességére vonatkozóan
megfelelő tesztelést végez, megtalálja és
kijavítja a lehetséges hibákat.
-
Egymásra átírja az ismétléses vezérléseket.
Adott feladatra kiválasztja a legmegfelelőbb
szelekciós, illetve ismétlési vezérlést, és
azt helyesen használja.
-
Az alapvető típusoknak megfelelő értékeket
beolvas és kiír a konzol, illetve fájl esetén.
A fájl végéig olvas, akár előre ismeretlen
adatmennyiség esetén is.
A beolvasott értékekre vonatkozóan
alapvető ellenőrzéseket végez.
-
Adatok memóriabeli tárolásához megfelelő
tömböket készít és használ.
-
Karaktersorozatokat beolvas és eltárol
(akár többet is egy tömbben).
Karaktersorozatokkal alapvető műveleteket
végez (másolás, összehasonlítás, összefűzés).
-
Struktúrák és tömbök segítségével az
eltárolandó adatoknak megfelelő
adatszerkezeteket hoz létre és használ.
-
A sorozatszámítást (összeg, szorzat,
logikai műveletek, számlálás, átlag) igénylő
részfeladatokat megoldja, tetszőleges
nem rekurzív képletet kiszámol.
-
Feladatok megoldásakor felismeri a lineáris
keresés, eldöntés, kiválasztás, maximum,
szétválogatás, kiválogatás algoritmusok
alkalmazhatóságát és azok használatával
megoldja a megfelelő részfeladatokat.
-
Programírás során megfelelően választja
meg a változók típusát, és az adatszerkezeteket.
- Attitűd
-
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 használatára.
-
A beolvasott értékekre vonatkozóan
alapvető ellenőrzéseket végez.
-
Figyel a tömbök megfelelő indexelésére és
pontos szintaxisára.
-
Karaktersorozatokkal végezhető műveleteknél
figyel arra, hogy az eredmény eltárolható
legyen a lefoglalt memóriahelyen.
-
Törekszik átlátható adatstruktúrát létrehozni
a memóriában eltárolandó adatok számára.
-
Igyekszik a sorozatszámításokat és
képletek kiszámolását pontosan és
hatékonyan megvalósítani.
- Autonómia-felelősség
-
Önállóan dönt arról, hogy adott helyzetben
hogyan tudja minél inkább átláthatóbbá
tenni a programját.
-
A képesség részben leírt tevékenységeket
önállóan végzi.
-
Önállóan kijavítja a program esetleges hibáit.
-
Önállóan kiválasztja az adott feladatra legjobb
átláthatóságot biztosító vezérlési szerkezetet.
-
A beolvasásokat, kiírásokat, és a beolvasott
értékek ellenőrzését önállóan végzi.
-
Tömböket önállóan használ.
-
Az adatok memóriabeli eltárolására önállóan
megfelelő adatszerkezeteket hoz létre.
-
Feladatok megoldása során a tanult
algoritmusokat önállóan helyesen
alkalmazza.
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 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
IBN8501E, ITNA1501E Programozási alapismeretek A.
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.
-
Az alábbiak jelenléti oktatás esetén érvényesek.
Nem jelenléti oktatásra való áttérés esetén a
teljesítési feltételekben változások lesznek,
a ZH-k kiegészülhetnek a ZH-kban leírtak
megértésének szóbeli ellenőrzésével, továbbá
szükség lehet még egy ZH beiktatására, a
hátralevő ZH-kban előforduló új kompetencia
egységek elosztásával.
Mivel az új feltételek attól függnek, hogy az
átállás mikor fog megtörténni, ezért az új feltételek
részletei akkor kerülnek kihirdetésre.
-
Amennyiben előre nem látható okokból
(pl. jelenleg még nem ismert dékáni/rektori szünet miatt)
gyakorlati alkalom elmarad, akkor a hátralevő
számonkérések időpontjai módosulhatnak,
melyekről hirdetmény lesz közzétéve a
CooSpace színtérben.
-
A tananyag számonkérése alapvetően 3 zárthelyi
dolgozat keretében történik, ami kiegészül egy
pót/javító záthelyi dolgozattal.
-
A félév során (első sorban a zárthelyi dolgozatokban)
kompetecia egységek gyűjthetők, melyek egyes ismeretek
birtoklását fejezik ki.
A fokozatosan egyre bonyolultabb feladatok jellegéből
következően bizonyos ismeretek több ZH-ban is
előfordulhatnak, így adott ismeretkhez tartozó kompetencia
egységek akár több alkalommal is megszerezhetők.
Ugyanarra a tudásra már megszerzett kompetencia
egységeket nem lehet a következő ZH-kban
megtöbbszörözni.
Ily módon az egyes ZH-knak nincs külön pontszáma,
hanem az a lényeg, hogy a félév végére a hallgató
a számonkérésekben előforduló ismeretekhez tartozó
kompetencia egységeket milyen mértékben szerezte meg.
-
A megszerezhető kompetenciák három
kategóriába sorolhatók.
-
Programozási eszközök ismerete.
Ezekre a kompetenciákra kapott pontok
elveszíthetők, hogyha (például a következő
ZH-kban) kiderül, hogy a hallgató már nem
rendelkezik azzal a tudással, és esetlegesen
visszaszerezhetők, hogyha a későbbiek során
a hallgatónak lesz lehetősége bizonyítani ezek
birtoklását.
-
Alapvető problémamegoldási módszerek ismerete.
Amennyiben a hallgató már kapott (rész)pontot
ehhez a kategóriához tartozó kompetenciára,
azt a későbbiekben sem veszíti el.
-
Algoritmusok tevezése és implementálása.
Ezekre a kompetenciákra zárthelyi dolgozatonként
16 pontot lehet kapni, és mivel szorosan kötődnek
az egyes zárthelyi dolgozatok feladatainak megoldásaihoz,
ezek a pontszámok a későbbiekben nem javíthatók.
-
A programozási eszközök ismerete és az
alapvető problémamegoldási módszerek ismerete
kategóriákba tartozó kompetenciák pontozása a félév elején, az
algoritmusok tevezése és implementálása
típusú kompetenciák pontozása legkésőbb az egyes zárthelyi
dolgozatok után lesz közzétéve.
-
A ZH-k megírása során - a gyakorlatvezetők által
esetlegesen rendelkezésre bocsátott anyagokon kívül -
semmilyen segédanyag nem használható.
-
A zárthelyi dolgozatok tervezett időpontjai:
-
1. ZH: 2023. október 9., 11., 12.
-
2. ZH: 2023. november 6., 8., 9.
-
3. ZH: 2023. november 27., 29., 30.
melyek utólagosan elrendelt szünetek miatt,
vagy a gyakorlatvezető és az érintett gyakorlati
csoportok egyetértésével módosulhatnak.
-
Lesz továbbá egy Javító/Pót ZH is, melyben
a féléves tananyag bármilyen ismerete szerepelhet,
és amelynek a pontozása a következőképpen alakul:
- gyűjthető/javítható lesz benne legalább
a korábbi ZH-kban szereplő, a
programozási eszközök ismerete és az
alapvető problémamegoldási módszerek ismerete
kategóriákba tartozó kompetenciákra kapható
pontok 50%-a; ezen kompetenciák pontozása
ugyanúgy történik, mint ahogyan a rendes ZH-kra
vonatkozóan fentebb ismertetve lett;
-
a többi zárthelyi dolgozathoz hasonlóan,
kapható lesz benne legfeljebb 16 pont a
algoritmusok tevezése és implementálása
kategóriájú kompetenciákra, mely pontszám
nem adódik hozzá az eddigiekhez, hanem
felülírja a korábbi zárthelyi dolgozatok egyikében
erre a kategóriára kapott leggyengébb pontszámot,
amennyiben az ennél kisebb.
A Javító/Pót ZH tervezett időpontjai
2023. december 11., 13., 14.,
mely utólagosan elrendelt szünetek miatt,
vagy a gyakorlatvezető és az érintett gyakorlati
csoportok egyetértésével módosulhat.
-
A 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.
-
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 megszerezheti az adott ismerethez
tartozó kompetencia egységeket, továbbá
kiemelkedő tevékenységre a gyakorlatvezető
megítélése szerint összesen legfeljebb 5
plusz pontot kaphat, mely hozzáadódik a
hallgató féléves pontszámához.
A kurzus teljesítésének feltétele
-
A félév során a kompetenciákra megszerezhető
pontok legalább 50%-ának elérése.
Az osztályzat kialakításának módja
-
Kiszámításra kerül, hogy a hallgató által szerzett
pontszám a félév során a kompetenciákra
megszerezhető pontszám hány százalékának
felel meg.
Ennek alapján az osztályzat meghatározása:
-
0-49%: elégtelen (1),
-
50-64%: elégséges (2),
-
65-79%: közepes (3),
-
80-89%: jó (4),
-
90-105%: jeles (5).
Az elégtelen gyakorlati jegy javítása
-
A vizsgaidőszakban meg lesz hirdetve két lehetőség
az elégtelen gyakorlati jegyek javítására.
A gyakorlati javítóvizsga a teljes félév tananyagából történik,
a szorgalmi időszakban szerzett pontszámok nem számítanak bele az eredménybe.
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.
-
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.