Tárgykód: mm1n1mo5a, mm1n2n1mo5a
Célkitűzés:
A kurzus célja a korábbi algoritmuselméleti és programozási ismeretekre alapozva az objektumorientált programozás alapelveinek, módszereinek ismertetése, algoritmusok és adatszerkezetek használatának és implementációjának elsajátítása, és ennek folyományaként összetett, grafikus felületű alkalmazások készítése a .NET keretrendszerben.
A tárgyat elvégző hallgató birtokában lesz egy alaptudásnak, amellyel saját maga képes adatszerkezeteket felhasználni, illetve egyénileg implementálni teljesen objektumorientált környezetben.
Előfeltétel:
- Algoritmusok tervezése és elemzése I (mm1c1at4).
- Programozási nyelvek I (im1c1pn4).
Szükséges előismeretek:
- Procedurális programozás, programozási tételek.
- Adatszerkezetek reprezentációs módjai, algoritmusok műveletigénye.
- Alapvető adatszerkezetek (verem, sor, fák) és műveleteik.
- C++ programozási nyelvi alapismeretek.
Előadás tematika:
1) Szoftverfejlesztés, programozási paradigmák.
2) Procedurális programozás: adattípusok, elemi programok.
3) Procedurális programozás: alprogramok, kivételkezelés.
4) Objektumorientált programozás: objektumok és osztályok.
5) Objektumorientált programozás: osztályszerkezetek megvalósítása.
6) Objektumorientált programozás: öröklődés, polimorfizmus.
7) Gráfok: mintapéldák, ábrázolás.
8) Gráfok: szélességi bejárás.
9) Gráfok: legrövidebb utak (Dijkstra, Bellman-Ford).
10) Gráfok: minimális költségű feszítőfák (Kruskal).
11) Gráfok: minimális költségű feszítőfák (Prím).
12) Gráfok: mélységi bejárás és alkalmazásai.
Gyakorlati tematika:
1) A C# nyelv alapjai, a fejlesztőkörnyezet.
2) Procedurális programozás: adattípusok, elemi programok.
3) Procedurális programozás: alprogramok, kivételkezelés.
4) Procedurális programozás: gyűjtemények, fájlkezelés.
5) Objektumorientált programozás: objektumok és osztályok.
6) Objektumorientált programozás: öröklődés, polimorfizmus.
7) Eseményvezérelt programozás: grafikus felület és eseménykezelés.
8) Eseményvezérelt programozás: egyszerű grafikus alkalmazások.
9) Eseményvezérelt programozás: elemi grafika és egérkezelés.
10) Eseményvezérelt programozás: képkezelés grafikus felületen.
11) Eseményvezérelt programozás: adatszerkezetek megvalósítása.
12) Eseményvezérelt programozás: gráfok és algoritmusaik.
Számonkérés:
A tárgyból a hallgatók vizsgajegyet, valamint gyakorlati jegyet kapnak.
A vizsgajegyet a hallgatók írásban
szerezhetik meg, az előadás elméleti anyagából, opcionális szóbeli javítási lehetőséggel. A vizsgán a gráfok elméleti ismereteiről kell beszámolni, a programozáselméleti ismeretekből nem.
A gyakorlati jegy megszerzéséhez 3 beadandó feladatot, valamint egy géptermi zárthelyit kell teljesíteni a félév során.
- Beadandók: A beadandók dokumentációból, valamint programból állnak, utóbbi csak a megfelelő dokumentáció bemutatásával értékelhető. A beadandók ötfokozatú skálán értékelhetőek. Csak a kitűzött feladatot megoldó, önállóan megvalósított program fogadható el.
- Zárthelyik: A géptermi zárthelyire évfolyamszinten a félév végén kerül sor, értékelése hatfokozatú skálán (0-5) történik az adott feladatrészek megoldásának függvényében. A sikertelen zárthelyi pótlására lesz lehetőség.
Értékelés:
A gyakorlati jegy előfeltétele legalább két beadandó elfogadtatása, és a géptermi zárthelyi legalább elégségesre történő teljesítése. Amennyiben a hallgató nem tudja megvédeni beadandóit, vagy megállapíthatóan másolta azt, a gyakorlati jegy megtagadásra kerül.
A gyakorlati jegy a három beadandó feladatra adott pontszám, valamint a zárthelyire kapott pontszám duplájának átlaga.