K-INFO
HU
EN
Belépés

A programozás alapjai 2

Programming 2
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
—
Tantárgy neve (magyarul, angolul)
A programozás alapjai 2
Programming 2
Tantárgykód BMEVIIIAA00
Tantárgyjelleg —
Képzési szint —
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 2 2
jelleg (kapcsolt/önálló) — kapcsolt kapcsolt
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 7
Tantárgyfelelős
Dr. Szeberényi Imre
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Irányítástechnika és Informatika Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala http://infocpp.iit.bme.hu/
Tantárgy elsődleges mintatantervi jellege —
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

C++ mint a C javított változata

  1. Előadás+gyakorlat: Az előző félévi anyag rendszerező összefoglalása. C nyelv „javításai”: típusértékű struct, enum, bool típus. Függvényhívás alacsony szinten. Prototípusok szükségessége, referenciatípus bevezetése. Függvényhívás balértékként. Bevezetés a C++ I/O használatába.
    Laborban
    : Alapvető operációs rendszer ismertek összefoglalása. Fejlesztő környezet bemutatása.
  1. Előadás+gyakorlat: Függvénynév túlterhelése (overload). Alapértelmezett (default) függvényargumentumok. Makrók kiváltása inline függvénnyel. Névterek, láthatóság. Memória allokáció és kivételkezelés röviden.
    Laborban
    : const és referencia gyakorlása. C-ben írt kód átírása C++ eszközeivel (cin, cout). Függvény túlterhelés és inline használata.

Objektum-orientált programozás alapjai a C++ nyelv bemutatásával

  1. Előadás+gyakorlat: Objektum-orientált programozás alapfogalmai, elvei, objektum fogalma. Osztály, egységbezárás, láthatóság és információrejtés fogalma. Tagváltozók és tagfüggvények. Getterek és setterek. A this pointer. Konstruktor, destruktor.
    Laborban
    : Több modul használata. Memória allokáció gyakorlása. Memóriaszivárgás (memory leak) felfedezése, Okainak keresése, megszüntetése. 
  1. Előadás+gyakorlat: Konstruktorok és destruktorok. Dinamikus adattagokat karbantartó osztályok. Másoló konstruktor, értékadás. Tagváltozók inicializálása. Konstans és statikus tagok.
    Laborban
    : Egyszerű, pointert nem tartalmazó osztályok megvalósítása. getter/setter függvények gyakorlása. operator<< túlterhelése. Tesztelést segítő eszközök használata.
  1. Előadás+gyakorlat: A láthatóság enyhítése: friend mechanizmus. Operátorok túlterhelésének fogalma. Operátorok túlterhelésének megvalósítása tagfüggvénnyel és globális függvénnyel. Megkötések.
    Laborban
    : Dinamikus adattagokat karbantartó osztályok. Másoló konstruktor, értékadás gyakorlása.
  1. Előadás+gyakorlat: Az öröklés szerepe az objektumorientált programozásban. Öröklés, származtatott osztály, alaposztály. Az öröklés hatása a láthatóságra. Konstruktorok és az öröklés.
    Laborban
    :Komplexebb objektum (pl. dinamikus tömb) megvalósítása. Operátorok túlterhelésének gyakorlása.
  1. Előadás+gyakorlat: Behelyettesíthetőség. Virtuális függvények, absztrakt osztályok. Korlátozó öröklés. Virtuális destruktorok. Heterogén gyűjtemények.
    Laborban
    : Egyszerű öröklés gyakorlása. Öröklés hatása láthatóságra és túlterhelésre.
  1. Előadás+gyakorlat: Többszörös öröklés, virtuális alaposztályok. Konstruktorok és destruktorok automatikus feladatai. Perzisztencia fogalma és megvalósítása.
    Laborban
    :Heterogén kollekcióhoz kapcsolódó feladatok.
  1. Előadás+gyakorlat: Konverziós operátorok. Típuskonverziók, kivételkezelés.
    Laborban
    : Többszörös örökléshez és perzisztenciához kacsolódó feladatok.
  1. Előadás+gyakorlat: Generikus szerkezetek jelentősége. Függvény- és osztálysablonok.
    Laborban:
    Típuskonverziók, konverziós operátorok gyakorlása és kivételkezelés gyakorlása.
  1. Standard Template Library (STL) bevezetése. Bonyolultságelméleti megfontolások.
    Laborban:
    Generikus adatszerkezetek és algoritmusok gyakorlása.
  1. Előadás+gyakorlat: STL tárolók és algoritmusok, iterátorok. Objektumorientált szoftvertervezési alapok. Tervezési példa.
    Laborban
    : STL tárolók és algoritmusok gyakorlása.
  1. Előadás+gyakorlat: Komplex példa bemutatása. Kitekintés a nyelvhez kapcsolható eszközökre.
    Laborban
    : Gyakorlás. Házi feladat konzultáció.
  1. Előadás+gyakorlat: Összefoglalás. Tervezési példa.
    Laborban
    : Házi feladat bemutatása
A tárgy alapvető célja, hogy alapozó tárgyként folytassa számítógépes problémamegoldás módszereinek és alapvető eszközeinek előző félévben megkezdett megismertetését olyan szinten, hogy azt a hallgatók további tanulmányaik során képesek legyenek hatékonyan alkalmazni. Ezen félév alapvető célkitűzése, hogy további gyakorlatokkal mélyítse a programozási és algoritmizálási alapismereteket, megismertesse a nagyméretű programozási feladatok megoldásának lépéseit, és bevezessen az objektum-orientált programozásba. Célkitűzését a tárgy az előző félévben megszerzett C nyelvi tudásra alapozva, a C++ nyelv megismertetésével éri el. A gyakorlatok és laborok anyaga folyamatosan követi az előadások tematikáját, azok megértését, elmélyítését támogatja.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

Órarendben ütemezett módon heti egy alkalommal előadást tartunk a teljes évfolyamnak. A tantermi gyakorlatok 30-35 fős hallgatói csoportokban (tanulókörök), a laboratóriumi foglalkozások pedig 12-20 fős számítógépes laborokban lesznek megtartva. A csoport- és terembeosztást külön hirdetményben tesszük közzé a tárgy weboldalán. Ugyanitt érhető el az otthoni gyakorláshoz ajánlott szoftverkörnyezet leírása, valamint a tárgyhoz kapcsolódó segédanyagok, példák és hirdetmények. A számonkérések papíron, írásban történnek, kivéve a kis- és nagyfeladatokat.  

Tanulástámogató anyagok

Online források
Bármely az; objektum-orientált programozással és a C++ programozási nyelvvel; foglalkozó könyv vagy jegyzet használható.; Jegyzet:; A; tárgy weboldalán elérhető elektronikus jegyzetek: http://infocpp.iit.bme.huAjánlott irodalom:;  ; Benedek Zoltán - Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven (SZAK, 2007)B. Stroustrup: A C++ programozási nyelv (Kiskapu, 2001Kondorosi Károly - László Zoltán - Szirmay-Kalos László: Objektum-orientált szoftverfejlesztés (CompuerBooks, 2004)Benkő Tiborné - Poppe András: "Együtt könnyebb a programozás" sorozat: Objektum-orientált C++ (CompuerBooks, 2004)Szeberényi Imre: Bevezetés a UNIX op. rendszerbe (oktatási; segédlet, 1998)

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
C programozási nyelv ismerete
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
C programozási nyelv ismerete
Általános szabályok
Követelmények: A félév végi jegy megszerzésének feltételei az alábbiak: Jelenlét: az órákon (előadás, gyakorlat, labor) való rendszeres részvétel. A hiányzások megengedett mértéke 30%, aminek mindhárom óratípus esetében külön-külön is teljesülnie kell. Ellenőrző dolgozat: a laborgyakorlatok sikeres teljesítéséhez szükséges előzetes tudás meglétét ellenőrző dolgozattal ellenőrizzük. Ennek anyaga az adott labor előadáson vagy gyakorlaton már bemutatott anyagával kapcsolatos. Minden sikeresen teljesített ellenőrző dolgozattal 1 pont szerezhető. A félév során 12 ellenőrző dolgozat megírására kerül sor. A tárgy teljesítésének szükséges feltétele, hogy az ellenőrző dolgozatokkal szerzett pontok elérjék félév során megszerezhető pontszámok lefelé kerekített 2/3-át, azaz 8-at.Részteljesítmény értékelés: a hallgatók félévközi folyamatos haladásának regisztrálása érdekében a félév során összesen 6 alkalommal rövid (15-20 perces) beszámoló dolgozatot iratunk a gyakorlati foglakozásokon. Ezek három témakört ölelnek fel, azaz három dolgozatpárost jelentenek. Minden pár közül a jobban sikerült eredményét vesszük figyelembe a félév végi jegy kialakításánál, melyek pontszáma (3 legjobb) külön-külön el kell, hogy érje a megszerezhető pontszám 40%-át, azaz 4 pontot. A meg nem írt beszámoló pontszámát nullának tekintjük. Az írásos beszámolók ütemezését a tantárgy weboldalán tesszük közzé a félév elején.Nagy házi feladat: minden hallgatónak egy egyéni nagy házi feladatot kell megoldania, önálló munkával. A nagy házi feladatot a 6. héten adjuk ki, a megoldást pedig a 13. héten kell beadni. A laborvezetők a megoldásokhoz folyamatos konzultációt biztosítanak. A folyamatos haladást pedig részhatáridők kitűzésével ösztönözzük. A tárgy teljesítésének szükséges feltétele az elfogadott nagy házi feladat.Összegző értékelés: a szorgalmi időszak alatt kettő alkalommal, az évfolyam terhelési táblázata szerinti időpontban nagy zárthelyi dolgozatot íratunk. Ezekre külön-külön elfogadási kritérium nincs. Összpontszámuk azonban el kell, hogy érje a két zárthelyire szerezhető összpontszám 50%-át, azaz 40 pontot. A meg nem írt zárthelyi dolgozat pontszámát nullának tekintjük. A félévközi jegy a nagy zárthelyikre kapott pontszámok (2*40 pont), valamint a három legjobban sikerült beszámoló pontszámának (3*10 pont) összege alapján számítható ki. Ha az előzőekben részletezett minimumkritériumok teljesülnek, akkor a félév végi jegy legalább elégséges. A pontozás: A nagy házi feladat időben leadott és elfogadott részfeladataiért részhatáridőnként rendre 1, 1, 2, 2 plusz pont jár, amely a fent részletezett pontszámhoz adódik hozzá. Ezek a plusz pontok abban az esetben számítanak, ha a feladat véghatáridőre beadásra kerül, és az ekkor beadott változat elfogadott. A felkészülést egyéni szorgalmi feladatok is segítik, melyek megoldása nem kötelező. A határidőre és sikeresen megoldott szorgalmi feladatokkal extra pontok szerezhetők, amelyeket a félévközi jegy kialakításánál pozitívan veszünk figyelembe, amennyiben a minimum feltételek teljesültek. Szorgalmi feladatokkal legfeljebb 8 többletpont szerezhető. Pótlási lehetőségek: A jelenlét nem pótolható: a pótlást magában foglalja a megengedett hiányzás (30%). A laborgyakorlatokon írt ellenőrző dolgozat pótlólagos megírására nincs lehetőség: a pótlást magában foglalja az, hogy az elérhető pontszám 2/3-a a minimálisan elérendő pontszám. A tantermi gyakorlatokon íratott beszámolók pótlólagos megírására nincs lehetőség: a pótlást magában foglalja, az hogy páronként mindig a jobban sikerül beszámolót vesszük figyelembe. Nagy zárthelyi pótlására, illetve javítására a pótlási héten van lehetőség. A pótlási héten írt nagy zárthelyit abból az anyagból kell írni, amelyik nagy zárthelyi a félév közben rosszabbul sikerült. Azonos pontszám esetén az második anyagrészből. A pótlási héten írt zárthelyi pontszáma ennek a zárthelyinek a pontszámát írja felül. Ez a pótlási vagy javítási lehetőség alanyi jogon jár mindenkinek. A nagy házi feladat pótlólagos beadására csak a szorgalmi időszak végéig (utolsó tanítási napon, 12.00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem pótolható. A megoldások apróbb hibáinak javítására – a laborvezető oktatóval egyeztetett időpontban – a pótlási hét közepéig (csütörtök 12:00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem javítható. A pótlási héten már csak olyan feladatok és/vagy dokumentációk javíthatók, amelyek hiányosság, vagy működési hiba miatt kerültek elutasításra.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás
IMSc program: IMSc tematika és módszer Az IMSc-s hallgatók számára külön gyakorlati és labor csoportokat indítunk. (Az előadás a teljes évfolyam számára közös.) Ezekben a csoportokban ugyanazon tananyag és tematika mellett mélyebb, összetettebb feladatok gyakoroltatják ugyanazokat a témaköröket. Az érdeklődők számára a tárgy keretében tanultak alkalmazását bemutató, illetve a tárgy tananyagán túlmutató szakmai írásokat teszünk közzé a tárgy honlapján. Ezek egyéni elmélyülésre adnak lehetőséget. Feldolgozásukhoz konzultációk keretében segítséget nyújtunk. A számonkéréseken alkalmazott pontozás és jegyszámítás mindenkinél egységes. IMSc pontok: A jeles alsó ponthatára feletti összes többlet pontszámot IMSc pontszámnak számoljuk, a tárgy kreditértékének megfelelően összesen legfeljebb 35 pontot. A követelményeknél említett írásos beszámolók, nagy zárthelyik, szorgalmi feladatok és nagy házi feladat pontszámok ugyanolyan módon történő számítása mellett további 2×10 pontot lehet szerezni a nagy zárthelyiken választható kiegészítő feladatokkal. A kiegészítő feladatot tartalmazó zárthelyire előzetesen jelentkezni kell. A kiegészítő feladatot csak az alap feladatok 75%-os teljesítése mellett pontozzuk, és az itt megszerzett pontok az aláírás megszerzésére nem használhatók fel. Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított, azonban a tárgy kreditjének megszerzéséhez kötött.
Ajánlott tantárgyak
A programozás alapjai 1. c. tárgyból kreditpont megszerzése kötelező.
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
—
Tantárgykövetelmények hatályosságának vége:
—
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.