Курсът запознава студентите с основите на функционалното програмиране. Изучават се основните конструкции на езиците за функционално програмиране и структурата на функционалните програми. Особено внимание се отделя на някои специфични въпроси като функции от по-висок ред, модели на оценяване, работа с безкрайни потоци и др. Представят се основните принципи на реализацията на езиците за функционално програмиране. Разглеждат се някои характерни приложения на тези езици.

Изложението се базира на функционалните езици Scheme и Haskell.
Курсът изучава основните концепции, свързани със структурите от данни; описанието им; създаването на абстрактни типове данни, определящи типове на структури от данни; класифицирането на структурите. Разглежда описанието и реализацията на различни представяния на структурите от данни: стек, опашка, свързан списък с една и две връзки, цикличен свързан списък, дърво, двоично дърво, двоично наредено дърво, балансирано двоично наредено дърво, В-дърво, граф. Всяка от тези структури е реализирана чрез примерен шаблон на клас. В курса е включена и структурата от данни файл. Не малко внимание е отделено на приложения на тези структури. Курсът предлага основни алгоритми за сортиране и търсене. Изложението се базира на обектно-ориентирания подход.

Курсът представя основните принципи, обекти и алгоритми в компютърната графика. Tой покрива широк спектър теми: от растеризиране и примитивна анимация до моделиране на физически явления и създаване на 3D мултимедия. Практическите занятия са със създаване на онлайн 3D графика чрез JavaScript и библиотеката Three.js.