ЦЕНТЪР ЗА ПРОФЕСИОНАЛНО ОБУЧЕНИЕ
КЪМ „ХАРМОНИЯ 1”ООД
УЧЕБЕН ПЛАН
ЗА НАЧАЛНО ПРОФЕСИОНАЛНО ОБУЧЕНИЕ С
ПРИДОБИВАНЕ НА ВТОРА СТЕПЕН НА ПРОФЕСИОНАЛНА КВАЛИФИКАЦИЯ
| Професионално направление | Компютърни науки | Код:481 | 
| Професия | Програмист | Код: 481010 | 
| Специалност | Програмно осигуряване | Код: 4810101 | 
| Степен на професионална квалификация | втора | 
Очаквани резултати от обучението:
по ДОС за придобиване на квалификация по професии, публикувани в ДВ от началото на 2016 г.
ЕРУ Здравословни и безопасни условия на труд (ЗБУТ) и опазване на околната среда
| Резултат от учене 1:1 
 | Спазва хигиенните норми и здравословните и безопасни условия на труд на работното място | 
| Знания | • Познава разпоредбите за осигуряване на здравословни и безопасни условия на труд за конкретната трудова дейност • Познава средствата за сигнализация и маркировка за осигуряване на ЗБУТ • Знае основните рискове за здравето и безопасността при конкретната трудова дейност • Знае основните мерки за защита и средствата за сигнализация и маркировка за осигуряване на ЗБУТ | 
| Умения 
 | • Прилага необходимите мерки за защита • Използва средствата за сигнализация и маркировка за осигуряване на ЗБУТ | 
| Компетентности 
 | • Изпълнява трудовата дейност при спазване на необходимите мерки за осигуряване на безопасност и здраве при работа • Проявява отговорност към останалите участници в трудовия процес • Извършва трудовата дейност, като спазва нормативните разпоредби за осигуряване на здравословни и безопасни условия на труд на работното място | 
| Резултат от учене 1.2: | .. Предотвратява и овладява аварийни ситуации | 
| Знания | • Знае основните рискови и аварийни ситуации • Познава основните изисквания за осигуряване на аварийна безопасност • Изброява основните стъпки за действия при аварии и аварийни ситуации • Познава видовете травми и методите за оказване на първа помощ | 
| Умения 
 | • Използва терминологията, свързана с аварийните ситуации • Спазва изискванията за осигуряване на пожарна и аварийна безопасност • Спазва правилата за действия при аварии и аварийни ситуации • Оказва първа помощ на пострадали при авария | 
| Компетентности 
 | • Разпознава рисковете, които могат да доведат до възникване на пожар и/или авария • Участва в овладяването на възникнал пожар и/или авария в съответствие с установените вътрешнофирмени правила за пожарна и аварийна безопасност | 
| ЕРУ 2 Икономика | |
| Резултат от учене 2:1 | Познава основите на пазарната икономика | 
| Знания | • Познава общата теория на пазарната икономика • Запознат е с основните икономически проблеми – оскъдност, ресурси, избор • Знае ролята на държавата в пазарната икономика • Познава видовете икономически субекти в бизнеса | 
| Умения 
 | • Информира се за успешни практически примери за управление на различни бизнес начинания | 
| Компетентности 
 | • Способен е да идентифицира успешни практически примери за управление на бизнес начинания, като обясни ролята на всеки икономически субект, ангажиран в бизнеса | 
| Резултат от учене 2:2 | Познава характеристиките на производствената дейност във фирмата/предприятието | 
| Знания | • Познава основите на пазарното търсене и пазарното предлагане • Дефинира основни икономически понятия – приходи, разходи, печалба, рентабилност | 
| Умения 
 | • Обяснява основни икономически понятия в контекста на дейността на фирмата/предприятиет | 
| Компетентности 
 | • Способен е да анализира основните икономически принципи в контекста на дейността на дадена фирма/предприятие | 
| ЕРУ 3 Предприемачество | |
| Резултат от учене 3.1: | Познава основите на предприемачеството | 
| Знания | • Знае същността на предприемачеството • Знае видовете предприемачески умения | 
| Умения 
 | • Анализира практически примери за успешно управление | 
| Компетентности 
 | • Предлага нови идеи за ефективно изпълнение на трудовите дейности | 
| Резултат от учене 3.2: | Формира предприемаческо поведение | 
| Знания | • Познава характеристиките на предприемаческото поведение • Знае видовете предприемаческо поведение | 
| Умения 
 | • Преценява необходимостта от промени, свързани с подобряване на работата | 
| Компетентности 
 | • Предлага решения за оптимизиране на трудовите дейности | 
| ЕРУ 4 Организация на труда | |
| Резултат от учене 4-1: | Подготовка на работното място | 
| Знания | • Познава правилата за работа на работното място • Описва технологията на работа • Познава видовете инструктаж | 
| Умения 
 | • Работи с инструментите и машините, свързани с професионалната му дейност • Спазва правилата за ЗБУТ | 
| Компетентности 
 | • Работи с инструментите и машините, свързани с професионалната му дейност, като спазва изискванията за ЗБУТ във фирмата/предприятието | 
| Резултат от учене 4.2: | Организация на работното място | 
| Знания | • Познава правилата за рационална организация на работното място | 
| Умения 
 | • Работи по схема, като спазва ЗБУТ • Открива грешки от технологичен характер • При техническа неизправност уведомява съответното длъжностно лице • Поддържа ред и чистота на работното място | 
| Компетентности 
 | • Изпълнява в срок поставените задачи, като спазва изискванията за качество • Способен е да отстранява грешки от технологичен характер | 
| ЕРУ 5 Комуникация и чужд език | |
| Резултат от учене 5.1: | Общува ефективно в работния екип | 
| Знания | • Познава отделните длъжности в екипа, техните взаимоотношения и йерархични връзки | 
| Умения 
 | • Комуникира в работен порядък с екипа и персонала | 
| Компетентности 
 | • Комуникира ефективно с всички участници в трудовия процес съобразно работния протокол • Поема отговорности при работа в екип | 
| Резултат от учене 5.2: | Води ефективна бизнес комуникация | 
| Знания | • Познава етичните норми на комуникацията • Познава правилата за вербална и невербална комуникация • Познава ефективното поведение при конфликти • Познава правилата и изискванията за делова кореспонденция | 
| Умения 
 | • Разпознава и избягва конфликтни ситуации • Съдейства за решаване на конфликтни ситуации • Води делова комуникация – писмена и устна • Събира и предлага необходимата информация за удовлетворяване изискванията на клиентите | 
| Компетентности 
 | • Провежда разговор с клиенти с цел консултиране и съгласуване на предлаганите услуги • Разбира и уважава изискванията на клиентите, като същевременно защитава интересите на организацията | 
| Резултат от учене 5.3: | Владее чужд език по професията | 
| Знания | • Познава основната професионална терминология на чужд език | 
| Умения 
 | • Чете и разбира кратки, по-общодостъпно написани текстове на чужд език на професионална тематика (например техническа документация и др.) • Ползва чужд език при търсене на информация от интернет и други източници • Ползва чужд език (писмено и говоримо) при комуникация с партньори и клиенти | 
| Компетентности 
 | • Владее чужд език на ниво, позволяващо му да осъществява успешна комуникация по познати професионални теми, изискваща обикновен, пряк обмен на информация | 
| ЕРУ 6 Математика | |
| Резултат от учене 6.1: | Извършва базов анализ на функции | 
| Знания | • Знае същността и ролята на функциите • Знае основната математическа нотация за записване на функциите • Познава инективната, сюрективната и биективната функция • Разбира обратимостта на функциите • Познава обратимите и необратимите функции и тяхната роля в програмирането • Познава характеристиките прекъснатост, непрекъснатост, ограниченост и неограниченост на функциите • Знае начина за изобразяване на графика на функции върху правоъгълна координатна система • Познава същността на концепцията за функция от по-висок ред | 
| Умения 
 | • Разпознава типа функция • Намира обратни функции на прости функции • Определя типа на основните функции – линейна, квадратична, експоненциална • Разчита графика на функции, изобразени върху правоъгълна координатна система | 
| Компетентности 
 | • Самостоятелно решава задачи, свързани с използване на изучаваните функции • Точно чертае функции върху правоъгълна координатна систем | 
| Резултат от учене 6.2: | Борави с основните математически понятия, срещани в дискретната математика | 
| Знания | • Знае функциите на комбинаториката • Познава основните комбинаторни конфигурации • Познава същността на понятието булева алгебра • Познава основните булеви операции • Знае как се извършват основните булеви операции • Познава същността на множествата и тяхната роля в програмирането • Познава основните операции, извършвани с множества • Разбира понятието функция, разгледано като изображение между две множества • Разбира същността на релацията между два обекта • Знае начините за изобразяване на релация чрез функция • Познава основните свойства на релациите | 
| Умения 
 | • Служи си с математически нотации за множества • Прилага базови операции върху множества • Пресмята основни булеви изрази • Определя свойствата на дадена релация • Извършва основни комбинаторни пресмятани | 
| Компетентности 
 | • Самостоятелно решава задачи за математически множества, булева алгебра и комбинаторни конфигураци | 
| Резултат от учене 6.3: | Борави с основните математически понятия, срещани в линейната алгебра | 
| Знания | • Познава структурата вектор в линейната алгебра и нейната функция • Познава основните характеристики на вектора • Познава структурата матрица в линейната алгебра и нейната функция • Познава основните характеристики на структурата матрица • Знае основните операции, които могат да се извършват между вектори и матрици • Познава понятието детерминанта на матрица • Знае информацията, която дава детерминантата • Знае алгоритъма за пресмятане на детерминанта • Познава метода на Гаус като начин за решаване на система линейни уравнения и алгоритъма за прилагането му | 
| Умения 
 | • Реализира основни операции над вектори и матрици • Пресмята детерминанта на матрица • Решава система линейни уравнения чрез метода на Гаус | 
| Компетентности 
 | • Способен е самостоятелно и точно да решава задачи, включващи вектори, матрици и операциите над тях • Способен е самостоятелно и точно да решава задачи, включващи пресмятане на детерминанта на матрица • Способен е самостоятелно и точно да решава задачи чрез метода на Гаус • Способен е самостоятелно и точно да решава задачи по програмиране, за които са необходими знания за вектори и матрици | 
| Резултат от учене 6.4: | Прилага различни бройни системи | 
| Знания | • Познава същността и ролята на бройните системи • Познава същността на основната бройна система, с която работи – десетичната бройна система • Познава двоичната бройна система и нейните роля и приложение • Познава приложението на двоичната бройна система в компютрите • Знае основните операции в двоична бройна система • Познава шестнадесетичната бройна система и нейното приложение в компютрите • Знае общия начин за преобразуване на число от една бройна система в друга | 
| Умения 
 | • Разпознава запис в двоична и в шестнадесетична бройни системи • Преобразува записа на числа от една бройна система в друга – от десетична към двоична и обратно; от десетична към шестнадесетична и обратно • Преобразува записа на числа от произволна бройна система към друга произволна бройна система | 
| Компетентности 
 | • Способен е да извърши правилно основните побитови операции в двоична бройна система • Способен е да преобразува точно записа на числа от една бройна система в друга, използвайки общия алгоритъм | 
| ЕРУ 7 Програмиране | |
| Резултат от учене 7.1: | Създава структурни програми с процедурен език | 
| Знания | • Познава скаларни и съставни типове данни (масиви, низове и структури) • Познава основните оператори и техния приоритет в израз (аритметични, сравнителни, логически, побитови, присвояващи, знакови, инкрементиращ, декрементиращ и др.) • Изброява основните вградени функции (математически и други, характерни за избрания програмен език) • Познава операторите за вход и изход • Познава оператори за разклоняване if, if-else и switch/select • Познава операторите за цикъл с предусловие и с постусловие (while, until, do-while, do-until, for, foreach) • Знае метода рекурсия и неговото приложение • Дефинира начините за декларация и извикване на функция • Познава операторите за принудително напускане на цикъл • Познава работата с указатели (ако в съответния програмен език се използват указатели или референции) • Дефинира начините за деклариране и извикване на функция • Познава предаване на параметри по стойност и по адрес | 
| Умения 
 | • Оперира с основните скаларни типове данни и прилага операции върху тях • Използва динамична памет • Служи си с фактически и формални параметри • Обработва съставни типове данни • Прилага оператори за управление на изчислителния процес и побитова обработка • Структурира и създава програми, като използва функции • Създава по задание правилно функционираща програма на изучавания език • Структурира и създава програми, като използва готови библиотеки | 
| Компетентности 
 | • Работи умело със среди за програмиране, може да се ориентира и да усвоява нови среди • Логично и комбинативно, с прилагане на абстракции, самостоятелно създава код • Самостоятелно и творчески развива знанията и уменията си, усвоява нови програмни езици и среди за програмиране | 
| Резултат от учене 7.2: | Създава структурни програми, управляващи входно-изходни потоци | 
| Знания | • Познава програмни средства за работа с файлове • Знае режими на отваряне на файлове • Познава отварянето на файл за запис • Познава отварянето на файл за четене • Познава отварянето на файл за запис и за четене едновременно • Познава типовете файлове: текстови и бинарни • Изброява методи за достъп до елементи на файл | 
| Умения 
 | • Разработва програми с достъп до файлове за запис и четене • Използва методи за достъп до елементи на файл | 
| Компетентности 
 | • Самостоятелно създава структурни програми с процедурен език за управление на входно-изходни потоци | 
| ЕРУ 8 Алгоритми и структури от данни | |
| Резултат от учене 8.1: | Реализира и прилага структури от данни и свързани с тях алгоритми | 
| Знания | • Знае същността на структурите от данни и тяхната роля в програмирането • Познава харектеристиките на линейните структури от данни и основните операции върху тях • Знае същността на масива като линейна структура от данни, неговите основни характеристики, операции и тяхната сложност • Познава характеристиките на дървовидни структури от данни, основните операции върху тях и тяхната сложност • Разбира понятието параметри за тип • Разграничава структури от данни, които са параметризирани по тип (generic) • Познава средства на езика за деклариране на параметър за тип • Познава библиотеки с реализации на стандартни структури от данни • Познава динамичните структури от данни: вектор, стек, опашка, свързан списък, дек и др. | 
| Умения 
 | • Реализира структури от данни и основните операции върху тях • Реализира алгоритми върху структури от данни • Прилага средствата на езика за деклариране на параметър за тип • Прилага добър стил за именуване на параметър на тип | 
| Компетентности 
 | • Способен е правилно да борави със структури от данни и основните операции върху тях • Способен е вярно и точно да реализира алгоритми върху структури от данни • Способен е правилно да прилага утвърден стил за дефиниране и работа с параметър за тип • Способен е навременно и точно да отстранява грешки при неправилно боравене с параметър за тип • Способен е правилно да използва библиотеки с реализации на стандартни структури от данни | 
| Резултат от учене 8.2: | Реализира и прилага алгоритми за сортиране | 
| Знания | • Знае стандартни алгоритми за сортиране и тяхната сложност • Знае интерфейсите за достъп до методи на абстрактни типове данни от стандартни библиотеки за сортиране • Познава ограниченията на методите за сортиране • Знае как се прилага способ за прилагане на наредба за сортиране, различна от подразбиращата се | 
| Умения 
 | • Реализира стандартни алгоритми за сортиране • Прилага методи на абстрактни типове данни от стандартни би блиотеки за сортиране • Извършва сортиране с наредба, различна от подразбиращата се | 
| Компетентности 
 | • Способен е правилно да прилага алгоритми за сортиране за решаване на реални проблеми 
 • Способен е вярно и точно да разграничава типове на структури от данни, които предост авят методи за сортиране • Способен е коректно да прилага реализация на алгоритми за сортиране от стандартни библиотеки | 
| Резултат от учене 8.3: | Реализира и прилага алгоритми за търсене | 
| Знания | • Знае стандартни алгоритми за търсене и тяхната сложност • Познава интерфейсите за достъп до методи на абстрактни типове данни от стандартни библиотеки за търсене • Знае ограниченията на методите за търсене • Знае как се прилага способ за прилагане на наредба за търсене, различна от подразбиращата се | 
| Умения 
 | • Реализира стандартни алгоритми за търсене данни от стандартни библиотеки за търсене • Извършва търсене с наредба, различна от подразбиращата се | 
| Компетентности 
 | • Способен е правилно да прилага алгоритми за търсене за решаване на реални проблеми • Способен е вярно и точно да разграничава типове на структури от данни, които предоставят методи за търсене • Способен е коректно да прилага реализация на алгоритми за търсене от стандартни библиотеки | 
| Резултат от учене 8.4: | Използва стандартна библиотека, реализираща функционалността на речници и множества | 
| Знания | • Познава речници и множества като структури от данни, реализирани в стандартни библиотеки | 
| Умения 
 | • Използва речници и множества като структури от данни, реализирани в стандартни библиотеки • Итерира елементите на речници и множества • Извършва търсене на елемент в речник | 
| Компетентности 
 | • Способен е правилно да съхранява данни в речник и множество • Способен е вярно и точно да извършва CRUD операции в речник и множество | 
| Резултат от учене 8.5: | Използва стандартна библиотека, реализираща функционалността на графи | 
| Знания | • Знае същността на структурата от данни граф и нейното приложение • Познава основните операции, които се извършват в един граф • Познава различните начини за представяне на граф в програмирането и сложността на операциите спрямо избора на представяне • Разбира идеята за обхождане на граф • Познава различните начини за обхождане на граф • Разбира същността на идеята за намиране на най-кратък път в граф • Разбира значението на теглата на ребрата • Познава различните алгоритми за намиране на най-кратки пътища | 
| Умения 
 | • Строи граф по зададена матрица на инцидентност • Обхожда върховете на графа, използвайки поне по един способ • Дефинира тегла на ребра на граф като цена за прехода между два съседни върха | 
| Компетентности 
 | • Способен е да имплементира правилно граф като структура от данни по зададена спецификация • Способен е коректно да решава проблеми, моделирайки данните чрез графи и използвайки някой от основните алгоритми върху тях | 
| Резултат от учене 8.6: | Използва стандартна библиотека, реализираща функционалността на бинарни дървета | 
| Знания | • Знае същността, характеристиките и приложенията на бинарни дървовидни структори от данни • Познава основните приложения, извършвани върху дървовидни структори от данни • Знае начина за представяне на дървото като структура чрез програмен език и сложността на операциите спрямо представянето • Разбира характеристиката на дървото „удобна за рекурсия структура от данни“ • Познава същността на двоичното дърво като структура от данни и неговите характеристики • Познава сложността на операциите в дървото, и най-вече на търсенето • Разбира идеята за балансирано двоично дърво за търсене • Познава пирамидата като дървовидна структура от данни, нейните характеристики и приложения • Знае начина за представяне на пирамидалните структури • Познава основни оптимизационни алгоритми и ги прилага при решаване на известни задачи | 
| Умения 
 | • Различава балансирано двоично дърво за търсене от стандартното двоично дърво за търсене • Локализира дървовидни структури във всекидневната компютърна употреба – HTML, файлова система и т.н. • Представя различни видове дървета и имплементира основните алгоритми върху тях | 
| Компетентности 
 | • Разрешава коректно проблеми, моделирайки ги чрез дървета и използвайки някой от основните алгоритми върху тях • Разрешава коректно проблеми, използвайки дървовидни структури от данни • Способен е правилно да имплементира двоично дърво за търсене • Способен е правилно да имплементира балансирано дърво за търсене • Способен е вярно и точно да имплементира пирамидална структура от данни | 
| ЕРУ 9 Модели на програмиране | |
| Резултат от учене 9.1: | Използва обектно-ориентирания модел | 
| Знания | • Познава същността на обектно-ориентирания модел • Разбира основната идея за този модел • Познава основните понятия в обектно-ориентираното програмиране • Разбира връзката между типовата система на даден език за програмиране и неговия обектен модел • Знае общото между типове, класове и обекти • Разбира термина „предаване по референция“ • Знае разликата между „референтна“ и „примитивна“ стойност • Разбира абстракцията и нейното приложение в обектно-ориентирания модел • Разбира основните принципи в Обектно-ориентираното програмиране (ООП): Капсулация, Наследяване и Полиморфизъм | 
| Умения 
 | • Използва обектно-ориентиран език за програмиране • Посочва грешки в чужд код, написан в обектен стил | 
| Компетентности 
 | • Способен е коректно и навременно да решава проблеми в обектно-ориентиран стил | 
| Резултат от учене 9.2: | Използва събитийно-ориентирания модел | 
| Знания | • Разбира понятието графичен потребителски интерфейс • Дефинира понятието събитие и обработчик на събитие • Разбира понятието аргументи на събитието • Обяснява понятието обработката на грешки в ООП | 
| Умения 
 | • Различава конзолно от графично приложение • Обработва изключителни ситуации в ООП | 
| Компетентности 
 | • Реализира коректно десктоп или мобилно приложение с графичен потребителски интерфейс • Управлява умело робот или хардуер с помощта на събития от сензори или хардуерни прекъсвания | 
| Резултат от учене 9.3: | Създава софтуер, използващ клиент-сървърни архитектури | 
| Знания | • Разбира концепцията за клиент-сървърна архитектура • Познава приложението на клиент-сървърната архитектура • Разбира концепцията за протокол за комуникация между даден клиент и сървър • Разбира начина на свързване на клиент-сървърната архитектура с бази от данни – „трислойна“ архитектура | 
| Умения 
 | • Реализира проста клиент-сървър архитектура • Разпознава вече съществуваща клиент-сървър архитектура | 
| Компетентности 
 | • Способен е вярно и съобразително да създава и надгражда софтуер, използващ клиент-сървър архитектура | 
| ЕРУ 10 Софтуерна разработка | |
| Резултат от учене 10.1: | Използва различни видове операционни системи | 
| Знания | • Знае същността, приложението и ползите на операционната система • Познава най-често използваните видове операционни системи • Знае услугите на една операционна система • Знае начини за инсталиране на софтуер върху операционна система • Разбира разликите между процес и програма | 
| Умения 
 | • Инсталира ОС • Използва ОС без графична среда – чрез терминал • Навигира и редактира файлове чрез конзолен редактор • Инсталира и конфигурира софтуер на дадена ОС чрез използване на пакетни мениджъри | 
| Компетентности 
 | • Идентифицира вярно и точно ресурсите на ОС, ангажирани с изпълнението на конкретен процес • Способен е навременно да се справя с различни проблеми, свързани с конфигуриране и инсталиране на софтуер • Способен е ефективно да създава виртуални машини | 
| Резултат от учене 10.2: | Дефинира устройството на компютъра | 
| Знания | • Разбира функциите на основните компютърни компоненти и тяхното взаимодействие • Познава основни интерфейси и свързани с тях протоколи (USB, Ethernet, VGA, HDMI, PCI, SATA, DVI и др.) | 
| Умения 
 | • Свързва и конфигурира периферни устройства с компютър • Прави основна профилактика на компютърна система | 
| Компетентности 
 | • Способен е точно да добавя и настройва периферни устройства • Способен е правилно да пише скриптове за конфигуриране на софтуерни компоненти и ПУ | 
| Резултат от учене 10.3: | Обяснява разликата между среда за разработка и текстов редактор | 
| Знания | • Знае същността на средата за разработка и тази на текстовия редактор • Познава връзката между езици и технологии и препоръчителни среди и редактори • Знае основните операции в текстов редактор и в среда за разработка • Познава процеса на работа на интегрираната среда за разработка, когато стартира програма | 
| Умения 
 | • Прилага конзолен текстов редактор за работа с операционни системи • Експлоатира средата за разработка за отстраняване на грешки (debug) • Извършва базово рефакториране на кода, използвайки инструментите, предоставени му от средата или редактора • Конфигурира настройките на средата или редактора за постигане на по-голяма ефективност в работата си | 
| Компетентности 
 | • Способен е да използва ефективно поне една среда за разработка или поне един текстов редактор • Способен е правилно да преценява спрямо конкретната ситуацията дали да използва текстов редактор, или среда за разработка | 
| Резултат от учене 10.4: | Прилага стандартни средства за компилация, интерпретация и изпълнение на програма | 
| Знания | • Разбира процеса на компилация • Разбира процеса интерпретация • Идентифицира причините за възникване на compile-time error • Идентифицира причините за възникване на run-time error • Разбира ролята на междинен код и виртуална машина за преносимостта на програми на ниво изпълнение • Разбира термина израз (expression) в даден език за програмиране • Разбира термина statement в даден език за програмиране • Дефинира управлението на паметта при компилатори и интерпретатори и виртуални машини | 
| Умения 
 | • Разграничава процес на компилация, интерпретация и пускане на виртуална машина спрямо езика, който използва | 
| Компетентности 
 | • Способен е правилно да пише на поне един език за структурно програмиране • Способен е коректно да пише на поне един език за обектно-ориентирано програмиране • Способен е да анализира различни видове възникнали логически грешки | 
| Резултат от учене 10.5: | Реализира търсене и отстраняване на грешки и процес на „рефакториране„ | 
| Знания | • Познава процеса на отстраняване на грешки (debug) – търсене на грешки, използвайки даден инструмент • Изброява средства за отстраняване на грешки (debug) в дадено IDE – break points, stepping in and stepping out of functions • Познава същността на процеса на рефакториране • Знае средства за базово рефакториране в дадено IDE | 
| Умения 
 | • Оперира с инструменти за отстраняване на грешки (debug), за да открива причини за странно или неправилно поведение на програмата • Употребява инструменти за базово рефакториране • Проследява логиката на кода и открива проблеми в него | 
| Компетентности 
 | • Способен е вярно и точно да открива и анализира причините за неправилно поведение в по-голям проект | 
| Резултат от учене 10.6: | Обяснява същността на клиент-сървърни архитектури | 
| Знания | • Разбира концепцията за клиент-сървърна архитектура • Познава приложението на клиент-сървърната архитектура • Разбира концепцията за протокол за комуникация между даден клиент и сървър • Разбира начина на свързване на клиент-сървърната архитектура с бази от данни – „трислойна“ архитектура | 
| Умения 
 | • Реализира проста клиент-сървър архитектура • Разпознава вече съществуваща клиент-сървър архитектура | 
| Компетентности 
 | • Способен е вярно и точно да създава и надгражда софтуер, използващ клиент-сървър архитектура • Определя правилно коя архитектура е най-подходяща в конкретен случай | 
| Резултат от учене 10.7: | Използва бази от данни и прилага CRUD операции над тях | 
| Знания | • Разбира нуждата от бази от данни • Познава различни типове бази от данни: Релационни, Документно-базирани, Мрежови, LDAP • Познава различните типове данни • Познава различните модели на бази от данни | 
| Умения 
 | • Извършва основни операции чрез СУБД или SQL: – Извличане на данни: SELECT – Манипулиране на данни: INSERT, UPDATE, DELETE – Дефиниране на данни: CREATE, ALTER, DROP – Управление на трансакции: START TRANSACTION, COMMIT, ROLLBACK • Дефинира логическа структура на данни по зададен модел • Създава заявки за въвеждане, изтриване и промяна на данни • Работи със съхранени процедури | 
| Компетентности 
 | • Способен е вярно да създава, моделира и работи с база от данни • Способен е правилно да създава софтуер, който използва база от данни | 
| Резултат от учене 10.8: | Дефинира различни начини за комуникация между системи | 
| Знания | • Знае същността на протокола за комуникация между системи и разбира нуждата от тях • Дефинира OSI модела • Познава основните протоколи за комуникация от по-ниско ниво – TCP/UDP • Познава основни протоколи за комуникация на „приложно“ ниво – HTTP • Познава формати, чрез които две системи могат да разменят комуникация: Binary, Structured Text Format. • Разбира „service oriented“ архитектурата и нейното приложение | 
| Умения 
 | • Разграничава отделни софтуерни системи и протокола/формата, по който те комуникират • Сериализира и десериализира данни от и към най-популярните текстови формати (JSON, XML) | 
| Компетентности 
 | • Способен е правилно да създава и надгражда софтуер, използващ клиент-сървър архитектура | 
| Резултат от учене 10.9: | Назовава основни стандарти за представяне и описание на данни в текстов вид (xml, json) | 
| Знания | • Познава стуктурата на xml документ • Познава стуктурата на json документ | 
| Умения 
 | • Визуализира данните на xml документ • Визуализира данните на json документ • Употребява стандартни библиотеки за обработка на xml и json документ • Чете и пише данни в xml или json формат • Разграничава области от имена и елементи в xml формат | 
| Компетентности 
 | • Експлоатира правилно xml или json формат за съхранение на данни по зададена спецификация • Извлича и съхранява точно данни от xml или json формат • Преобразува вярно данни от xml или json формат в други стуктури от данни | 
| ЕРУ 11 Работен процес | |
| Резултат от учене 11.1: | Владее основните процеси на софтуерно тестване | 
| Знания | • Разбира нуждата от тестване на софтуера • Дефинира основните правила и характеристики на тестването • Разбира разликите между различните видове тестове (Unit testing, Integration testing, Functional testing) • Разбира работата на различните тестови framework • Познава разликата между ръчно и автоматизирано тестване | 
| Умения 
 | • Провежда ръчни тестове, за да идентифицира проблеми • Пише различни видове тестове (unit тестове, functional тестове, integration тестове) • Превръща user stories в тестове • Служи си с тестовете като форма на документация на даден код (например библиотека) | 
| Компетентности 
 | • Способен е да тества ефективно и автоматизирано софтуерен проект | 
| Резултат от учене 11.2: | Използва методологии за разработка на софтуер | 
| Знания | • Познава общия процес на разработка на софтуер и Value-chain (верига на добавената стойност) • Знае различните роли, които влизат в разработката на даден софутер (бизнес анализатори, програмисти, системни администратори, специалисти по контрол на качеството, проектни мениджъри, представители на клиентите на 3 нива – бизнес, техническо, технологично) • Познава етапите от жизнения цикъл на разработване на програмен продукт • Познава и разбира същността на гъвкавите и негъвкавите методологии за разработка на софтуер, както и идеи зад тях • Изброява примери за употреба (и съответните плюсове и минуси) от тези методологии • Разбира значението и приложението на user stories | 
| Умения 
 | • Прави дизайн на дадена система – feature част, преди да бъде написана като код | 
| Компетентности 
 | • Работи успешно в екип по софтуерен проект, спазвайки различна методология за разработване на софтуер • Поема отговорно определена роля в даден софтуерен процес със съответната методология • Аргументира се коректно за използването на дадена софтуерна технология в конкретни случаи | 
| Резултат от учене 11.3: | Използва системи за контрол на версията на изходния код | 
| Знания | • Разбира разликата между централизирана и децентрализирана source control/ version control система (svn/ git) • Познава начините за работа с основните source control/ version control системи • Разбира понятията commit, branch, merge, push и pull в контекста на source/ version control системата, която използва • Разбира понятието конфликт в контекста на програмирането и знае методи за преодоляването на конфликти • Познава начини за интеграция на source/ version control системи в среди за разработка • Познава добри практики, свързани с процеса на поддържане на source/ version control системи | 
| Умения 
 | • Експлоатира системите през графичен и конзолен потребителски интерфейс • Практикува source/ version control hosting service | 
| Компетентности 
 | • Работи успешно в екип, използвайки source/ version control система • Избира подходящата source/ version control система според нуждите на екипа и проекта | 
| Резултат от учене 11.4: | Следва процес на управление на задачите | 
| Знания | • Разбира необходимостта от управление на софтуерната разработка и основни методологии за това • Разбира идеята зад това да има „задачи“ в разработката на един софтуер • Познава понятията „процес“ и „нишка“ • Знае нужните реквизити за една задача (описание, приоритет, свързани задачи, поемане на отговорност за задача) • Разбира основните състояния на една задача (Backlocked, Pending/Todo, Doing, For Review, Done) • Разбира концепцията за „блокиране“ на задача от друга задача | 
| Умения 
 | • Ориентира се в даден софтуер за task management • Работи с примерна система за task management | 
| Компетентности 
 | • Управлява обема работа целесъобразно и адекватно спрямо крайните резултати • Способен е успешно да преведе дадена задача през целия ѝ цикъл на състояния • Комуникира ефективно с колеги и външни специалисти, когато са налице неясноти или задачи, които блокира | 
| Резултат от учене 11.5: | Работи с чужд код | 
| Знания | • Познава инструменти за ориентиране в чужд код | 
| Умения 
 | • Ориентира се в чужд код • Чете тестове като документация на чужд код • Работи с чужд приложно-програмен интерфейс (API) • Ориентира се в документацията на чужд код • Извършва прегледи на кода (code reviews) | 
| Компетентности 
 | • Способен е ефективно да поддържа и развива чужди проекти • Лесно и бързо се ориентира и използва успешно чужди библиотеки | 
| ЕРУ 12 Уеб програмиране | |
| Резултат от учене 12.1: | Разработва клиентски уеб софтуер (Frontend) | 
| Знания | • Разбира термините URI и URL • Разбира HTTP като протокол за комуникация • Познава семантичното структуриране на уеб страница чрез HTML • Познава стилизирането и подреждането на страница чрез CSS • Разбира концепцията за GRID системи • Разбира ролята и начините за реализация на адаптивен уеб дизайн | 
| Умения 
 | • Използва езици за програмиране в клиентска среда (в Browser) • Структурира семантични HTML документи • Реализира валидация на данни в клиентска среда • Реализира логика в клиентска среда • Използва GRID системи за позициониране на елементи в HTML документи | 
| Компетентности 
 | • Способен е правилно да имплементира уеб страница по зададен дизайн • Способен е ефективно да реализира бизнес логика, изпълняваща се в клиентска среда | 
| Резултат от учене 12.2: | Разработва сървърен уеб софтуер (Backend) | 
| Знания | • Разбира различните HTTP заявки като начин за сървърна комуникация • Разбира MVC като архитектура за изграждане на сървърен уеб софтуер • Познава концепцията зад REST комуникацията • Знае начините за свързване на софтуерна система с източник на данни | 
| Умения 
 | • Ползва сървърна технология за изграждане на backend • Реализира компоненти за комуникация с база данни • Използва резултатите от изпълнение на HTTP заявки • Реализира CRUD операции през SQL • Различава уеб приложение и уеб уебсайт • Реализира десктоп и мобилна версия на уеб сайт | 
| Компетентности 
 | • Разработва динамичен уеб сайт – сървърна и клиентска част, проявявайки съобразителност и творчество | 
| № | Видове професионална подготовка учебни предмети | Брой учебни часове | 
| Раздел А. Задължителни учебни часове | ||
| ТЕОРЕТИЧНО ОБУЧЕНИЕ | ||
| Раздел А1. Обща професионална подготовка | ||
| Здравословни и безопасни условия на труд | ||
| Икономика | ||
| Предприемачество | ||
| Раздел А2. Отраслова професионална подготовка | ||
| Чужд език по професията | ||
| Информационни и комуникационни технологии | ||
| Увод в програмирането | ||
| Програмиране | ||
| Увод в обектно-ориентираното програмиране | ||
| Увод в алгоритмите и структурите от данни | ||
| Обектно-ориентирано програмиране | ||
| Бази данни | ||
| Разработка на софтуер | ||
| Раздел А3. Специфична професионална подготовка | ||
| Програмиране за вградени системи | ||
| Математически основи на програмирането | ||
| Операционни системи | ||
| Конкурентно програмиране | ||
| ПРАКТИЧЕСКО ОБУЧЕНИЕ | ||
| Раздел А2. Учебна практика по отраслова професионална подготовка: | ||
| Увод в програмирането | ||
| Програмиране | ||
| Увод в обектно-ориентираното програмиране | ||
| Увод в алгоритмите и структурите от данни | ||
| Обектно-ориентирано програмиране | ||
| Бази данни | ||
| Разработка на софтуер | ||
| Раздел А3. Учебна практика по специфична професионална подготовка: | ||
| Програмиране за вградени системи | ||
| Математически основи на програмирането | ||
| Операционни системи | ||
| Конкурентно програмиране | ||
| Производствена практика | ||
| Раздел Б. Избираеми учебни часове | ||
| Разширена професионална подготовка | ||
| Бизнес комуникации | ||
| Бизнес комуникации теория | ||
| Бизнес комуникации практика | ||
| Програмиране в Web | ||
| Програмиране в Web теория | ||
| Програмиране в Web практика | ||
