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

Структуры и алгоритмы обработки данных

рабочая программа дисциплины
Закреплена за кафедройКафедра информатики
Направление подготовки09.03.04. Программная инженерия
ПрофильРазработка программно-информационных систем
Форма обученияОчная
Общая трудоемкость5 ЗЕТ
Учебный план09_03_04_Программная инженерия_РПИС-2023
Часов по учебному плану 180
в том числе:
аудиторные занятия 72
самостоятельная работа 108
Виды контроля по семестрам
зачеты: 4

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

Курс (семестр) 2 (4) Итого
Недель 22,5
Вид занятий УПРПДУПРПД
Лекции 22 22 22 22
Лабораторные 50 50 50 50
Сам. работа 108 108 108 108
Итого 180 180 180 180

Программу составил(и):
к.ф.-м.н., доцент, Козлов Д.Ю.

Рецензент(ы):
к.ф.-м.н., доцент, Пономарев И.В.

Рабочая программа дисциплины
Структуры и алгоритмы обработки данных

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

составлена на основании учебного плана:
09.03.04 Программная инженерия
утвержденного учёным советом вуза от 26.06.2023 протокол № 4.

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

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

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


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

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

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

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


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

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

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

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

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

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

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Введение
1.1. Алгоритмы. Анализ сложности алгоритма. Алгоритмы сортировки. Рекурсивные алгоритмы. Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
1.2. Язык Си и С++. Массивы. Указатели. Связь указателей и массивов. Динамические массивы. Указатели и параметры функций. Лабораторные 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
1.3. Анализ сложности и эффективности алгоритма. Составление эффективного программного кода. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
1.4. Язык С++. Массивы. Указатели. Связь указателей и массивов. Динамические массивы. Указатели и параметры функций. Сам. работа 4 14 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
Раздел 2. Динамические структуры данных
2.1. Абстрактные типы данных(АТД). Примеры. Создание АТД. Списки. Основные операции. Односвязный список. Реализация односвязных списков на основе массивов. Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.2. Создание и демонстрация работы АТД. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.3. Создание и демонстрация работы АТД. Сам. работа 4 8 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.4. Реализация задачи "Word Count"(алфавитно-частотный словарь). Работа с файлами. Сам. работа 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.5. Списки. Односвязный список с динамическим распределением памяти. Двусвязный список. Задача "Word Count"(алфавитно-частотный словарь). Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.6. Реализация задачи "Word Count"(алфавитно-частотный словарь). Работа с файлами. Лабораторные 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.7. Стек. Очередь. Дек. Куча. Реализация. Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.8. Реализация дека с помощью двусвязный списка. Примеры использования. Лабораторные 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.9. Реализация дека с помощью двусвязный списка. Примеры использования. Сам. работа 4 8 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.10. Хэширование. Прямая адресация. Хэш-таблицы. Хэш-функции. Виды хэширования. Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.11. Реализация алгоритмов хэширования. Лабораторные 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.12. Реализация алгоритмов хэширования. Сам. работа 4 8 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.13. Деревья. Терминолония. Виды деревьев. Рекурсивное определение дерева. Обходы дерева. Реализации класса «бинарное дерево поиска». Бинарные деревья поиска. Очереди с приоритетом. Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.14. Реализации класса «бинарное дерево поиска». Бинарные деревья поиска. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.15. Реализации класса «бинарное дерево поиска». Бинарные деревья поиска. Сам. работа 4 7 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.16. Сбалансированные деревья. AVL-деревья. Основные операции. Реализация. Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.17. Программная реализация AVL-дерева. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.18. Программная реализация AVL-дерева. Сам. работа 4 15 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.19. Красно-черные деревья. Вращение. Добавление и удаление вершин. Дерево промежутков. Лекции 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.20. Программная реализация красно-черных деревьев. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.21. Программная реализация красно-черных деревьев. Сам. работа 4 15 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.22. SPLAY-деревья.Основные операции Лекции 4 1 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.23. Программная реализация SPLAY-деревьев. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.24. Программная реализация SPLAY-деревьев. Сам. работа 4 9 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.25. Б-деревья. Вращение. Добавление и удаление вершин. Применение. Лекции 4 1 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.26. Программная реализация Б-деревьев. Лабораторные 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.27. Программная реализация Б-деревьев. Сам. работа 4 3 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.28. Биномиальные деревья и кучи. Основные операции. Лекции 4 1 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.29. Программная реализация операций над биномиальными деревьями. Лабораторные 4 2 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
2.30. Программная реализация операций над биномиальными деревьями. Сам. работа 4 3 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
Раздел 3. Сложные структуры данных
3.1. Графы. Описание. Основные понятия и виды графов. Задачи на графах. Лекции 4 1 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.2. Задачи на графах. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.3. Задачи на графах. Сам. работа 4 6 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.4. Системы непересекающихся множеств. Основные свойства и операции. Лекции 4 1 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.5. Реализация с использованием списков. Лабораторные 4 4 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.6. Реализация с использованием списков. Сам. работа 4 3 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.7. Алгоритмы на графах. Поиск в ширину. Поиск в глубину. Минимальные покрывающие деревья. Лекции 4 1 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.8. Программная реализация алгоритмов на графах. Лабораторные 4 6 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2
3.9. Программная реализация алгоритмов на графах. Сам. работа 4 5 ПК-3.1, ПК-3.2, ПК-3.3 Л1.1, Л2.1, Л1.3, Л1.2

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

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

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Хиценко В.П. Структуры данных и алгоритмы: учебное пособие Издательство НГТУ, 2016 www.studentlibrary.ru
Л1.2 Мейер Б. Инструменты, алгоритмы и структуры данных: Учебная литература для ВУЗов Национальный Открытый Университет «ИНТУИТ», 2016 biblioclub.ru
Л1.3 Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона: Учебные пособия Издательство "ДМК Пресс", 2010 e.lanbook.com
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Ландовский В.В. Структуры данных: учебное пособие Издательство НГТУ, 2016 www.studentlibrary.ru
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Алгоритмы. М algolist.manual.ru
Э2 Курс в Moodle "Структура и алгоритмы обработки данных" portal.edu.asu.ru
6.3. Перечень программного обеспечения
Среда разработки Мicrosoft visual studio С++ (версия не ниже 2008)
Microsoft Windows
Microsoft Office
7-Zip
AcrobatReaderMicrosoft 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. Перечень информационных справочных систем
1. Образовательный портал АлтГУ http://portal.edu.asu.ru/
2. Электронный каталог НБ АлтГУ «Книги»: http://www.lib.asu.ru/app/elecat/elecat=index1?base=book
3. Издательство «Лань» [Электронный ресурс]: электронно-библиотечная система. – URL: http://e.lanbook.com/
4. Издательство «Юрайт» [Электронный ресурс]: электронно-библиотечная система. – URL: http://biblio-online.ru
5. ЭБС «Университетская библиотека online»: https://biblioclub.ru/
6. ЭБС АлтГУ: http://elibrary.asu.ru/

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

Аудитория Назначение Оборудование
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
106Л помещение для хранения и профилактического обслуживания учебного оборудования Стеллажи – 3 шт. осциллограф, паяльная станция, источник тока, переносные ноутбуки
207Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; компьютеры: марка DEPO модель Neos 260, мониторы: марка Philips модель 227E3LHSU - 14 единиц
206Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; компьютеры: марка DEPO модель Neos 260, мониторы: марка Philips модель 227E3LHSU - 14 единиц
205Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 9 посадочных мест; компьютеры: марка КламаС Офис, мониторы: марка ACER модель V223HQL - 8 единиц; доска интерактивная Triumph MULTI TOUCH 78 + проектор NEC UM280X в комплекте
203Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; компьютеры: марка ASUS модель i5-6500 - 14 единиц
202Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; компьютеры: марка HP - 14 единиц; мониторы: марка ASUS модель VS197DE - 14 единиц

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

Изучение дисциплины завершается зачетом в 3 семестре и экзаменом в 4 семестре. Успешное изучение дисциплины требует посещения лекций, активной работы на лабораторных работах, выполнения всех практических заданий преподавателя, ознакомления с основной и дополнительной литературой. Во время лекции студент должен вести краткий конспект. При этом обучающийся должен стараться найти ответы на затруднительные вопросы, используя рекомендуемую литературу или общедоступные ресурсы. Если ему самостоятельно не удалось разобраться в материале, необходимо сформулировать вопросы и обратится за помощью к преподавателю на консультации или ближайшей лекции. Выполнение студентами практических заданий направлено на:
- обобщение, систематизацию, углубление, закрепление полученных теоретических знаний по конкретным темам дисциплин;
- формирование необходимых профессиональных умений и навыков.
Помимо собственно выполнения практических заданий для каждого задания предусмотрена процедура защиты, в ходе которой преподаватель проводит устный или письменный опрос студентов для контроля понимания выполненных ими действий по теме занятия. При подготовке к зачету в дополнение к изучению конспектов лекций, учебно-методических материалов и слайдов, необходимо пользоваться учебной литературой, рекомендованной настоящей программой. При подготовке к зачету/экзамену нужно изучить определения всех понятий и теоретические подходы до состояния понимания материала, а также выполнить все практические задания в курсе.