Курс “Обектно-ориентирано програмиране (ООП)” – професия “Приложен програмист”

Курсът “Обектно-ориентирано програмиране (ООП)” (ООП за напреднали) е сред началните курсове за професиите “Програмист“, “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания. Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.

Разпределение

  • 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

Свободно учебно съдържание

Всички учители, преподаватели и ентусиасти могат да изтеглят свободно учебно съдържание за курса “Обектно-ориентирано програмиране (ООП)”, което включва:

  • Презентации за всяка тема с много високо качество
  • Добре разписани задания за упражнения за всяка тема с judge система за онлайн оценяване за всяка задача
  • Видео уроци от учебните занятия, провеждани в този курс в Софтуерния Университет
  • Примерни задачи за изпит и тренировъчна judge система за оценяване на изпити

Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.