Szoftvertervezés és -fejlesztés I.

Oktatási cél: A hallgatók algoritmikus gondolkodásának fejlesztése, algoritmus-alkotási készség
kialakítása, gyakran használt algoritmusok megismerése. Ennek érdekében a hallgatók
megismerkednek a strukturált és az objektum-orientált programozás alapelveivel és módszereivel,
valamint egy konkrét objektum-orientált programnyelv használatával.

Tematika: Algoritmusok felépítése, vezérlési szerkezetek. Az algoritmus leírásának eszközei. Egyszerű
programozási tételek: sorozatszámítás, eldöntés, kiválasztás, lineáris keresés, megszámlálás,
maximumkiválasztás. Összetett programozási tételek: másolás, kiválogatás, szétválogatás, metszet,
egyesítés, összefuttatás. Programozási tételek összeépítése. Az objektum-orientált paradigma elemei:
objektum, osztály, osztályok közötti kapcsolatok. Az OOP megvalósítások általános jellemzői:
egységbezárás, adatrejtés, öröklés, többalakúság, kód újrafelhasználás. Rendezések: egyszerű cserés,
kiválasztásos, buborék, beillesztéses. Tesztelés és hibakeresés. Keresések és programozási tételek
rendezett tömbökben. Halmazok reprezentációja és műveletei. Rekurzív algoritmusok, programozási
tételek rekurzív megvalósítása. „Oszd meg és uralkodj!” elvű algoritmusok, gyorsrendezés és
összefésülő rendezés. Optimalizálási problémák megoldása dinamikus programozás és mohó stratégia
alkalmazásával.

Szoftvertervezés és -fejlesztés I.