Tantárgy neve, kódja: C programozási alapok, GSZABAN-CPROALAP-1
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.
1. Fordítók, platformok. 2. C/C++ nyelvi alapok, különbségek. 3. Programozási stílusok, kommentek, hibakeresés, „unit”-teszt. 4. Szekvenciális programozási alapok. 5. Statikus és dinamikus változók, pointerek 6. Tömbök, struktúrák. 7. Műveletek változókkal. 8. Vezérlési szerkezetek, ciklusok. 9. Konzolos megjelenés kezelése, fájlkezelés. 10. Függvények, függvénypointerek, paraméterátadás. 11. Programok bonyolultságelemzése. 12. Betekintés az ARDUINO világába. 13. Szintézis óra
Elsajátítandó ismeretanyag laboratórium:
01. CodeBlocks telepítése, megismerése. 02. Projekt felépítése, létrehozása, "Hello Word" alkalmazás elemzése. 03. Header-ek, define-ok, makrók (ghost coding könyvtár kipróbálása) 04. Egyszerű bekérés és konzolos kiíratás (nyelvi tábla beállítása, printf, scanf) 05. Vezérlési szerkezetek, ciklusok bemutatása 06. Szimulációk differenciaegyenletekkel (ciklusok, fetételvizsgálat) 07. Tömbök. Tömbök bejárása. Műveletek struktúrákkal, struktúratömbök. 08. Pointerek alkalmazása lista megírása (struktúrák listája), listaműveletek 09. Monte-carlo szimuláció, fixpont-kontrakciós probléma megoldása programmal 10. Függvény, elsjárás, rekurzió 11. Kommunikáció ARDUINO-val (windows.h, API) 12. OpenGL alapú grafika használata 13. Egyéni grafikával kiegészített szimuláció bemutatása
Tudása:
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.
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.
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.
Ö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.
Félévközi tanulmányi követelmények:
Egyéni beadandó projekt késztése (fájlkezelés, grafikus megoldás, stb.)
Vizsgakövetelmények:
A hallgatók a számítógépes laborban vesznek részt az oktatáson, célszerűen saját gépeiket igénybe véve. Azok számára, akik nem rendelkeznek saját géppel 15 fő erejéig tudunk iskolai gépet rendelkezésre bocsátani – emiatt bár nem kitétel, de az otthoni gyakorláshoz és a projektek hordozhatóságának biztosításához erősen ajánlott saját laptop használata.
[1] Herbert Schild: C/C++ referenciakönyv, Panem kft., 1998. [2] Benkő László, Benkő Tiborné, Tóth Bertalan: Programozzunk C Nyelven!, Computerbooks, 2010.
[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