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

Разработка приложений на C++

рабочая программа дисциплины
Закреплена за кафедройКафедра дифференциальных уравнений
Направление подготовки01.03.02. Прикладная математика и информатика
ПрофильМатематическое и компьютерное моделирование в природных и индустриальных системах
Форма обученияОчная
Общая трудоемкость4 ЗЕТ
Учебный план01_03_02_Прикладная математика и информатика_МКМПиИС-2022
Часов по учебному плану 144
в том числе:
аудиторные занятия 56
самостоятельная работа 61
контроль 27
Виды контроля по семестрам
экзамены: 6

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

Курс (семестр) 3 (6) Итого
Недель 22,5
Вид занятий УПРПДУПРПД
Лекции 24 24 24 24
Практические 32 32 32 32
Сам. работа 61 61 61 61
Часы на контроль 27 27 27 27
Итого 144 144 144 144

Программу составил(и):

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

Рабочая программа дисциплины
Разработка приложений на C++

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

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

Рабочая программа одобрена на заседании кафедры
Кафедра дифференциальных уравнений

Протокол от 29.06.2022 г. № 11
Срок действия программы: 2022-2023 уч. г.

Заведующий кафедрой
Папин Александр Алексеевич


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

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

Кафедра дифференциальных уравнений

Протокол от 29.06.2022 г. № 11
Заведующий кафедрой Папин Александр Алексеевич


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

1.1.Целью освоения дисциплины «Разработка приложений на С++» является формирование у обучающегося теоретических знаний о современных информационных системах и технологиях, моделях, методах и средствах решения функциональных задач и организации информационных процессов, изучение организационной, функциональной и физической структуры информационных систем и базовых информационных процессов, рассмотрение перспектив использования информационных технологий в условиях перехода к информационному обществу.

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

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

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

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

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Структура программного обеспечения и этапы его разработки
1.1. Системное и специальное ПО. Инструментальная среда программирования. Языки программирования и их краткая характеристика. Лекции 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
Раздел 2. Основы ООП в С++
2.1. Понятие класса. Специальные функции-члены класса (конструкторы, деструкторы, преобразования). Статические члены класса. Краткий обзор. Функции-члены и данные члены. Лекции 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
2.2. Изученик литературы. Подготовка к практическим занятиям. Сам. работа 6 10 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
2.3. Практическая работа по написанию программы в структурном стиле. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
2.4. Практическая работа по написанию программы с использованием массивов. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
2.5. Интерфейсы и реализация. Конструкторы и деструкторы. Инициализация и очистка.Конструктор без параметров (по умолчанию). Конструктор копирования.Указатель this.Статические члены: функции и данные. Указатели на члены. Структуры и объединения. Лекции 6 2 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
2.6. Изученик литературы. Подготовка к практическим занятиям. Сам. работа 6 10 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
2.7. Практическая работа по написанию программы с использованием динамически выделяемой памяти. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
2.8. Практическая работа по написанию программы с использованием классов. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
Раздел 3. Наследование в С++
3.1. Наследование классов и производные классы. Конструкторы, деструкторы и наследование. Иерархия классов. Виртуальные функции. Полиморфизм. Лекции 6 2 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
3.2. Абстрактные классы и чистые виртуальные функции. Множественное наследование.Виртуальные базовые классы. Контроль доступа. Определение типа объектов во время выполнения программы (RTTI). Лекции 6 2 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
3.3. Изученик литературы. Подготовка к практическим занятиям. Сам. работа 6 16 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
3.4. Практическая работа по написанию программы, использующей механизм наследования. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
Раздел 4. Обработка исключений в С++
4.1. Обработка ошибок в стандартном С. Распознавание ситуаций. Использование assert, кодоввозврата, сигналов, setjmp и longjmp. Использование set_new_handler(). Лекции 6 2 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
4.2. Объектно-ориентированная обработка исключений. Применение try, catch, throw. Раскрутка стека. Стандартные исключения в С++. Работа с конструкторами и исключениями. Функции terminate(), unexpected(). Лекции 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
4.3. Изученик литературы. Подготовка к практическим занятиям. Сам. работа 6 10 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
4.4. Практическая работа по написанию программы с перехватом исключительной ситуации. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
Раздел 5. Потоки ввода-вывода в С++
5.1. Заголовочные файлы. Предопределенные объекты и потоки. Операции помещения и извлечения. Форматирование. Флаги форматирования. Манипуляторы. Ошибки потоков. Файловый ввод-вывод с применением потоков С++. Конструкторы файловых потоков. Открытие файлов в разных режимах. Ввод-вывод в файлы. Лекции 6 2 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
5.2. Изученик литературы. Подготовка к практическим занятиям. Сам. работа 6 10 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
5.3. Практическая работа по написанию программы файлового ввода-вывода. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
Раздел 6. Шаблоны в С++
6.1. Шаблоны функций. Шаблоны классов. Параметры шаблонов. Наследование и шаблоны. Примеры построения шаблонов. Итераторы. Лекции 6 2 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
6.2. Изученик литературы. Подготовка к практическим занятиям. Сам. работа 6 5 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1
6.3. Практическая работа по написанию программы с применением шаблонов функций. Практические 6 4 ПК-3 Л1.3, Л1.1, Л1.2, Л2.1

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

5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины
1. Системное и специальное ПО. Инструментальная среда программирования.
2. Языки программирования и их краткая характеристика.
3. Понятие класса. Специальные функции-члены класса (конструкторы, деструкторы, преобразования).
4. Статические члены класса. Краткий обзор.
5. Функции-члены и данные-члены.
6. Интерфейсы и реализация. Конструкторы и деструкторы.
7. Инициализация и очистка.
8. Конструктор без параметров (по умолчанию). Конструктор копирования.
9. Указатель this. Статические члены: функции и данные. Указатели на члены.
10. Структуры и объединения. Наследование классов и производные классы. Конструкто-ры, деструкторы и наследование.
11. Иерархия классов. Виртуальные функции. Полиморфизм. Абстрактные классы и чи-стые виртуальные функции.
12. Множественное наследование.
13. Виртуальные базовые классы. Контроль доступа.
14. Определение типа объектов во время выполнения программы (RTTI).
15. Обработка ошибок в стандартном С. Распознавание ситуаций.
16. Использование as sert, кодов возврата, сигналов, setjmp и longjmp.
17. Использование set_new_handler(). Объектно-ориентированная обработка исключений.
18. Применение try, catch, throw. Раскрутка стека.
19. Стандартные исключения в С++. Заголовочные файлы.
20. Предопределенные объекты и потоки. Операции помещения и извлечения. Формати-рование. Флаги форматирования.
21. Манипуляторы. Ошибки потоков. Файловый ввод-вывод с применением потоков С++.
22. Конструкторы файловых потоков. Открытие файлов в разных режимах.
23. Ввод вывод в файлы. Форматирование в памяти.
24. Шаблоны функций.
25. Шаблоны классов.
26. Параметры шаблонов.
27. Наследование и шаблоны. Примеры построения шаблонов.
28. Итераторы.
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
не предусмотрены.
5.3. Фонд оценочных средств для проведения промежуточной аттестации
см. приложение.
Приложения

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Б. Страуструп Язык программирования С++: Бином, Невский Диалект, 2008
Л1.2 Седжвик Р. Алгоритмы на С++: Учебная литература для ВУЗов Национальный Открытый Университет «ИНТУИТ», 2016 biblioclub.ru
Л1.3 Т. А. Павловская С / С++. Программирование на языке высокого уровня: учеб. для вузов СПб.[и др.]: Питер, 2007
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Поляков А. Основы программирования на языке Си: М: Наука, 2012
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
6.3. Перечень программного обеспечения
ОС Windows, MS Office, Локальная сеть университета и глобальная сеть Internet, Microsoft Visual Studio. Microsoft Office 2010 (Office 2010 Professional, № 4065231 от 08.12.2010), (бессрочно);
Microsoft Windows 7 (Windows 7 Professional, № 61834699 от 22.04.2013), (бессрочно);
Chrome (http://www.chromium.org/chromium-os/licenses), (бессрочно); 7-Zip (http://www.7-zip.org/license.txt), (бессрочно);
AcrobatReader (http://wwwimages.adobe.com/content/dam/Adobe/en/legal/servicetou/Acrobat_com_Additional_TOU-en_US-20140618_1200.pdf), (бессрочно);
ASTRA LINUX SPECIAL EDITION (https://astralinux.ru/products/astra-linux-special-edition/), (бессрочно);
LibreOffice (https://ru.libreoffice.org/), (бессрочно);
Веб-браузер Chromium (https://www.chromium.org/Home/), (бессрочно);
Антивирус Касперский (https://www.kaspersky.ru/), (до 23 июня 2024);
Архиватор Ark (https://apps.kde.org/ark/), (бессрочно);
Okular (https://okular.kde.org/ru/download/), (бессрочно);
Редактор изображений Gimp (https://www.gimp.org/), (бессрочно)
6.4. Перечень информационных справочных систем
Moodle, Интернет-тренажеры.

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

Аудитория Назначение Оборудование
202Л кабинет информатики (компьютерный класс) - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; компьютеры: марка HP - 14 единиц; мониторы: марка ASUS модель VS197DE - 14 единиц
205Л кабинет информатики (компьютерный класс) - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 9 посадочных мест; компьютеры: марка КламаС Офис, мониторы: марка ACER модель V223HQL - 8 единиц; доска интерактивная Triumph MULTI TOUCH 78 + проектор NEC UM280X в комплекте
204Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; компьютеры: марка DEPO модель Neos 260 - 14 единиц; Интерактивная доска Smart board 680 IV со встроенным проектором v25
Учебная аудитория для проведения занятий всех видов (дисциплинарной, междисциплинарной и модульной подготовки), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проекта (работы), проведения практики Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска, мультимедийное оборудование стационарное или переносное)

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

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