Курсът има за цел да запознае студентите с основните принципи на проектиране на информационни системи. В рамките на курса се разглеждат въпроси, свързани със събиране и анализиране на изискванията, определяне на функционалността на системите и техните ограничения, изграждане на проекти/модели на системите, следване на определена методология при разработката им.

Теоретичните принципи се прилагат при работа в екип по конкретен проект. Студентите получават определен брой задачи и периодично докладват по тях. Работата в екип по проект е задължителен елемент от курса!
Курсът представя основните концепции във функционалното програмиране, като акцентира върху методологията на строгото (“чистото”) функционално програмиране. Разглежданите теми включват: типове величини и изрази; средства за комбинация и абстракция в езиците за функционално програмиране; примитивни данни; съставни типове данни; типове изчислителни процеси и езикови конструкции, които ги генерират; функции от първи и по-висок ред; модели на оценяване във функционалното програмиране; работа с безкрайни списъци и др.