- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Протокол согласования учебной программы по изучаемой учебной дисциплине с другими дисциплинами специальности
- •Пояснительная записка
- •Содержание дисциплины
- •1. Лабораторные занятия, их характеристика
- •2. Контрольные работы, их характеристика
- •3. Курсовые работы (проекты), их характеристика
- •4. Литература
- •4.1.Основная
- •4.2.Дополнительная
- •5. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Тема 2. Классы. Объекты. Конструкторы и деструкторы. Методы.
- •Тема 3. Свойства. Методы получения и установки значений свойств. Свойства-массивы. Свойство-массив как основное свойство объекта. Методы, обслуживающие несколько свойств.
- •Тема 4. Наследование. Прародитель всех классов. Перекрытие атрибутов в наследниках. Совместимость объектов различных классов. Контроль и преобразование типов.
- •Тема 5. Виртуальные методы. Механизм вызова виртуальных методов. Абстрактные виртуальные методы. Динамические методы. Методы обработки сообщений.
- •Тема 6. Классы в программных модулях. Разграничение доступа к атрибутам объектов. Указатели на методы объектов
- •Тема 7. Метаклассы. Ссылки на классы. Методы классов. Виртуальные конструкторы. Информация о типе времени выполнения программы - rtti.
- •Тема 9. Защита от утечки ресурсов. Приемы надежного программирования
- •Тема 10. Интерфейс. Описание интерфейса. Расширение интерфейса. Глобально-уникальный идентификатор интерфейса.
- •Тема 12. Совместимость интерфейсов. Совместимость класса и интерфейса. Получение интерфейса через другой интерфейс
- •Тема 13. Подсчет ссылок. Механизм подсчета ссылок. Представление интерфейса в памяти. Применение интерфейса для доступа к объекту dll-библиотеки.
- •Тема 15. Перегрузка идентификаторов. Предопределенные аргументы в подпрограммах.
- •Тема 18. Множественное наследование. Проблема повторяющихся базовых классов. Типовой пример применения множественного наследования - observer.
- •Тема 19. Виртуальные методы. Абстрактые методы и классы. Подстановочные функции
- •Тема 21. Ссылки. Рекомендации по работе со ссылками. Типичные ошибки при работе со ссылками.
- •Тема 23. Перегрузка операторов. Перегрузка бинарных операторов. Перегрузка унарных операторов. Перегрузка операторов преобразования типа.
- •Тема 24. Шаблоны функций. Перегрузка шаблонов функций. Шаблоны классов. Специализации шаблонов. Создание новых типов данных на базе шаблонов
- •Тема 26. Перспективные технологии ооп.
- •Практический раздел Контрольные работы
- •Контрольная работа №1 Указания по выбору варианта
- •Теоретическая часть (вопросы)
- •Практическая часть Контрольное задание №1. Пример использования объектно-ориентированного программирования в языке Delphi
- •Исходные данные к контрольному заданию №1
- •Контрольная работа №2 Указания по выбору варианта
- •Теоретическая часть (вопросы)
- •Практическая часть
Протокол согласования учебной программы по изучаемой учебной дисциплине с другими дисциплинами специальности
Название дисциплины, с которой требуется согласование
|
Кафедра, обеспечивающая изучение этой дисциплины
|
Предложения об изменениях в содержании учебной программы по изучаемой дисциплине |
Решение, принятое кафедрой, разработавшей учебную программу (с указанием даты и но - мера протокола) |
|
|
|
|
СОГЛАСОВАНО:
Зав. кафедрой ПОИТ В.В. Бахтизин
Пояснительная записка
Цель преподавания дисциплины. Объектно-ориентированные технологии разработки программного обеспечения находят широкое применение в настоящее время. На сегодняшний день практически все инструментальные средства разработки программного обеспечения поддерживают данную технологию. Любой современный программист должен владеть профессиональными навыками ООП. Целью преподавания данной дисциплины является формирование у студентов таких навыков.
Задачи изучения дисциплины. Задачей преподавания данной дисциплины является получение студентами знаний об объектно-ориентированной технологии программирования, а также применение данной технологии на практике.
В результате изучения дисциплины студенты должны:
Знать:
Теоретические основы объектно-ориентированной технологии программирования и ее соотношение с другими технологиями программирования.
Уметь:
Анализировать предметную область с точки зрения объектно-ориентированного подхода и требований к разрабатываемым программам;
Программировать объекты с использованием всех возможностей объектно-ориентированных технологий алгоритмических языков Delphi и С++;
Кодировать и отлаживать программы при помощи интерактивных сред программирования Borland Delphi и Microsoft Visual Studio c использованием библиотек описания стандартных классов.
Иметь представление о:
Перечень дисциплин, усвоение которых необходимо для изучения данной дисциплины.
№ пп |
Название дисциплины |
Раздел, тема |
1. |
Основы алгоритмизации и программирования |
Вся дисциплина целиком |
2. |
Конструирование программ и языки программирования |
Вся дисциплина целиком |
Материал курса используется во всех последующих курсах, где предусматривается разработка прикладного программного обеспечения с использованием объектно-ориентированных технологий, а также баз данных поддерживающий технологию ООП.
Содержание дисциплины
Курс |
Название и содержание тем |
Контрольная работа (номер и тема по п.2) |
Лабораторная работа с указанием вида (по п.1) |
Оснащение контрольных и лабораторных работ (по п.5)
|
Литература (по п.4)
|
Рекомендуемый объем для изучения (в часах)
|
Форма контроля знаний (зачет по контрольной работе, тесты, защита лабораторной работы, защита курсового проекта, экзамен, зачет) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Раздел 1. ООП в Delphi |
|||||||
1. |
Вводная лекция. Парадигмы объектно-ориентированного программирования. Формула объекта. Природа объекта. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
3 |
Защита лабораторной работы. Зачет по контрольной работе |
2. |
Классы. Объекты. Конструкторы и деструкторы. Методы. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
3. |
Свойства. Методы получения и установки значений свойств. Свойства-массивы. Свойство-массив как основное свойство объекта. Методы, обслуживающие несколько свойств. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
4. |
Наследование. Прародитель всех классов. Перекрытие атрибутов в наследниках. Совместимость объектов различных классов. Контроль и преобразование типов. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
5. |
Виртуальные методы. Механизм вызова виртуальных методов. Абстрактные виртуальные методы. Динамические методы. Методы обработки сообщений. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
6. |
Классы в программных модулях. Разграничение доступа к атрибутам объектов. Указатели на методы объектов |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
7. |
Метаклассы. Ссылки на классы. Методы классов. Виртуальные конструкторы. Информация о типе времени выполнения программы - RTTI. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
8. |
Ошибки и исключительные ситуации. Классы исключительных ситуаций. Обработка исключительных ситуаций. Создание исключительной ситуации. Распознавание класса исключительной ситуации. Возобновление исключительной ситуации. Доступ к объекту, описывающему исключительную ситуацию. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
9. |
Защита от утечки ресурсов. Приемы надежного программирования |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
10. |
Интерфейс. Описание интерфейса. Расширение интерфейса. Глобально-уникальный идентификатор интерфейса. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
5 |
Защита лабораторной работы. Зачет по контрольной работе |
11. |
Работа с интерфейсом. Реализация интерфейса. Использование интерфейса. Реализация нескольких интерфейсов. Реализация интерфейса несколькими классами. Связывание методов интерфейса с методами класса. Реализация интерфейса вложенным объектом |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
12. |
Совместимость интерфейсов. Совместимость класса и интерфейса. Получение интерфейса через другой интерфейс |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
13. |
Подсчет ссылок. Механизм подсчета ссылок. Представление интерфейса в памяти. Применение интерфейса для доступа к объекту DLL-библиотеки. |
1 |
1, выполняется виртуально |
1,2,3 |
[4.1.1], [4.1.2], [4.2.1] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
Раздел 2. ООП в C++ |
|||||||
14 |
Принципы модульного программирования на языке C++. Пространства имен. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
3 |
Защита лабораторной работы. Зачет по контрольной работе |
15. |
Перегрузка идентификаторов. Предопределенные аргументы в подпрограммах. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
16. |
Классы в языке C++. Описание классов в языке C++. Наследование. Конструкторы и деструкторы. Создание объектов по значению (на стеке) и по ссылке (в динамической памяти). Стандартные конструкторы. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
17. |
Порядок конструирования и разрушения объектов. Агрегирование объектов. Операторы new и delete. Размещающий оператор new. Вложенные определения классов. "Друзья" класса. Статические члены класса. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
5 |
Защита лабораторной работы. Зачет по контрольной работе |
18. |
Множественное наследование. Проблема повторяющихся базовых классов. Типовой пример применения множественного наследования - observer. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
19. |
Виртуальные методы. Абстрактные методы и классы. Подстановочные функции |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
20. |
Операторы приведения типа в языке C++. Описание операторов приведения типа в языке C++. Информация о типе времени выполнения программы - RTTI. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
21. |
Ссылки. Рекомендации по работе со ссылками. Типичные ошибки при работе со ссылками. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
22. |
Обработка исключительных ситуаций на языке C++. Защита от утечки ресурсов. Оболочечные объекты (auto_ptr). |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
4 |
Защита лабораторной работы. Зачет по контрольной работе |
23. |
Перегрузка операторов. Перегрузка бинарных операторов. Перегрузка унарных операторов. Перегрузка операторов преобразования типа. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
24. |
Шаблоны функций. Перегрузка шаблонов функций. Шаблоны классов. Специализации шаблонов. Создание новых типов данных на базе шаблонов |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
25. |
Стандартная библиотека шаблонов. Описание. Потоковый ввод-вывод. Строки. Контейнеры. Итераторы. Алгоритмы. Утилиты. Диагностика. Локализация. Определения для языка программирования C++. Числовые шаблоны. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
6 |
Защита лабораторной работы. Зачет по контрольной работе |
26. |
Перспективные технологии ООП. |
2 |
2, выполняется виртуально |
1,2,3 |
[4.1.3]- [4.1.8], [4.2.2]- [4.2.4] |
2 |
Защита лабораторной работы. Зачет по контрольной работе |
|
Экзамен |
||||||
Всего за учебный год |
120 |
|