МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный университет»

Объектно-ориентированное программирование
рабочая программа дисциплины

Закреплена за кафедройКафедра информатики
Направление подготовки01.03.02. Прикладная математика и информатика
ПрофильМатематическое моделирование и информационные технологии. ФГОС 3++
Форма обученияОчная
Общая трудоемкость4 ЗЕТ
Учебный план01_03_02_ПМиИ-1-2020
Часов по учебному плану 144
в том числе:
аудиторные занятия 52
самостоятельная работа 65
контроль 27
Виды контроля по семестрам
экзамены: 3

Распределение часов по семестрам

Курс (семестр) 2 (3) Итого
Недель 18
Вид занятий УПРПДУПРПД
Лекции 18 18 18 18
Лабораторные 34 34 34 34
Сам. работа 65 65 65 65
Часы на контроль 27 27 27 27
Итого 144 144 144 144

Программу составил(и):
к.ф.-м.н., Доцент, Половикова Ольга Николаевна

Рецензент(ы):

Рабочая программа дисциплины
Объектно-ориентированное программирование

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 01.03.02 Прикладная математика и информатика (уровень бакалавриата) (приказ Минобрнауки России от 10.01.2018г. №9)

составлена на основании учебного плана:
01.03.02 Прикладная математика и информатика
утвержденного учёным советом вуза от 30.06.2020 протокол № 6.

Рабочая программа одобрена на заседании кафедры
Кафедра информатики

Протокол от 22.06.2019 г. № 8
Срок действия программы: 2020-2021 уч. г.

Заведующий кафедрой
к.ф.-м.н., доцент Козлов Д.Ю.

Визирование РПД для исполнения в очередном учебном году

Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2020-2021 учебном году на заседании кафедры

Кафедра информатики

Протокол от 22.06.2019 г. № 8
Заведующий кафедрой к.ф.-м.н., доцент Козлов Д.Ю.

1. Цели освоения дисциплины

1.1.Цель курса – формирование у студентов необходимой теоретической базы и практических навыков, которые позволят всесторонне и системно видеть этапы и процесс разработки программных продуктов. Базовыми этапами процесса создания программных систем являются анализ и моделирование (проектирование), поэтому вопросам построения проектов посвящен один из основных блоков данного курса.
Главная задача курса сформировать целостное представление о методах и подходах объектно-ориентированного анализа и проектирования программно-аппаратных комплексов, помочь овладеть практическим опытом программирования на языке С++ и проектирования программных продуктов с применением унифицированного языка моделирования UML (Unified Modeling Language) в среде Rational Rose.

2. Место дисциплины в структуре ООП

Цикл (раздел) ООП: Б1.О.05

3. Компетенции обучающегося, формируемые в результате освоения дисциплины

ПК-3: Способность разрабатывать и применять математические методы, системное и прикладное программное обеспечение, автоматизированные системы вычислительных комплексов, сервисы, операционные системы и распределенные базы данных для решения задач производственно-технологической деятельности
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.о различных парадигмах программирования и современном уровне развития языков и технологий программирования;
о сложности программных систем и методах ее преодоления;
синтаксис и базовые конструкции языков C и С++, основные возможности и приемы программирования на этих языках;
принципы структурного и объектно-ориентированного программирования;
способы использования библиотеки шаблонов STL;
терминологию (понятийный аппарат) объектно-ориентированного анализа, проектирования, программирования и тестирования программных систем;
этапы и стадии разработки программных продуктов;
базовые принципы объектно-ориентированного моделирования систем и принципы проектирования сложных систем;
технологию разработки проекта программной системы на базе унифицированного языка UML;
синтаксис и семантику языка UML.
3.2.Уметь:
3.2.1.разрабатывать алгоритмы решения типичных задач и реализовывать их на языке C/С++;
вести разработку в терминах объектно-ориентированной парадигмы программирования с использованием языка С++;
использовать различные виды наследования классов, в том числе, виртуального и множественного наследования;
использовать стандартные классы библиотеки STL в качестве базовых для разработки прикладных систем
выполнять объектно-ориентированный анализ различных предметных областей;
применять полученные теоретические знания и практические навыки проектирования программных продуктов в среде Rational Rose;
проверять (анализировать) построенный проект на возможные ошибки (логические).
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.современными интегрированными средами разработки;
методами объектно-ориентированного программирования с использованием языка С++;
современным инструментарием проектирования программных продуктов;
методами объектно-ориентированного анализа при проектировании программных продуктов для различных предметных областей;
технологией анализа проектов программных продуктов.

4. Структура и содержание дисциплины

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Объектно-ориентированное программирование
1.1. Cовременные технологии программирования. Парадигмы программирования. Процедурный и объектный подход к программированию.Объектно-ориентированная технология разработки программных систем и её принципы. Принципы проектирования сложных систем. Лекции 3 1 Л2.1, Л1.1
1.2. История и назначение языка Си++. Идентификаторы, переменные и константы. Операции и выражения. Приоритет операций.Операторы. Операторы управления. Операторы цикла. Вызов функций.Имена функций. Необязательные аргументы функций. Встроенные типы языка Си++. Массивы, структуры, объединения, указатели. Адресная арифметика. Строки и литералы. Лекции 3 3 Л2.1, Л1.1
1.3. Базовые конструкции языка Си++. Работа с указателями. Сам. работа 3 16 Л2.1, Л1.1
1.4. Базовые конструкции языка Си++. Работа с указателями. Лабораторные 3 6 Л2.1, Л1.1
1.5. Способы описания классов.Понятие класса. Создание объектов. Обращение к атрибутам и методам объектов. Определение методов класса. Переопределение операций. Подписи методов и необязательные аргументы. Запись классов. Лекции 3 2 Л2.1, Л1.1
1.6. Распределение памяти. Проблемы при явном распределении памяти в Си++, способы их решения. Распределение памяти под переменные, управление памятью с помощью переопределения операторов new и delete. Автоматические переменные. Статические переменные. Динамическое выделение памяти. Выделение памяти под строки. Рекомендации по использованию указателей и динамического распределения памяти. Распределение памяти при передаче аргументов функции. Рекомендации по передаче аргументов. Лекции 3 2 Л2.1, Л1.1
1.7. Контроль доступа к объекту. Интерфейс и состояние объекта. Объявление friend. Использование описателя const. Доступ к объекту по чтению и записи. Контроль доступа к атрибутам и методам объекта, контроль по чтению и по записи. Лекции 3 2 Л2.1, Л1.1
1.8. Классы. Атрибуты и методы. Конструкторы. Деструкторы. Сам. работа 3 15 Л2.1, Л1.1
1.9. Классы. Атрибуты и методы. Конструкторы. Деструкторы. Лабораторные 3 6 Л2.1, Л1.1
1.10. Классы – конструкторы и деструкторы. Конструкторы и деструкторы классов. Возможности инициализации объектов. Копирующий конструктор(по умолчанию). Деструкторы. Инициализация объектов. Операции new и delete для классов. Лекции 3 2 Л2.1, Л1.1
1.11. Переопределение операций. Как определять операции. Преобразования типов. Явные преобразования типов.Стандартные преобразования типов. Преобразования указателей и ссылок. Преобразования типов, определенных в программе. Лекции 3 2 Л2.1, Л1.1
1.12. Классы. Перегрузка операторов. Сам. работа 3 16 Л2.1, Л1.1
1.13. Классы. Перегрузка операторов. Лабораторные 3 6 Л2.1, Л1.1
1.14. Производные классы, наследование. Виртуальные методы. Виртуальные методы и переопределение методов. Преобразование базового и производного классов. Внутреннее и защищенное наследование. Абстрактные классы. Множественное наследование. Виртуальное наследование. Лекции 3 2 Л2.1, Л1.1
1.15. Наследование. Дружественность. Статические атрибуты и методы. Сам. работа 3 10 Л2.1, Л1.1
1.16. Наследование. Дружественность. Статические атрибуты и методы. Лабораторные 3 8 Л2.1, Л1.1
1.17. Компоновка программ, препроцессор. Компоновка нескольких файлов в одну программу. Проблема использования общих функций и имен. Использование включаемых файлов. Препроцессор. Определение макросов. Условная компиляция. Дополнительные директивы препроцессора.Шаблоны. Назначение шаблонов. Функции-шаблоны. Шаблоны классов. Стандартная библиотека шаблонов (STL). Лекции 3 2 Л2.1, Л1.1
1.18. Функции-шаблоны. Шаблоны классов. Сам. работа 3 8 Л2.1, Л1.1
1.19. Функции-шаблоны. Шаблоны классов. Лабораторные 3 8 Л2.1, Л1.1
1.20. Итоговая контрольная работа по темам: создние класса, динамическая память, перегрузка операторов, наследование Экзамен 3 27 Л2.1, Л1.1

5. Фонд оценочных средств

5.1. Контрольные вопросы и задания
см. приложение
5.2. Темы письменных работ (эссе, рефераты, курсовые работы и др.)
см. приложение
5.3. Фонд оценочных средств
см. приложение
Приложения

6. Учебно-методическое и информационное обеспечение дисциплины

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Слабнов В. Д. Программирование на С++: Учебники и учебные пособия для ВУЗов Познание, 2012 http://biblioclub.ru/index.php?page=book_red&id=364222
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Подбельский В.В., Фомин С.С. Курс программирования на языке Си: Учебники Издательство "ДМК Пресс", 2012 https://e.lanbook.com/book/4148
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Поисковые системы - yandex.ru, google.com
Э2 Свободная энциклопедия Википедия – http://ru.wikipedia.org
Э3 Форум разработчиков программного обеспечения - Stackoverflow.com
Э4 Интернет-университет информационных технологий. – http://www.intuit.ru
Э5 Объектно-ориентированное программирование https://portal.edu.asu.ru/course/view.php?id=2206
6.3. Перечень программного обеспечения
Visual Studio
Rational Rose
Microsoft Windows
Microsoft Office
7-Zip
AcrobatReader
6.4. Перечень информационных справочных систем
1. Электронная база данных «Scopus» (http://www.scopus.com);
2. Электронная библиотечная система Алтайского государственного университета (http://elibrary.asu.ru/);
3. Научная электронная библиотекаe library(http://elibrary.ru)
4. Электронная база данных ZBMATH: https://zbmath.org/

7. Материально-техническое обеспечение дисциплины

Аудитория Назначение Оборудование
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
107Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 18 посадочных мест; компьютеры: марка HP, модель ProOne 400 - 18 единиц; проектор: марка SMART, модель UF70 - 1 единица; интерактивная доска: марка SMART Board модель SMB680 - 1 единица

8. Методические указания для обучающихся по освоению дисциплины

На лекционных занятиях необходимо конспектировать изучаемый материал.
- Для систематизации лекционного материала, который будет полезен при подготовке к итоговому контролю знаний, записывайте на каждой лекции тему, вопросы для изучения, рекомендуемую литературу.
- В каждом вопросе выделяйте главное, обязательно запишите ключевые моменты (определение, факты, законы, правила и т.д.), подчеркните их.
- Если по содержанию материала возникают вопросы, не нужно выкрикивать, запишите их и задайте по окончании лекции или на семинарском занятии.
- Перед следующей лекцией обязательно прочитайте предыдущую, чтобы актуализировать знания и осознанно приступить к освоению нового содержания

Лабораторные работы, где студенты максимально активно участвуют в практическом приложении изучаемого материала дисциплины.
- Самостоятельную подготовку к занятию необходимо начинать с изучения понятийного аппарата темы. Рекомендуем использовать справочную литературу (словари, справочники, энциклопедии), целесообразно создать и вести свой словарь терминов.
- Важно запомнить, что любой источник должен нести достоверную информацию, особенно это относится к Internet-ресурсам. При использовании Internet - ресурсов в процессе подготовки не нужно их автоматически «скачивать», они должны быть проанализированы. Не нужно «скачивать» готовые рефераты, так как их однообразие преподаватель сразу выявляет, кроме того, они могут быть сомнительного качества.
- В процессе изучения темы анализируйте несколько источников. Используйте периодическую печать - специальные журналы.
- Полезным будет работа с электронными учебниками и учебными пособиями в Internet-библиотеках. Зарегистрируйтесь в них: университетская библиотека Онлайн (http://www.biblioclub.ru/) и электронно-библиотечная система «Лань» (http://e.lanbook.com/).
- В процессе подготовки и построения решения, поставленных задач, не просто читайте текст учебника, но и выражайте свою личностно-профессиональную оценку прочитанного.
- Задания практического характера: продумайте план их выполнения или решения .
- При возникновении трудностей в процессе работы взаимодействуйте с преподавателем, консультируйтесь по самостоятельному изучению темы.

Самостоятельная работа.
- При изучении дисциплины не все вопросы рассматриваются на занятиях, часть вопросов рекомендуется преподавателем для самостоятельного изучения.
- Поиск ответов на вопросы и выполнение заданий для самостоятельной работы позволит вам расширить и углубить свои знания по курсу, применить теоретические знания в решении задач практического содержания, закрепить изученное ранее.
- Эти задания следует выполнять не «наскоком», а постепенно, планомерно, следуя порядку изучения тем курса.
- При возникновении вопросов обратитесь к преподавателю в день консультаций на кафедру.
- Выполнив их, проанализируйте качество их выполнения. Это поможет вам развивать умения самоконтроля и оценочные компетенции.
Итоговый контроль.
- Для подготовки к зачету возьмите перечень примерных вопросов у преподавателя.
- В списке вопросов выделите те, которые были рассмотрены на занятиях. Обратитесь к своим записям, выделите существенное. Для более детального изучения изучите рекомендуемую литературу.
- Если в списке вопросов есть те, которые не рассматривались на занятии, изучите их самостоятельно.