CSCB212 Обектно-ориентирано програмиране

Анотация:

Курсът изгражда знания и умения по обектно-ориентирано програмиране. Разглеждат се в детайли характерните особености на С++ като обектно-ориентиран език. Представени са основите на обектно-ориентираното програмиране и неговата специфика в езика С++:

• реализация на потребителски типове данни чрез класове;

• предефиниране на функции и оператори;

• капсулация, наследяване и полиморфизъм;

• преобразуване на типове;

• обработка на изключения;

• шаблони;

• библиотеки на С++.

По време на курса се изучават класове, предефиниране на операции, вход/изход, наследяване, виртуални базови класове, виртуални методи, шаблонни класове, изключителни ситуации.

прочети още
Информатика

Преподавател(и):

доц. Ласко Ласков  д-р
 Светослав Торбов  
ас. Георги Кирков  
доц. Методи Трайков  д-р

Описание на курса:

Компетенции:

Успешно завършилите курса студенти:

1) знаят:

• Основите на обектно-ориентираното програмиране и неговата специфика в езика С++;

• Класовете като реализация на потребителски тип;

• Предефиниране на функции и оператори;

• Капсулация, наследяване и полиморфизъм;

• Преобразуване на типове;

• Обработка на изключения;

• Шаблони;

• STL в С++;

• SOLID принципи;

2) могат:

• Да програмират на С++ с използване на класове;

• Да проектират и изграждат йерархии от класове;

• Да прилагат полиморфизъм при действия със съхранявани в контейнери обекти от различни класове.
Предварителни изисквания:
Студентите да имат знания и/или умения:

- Основни оператори в езика за програмиране C++;

- Функционално програмиране на С++;

- Стартиране на компютърно приложение;

- Работа с текстов редактор;

- Достъп до ресурси в Интернет;

- Обща компютърна грамотност.



Форми на провеждане:
Редовен

Учебни форми:
Лекция

Език, на който се води курса:
Български

Теми, които се разглеждат в курса:

  1. Класове. Капсулация. Член-функции. Конструктори. Деструктори.
  2. Класове. Създаване на обекти.
  3. Предефиниране на операции (Част 1).
  4. Конструктори и деструктори. Копиране на обекти.
  5. Предефиниране на операции (Част 2).
  6. Копиращ конструктор. Предефиниране на оператор =.
  7. Наследяване. Единично наследяване. Множествено наследяване. Статични членове на клас.
  8. Предефиниране на операции (Част 1).
  9. Полиморфизъм чрез виртуални функции.
  10. Предефиниране на операции (Част 2).
  11. Традиционни методи за обработка на грешки. Изключения. Обработка на изключения.
  12. Наследяване и Полиморфизъм.
  13. Тест 1
  14. Подготовка за Контролна работа 2
  15. Потоци. Входно-изходни потоци. Файлови потоци.
  16. Контролна работа 1
  17. Низови потоци. Форматиране на вход-изход. Член-функции за форматиране. Манипулатори.
  18. Обработка на грешки. Изключения. Потребителски класове за изключения
  19. Шаблонни функции и класове.
  20. Входни и изходни операции в С++ (Част 1).
  21. Стандартни библиотеки от шаблони (част 1).
  22. Входни и изходни операции в С++ (Част 2).
  23. Стандартни библиотеки от шаблони (част 2).
  24. Функции-шаблони. Класове-шаблони.
  25. Шаблони за дизайн (Част 1).
  26. Подготовка за Контролна работа 2
  27. Тест 2
  28. Контролна работа 2
  29. Шаблони за дизайн (Част 2).
  30. Решаване на задачи.

Литература по темите:

1. Майерс, Скот, По-ефективен C++: 35 начина да подобрите своите програми и проекти. София: ЗеСТ Прес. ISBN 954-9341-03-8, 2004.

2. Meyers, S., Effective C++: 55 specific ways to improve your programs and designs, 3rd Edition. Addison-Wesley Professional. ISBN 978-0321334879, 2005.

3. Meyers, S., More effective C++: 35 new ways to improve your programs and designs. Addison-Wesley Professional. ISBN 978-0201633719, 1996.

4. Overland, Brian, C++ Without Fear: A Beginner's Guide That Makes You Feel Smart, 2nd Edition. Prentice Hall. ISBN 978-0132673266, 2011.

5. Stroustrup, Bjarne, Programming: Principles and Practice Using C++, 2nd Edition. Addison-Wesley. ISBN 978-0321992789, 2014.

6. Stroustrup, Bjarne, The C++ Programming Language, 4th Edition. Addison-Wesley. ISBN 978-0321563842, 2013.

7. Reese, Richard M, Understanding and Using C Pointers. Core Techniques for Memory Management. O'Reilly Media. ISBN 978-1-4493-4418-4, 2013.

8. Vandevoorde, David; Josuttis, Nicolai M., C++ Templates: The Complete Guide. Addison-Wesley. ISBN 0201734842, 2002.

Средства за оценяване:

Два теста и две контролни работи през 7-ма и 14-та седмица от семестъра + 0.5 над оценката при > от 8 домашни, оценени над 5.

За освобождаване от изпит е необходимо да са направени два теста и две контролни работи с оценка >= 3.