Курсът има за цел да представи основните идеи и полезни практики в системното програмиране като база за по-нататъшно развитие в тази и други области (разработка на драйвъри, kernel development, мрежово програмиране и всякакво приложно прогармиране). Акцентът пада върху системните примитиви, дефинирани в стандарта POSIX, като основната ОС, която се използва, е Linux. Изучават се системни примитиви, свързани с работа с файлове и цялостното изграждане на файловата система, системни примитиви за управление на процеси и междупроцесни комуникации и др.

Получаване на теоретични знания за концепции и модели на мрежовото програмиране и практически навици. 

Курсът запознава студентите с основните понятия, задачи и методи на Изкуствения интелект (ИИ). Разглеждат се основните направления на ИИ: търсене в пространството на състоянията, представяне и използване на знания, планиране на действията, машинно учене, невронни мрежи, обработка на естествен език и др.

По време на лабораторните занятия студентите ще се запознаят със съответните среди отворен код. Студентите ще разработят и курсови проекти за да покажат, че владеят и могат да прилагат знания от курса.

Курсът ОКГ включва запознаване с основните принципи, обекти и алгоритми в компютърната графика. Тази година курсът е разширен с около 300 демонстрационни програми. Избраните теми покриват широкия спектър от растеризирането на графични примитиви до програмирането на 3D мултимедия.

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

Курсът въвежда в основите на процедурното програмиране. Изложението е съчетано с изучаването на езика C++. Основава се на метода на структурното програмиране. Разглеждат се скаларните и съставни типове от данни, характерни за повечето езици за процедурно програмиране, а също и някои специфични за езика C++. Основно внимание е отделено на алгоритмите и реализирането на процедурните програми. Изучават се основните структури за управление на изчислителния процес и реализациите им на C++. Специално внимание е отделено на механизмите за изпълнение на функционалните обръщения, на рекурсията, на верификацията на процедурни програми. В процеса на изложение на учебното съдържание се анализират и реализират редица практически значими приложения на езиците за процедурно програмиране, свързани с масивите и структурите.

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