CITB205 Обектно ориентирано програмиране (С++)

Анотация:

Обектно-ориентираните езици за програмиране са основно средство за изграждане на големи и сложни софтуерни проекти. Понятието за клас се въвежда чрез идеята за дефиниран от програмиста тип, капсулиращ данни и функции. Наследяването се разглежда като средство за разширяване на съществуващи класове. Полиморфизмът се изяснява чрез примери за обработка на колекции от разнотипни обекти. Представени са и основните елементи на езика С++: предефинипаре на операции, класове-шаблони, обработка на изключения, стандартна библиотеки с шаблони.

http://nikolay.kirov.be/2020/CITB205/index.html

прочети още
Информационни технологии

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

доц. Николай Киров  д-р
 Кирил Вучков  
доц. Стоян Мишев  д-р

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

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

1) знаят:

Основни понятия от езика С++: класове, спецификатори за достъп, конструктори и декструктори, предефиниране на функции и операции, наследяване, полиморфизъм, обработка на изключения, шаблони.

2) могат:

• Да пишат програми на C++.

• Да използват стандартна библиотека с шаблони.

• Да изразяват и реализират наследяване, шаблони, предефиниране на операции, обработка на изключения в езика С++.
Предварителни изисквания:
Курс по програмиране.

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

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

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

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

  1. Наследяване и полиморфизъм Базови и производни класове. Извикване на конструктор на базов клас и на член-функции на базов клас. Полиморфизъм.
  2. Потоци I Четене и писане на текстови файлове. Йерархия на потоковите класове. Абстрактни класове. Низови потоци. Аргументи от командния ред. Пряк достъп.
  3. Рекурсия Триъгълни числа. Пермутации. Ефективност на рекурсията. Непряка (взаимна) рекурсия.
  4. Тест 1 / Практическо занятие
  5. Сортиране и търсене Сортиране чрез селекция и а нализ на алгоритъма. Сортиране чрез сливане и анализ на алгоритъма. Линейно и двоично търсене.
  6. Въведение в структури от данни Свързани списъци. Свързан списък, стек и опашка в Стандартната библиотека шаблони (STL). Други STL контейнери. Алгоритми.
  7. Реализация на свързани списъци Реализация на свързани списъци - класове, итератори, операции
  8. Предефиниране на операции Предефиниране на операции като обикновени функции и като член-функции на клас. Възможности на езика С++ за предефиниране на операции. Свързан списък с предефинирани операции.
  9. Тест 2 / Контролна работа
  10. Управление на паметта Необходимост от управление на паметта. Деструктор. Операция присвояване Конструктор за копиране
  11. Шаблони и вложени класове Шаблони. Шаблони и наследяване Вложени класове
  12. Обработка на изключения Обработка на грешки. Изхвърляне на изключения. Прихващане на изключения. Развиване на стека. Спецификации на изключенията.
  13. Йерархии на наследственост Получаване на информация по време на изпълнение. Многократна наследственост.
  14. Тест 3 / Контролна работа

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

Учебник:

Cay Horstmann,Computing Concepts with C++ Essentials, Third Edition, John Wiley & Sons, 2003.

Полезни книги:

Cay S. Horstmann, Timothy A. Budd, Big C++, 2nd Edition, Wiley, January 2009.

Lasko Laskov, Progrmming in C++, Examples and Solutions, Part One: From Procedural Towards Object-Oriented Paradigm”, New Bulgarian University, 2016.

Cay S. Horstmann, C++ for Everyone, 2nd Edition, Willy, 2011.

Николай Киров, Сборник от учебни материали по ВЪВЕДЕНИЕ В ПРОГРАМИРАНЕТО, Деметра, София, 2003 [online]

Магдалина Тодорова, Увод в програмирането [online]

Магдалина Тодорова, Петър Армянов, Дафина Петкова, Калин Георгиев, Сборник от задачи по програмиране на C++ - първа част: Увод в програмирането, ТехноЛогика, 2008.

Магдалина Тодорова, Програмиране на С++. Част първа, Сиела, 2010.

Веселина Жечева, Димитър Минчев, Ръководство по програмиране на базата на езика C++, 2 изд., Божич, 2016.

Иво Дамянов, Увод в програмирането С++, ЮЗУ "Неофит Рилски", 2012.

Cay S. Horstmann, Brief C++: Late Objects, 3rd Edition

Cay S. Horstmann, Big C++: Late Objects, Enhanced eText, 3rd Edition, Oct 2017

http://nikolay.kirov.be/2019/CITB107/ref.html

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

http://nikolay.kirov.be/2020/CITB205/index.html