Oktatási cél: A tárgy célja a hallgatók megismertetése az alapvető algoritmusokkal az optimalizálás és a problémamegoldás területén, továbbá a legelterjedtebb adatszerkezetekkel és a napjainkban is használt programozási paradigmákkal.
Tematika: Az alapvető problémamegoldási módszerek bemutatása, beleértve a nyers erő módszerét, az oszd meg és uralkodj elvet, a visszalépéses keresést, valamint a szétválasztás és korlátozás módszerét. A dinamikus programozás, a feljegyzéses technika, a mohó algoritmusok és a heurisztikák ismertetése. Az adatszerkezetek általános jellemzőinek tárgyalása, valamint a lista, a verem, a sor, a prioritásos sor, a halmaz, a szótár és a gráf alapvető műveleteinek bemutatása. Az egyszerű és a rendezett láncolt lista, a bináris keresőfa, a B-fa, a kupac adatszerkezet, valamint a hasító függvények és hasító táblázatok ismertetése. A gráfok felépítésének és tárolási módjainak bemutatása, továbbá a súlyozatlan és súlyozott gráfok műveleteinek tárgyalása. Az imperatív és a deklaratív programozási paradigmák áttekintése.