Programozási alapismeretek (GJARBAN-PROGRAMA-1)
Alapadatok
Oktatók
Tantárgy célja
A tárgy célja, hogy a hallgatók megismerjék a programozási alapelveket és azok Python nyelvű megvalósításait. A hallgatók megismerik az alapvető programozási szerkezeteket, adatstruktúrákat és problémamegoldó technikákat. A kurzus során hangsúlyozott a gyakorlati tapasztalatok és a gyakorlati programozási készségek fejlesztése.
Elsajátítandó ismeretanyag
Előadás
1-2. hét: Bevezetés a programozásba és a Python alapjai • Mi a programozás? • Miért Python? • A programozási környezet beállítása (Python és egy IDE telepítése). • Alapvető szintaxis: változók, adattípusok (egész számok, lebegőpontos számok, karakterláncok, logikai értékek), operátorok. • Bemeneti/kimeneti műveletek: felhasználói bemenet bekérése és kimenet megjelenítése. 3-4. hét: Vezérlési struktúrák • Feltételes utasítások: if, elif, else. • Ciklusok: for és while ciklusok, break és continue utasítások. • Egymásba ágyazott ciklusok. • Gyakorlati példák: egyszerű játékok, számkitaláló játék. 5-6. hét: Függvények • Függvények definiálása és meghívása. • Függvény argumentumok és paraméterek. • Visszatérési értékek. • Hatókör és lokális/globális változók. • Rekurzió (opcionális). 7-8. hét: Adatstruktúrák • Listák: létrehozás, hozzáférés, módosítás, listák manipulálása (append, insert, remove, szeletelés). • Tuple-ök: változatlanság, kibontás. • Szótárak: kulcs-érték párok, szótárelemek elérése és módosítása. 9-10. hét: Munkavégzés karakterláncokkal • Karakterlánc-manipuláció: szeletelés, összefűzés, metódusok (split, join, find, replace). • Karakterlánc formázás. • Reguláris kifejezések (bevezetés). 11-12. hét: Bevezetés az objektumorientált programozásba (OOP) • Osztályok és objektumok: osztályok definiálása, objektumok (példányok) létrehozása. • Attribútumok és metódusok. • Alapvető OOP fogalmak: beágyazás, öröklődés, polimorfizmus (rövid áttekintés). 13. hét: Projekt/ismétlés • Záróprojekt: a hallgatók egy olyan kis programozási projekten dolgoznak, amely integrálja a kurzus során tanult fogalmakat. • Kurzus ismétlése és kérdések-válaszok.
Laboratórium
Visual Studio Code 2025 programozási környezet használata. • Alapvető programozási fogalmak megértése: változók, adattípusok, operátorok, vezérlési struktúrák (if-else, ciklusok), függvények. • Alapvető adatstruktúrák használatának elsajátítása: listák, tuple-ök, szótárak. • Python kód írásának, hibakeresésének és tesztelésének elsajátítása. • Problémamegoldó és algoritmikus gondolkodási készségek fejlesztése. • Python alkalmazása egyszerű valós problémák megoldására. • A kód olvashatóságának, karbantarthatóságának és bevált gyakorlatok fontosságának megértése.
Szakmai kompetenciák
Tudás
Legalább egy meghatározó programozási környezetben képes készség szintjén C++ alapszinten programozni, és a fontosabb algoritmusokat alkalmazni.
Képesség
Attitűd
Autonómia és felelősség
Számonkérés és értékelés
Félévközi követelmények
• Házi feladatok: Havi programozási feladatok a tanult fogalmak alkalmazására. • Gyakorlati projektek: Záróprojekt a tudás integrálására és alkalmazására. Értékelés: 1,ha%∈[0,30); 2,ha%∈[30,50); 3,ha%∈[50,65); 4,ha%∈[65,80); 5,ha%∈[80,100] • Házi feladatok: 25% • Záróprojekt: 25% • Gyakorlaton belüli részvétel és tesztek: 30% • Előadásokon való részvétel és aktivitás: 20%
Vizsgakövetelmények
Generatív MI használata
1. álláspont: A GMI eszközök használata nem engedélyezett a feladatok megoldása során. Ez azt jelenti, hogy a GMI eszközök nem használhatók a formatív vagy szummatív értékelési elemek elkészítése, megoldása során és a generatív MI használata tanulmányi kötelességszegésnek minősül. Az MI eszközök nyelvi és helyesírás-ellenőrzésre történő használata nem tartozik az 1. álláspont szerinti teljes tilalom alá.
Irodalom
Kötelező irodalom
[1] A Python nyelv hivatalos oldala: https://www.python.org/ [2] Peter Wentworth, Jeffrey Elkner, Allen B. Downey and Chris Meyers: Hogyan gondolkozz úgy, mint egy informatikus: Tanulás Python 3 segítségével 3. kiadás, (2019) https://mtmi.unideb.hu/course/view.php?id=9#section-1
Ajánlott irodalom
[3] Ramses van Zon: Introduction to Programming (SCMP142), (2024) All lecture slides: https://education.scinet.utoronto.ca/mod/resource/view.php?id=3486 [4] Marty Stepp, Moshe Goldstein: Introduction to Programming with Python (2016) Slides: https://sites.cs.ucsb.edu/~tyang/class/240a16w/slides/pythonQuick.pdf