Катедра „Компютърни системи и технологии” е създадена през пролетта на 1993г. Обучението на студенти в областта на компютърна техника започва през 1985г., а през 1987г. е приет първия редовен випуск. През 2002 г. са се дипломирали първите бакалаври, а през 2003г. – първите магистри.
Целта на специалността „Компютърни системи и технологии” е да се подготвят квалифицирани кадри за промишлеността, комуникациите, транспорта, търговията, финансите, управлението и др. области, в които се прилагат информационните технологии.
През последните години към специалността съществува голям интерес от страна на студентите и фирмите от региона. Около 60% от кандидат студентите я поставят на първо место, а за 90% - тя фигурира в първите 5 желания.
До момента катедра „Компютърни системи и технологии” има 830 дипломирали се инженер магистри и 210 инженер бакалаври.
През настоящата учебна година в катедра „Компютърни системи и технологии” се обучават 358 редовни студенти бакалаври, 52 редовни студенти магистри, 84 задочни студенти бакалаври и 10 докторанта.
Катедра „Компютърни системи и технологии” включва 16 преподаватели – 2 професори, 8 доценти, 4 гл. асистенти и 2 асистенти.
Основните изучавани дисциплини по специалността „Компютърни системи и технологии” са:
Програмни езици: Основни теми - езици за програмиране – основни положения, класификации и методи на реализация; данни – атрибути на данните, понятие за стойност и тип, примитивни типове, агрегати, вътрешни структури и представянето им в паметта; средства за дефиниране и деклариране на данни в езиците за програмиране, декларатори, особености при деклариране на производни типове; управляващи структури; изрази и операции; структуриране на програмата; лексическа среда – характеристики на имената – обсег на действие, видимост, времена живот; глобални и локални имена; понятие за наследяване и включване; модели на паметта; подпрограми – основни положения, видове, отношения, реализация; полиморфизъм – статичен и динамичен; конструктори и деструктори; методи на класа и обекта; виртуални и абстрактни методи; предаване на параметри – механизми и реализации, обща среда, страничен ефект; изключителни ситуации; операции от високо ниво.
Програмни среди: Основни теми - програмен модел на Windows; MFC библиотека с основни класове; обзор на Win32 API интерфейс; елементарна обработка на събития; архитектура документ/изглед – SDI и MDI видове приложения; интерфейс на графично устройство и визуално представяне на данните; диалогови кутии – реализация на модални и немодални диалогови кутии, особености; диалогови кутии с общо предназначение; Windows контроли с общо предназначение и тяхното приложение; ActiveX контроли, използване; многонишково програмиране – работни и потребителски нишки, синхронизация.
Бази данни: Основни теми - системи с бази от данни – същност и принципи; модел със същности и връзки; релационен модел на данните; релационна алгебра; SQL – същност и принципи, заявки, дефиниране на данните, манипулиране на данните; проектиране на релационни бази от данни; йерархичен и мрежов модели; физическа реализация на бази от данни; конкурентен достъп и манипулиране на данните; защита на данните; разпределени бази от данни.
Обектно-ориентирано програмиране: Основни теми - видимост на вътрешните променливи (private, protected, public); member-функции; припокрити (overloaded) функции; конструктори и деструктори; специални типове конструктори; създаване и разрушаване на комплексни обекти: използване на списък за инициализация на променливите, верижно извикване на конструктори, верижно извикване на деструктори; създаване на масиви от обекти: деструктори и масиви от обекти, косвена инициализация на масива посредством default-конструктора, частична инициализация на масива; създаване и разрушаване на динамични обекти; статични променливи на класа и статични функции. Inline-функции. Friend-функции; приятелски и кооперирани класове. онаследяване: разлика между онаследяване и композиция, assignment compatibility rule; полиморфизъм: разлика между статично и динамично свързване на функции, разлика между припокрити и виртуални функции, взаимодействие между виртуални и невиртуални функции, предаване на полиморфни обекти като аргументи на функции; виртуални конструктори и деструктори; абстрактни класове; оператор-функции: предефиниране на унарни и бинарни оператори с помощта на member- и nonmember-функции, рестрикции по отношение на оператор-функциите, използване на псевдоними като аргументи на оператор-функции, разлика между присвояване и инициализация, оператор-функции за конвертиране на типа.
Компонентно програмиране: Основни теми - събития: определение; прехващане на събития; извличане на информация от дадено събитие; директна обработка на събития; изключения: определение; синтаксис на try…catch блок; класове за обработка на изключения; генериране на изключения; създаване на собствени изключения и активирането им; препредаване на изключения. идеология на VCL; приложение на полиморфизма при изграждането на VCL; прилагане на оператори <static_cast> и <dynamic_cast> върху полиморфни обекти, предавани като аргументи на събития; създаване на компоненти: създаване на компоненти, като наследници на съществуващи вече компоненти; създаване на съвършено нови компоненти; създаване и инсталиране на пакети от компоненти; предимства при използването на пакети от компоненти пред използване на DLL; създаване на InterNet приложения; технология CORBA за създаване на разпределени приложения в InterNet среда.
Компютърни мрежи: Основни теми - архитектура на отворени системи – моделa OSI на ISO; структури и функции на отделните нива; съобщителни среди; методи и средства за обмен на данни; апаратни средства за обмен на данни – стандартизирани интерфейси; комуникационни протоколи; управление обмена на данни; канален слой; примери за канално ниво – X.25, ISDN, ATM; локални мрежи – топологии; методи за достъп до съобщителната среда; стандарт IEEE 802.X; безжични локални мрежи IEEE 802.11; мрежов слой; маршрутизация и адресация; маршрутизатори; управление на транспортния слой; протоколи; глобална компютърна мрежа Internet – архитектура; протоколи TCP/IP; Internet приложения; обмен на файлове FTP, електронна поща, WWW; мрежови операционни системи; приложения клиент-сървър – архитектура; Intranet, Extranet; виртуални компютърни мрежи; управление на компютърни мрежи; защита на компютърните мрежи.
Операционни системи : Основни теми - функции; процес, паралелни процеси; взаимодействие между процеси, взаимно изключване; синхронизация на процеси, решение със семафори; комуникация между процеси; синхронизация от високо ниво - монитори; безизходна ситуация; структура на операционната система; управление на процесора, нива на планиране; дисциплини на планиране; дисциплина – опашки с обратна връзки; организация на паметта; методи за управление на паметта; странична и сегментна организации; виртуална организация на паметта; стратегии за въвеждане и извеждане на страници; файлова система; организация на файловата система.
Организация на компютрите: Основни теми - компютърна система, системно – структурен анализ на системата; структура, организация и архитектура на компютърната система; подсистеми; модел на фон Нойман; класификация на компютрите.
Микропроцесорни системи: Основни теми - микропроцесори 80х86, програмен модел и съвместимост между 8086/88, 80286, 80386, 80486, Pentium; програмиране на Асемблер за 80х86; организация на паметта при 80х86 – реален и защитен режим; програмни модули - подпрограми; механизми за предаване на параметри между главна програма и подпрограма; организация на вход/изход при 80х86 - програмно сканиране, по прекъсване, с директен достъп до паметта; входно-изходна система на персонален компютър IBM PC/АТ; системни шини за микрокомпютри IBM PC/АТ - основни цикли на системните шини; интерфейси за свързване на периферни устройства и комуникации към РС - RS 232, CENTRONIX, USB, irDA; проектиране на входно-изходни модули за РС - буфериране на системната шина, дешифрация на адресното пространство; създаване и настройване на драиверни програми на Асемблер за 80х86 в среда на MS Windows.
Анализ и синтез на алгоритми: Основни теми - понятие, характеристики (сложност), представяне, видове алгоритми; основни алгоритми (за сортиране, търсене, включително хеширане); алгоритми за операции със структури от данни (масив, стек, опашка, списък, граф, дърво); методи за съставяне на алгоритми (рекурсивни, разделяй и владей, динамично програмиране); теория на алгоритмите; евристични, паралелни, вероятностни алгоритми; алгоритми за аритметични операции, верификация на алгоритъм и др.
Компютърни архитектури: Основни теми - основни понятия в компютърните архитектури. Изчислителен модел и архитектура, организация и реализация, структура и функция; Фон Нойманов изчислетелен модел и архитектура; тесни места в класическата архитектура; йерархия на памети; свръхбързодействащи кеш памети. Функция на съответствие, алгоритми на заместване, методи на запис, размерност; виртуална организация на паметта; структура; странична и сегментна организация, страницирано сегментиране; алгоритми за заместване; съвместна работа на кеша с виртуалната памет; входно-изходни системи; управление на В/И операции; канална организация; структура на В/И софтуер; шинна организация на вътрешносистемните комуникации; структура, методи за арбитриране, транзакции, синхронна и аснихронна работа; съвременни индустриални шинни стандарти; конвейрна организация на централния процесор; петстъпално изпълнение на инструкциите; зависимости между инструкциите в конвейра - по данни и по преход, методи за преодоляването им; компютри с RISC архитектури; основни характеристике; използване на регистров файл и изпълнение на инструкциите за преход; преимущества и недостатъци; pаралелизъм и мултипроцесинг; oсновни класове паралелни архитектури.
Анализ и синтез на логически схеми: Основни теми - основни закони и свойства на логическите функции; канонични и нормални форми за представяне на логически функции; минимизация на логически функции; непълно-определени логически функции – описание и минизация; схемна реализация на логически функции; типови логически схеми: дешифратори, мултиплексори, кодови преобразуватели и др. анализ на комбинационни схеми.
Компютърна графика: Основни теми - kомпютърна графика, обработка на изображения, разпознаване на образи; растерна и векторна графика; моделиране; видове модели; основни алгоритми на растерната графика; представяне на цветовете в компютъра; колориметрични модели; математически основи на компютърната графика ; векторна графика; алгебрично-логически модели – R-функции, основна система, моделиране на сложни синусоидални сигнали, импулси (импулсни поредици), хистерезисни цикли; моделиране на оптични елементи и явления, моделиране на симетрични управляващи характеристики, оптимални обемни модели, асиметрично мащабиране.
Компютърна периферия: Основни теми - класификация на периферните устройства; организация на вход-изхода на данни в компютъра, управление от процесора – Интерфейси, Канал за вход/изход, Управляващо устройство, Порт, Драйвер; периферни устройства: за въвеждане на данни: текст – клавиатура, графика – дигитайзер, визуална информация – скенер, дисплейни - светлинна писалка, мишка, трекбол, джойстик, сензорен екран; за извеждане на данни: Регистриращи: текст – принтери, Технология на печата; видове принтери – ударни и безударни, мастиленоструйни и лазерни; графика - плотери; индикиращи:– монитори; индикатори (дисплеи), видео стандарти; видеоадаптери, видеопамет; външни запомнящи устройства – класификация: магнитни - носител, принципи на запис и четене, методи; магнитни глави; видове магнитна лента и магнитен диск; флопи дискови устройства; интерфейси; хард дискови устройства; технология WINCHESTER - конструкция; оптични носители - принципи на запис и четене; оптични глави - СD RОМ, СD R, CD RW, DVD; мултимедийни приложения.
Компютърно зрение (магистри): Основни теми - методи и средства за създаване на работни компютърни изображения, видове изображения и характеристики; първична обработка на компютърните изображения- конволюция и филтрация: линейни и нелинейни филтри, честотни филтри, граници на приложимост; Математическа морфология; Сегментация на изображения; Определяне на информационни признаци и нормализация; Общи принципи и методи за обработка на динамични изображения; Анализ, клъстеризация и минимизация на признаково пространство; Системи и методи за разпознаване на образи- детерминирани, вероятностни, логически и лингвистични.
Програмиране за Интернет (магистри): Основни теми - основи на платформата .NET FRAMEWORK; изграждане на асембли; споделени асемблита; основи на типовете; видове типове; операции с обекти, методи, свойства, събития, масиви, стрингове, изброими типове; интерфейси; потребителски атрибути и отражение; делегати; изключения; автоматично управление на паметта; финализиране; CLR хостинг и AppDomain.
Изкуствен интелект (магистри): Програмата отговаря на изискванията на препоръчителната програма СС2001 на IEEE/CS и ACM. Тя е съобразена с необходимостта от базови познания по направлението обработка на знания и е основа за цяла гама от специализиращи дисциплини в научната област. В курса се изучават фундаменталните понятия, отнасящи се до неформални методи за решаване на задачи, модели на интелектуална дейност, модели за представяне на знания и методи за извод. Материалът се илюстрира с учебни примери от изградени системи с изкуствен интелект.
Разпределени системи и компютърни комуникации (магистри): Основни теми - въведение в разпределените системи за обработка на информация; хардуерни и софтуерни аспекти на модела клиет-сървър; комуникационни протоколи от приложния слой; middleware протоколи и разпределени приложения - RPC, RMI, MQS; разпределени процеси: клиет-съравар, нишки, мигриращ код, софтуерни агенти; имена и адреси при разпределените системи - DNS, X.500; синхронизиране на разпределени системи; съгласуване и репликация; модели за съгласуване – модели, основани на данните и на клиента; методи за репликация; сигурност в разпределените системи - политики и механизми; методи за шифроване, PKI. KERBEROS, SESAME; разпределени обектнo-базирани системи. CORBA, DCOM; разпределени фаилови системи. NFS, AD; разпределени документно-базирани системи; WWW, LOTUS Notes; разпределените системи базирани на координация между обекти, JINI;
Комбинаторни алгоритми (магистри): Основни теми - алгоритми за генериране на пермутации в лексикографски и антилексикографски ред; алгоритми за генериране на пермутации с една транспозиция при преминаване към следваща пермутация; алгоритми за генериране на комбинации в лексикографски ред; алгоритми за генериране на всички подмножества на дадено множество; алгоритми за генериране на подмножества с повторения; алгоритми за генериране на всички разбивания на множество; граф – основни понятия, видове, значение, представяне (външно и вътрешно); алгоритъм за обхождане на граф в дълбочина (процедура, фундаментални цикли, определяне на свързани компоненти); алгоритъм за обхождане на граф в ширина; класиращ алгоритъм на възлите на граф (векторен, с подграф, с базов клас); понятие за изоморфизъм и автоморфизъм на граф, примери; група автоморфизми на граф (образуващи, орбити, ред на групата), пример; подгрупа, теорема на Лагранж; стабилизатор, лема на Бърнсайд; алгоритъм за определяне автоморфизмите на граф; инварианти и сертификати на дърво и граф; алгоритъм за определяне на изоморфизмите на графи; алгоритъм за определяне на изоморфното влагане на граф в граф; алгоритъм за определяне на максималното изоморфно пресичане на графи; алгоритъм на Дейкстра за определяне на най-къс път в граф; алгоритъм на Флойд за определяне на всички разстояния в граф; алгоритъм за определяне на транзитивното затваряне на граф; топологическа сортировка; алгоритъм за определяне на Ойлеров цикъл и път в граф; алгоритъм на Роберт и Флорес и многоучастъков алгоритъм за определяне на хамилтонов цикъл в граф;
Паралелни алгоритми (магистри): Основни теми - pаралелни компютърни архитектури – класификация; kомпоненти на паралелните архитектури, мрежи за вътрешни връзки; взаимодействия между процеси; aнализ на зависимостите между операциите и данните; основни принципи за създаване на паралелни алгоритми; паралелни алгоритми за умножение на матрици и матрица с вектор; паралелни алгоритми за решаване системи линейни уражнения; паралелни алгоритми за обработка на изображения; паралелни алгоритми за сортиране.
Проектиране на свръх големи интегрални схеми (магистри): В лекционните теми и темите на упражненията са включени основните въпроси от теорията и практиката на проектиране на цифрови устройства и системи върху големи и свръхголеми интегрални схеми (СГИС) – технология, схемотехника на СГИС, съвременни архитектури и езици за описание на цифрови устройства и системи, методи и развойни среди за проектиране и реализация на цифрови устройства върху СГИС.
Обучение и самообучение в компютърните системи (магистри): Курсът е въвеждащ в компютърното обучение и самообучение. Основните теми са следните: обучение на невронни мрежи, обучение чрез анализ на различия, обучение чрез обяснение на минал опит, обучение чрез корегиране на грешки, обучение чрез анализ на конкретни случаи, обучение в пространството на моделите, строене на идентификационни дървета, обучение чрез симулиране на еволюция. Материалът е илюстриран с примери от действуващи програми за обучение и самообучение.
Алгоритми в биоинформатиката (магистри): Основни теми - основни сведения от молекулярната биология; алгоритми за определяне подобието на последователности; марковски модели; бази от данни в биоинформатиката; алгоритми за определяне на генни последователности; картографиране на ДНК; пренареждане на геном; протеинови структури.
Конвейрни и паралелни компютърни архитектури (магистри): Основни теми - изчислителни модели,взаимодействие между изчислителен модел, програмен език и архитектура; класификация; конвейeрна и паралелна обработка,основни техники; паралелни процесори на инструкционно ниво - ILP; суперскаларни процесори; декодиране и разпределение на инструкциите; извличане на операндите; станции за резервиране и преименоване на регистрите в суперскаларните процесори; изпълнение на инструкциите за преход в конвейeрните и паралелни ILP машини; паралелни архитектури на ниво “нишка” - thread; многонишкови (multithreaded) процесори; паралелни машини с MIMD архитектура и разпределена памет; дребнозърнести и едрозърнести мултикомпютри; паралелни машини с MIMD архитектура и обща памет; съгласуване на кеша, синхронизация и подреждане на събитията в мултипроцесорите; мултипроцесори с метод на достъп до паметта от тип UMA, NUMA, CC-NUMA и COMA.