Tantárgy » BMEVIAUAA00
A programozás alapjai 2
Basics of 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
Basics of Programming 2
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIAUAA00 | ||||||||||||
| 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. Forstner Bertalan
beosztás: egyetemi docens
elérhetőség:
forstner.bertalan@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Automatizálási és Alkalmazott Informatikai Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | https://www.aut.bme.hu/Course/VIAUAA00 | ||||||||||||
| 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 inlinefü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ória fogyás (memory leak) felfedezése. Okok keresésé, 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. oparator<< túlterhelése.
- 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 C programozási nyelv ismeretét, 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
Heti egy alkalommal előadást tartunk a teljes évfolyamnak és heti egy alkalommal tantermi gyakorlatot tartunk 30-35 fős hallgatói csoportok (tanulókörök) számára, valamint heti egy alkalommal számítógépes laboratóriumi foglalkozásokat is tartunk a Hallgatói Számítóközpont (HSZK) termeiben részben Windows, részben UNIX környezetben, az órarend szerinti időpontokban, kiscsoportos (10-12 fős) oktatással. A csoport- és terembeosztást külön hirdetményben tesszük közzé a tárgy weboldalán. 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ó.; Ajá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)
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ékét a TVSz rögzíti (30%). A feltételnek mindhárom óratípuson külön-külön is teljesülnie kell. A laborgyakorlatokon csak felkészült hallgatók vehetnek részt. A felkészülést a laborgyakorlatok elején ún. beugróval, vagy előfeladattal ellenőrizzük. Ennek anyaga az adott labor előadáson és gyakorlaton már bemutatott anyagával kapcsolatos. Az előfeladatot egy feladatbeadó rendszer segítségével kell adott határidőre teljesíteni. Az elégtelen felkészültség mulasztott laboralkalomnak számít.Kis zárthelyik: a félév során öt alkalommal kis zárthelyit íratunk a gyakorlatokon. Ezek közül a három legjobban sikerült kis zárthelyi pontszámnak egyenként el kell érje a szerezhető pontszám 40%-át, valamint összeadva az összes kis zárthelyin elérhető pontszámnak szintén a 40%-át.Nagy zárthelyi: a szorgalmi időszak alatt kettő alkalommal, az évfolyam terhelési táblázata szerinti időpontban nagy zárthelyi dolgozatot íratunk. A két dolgozat %-os eredményét összeadva és kettővel elosztva el kell érni az 50%-ot.Nagy házi feladat: minden hallgatónak egy egyéni nagy házi feladatot kell megoldania, önálló munkával. A nagy házi feladatokat a 7. héten adjuk ki és a 14. héten kell beadni a végső megoldásokat, a laborvezető által előírt köztes állapotok bemutatásával. A nagy házi feladat elfogadásának feltétele, hogy az a kiírás szerint elkészült, a laborvezető személyesen átvette és elfogadta: (a) a hiánytalan dokumentációt, (b) az elkészített programot, amelyet együtt ki is próbáltak.A kis zárthelyik átlaga a 3 legjobb kis zárthelyi átlaga.
Az érdemjegy kialakítása a kis zárthelyik átlagának, illetve a nagy zárthelyinek a súlyozott átlaga, ahol a nagy zárthelyi kétszeres súllyal számolandó.
25 pontos első nagyzárthelyit, 20 pontos második nagyzárthelyit, illetve 10 pontos kis ZH-kat tekintve a végső jegy pontos számítási képlete:
Végeredmény% =
(4 * ZH1 pont + 5 * ZH2 pont + KisZH pont / 0.3) / 3
A jegyszámítás határai:
85%- jeles
70%- jó
55%- közepes
40%- elégséges
Pótlási lehetőségek:
A jelenlét nem pótolható: a pótlást magában foglalja a TVSz által megengedett hiányzás.
A kis zárthelyik pótlólagos megírására nincs lehetőség: a pótlást magában foglalja, hogy az ötből csak a három legjobb kis zárthelyi eredményét vesszük figyelembe.
A nagy zárthelyik a pótlási héten pótolhatók, a rosszabbul sikerült % eredményű vagy meg nem írt zárthelyi újboli megírására van lehetőség. A pótlási héten írt nagy zárthelyi a félév közben rosszabbul sikerült nagy zárthelyi eredményét helyettesíti.
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 szerdáig (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:
A programban részt vevő hallgatók mind gyakorlat-, mind
laborfoglalkozások során elkülönített csoportokba kerülnek beosztásra. Ezeken a
tárgy tematikáját mélyebb szintig, illetve komplexebb feladatokon keresztül
sajátítják el. A mélyebb összefüggések feltárására is ezeken a csoportokon
kerül sor.
IMSc pontok:
A beugró feladatok és kis ZH-k tekintetében nincs eltérés.
Nagy házi feladat kapcsán a programban részt vevők
komplexebb, átfogóbb tudást igénylő feladatot is kaphatnak. Ennek értékelése
összetettebb: az „elfogadott / elutasított” státuszon túl a megvalósítás
minősége és letisztultsága alapján + 10 pontot szerezhetnek.
A nagy zárthelyik esetében a 100%-nak megfelelő szint
fölötti, legfeljebb 30%-nyi extra feladatot helyezünk el, amelyeket a plusz
pontokért megoldhatnak. A terveink szerint +10 pontot gyűjthetnek össze a program résztvevői a ZH
számonkéréseken.
A laborfoglalkozásokon végzett extra feladatokért terveink szerint +15 pontot lehet kapni.
Az IMSc pontok megszerzése
a programban nem résztvevő hallgatók számára is biztosított.
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.