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) |
|
||||||||||||
| 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
elérhetőség:
szeberenyi.imre@vik.bme.hu
|
||||||||||||
| 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
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Standard Template Library (STL) bevezetése. Bonyolultságelméleti
megfontolások.
Laborban: Generikus adatszerkezetek és algoritmusok gyakorlása.
- 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.
- 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ó.
- 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.