МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
УТВЕРЖДАЮ Декан ФВТ _______________ Л. Р. Фионова «_____» ___________________ 2015 г. |
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
Б1.2.6.1 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Направление 020303 «Математическое обеспечение и администрирование
информационных систем»
Профиль подготовки «Администрирование информационных систем»
Квалификация выпускника бакалавр
Форма обучения очная
Пенза, 2015
1. Цели освоения дисциплины
Целями освоения дисциплины является овладение студентами знаниями о технологии объектно-ориентированного программирования на языке C++ и новых концепций развития программного обеспечения.
2. Место дисциплины в структуре ОПОП бакалавриата
2.1. Дисциплина входит в вариативную часть образовательной программы. Изучение данной дисциплины базируется на следующих курсах: «Информатика», «Программирование», «Технология разработки ПО».
2.2. Минимальные требования к «входным» знаниям, необходимым для успешного усвоении данной дисциплины ‑ удовлетворительное усвоение программ по следующим разделам указанных выше дисциплин:
- «Информатика» в полном объеме;
- «Программирование» ‑ практика программирование на языке высокого уровня;
- «Технология разработки ПО» в полном объеме.
3. Компетенции обучающегося, формируемые в результате освоения дисциплины
Процесс изучения дисциплины направлен на формирование элементов следующих компетенций в соответствии с ФГОС ВПО по данному направлению:
Коды компетенции | Наименование компетенции | Структурные элементы компетенции (в результате освоения дисциплины обучающийся должен знать, уметь, владеть) |
1 | 2 | 3 |
ПК-5 | готовностью к использованию современных системных программных средств: операционных систем, операционных и сетевых оболочек, сервисных программ | знать основы объектно-ориентированного программирования, особенности создания классов и их использование, в разрабатываемых приложениях; уметь разрабатывать программное обеспечение средствами объектно-ориентированного языка C++ и использовать его на практике; владеть навыками программирования на языке C++. |
ПК-6 | способностью формировать суждения о проблемах современной информатики, ее категорий и связей с другими научными дисциплинами | знать основы проектирования объектно-ориентированного программного обеспечения; уметь формировать суждения о проблемах современной информатики, ее категорий и связей с другими научными дисциплинами. |
4. Структура и содержание дисциплины
4.1. Структура дисциплины
Общая трудоемкость дисциплины составляет 10 зачётных единиц, 360 часов.
№ п/п | Наименование разделов и тем дисциплины | Семестр | Недели семестра | Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах) | Формы текущего контроля успеваемости (по неделям семестра) | ||||||||||||||
Аудиторная работа | Самостоятельная работа | ||||||||||||||||||
Всего | Лекция | Практические занятия | Лабораторные занятия | Всего | Подготовка к аудиторным занятиям | Реферат, эссе и др. | Курсовая работа (проект) | Подготовка к экзамену | Собеседование | Коллоквиум | Проверка тестов | Проверка контрольн. работ | Проверка реферата | Проверка эссе и иных творческих работ | курсовая работа (проект) | ||||
1. | Раздел 1. Введение | ||||||||||||||||||
1.1. | Тема 1.1. Основы программирования | 4 | 10 | 8 | |||||||||||||||
2. | Раздел 2. Объектно-ориентированное программирование | ||||||||||||||||||
2.1. | Тема 2.1. Объекты и классы | 2 | 10 | 8 | |||||||||||||||
2.2. | Тема 2.2. Массивы объектов, указатели и ссылки на объекты | 4 | 10 | ||||||||||||||||
2.3. | Тема 2.3. Перегрузка операций | 4 | 10 | ||||||||||||||||
2.4. | Тема 2.4. Наследование | 4 | 10 | ||||||||||||||||
2.5. | Тема 2.5. Конструкторы и деструкторы | 4 | |||||||||||||||||
2.6. | Тема 2.6. Виртуальные функции и полиморфизм | 4 | 20 | ||||||||||||||||
2.7. | Тема 2.7. Потоки и файлы | 4 | |||||||||||||||||
3. | Раздел 3. Разработка объектно-ориентированного ПО | ||||||||||||||||||
3.1. | Тема 3.1. Многофайловые программы | 4 | |||||||||||||||||
3.2. | Тема 3.2. Шаблоны и исключения | 6 | 20 | ||||||||||||||||
3.3. | Тема 3.3. Стандартная библиотека (STL) | 6 | |||||||||||||||||
3.4. | Тема 3.4. Разработка объектно-ориентированного ПО | 8 | 200 | ||||||||||||||||
Подготовка к экзамену | |||||||||||||||||||
Общая трудоемкость, в часах | 54 | 90 | 216 | Промежуточная аттестация | |||||||||||||||
Форма | Семестр | ||||||||||||||||||
Экзамен | 5,6 | ||||||||||||||||||
4.2. Содержание дисциплины
4.2.1. Содержание лекционного курса
Раздел 1. Введение
Тема 1.1. Основы программирования
Новые концепции программирования. Основные свойства ООП.
Раздел 2. Объектно-ориентированное программирование
Тема 2.1. Объекты и классы
Основные понятия. Описание классов, данные и компонентные функции. Создание объектов и доступ к данным объекта. Определение методов класса вне класса. Статические данные класса, формат описания и область применения.
Тема 2.2. Массивы объектов, указатели и ссылки на объекты
Массивы объектов. Назначение и определение, Создание динамических массивов, Указатели на объекты область применения указателей, Указатели на функции, Указатели на указатели, Ссылки на объект и область применения ссылок, отличие их от указателей, Динамическое выделение и освобождение памяти под массив объектов с помощью операторов new и delete, а также с помощью стандартных функций С++.
Тема 2.3. Перегрузка операций
Область применения перегрузки операций в С++, Перегрузка унарных операций, Перегрузка бинарных операций, Множественная перегрузка, Операции арифметического присваивания, Операции индексации массива, Преобразование типов, Преобразование объектов в основные типы и наоборот, Преобразование объектов классов в объекты других классов, Особенности перегрузки операций и их сложности.
Тема 2.4. Наследование
Определение наследования, Базовые и производные классы, Конструкторы производных классов, Базовые функции класса, Иерархия классов, Наследование и графика, Общее и частное наследование, Уровни наследования, Множественное наследование, Неопределенность в множественном наследование, Включение: классы в классах, Роль наследования при разработке программ.
Тема 2.5. Конструкторы и деструкторы
Назначение конструкторов и деструкторов, Формат конструктора и деструктора, Конструкторы с параметрами и без параметров.
Тема 2.6. Виртуальные функции и полиморфизм
Определение и формат виртуальных функций, Дружественные функции, Статические функции, Инициализация копирования и присвоения, Указатель this, Динамическая информация о типах, Полиморфизм.
Тема 2.7. Потоки и файлы
Потоковые классы, Потоковый ввод/вывод, Указатели файлов, Файловый ввод/вывод с помощью методов, Перегрузка операций извлечения и вставки.
Раздел 3. Разработка объектно-ориентированного ПО
Тема 3.1. Многофайловые программы
Библиотеки классов, Создание многофайловой программы, Класс сверхбольших чисел, Проекты.
Тема 3.2. Шаблоны и исключения
Шаблоны функций, Шаблоны классов, Исключения.
Тема 3.3. Стандартная библиотека (STL)
Контейнеры, Алгоритмы, Итераторы, Специальные итераторы, Последовательные и ассоциативные контейнеры, Хранение пользовательских объектов, Функциональные объекты.
Тема 3.4. Разработка объектно-ориентированного ПО
Основные концепции программирования, Основные этапы разработки ООП (начало, развитие, построение и передача), Принципы разработки ООП по этапам средствами UML.
4.2.2. Перечень и содержание лабораторных занятий.
№ п/п | № темы | Наименование лабораторных работ | Кол. ч |
1 | 1.1 | Основы программирования (функции, передача параметров) | 10 |
2 | 2.1 | Создание простейших классов и объектов | 10 |
3 | 2.2 | Массивы объектов, указатели и ссылки на объекты (работа с динамическими массивами объектов) | 10 |
4 | 2.3 | Перегрузка операций. Определение операторов для классов | 10 |
5 | 2.4 | Наследование. Разработка классов, используя свойство наследования. | 10 |
6 | 2.6 | Виртуальные функции | 20 |
7 | 3.2 | Шаблоны и исключения. Разработка пользовательских шаблонов и использование их в программе. | 20 |
5. Образовательные технологии
При реализации различных видов учебной работы используются интерактивные методы и технологии формирования необходимых компетенций: лекции с применением мультимедийных технологий; проведение лабораторных занятий в компьютерном классе. Данные методы сочетаются с внеаудиторной работой с целью формирования и развития профессиональных навыков студентов.
6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины.
6.1. План самостоятельной работы студентов
№ нед. | Тема | Вид самостоятельной работы | Задание | Рекомендуемая литература | Количество |
Тема 1.1. Основы программирования | Подготовка к аудиторным занятиям | Изучение основ программирования | Поисковые системы Internet, рекомендуемая литература | 8 | |
Тема 2.1. Объекты и классы | Подготовка к аудиторным занятиям | Изучение понятий объектов и классов | Поисковые системы Internet, рекомендуемая литература | 8 | |
Тема 3.4. Разработка объектно-ориентированного ПО | Подготовка к аудиторным занятиям, с | Разработка объектно-ориентированного ПО | Поисковые системы Internet, рекомендуемая литература | 200 |
6.2. Методические указания по организации самостоятельной работы студентов
Планируются следующие виды самостоятельной работы (внеаудиторной):
- подготовка к лабораторным работам,
- оформление отчётов по лабораторным работам,
- работа с конспектом лекций и изучение рекомендованной литературы при подготовке к экзамену,
- выполнение курсового проекта.
6.3. Материалы для проведения текущего и промежуточного контроля знаний студентов
Контроль освоения компетенций
№ п\п | Вид контроля | Контролируемые | Компетенции, компоненты которых контролируются |
1 | Текущий: собеседование при защите лаб. заданий. Промежуточный: экзамен. | Раздел 1. Введение | ПК-5,6 |
2 | Текущий: собеседование при защите лаб. заданий. Промежуточный: экзамен. | Раздел 2. Объектно-ориентированное программирование | ПК-5,6 |
3 | Текущий: собеседование при защите лаб. заданий. Промежуточный: экзамен. | Раздел 3. Разработка объектно-ориентированного ПО | ПК-5,6 |
Контроль освоения компетенции выполняется:
- для компетенции (ПК-5) – путем оценки готовности студента к использованию современных системных программных средств: операционных систем, операционных и сетевых оболочек, сервисных программ;
- для компетенции (ПК-6) – путем оценки готовности студента к формированию суждений о проблемах современной информатики, ее категорий и связей с другими научными дисциплинами.
Примерный перечень вопросов и заданий к экзамену
1. Массивы, указатели и ссылки.
2. Разработка объектно-ориентированного ПО. Этапы разработки средствами UML.
3. Указатели на объект.
4. Определение класса и объекта. Основные понятия и составные элементы класса.
5. Перегрузка операций. Перегрузка унарных операций.
6. Конструкторы и деструкторы. Определение и назначение. Конструкторы без параметров.
7. Перегрузка бинарных операций.
8. Перегрузка операции индексации массива.
9. Определение методов класса вне класса.
10. Преобразование типов.
11. Преобразование объектов одного класса в объекты другого класса.
12. Операторы new и delete.
13. Наследование. Определение, основные понятия и спецификаторы доступа.
14. Статические элементы класса. Определение, основные понятия.
15. Конструкторы производного класса.
16. Конструкторы с параметрами.
17. Множественное наследование.
18. Виртуальные функции.
19. Определение методов класса.
20. Чисто виртуальные функции и абстрактные типы.
21. Шаблоны классов.
22. Полиморфизм и использование виртуальных функций.
23. Дружественные функции.
24. Исключительные ситуации. Определение и назначение.
25. Статические функции.
26. Шаблоны функций.
27. Исключительные ситуации и особенности работы с ними.
28. Указатель this.
29. Исключения с аргументами.
30. Потоки и файлы. Определение и особенности работы с потоками.
31. Флаги форматирования в потоках ввода-вывода.
32. Манипуляторы. Манипуляторы без аргументов и манипуляторы с аргументами.
33. Функции работы с потоками.
34. Иерархия потоковых классов и их назначение.
35. Пространство имен. Определение, назначение и особенности работы.
36. Паттерны проектирования.
7. Учебно-методическое и информационное обеспечение дисциплины
7.1. Основная литература:
1. Р. Лафоре «Объектно-ориентированное программирование в С++» , М.: Питер, 2003.
2. «Язык С++ и объектно-ориентированное программирование», Минск: Высшая шк., 1997.
3. «Язык СИ++», М. Финансы и статистика», 2001.
4. Г. Шилдт «Самоучитель С++. 3-е издание», С-Петербург: БХВ-Петербург, 2002.
5. Г. Шилдт «Полный справочник по С++. 4-е издание», М.: Издательский дом «Вильямс», 2003г.
6. Г. Штайндер «Microsoft Visual C++.Net. справочник», М.: Лаборатория базовых знаний, 2002.
7. Обобщённое программирование в языке C++: Метод. указания к лаб. Работе №4 по дисциплине «Системное программирование» для студентов специальности «Радиотехника» дневной формы обучения. / НГТУ; Сост.: . Н. Новгород, 2006.– 24 с.
8. Давыдов программирования. С++. – СПб.:БХВ-Петербург, 2005. – 672 с.: ил.
9. ффективное использование STL. Библиотека программиста. – СПб.: Питер, 2003. – 224 с.: ил.
10. Б. Страуструп, Язык программирования C++, 3-е изд./ Пер. с англ. – СПб.; М.: «Невский Диалект» – «Издательство БИНОМ», 1999
11. Ли М., STL – стандартная библиотека шаблонов С++: Пер. с англ. – СПб.: БХВ-Петербург, 2004. – 656 с.: ил.
12. Фридман программирования Си++ – М.: ИНТУИТ. ру, 2004. – 288 с.
13. илософия С++: (т. 1,2) – Пер. с англ. – 2-е изд. – СПб.: Питер, 2004. – 608 с.
7.2. Программное обеспечение:
1. Операционная система Windows
2. Microsoft Visual C++
8. Материально-техническое обеспечение дисциплины
При проведении лекционных занятий для ряда тем необходимо проекционное оборудование, сопряженное с компьютером.
Лабораторные занятия проводятся в компьютерном классе с применением интегрированной среды разработки приложений Microsoft Visual Studio.
Рабочая программа дисциплины «Объектно-ориентированное программирование» составлена в соответствии с требованиями ФГОС ВО с учетом рекомендаций ПрООП по направлению подготовки 020303 «Математическое обеспечение и администрирование информационных систем».
Программу составил:
Доцент кафедры САПР
Настоящая программа не может быть воспроизведена ни в какой форме без предварительного письменного разрешения кафедры-разработчика программы.
Программа одобрена на заседании кафедры САПР
Протокол № ______от «____» ______________ 2015 года
Зав. кафедрой САПР
Программа одобрена методической комиссией ФВТ
Протокол № ______от «____» ______________ 2015 года
Председатель методической комиссии ФВТ
Сведения о переутверждении программы на очередной учебный год и регистрации изменений
Учебный год | Решение кафедры (№ протокола, дата, подпись зав. кафедрой) | Внесенные изменения | Номера листов (страниц) | ||
заменен- ных | новых | аннулиро-ванных | |||


