K-INFO
HU
EN
Belépés

Algoritmusok és adatszerkezetek hatékony implementálása C nyelven

Algorithms, Data Structures and their Efficient Implementation in C Language
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)
Algoritmusok és adatszerkezetek hatékony implementálása C nyelven
Algorithms, Data Structures and their Efficient Implementation in C Language
Tantárgykód BMEVIHIAV10
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) 0 2 0
jelleg (kapcsolt/önálló) — önálló —
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 2
Tantárgyfelelős
DR. Zsóka Zoltán
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Hálózati Rendszerek és Szolgáltatások Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala —
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
1.   A strukturált programozás tétele a gyakorlatban, a backtrack algoritmus implementálása

2.    Rekurzió vs. ciklus: előnyök – hátrányok, rekurzív algoritmusok átalakítása ciklusokká, rekurzív adatszerkezetek

3.    Eseményvezérelt modell megvalósítása függvénypointerekkel. Alapszintű diszkrét idejű szimuláció.

4.    K-ágú fák alkalmazása tudás reprezentációra, szakértő rendszerek, egyszerű tanulóalgoritmus megvalósítása bináris fa használatával.

5.    Fájlok kezelése az operációs rendszerben. Dinamikus adatszerkezetek mentése és felépítése fájlba, illetve fájlból.

6.    Kiegyensúlyozott bináris fák, AVL és piros-fekete fák megvalósítása és karbantartása. Kupac adatszerkezet.

7.    Helyben rendező algoritmusok összehasonítása, osztályozása, szoftver mérési eredmények vizualizálása


8.    Szélességi keresés, a legrövidebb út problémája; elárasztásos algoritmus implementálása várakozási sorral, Dijsktra algoritmusa kupaccal megvalósítva

9.     Típusok hatékony felhasználása lineáris algebrai algoritmusokban, mellékhatások kihasználása.
10.    Magasszintű nyelvek verem használata; a párhuzamos programozás lehetőségének megteremtése

11.    Tartalék előadás: Tesztelési adatsorok szisztematikus tervezése.

12.    A hallgatók által házi feladatként elkészített programok prezentációja, kódelemzés, a megoldások megvitatása – 1. alkalom

13.    u.a. – 2. alkalom

14.    u.a. – 3. alkalom
Ha a félév során 2 alkalommal marad el a foglalkozás, akkor a prezentációk bemutatására órarenden kívüli alkalmat biztosítunk.
A tantárgy célkitűzése, hogy a hallgatók a programozási ismereteiket olyan megoldásokkal, módszerekkel bővítsék ki, melyek a képzés programozási törzsanyagában nem szerepelnek, de a hatékony programok írását lehetővé teszik. Ennek során elsajátítják egyes hatékony, illetve gyakran használt algoritmusok és adatszerkezetek megvalósítási lépéseit a C nyelv lehetőségeit felhasználva és kihasználva. Az elsajátítandó módszereket a mérnöki gyakorlatban sűrűn előforduló kritikus problémákon próbáljuk ki.

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

A kétórás foglalkozások első részében elméleti szinten ismertetjük a problémákat és a megoldási módszereket, majd ezeket az ismereteket konkrét problémákra alkalmazzuk.

Tanulástámogató anyagok

Online források
•    N. Wirth: Algoritmusok + Adatstruktúrák = Programok, Műszaki Könyvkiadó, 1982; •    Benkő Tiborné, Dr. Poppe András: Együtt könnyebb a programozás – C, Computer Books, 2006; •    Nemes Mihály: Sebesség a számítástechnikában, Szieben és Tsa, 1995; •    Wayne Amsbury: Data Structures from Arrays to Priority Queues, Wadsworth Publishing, 1985

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)
Alapszintű strukturált programozás, 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)
Alapszintű strukturált programozás, C programozási nyelv ismerete
Általános szabályok
Követelmények: A gyakorlatok látogatása (a TVSZ értelmében) kötelező. A jelenlétet minden alkalommal ellenőrizzük, 30%-ot meghaladó hiányzás esetén a tantárgyból az elégtelentől eltérő jegy sem kreditpont nem szerezhető. a.    A szorgalmi időszakban: (1) Egy nagy házi feladat, ami a tanultak alkalmazása egy a való életből vett problémára. Az elkészült munkát a tárgy hallgatóságának személyes prezentáció formájában be kell mutatni. A bemutatás feltétele, a házi feladat beadása az utolsó órarendi órát megelőző napon 12 óráig. A nagy házi feladat értékelése 0 - 58 pont. A nagy házi feladat elfogadható szintű megoldása elégtelentől eltérő jegy megszerzésének feltétele (legalább  20 pont). (2) Két kis házi feladat a tanultakhoz kapcsolódó összehasonlító szoftver kísérlet dokumentálása, értékelése egyenként 0 - 21 pont Az elégtelentől eltérő jegy megszerzéséhez a hallgatónak legalább az egyik kis házi feladatot teljesen meg kell oldania (21 pont). A házi feladatokkal összesen 100 pont érhető el. A félévközi jegy ponthatárai: 40 pontig elégtelen 41 ponttól elégséges 56 ponttól közepes 71 ponttól jó 86 ponttól jeles. Pótlási lehetőségek: A házi feladatok késedelmes beadására, a pótlások hetének utolsó előtti munkanapján 10 óráig van lehetőség. A késedelmesen beadott feladatok prezentálására nincs lehetőség, de a prezentáció hiányában is elérhető az elfogadáshoz minimálisan szükséges pontszám.
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

Nincs megadva.

Ajánlott tantárgyak
A tárgyat csak azoknak célszerű felvenni, akik korábban már hallgatták a következő tárgyat: villamosmérnök alapszakon (BSc) a VIHIA106 Programozás alapjai I., vagy VIHIAA01 A programozás alapjai 1.
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.