CITB202 Обектно ориентирано проектиране със С++

Анотация:

Курсът предлага основите на обектно-ориентираното програмиране, като набляга на разработката на ефективни системи за многократна употреба. Темите включват капсулация, полиморфизъм, предефиниране, управление на паметта, обработка на изключения, дизайн на шаблони и библиотеки.

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

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

доц. Георги Петров  д-р
гл. ас. Валентина Иванова  д-р

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

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

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

1) Знаят:

• Указатели, заделяне на памет и освобождаване на памет.

• Наследяване, базов клас, клас-наследник, полиморфизъм.

• Наследствена йерархия на класовете потоци, потоци и символни низове, случаен достъп във файл.

• Основни алгоритми за сортировка и анализ на тяхната изчислителна сложност.

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

2) Могат:

• Да използват указатели.

• Да пишат класове.

• Да четат и съхраняват данни в текстови файлове.

• Да пишат и анализират сортиращи алгоритми.

• Да реализират свързани списъци, стекове и опашки.


Предварителни изисквания:
Студентите да имат знания и умения:

• Увод в езиците C и C++

• Програмиране на C и C++



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

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

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

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

ОСНОВНИ ТЕМИ

1. Указатели: деклариране и използване на указатели, указатели и масиви, динамично заделяне на памет, масиви и вектори от указатели, структури и указатели.

2. Потоци: четене и съхранение на данни в текстови файлове, йерархия на класовете потоци, потоци и символни низове, аргументи в командния ред, случаен достъп и двоични файлове.

3. Класове: обектно-ориентирано програмиране, публичен интерфейс на клас, членове данни, член функции, конструктори, указатели към обекти.

4. Наследяване: базов клас и клас-наследник, обръщение към конструктора на базовия клас, полиморфизъм.

5. Рекурсия: триъгълни числа, пермутации, рекурсивно мислене, рекурсивни помощни функции, взаимна рекурсия, ефективност на рекурсията.

6. Въведение в структурите от данни: свързани списъци, стекове и опашки, други стандартни контейнери, стандартни алгоритми.

7. Теми за напреднали: предефиниране на оператори, автоматично управление на паметта, управление на паметта за свързани списъци. Шаблони, вложени класове, пространства от имена, обработка на изключения.

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

Cay Horstmann, C++ For Everyone, 2nd Edition, Wiley, 2011.

C. Horstmann, T. Budd, Big C++, 2nd ed., Wiley, 2008.

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

Три практически теста по време на семестъра, които представляват разработка на програми на C++ по зададена задача. Три домашни задания.