Курсът “Обектно-ориентирано програмиране (ООП)” (ООП за напреднали) е сред началните курсове за професиите “Програмист“, “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания. Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.
Разпределение
- 144 учебни часа (2 учебни срока по 18 седмици по 4 часа)
- 11 клас, първи и втори учебен срок
Учебна програма
Настоящата учебна програма по “Обектно-ориентирано програмиране (ООП)” е разработена от експертната група към МОН по проект “Професия приложен програмист”.
Първи учебен срок
№ |
Наименование на разделите
|
Минимален брой часове
|
1 |
Компонентно тестване (unit testing)
- Компонентно тестване (unit testing) – писане на unit тестове
- Упражнение: писане на unit тестове (тестване на готов клас)
|
8 |
2 |
Дефиниране на класове за напреднали
- Класове, конструктори, деструктори, свойства, методи, събития, статични членове
- Упражнения: дефиниране на класове (имплементация на клас “множество от числа” по подготвени unit тестове)
- Памет, стек и хийп, разположение на обектите в паметта. Упражнения за работа с паметта
|
12 |
3 |
Шаблонни класове
- Шаблонни класове (templates / generics)
- Упражнения: шаблонни класове (имплементация на шаблонен клас “списък, базиран на масив” по предварително подготвени unit тестове)
|
8 |
4 |
Наследяване, абстракция, интерфейси
- Наследяване и йерархии от класове
- Упражнения: наследяване на класове и изграждане на йерархия (животни с различни свойства, които се наследяват)
- Абстракция, абстрактни класове и интерфейси
- Упражнения: абстракция, абстрактни класове и интерфейси (имплементация на интерфейси + шаблонни класове за структурата от данни “свързан списък”)
|
16 |
5 |
Полиморфизъм в ООП
- Полиморфизъм и виртуални методи
- Упражнения: полиморфизъм и виртуални методи (йерархия от класове за геометрични фигури с виртуални методи за смятане на лице и за отпечатване в текстов вид)
- Упражнения: изграждане на йерархия от класове, с интерфейси, наследяване и полиморфизъм (йерархия от класове за превозни средства с виртуални методи за смятане на лице и за отпечатване в текстов вид)
|
12 |
6 |
Подготовка за практически изпит
- Подготовка за практически изпит по ООП (с фокус върху интерфейси, наследяване и полиморфизъм)
|
4 |
7 |
Практически изпит
- Практически изпит по ООП (наследяване и полиморфизъм)
|
4 |
|
Общ минимален брой часове |
64 |
|
Резерв часове |
8 |
|
Общ брой часове |
72 |
Част II (втори учебен срок)
№ |
Наименование на разделите
|
Минимален брой часове
|
1. |
Работа с обекти
- Компаратори (сравнение, хеш код), итератори, отражение на типовете (reflection)
- Упражнения: компаратори, итератори, отражение на типовете (имплементация на контейнер-структура “сортиран списък” + итератор + сортиране на студенти по username)
|
8 |
2. |
Елементи от функционалното програмиране
- Променливи от тип “функция”, обратно извикване (callback), lambda изрази, библиотеки за функционална обработка на колекции
- Упражнения: функционална обработка на колекции
|
8 |
3. |
Комуникация между обекти (събития / интерфейси)
- Комуникация между обекти в ООП (събития и събитийно програмиране)
- Упражнения: комуникация между обекти
|
8 |
4. |
Изключения (exceptions)
- Работа с изключения, дефиниране на собствени типове изключения
- Упражнения: работа с изключения
|
8 |
5. |
Работа с потоци и файлове
- Потоци и файлове, текстови и бинарни потоци
- Упражнения: потоци и файлове
|
8 |
6. |
Базови шаблони за дизайн (design patterns)
- Запознаване с концепцията за шаблони за обектно-ориентиран дизайн. Шаблони, които вече знаем:
- Builder: StringBuilder, XmlBuilder
- Prototype: Object.clone()
- Composite: структура от данни “дърво”
- Strategy / Pluggable Behaviour: filtering with lambda
- Visitor / Iterator: итератори в класовете за колекции
- Adapter: StreamReader
- Command: Runnable / Action
|
4 |
7. |
Разработка на практически проект по ООП
- Разработка на практически проект по ООП (например ООП игра или друга система, структурирана с класове и обекти) – моделиране на йерархията от класове
- Практическа работа по ООП проекта – имплементация
- Практическа работа по ООП проекта – имплементация
- Консултации по ООП проекта – довършителни задачи
|
16 |
8. |
Защита на практически проект
- Представяне и защита на практическите проекти по ООП
|
4 |
|
Общ минимален брой часове |
64 |
|
Резерв часове |
8 |
|
Общ брой часове |
72 |
Свободно учебно съдържание
Всички учители, преподаватели и ентусиасти могат да изтеглят свободно учебно съдържание за курса “Обектно-ориентирано програмиране (ООП)” (Object-Oriented-Programming-IT-Kariera-2018.zip), което включва:
- Презентации за всяка тема с добро качество
- Добре разписани задания за упражнения за всяка тема
- Примерни задачи за изпит
Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.