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

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