Szoftvertervezés és -fejlesztés I.

Oktatási cél: A tantárgy célja a hallgatók algoritmikus gondolkodásának fejlesztése, az algoritmusalkotási készség kialakítása, valamint a gyakran használt algoritmusok megismerése. Ennek érdekében a hallgatók megismerkednek a strukturált és az objektumorientált programozás alapelveivel és módszereivel, továbbá egy konkrét objektumorientált programozási nyelv használatával.

Tematika: A tantárgy az algoritmusok felépítésével, a vezérlési szerkezetekkel és az algoritmusleírás eszközeivel foglalkozik. Bemutatja az egyszerű programozási tételeket, mint a sorozatszámítás, az eldöntés, a kiválasztás, a lineáris keresés, a megszámlálás és a maximumkiválasztás, valamint az összetett programozási tételeket, például a másolást, a kiválogatást, a szétválogatást, a metszetet, az egyesítést és az összefuttatást. A hallgatók megismerik a programozási tételek összeépítésének lehetőségeit, valamint az objektumorientált paradigma alapvető elemeit, így az objektum, az osztály és az osztályok közötti kapcsolatok fogalmát. A tematika kitér az objektumorientált megvalósítások általános jellemzőire, mint az egységbezárás, az adatrejtés, az öröklés, a többalakúság és a kód újrafelhasználása.

A tárgy részét képezi a rendezési algoritmusok bemutatása, beleértve az egyszerű cserés, a kiválasztásos, a buborék- és a beillesztéses rendezést, továbbá a tesztelés és a hibakeresés alapjai. A hallgatók megismerkednek a rendezett tömbökben végzett keresésekkel és programozási tételekkel, a halmazok reprezentációjával és műveleteivel, valamint a rekurzív algoritmusokkal és a programozási tételek rekurzív megvalósításával. A tematika része továbbá az „oszd meg és uralkodj” elvű algoritmusok bemutatása, különös tekintettel a gyorsrendezésre és az összefésülő rendezésre, valamint az optimalizálási problémák megoldása dinamikus programozás és mohó algoritmusok alkalmazásával.

Szoftvertervezés és -fejlesztés I.