Курсът е въведение в класическата и съвременната теория на изчислимостта. Основните теми са теорията на автоматите и формалните езици, изчислимост с машини на Тюринг, Тезис на Чърч – Тюринг, неразрешимост, сложност , класовете P и NP, NP – пълни проблеми. Подходът е математически, но от гледна точка на компютърната наука. Целта на курса е да се разгледат основните идеи, модели и резултати, свързани с теоретичните основи на програмирането