C programozási alapok (GSZABAN-CPROALAP-1)
Alapadatok
Oktatók
Tantárgy célja
A tárgy célja az algoritmikus gondolkodás fejlesztése, egyszerűbb, C/C++ nyelven írt konzolos programok fejlesztésének elsajátítása.
Elsajátítandó ismeretanyag
Előadás
Fordítók, platformok C/C++ nyelvi alapok, különbségek Programozási stílusok, kommentek, hibakeresés, „unit”-teszt Szekvenciális programozási alapok Statikus és dinamikus változók, pointerek Tömbök, struktúrák Műveletek változókkal Vezérlési szerkezetek, ciklusok Konzolos megjelenés kezelése, fájlkezelés Függvények, függvénypointerek, paraméterátadás Programok bonyolultságelemzése Betekintés az ARDUINO világába MI keretrendszer használata, reengineering Szintézis óra
Laboratórium
CodeBlocks telepítése, megismerése. Projekt felépítése, létrehozása, "Hello Word" alkalmazás elemzése. Header-ek, define-ok, makrók (ghost coding könyvtár kipróbálása) Egyszerű bekérés és konzolos kiíratás (nyelvi tábla beállítása, printf, scanf) Vezérlési szerkezetek, ciklusok bemutatása Szimulációk differenciaegyenletekkel (ciklusok, fetételvizsgálat) Tömbök. Tömbök bejárása. Műveletek struktúrákkal, struktúratömbök. Pointerek alkalmazása lista megírása (struktúrák listája), listaműveletek Monte-carlo szimuláció, fixpont-kontrakciós probléma megoldása programmal Függvény, eljárás, rekurzió Kommunikáció ARDUINO-val (windows.h, API) OpenGL alapú grafika használata Egyéni grafikával kiegészített szimuláció bemutatása MI alapú fejlesztés alapjai
Szakmai kompetenciák
Tudás
Megkeresi és elhárítja az otthoni és kisvállalati informatikai környezetben jelentkező hardveres és szoftveres hibákat. Internetes források és tudásbázisok segítségével követi, valamint feladatainak elvégzéséhez lehetőség szerint alkalmazza a legmodernebb információs technológiákat és trendeket (IoT, stb.). Az elkészült termékhez prezentációt készít és bemutatja, előadja azt munkatársainak, vezetőinek, ügyfeleinek. Az általa végzett szoftverfejlesztési feladatok esetében kiválasztja a legmegfelelőbb technikákat, eljárásokat és módszereket. A tiszta kód elveinek megfelelő, megfelelő mennyiségű megjegyzéssel ellátott, kellőképpen tagolt, jól átlátható, kódot készít. Manuális és automatizált szoftvertesztelést végezve ellenőrzi a szoftver hibátlan működését, dokumentálja a tesztek eredményét. Szoftverfejlesztés vagy -tesztelés során felmerülő problémákat old meg és hibákat hárít el webes kereséssel és internetes tudásbázisok használatával.
Képesség
Ismeri az otthoni és kisvállalati informatikai környezetben leggyakrabban felmerülő hibákat és azok elhárításának módjait. Naprakész információkkal rendelkezik a legmodernebb információs technológiákkal és trendekkel kapcsolatban. Ismeri a hatékony prezentálás szabályait, a prezentációs szoftverek lehetőségeit. Elegendő ismerettel rendelkezik a meghatározó szoftverfejlesztési technológiák (programozási nyelvek, keretrendszerek, könyvtárak stb.), illetve módszerek erősségeiről és hátrányairól. Ismeri a tiszta kód készítésének alapelveit. Ismeri a unit tesztelés, valamint más tesztelési, hibakeresési technikák alapelveit és alapvető eszközeit. Ismeri a hibakeresés szisztematikus módszereit, a problémák elhárításának lépéseit. Ismeri a munkájához kapcsolódó internetes keresési módszereket és tudásbázisokat.
Attitűd
Nyitott és érdeklődő a legmodernebb információs technológiák és trendek iránt. Törekszik a tömör, lényegre törő, de szakszerű bemutató összeállítására. Nyitott az új technológiák megismerésére, tudását folyamatosan fejleszti. Törekszik arra, hogy az elkészített kódja jól átlátható, és mások számára is értelmezhető legyen. Törekszik a mindenre kiterjedő, az összes lehetséges hibát felderítő tesztelésre, valamint a tesztek körültekintő dokumentálására. Törekszik a hibák elhárítására, megoldására, és arra, hogy azokkal lehetőség szerint ne okozzon újabb hibákat.
Autonómia és felelősség
Önállóan behatárolja a hibát. Egyszerűbb problémákat önállóan, összetettebbeket szakmai irányítással hárít el. Önállóan szerez információkat a témában releváns szakmai platformokról. A projektcsapat tagjaival egyeztetve, de önállóan elkészíti az elvégzett munka eredményét bemutató prezentációt. Önállóan dönt a fejlesztés során használt technológiákról és eszközökről. Saját fejlesztésként megvalósított kisebb projektekben önállóan végzi a tesztelést, tesztelői szerepben nagyobb projektekben irányítás mellett végez meghatározott tesztelési feladatokat. Internetes információszerzéssel önállóan old meg problémákat és hárít el hibákat.
Számonkérés és értékelés
Félévközi követelmények
Egyéni beadandó projekt késztése (fájlkezelés, grafikus megoldás, stb.)
Vizsgakövetelmények
Generatív MI használata
2. álláspont: Az GMI eszközök használata korlátozottan engedélyezett (pl. irodalomkutatási segítségnyújtás vagy meghatározott eszközök). Ez azt jelenti, hogy a GMI eszközök előre meghatározott módon használhatók a feladatok elkészítéséhez, megoldásához. Ebben az esetben a tantárgy gondozójának feladata és felelőssége meghatározni, hogy a GMI eszközök használata mely esetekben megengedett vagy nem megengedett. A tantárgyleírásban részletesen meg kell határozni, hogy a GMI eszközök milyen módon használhatóak az adott kurzus során.
Irodalom
Kötelező irodalom
[1] Fehér Krisztián: Programozz C nyelven!, Fehér Krisztián Dezső, 2022 [2] Stephen R. Davis: C++ Tantusz Könyvek, Taramix Kiadó Kft, 2021
Ajánlott irodalom
[1] Herbert Schild: C/C++ referenciakönyv, Panem kft., 1998. [2] Benkő László, Benkő Tiborné, Tóth Bertalan: Programozzunk C Nyelven!, Computerbooks, 2010.