CSCB212 Обектно-ориентирано програмиране
Анотация:
Курсът изгражда знания и умения по обектно-ориентирано програмиране. Разглеждат се в детайли характерните особености на С++ като обектно-ориентиран език. Представени са основите на обектно-ориентираното програмиране и неговата специфика в езика С++:
• реализация на потребителски типове данни чрез класове;
• предефиниране на функции и оператори;
• капсулация, наследяване и полиморфизъм;
• преобразуване на типове;
• обработка на изключения;
• шаблони;
• библиотеки на С++.
По време на курса се изучават класове, предефиниране на операции, вход/изход, наследяване, виртуални базови класове, виртуални методи, шаблонни класове, изключителни ситуации.
Преподавател(и):
доц. Ласко Ласков д-р
Светослав Торбов
ас. Георги Кирков
доц. Методи Трайков д-р
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) знаят:
• Основите на обектно-ориентираното програмиране и неговата специфика в езика С++;
• Класовете като реализация на потребителски тип;
• Предефиниране на функции и оператори;
• Капсулация, наследяване и полиморфизъм;
• Преобразуване на типове;
• Обработка на изключения;
• Шаблони;
• STL в С++;
• SOLID принципи;
2) могат:
• Да програмират на С++ с използване на класове;
• Да проектират и изграждат йерархии от класове;
• Да прилагат полиморфизъм при действия със съхранявани в контейнери обекти от различни класове.
Предварителни изисквания:
Студентите да имат знания и/или умения:
- Основни оператори в езика за програмиране C++;
- Функционално програмиране на С++;
- Стартиране на компютърно приложение;
- Работа с текстов редактор;
- Достъп до ресурси в Интернет;
- Обща компютърна грамотност.
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Класове. Капсулация. Член-функции. Конструктори. Деструктори.
- Класове. Създаване на обекти.
- Предефиниране на операции (Част 1).
- Конструктори и деструктори. Копиране на обекти.
- Предефиниране на операции (Част 2).
- Копиращ конструктор. Предефиниране на оператор =.
- Наследяване. Единично наследяване. Множествено наследяване. Статични членове на клас.
- Предефиниране на операции (Част 1).
- Полиморфизъм чрез виртуални функции.
- Предефиниране на операции (Част 2).
- Традиционни методи за обработка на грешки. Изключения. Обработка на изключения.
- Наследяване и Полиморфизъм.
- Тест 1
- Подготовка за Контролна работа 2
- Потоци. Входно-изходни потоци. Файлови потоци.
- Контролна работа 1
- Низови потоци. Форматиране на вход-изход. Член-функции за форматиране. Манипулатори.
- Обработка на грешки. Изключения. Потребителски класове за изключения
- Шаблонни функции и класове.
- Входни и изходни операции в С++ (Част 1).
- Стандартни библиотеки от шаблони (част 1).
- Входни и изходни операции в С++ (Част 2).
- Стандартни библиотеки от шаблони (част 2).
- Функции-шаблони. Класове-шаблони.
- Шаблони за дизайн (Част 1).
- Подготовка за Контролна работа 2
- Тест 2
- Контролна работа 2
- Шаблони за дизайн (Част 2).
- Решаване на задачи.
Литература по темите:
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.