09.03.04 Б3.Б.2 Алгоритмы и структуры данных

advertisement
1
2
3
4
1.
1.1.
Цели и задачи дисциплины
Цель. Задачи дисциплины, ее место в подготовке специалиста (с учетом квалификационных требований ФГОС)
Рабочая программа по дисциплине «Методы оптимизации» составлена в соответствии с требованиями ФГОС ВПО по направлению 231000 «Алгоритмы и структуры данных» и относится к циклу профессиональных дисциплин - Б3.Б2.
Целью изучения учебной дисциплины «Алгоритмы и структуры данных» является формирование знаний, позволяющих использовать соответствующий алгоритмический и математический аппарат, а также инструментальные средства для обработки, анализа и систематизации данных.
Задачами учебной дисциплины является научить студента владеть инструментами и методами
обработки структурированных данных.
1.2.
Требования к уровню усвоения дисциплины
Студент должен знать структуры данных и основные алгоритмы как основы для логического и
последовательного подхода к проблеме обработки, анализа и систематизации данных, усвоить способы формулировки проблемной ситуации; определение целей и критериев их достижения; построение моделей и алгоритмов для обоснования решений; проверку эффективности решения.
Студент должен уметь пользоваться основными методами и приемами алгоритмизации и программирования при анализе и управлении сложными объектами; применять данную последовательность методов при описании и изучении технических и экономических систем.
Студент должен иметь представление об математическом и алгоритмическом аппарате и инструментах обработки, анализа и систематизации данных.
У студента должны быть сформированы общекультурные компетенций (ОК) и профессиональных компетенций (ПК):
 понимание основных концепций, принципов, теорий и фактов, связанных с информатикой (ПК-1);
 знакомство с архитектурой ЭВМ и систем (ПК-9);
 навыки использования различных технологий разработки программного обеспечения
(ПК-16).
1.3.
Связь с другими дисциплинами Учебного плана
Перечень действующих и предшествующих дисциплин с указанием разделов (тем)
Введение в программную инженерию
Низкоуровневое программирование
Информатика и программирование
2.
Перечень последующих дисциплин, видов работ
Методы разработки сложных программных систем
Конструирование программного обеспечения
Содержание дисциплины, способы и методы учебной деятельности преподавателя
Методы обучения – система последовательных, взаимосвязанных действий, обеспечивающих усвоение содержания образования, развитие способностей студентов, овладение ими средствами самообразования и самообучения; обеспечивают цель обучения, способ усвоения и характер взаимодействия преподавателя и студента;
направлены на приобретение знаний, формирование умений, навыков, их закрепление и контроль.
Монологический (изложение теоретического материала в форме монолога)
Показательный (изложение материала с приемами показа)
Диалогический (изложение материала в форме беседы с вопросами и ответами)
Эвристический (частично поисковый) (под руководством преподавателя студенты рассуждают, решают возникающие вопросы, анализируют, обобщают, делают выводы и решают поставленную задачу)
Проблемное изложение (преподаватель ставит проблему и раскрывает доказательно пути
ее решения)
Исследовательский (студенты самостоятельно добывают знания в процессе разрешения
проблемы, сравнивая различные варианты ее решения)
Программированный (организация аудиторной и самостоятельной работы студентов осуществляется в индивидуальном темпе и под контролем специальных технических средств)
М
П
Д
Э
ПБ
И
ПГ
5
Методы
Вид занятия, тема и краткое содержание
Реализуемые
тенции
в том числе в интерактивной форме, час.
Кол. час
Неделя
компе-
Аудиторные занятия (лекции, лабораторные, практические, семинарские) - очная
форма обучения
2.1.
Лекции
110
1-2
10
Модуль 1 «Структуры данных»
2
ПБ,
Э
ПК1,
ПК9
3-4
2
ПБ,
Э
ПК9,
ПК16
5-6
2
ПБ,
Э
ПК16,
ПК16
7-8
2
ПБ,
Э
910
2
ПК1,
ПК16
ПК9,
ПК16
1118
1112
8
Тема 1. «Типы данных в языке С++»
Понятие типов данных в языках программирования, классификация типов данных в С++, особенности представления базовых типов и операций над ними, рекомендации и правила выполнения операции преобразования базовых типов в
С++. Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные функции
Тема 2. «Производные типы. Указатели на объекты, указатели на функции»
Определение и виды указателей, способы объявления, инициализация указателей
на объекты, методы доступа к данным через указатели, размещение указателей
и адресуемых ими объектов в памяти, операции над указателями. Тип указатель:
указатели на функции. Решение задач с использованием указателей
Тема 3. «Массивы: одномерные и двумерные»
Понятие и виды массивов в языках программирования, определение, объявление,
инициализация, способы генерации и вывод одномерных массивов, расположение в памяти элементов массивов, связь между указателями и массивами, задачи
поиска, замены и перестановок элементов массива, сортировок элементов массива. Двумерные массивы: задачи поиска, замены и суммирования элементов двумерного массива, задачи сортировок и перестановок в двумерных массивах
Тема 4. «Структуры»
Определения, способы объявления, инициализация структур, методы доступа к
данным структуры, размещение структур и определение их размера в памяти,
массивы структур. Структуры и указатели. Объединения.
Тема 5. «Стандартные файлы и функции по работе с ними»
Понятия и определения файлов и потоков, классификация файлов, стандартные
функции по работе с файлами, основные алгоритмы работы с файлами, примеры
решения задач на организацию ввода-вывода и обработку данных в файлах. Обработка файлов в потоковом режиме. Прямой доступ к данным файла. Работа с
элементами файлов. Решение задач на обработку файлов
Модуль 2 «Алгоритмы обработки данных»
ПБ,
Э
ПК1,
ПК9
1314
2
ПБ,
Э
ПК9,
ПК16
1516
2
Тема 6. «Распределение памяти. Динамическое выделение памяти»
Определения, распределение, способы выделения и освобождения динамической
памяти, взаимодействие указателей и участков динамической памяти. Одномерные динамические массивы. Двумерные динамические массивы. Динамические
структуры данных: однонаправленные и двунаправленные списки, очередь и
стек, бинарные деревья. Решение задач на динамические структуры данных
Тема 7. «Алгоритмы обработки данных»
Понятие ресурсной эффективности алгоритмов посредством анализа асимптотических функций временной и емкостной сложности, классификация алгоритмов на основе функции временной сложности, робщие методы оценки трудоемкости алгоритмов. Рекурсия и рекурсивные алгоритмы. Алгоритм перебора с
возвратом. Алгоритмы поиска в линейных структурах. Алгоритмы хеширования
данных
Тема 8. «Алгоритмы поиска на основе деревьев»
Определение и виды деревьев поиска, приемы снижения трудоемкости поиска в
древовидных структурах, описания алгоритмов поиска в двоичных упорядочен-
ПБ,
Э
ПК16
2
ПБ,
Э
6
ных, случайных и сбалансированных в высоту (АВЛ) деревьях, примеры программной реализации бинарного дерева поиска и АВЛ-дерева.
Тема 9. «Алгоритмы сортировки массивов»
Определение и классификация алгоритмов сортировок массивов, в частности,
быстрых сортировок, изучаются параметры, характеризующие трудоемкость
алгоритмов сортировок, рассматриваются описания и примеры программных
кодов следующих алгоритмов быстрых сортировок: бинарная пирамидальная
сортировка, сортировка слиянием, сортировка Шелла и сортировка Хоара.
Внутренняя сортировка. Внешняя сортировка
ПБ,
Э
ПК1,
ПК16
Тема. Типы данных в языке С++
Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные
функции.
ПГ
3
Тема. «Производные типы. Указатели на объекты, указатели на функции»
Производные типы. Тип указатель: указатели на объекты. Тип указатель: указатели на функции. Решение задач с использованием указателей.
ПГ
4
3
ПГ
7-8
4
3
Тема. «Массивы: одномерные и двумерные»
Массивы: одномерные массивы, задачи поиска, замены и перестановок элементов массива, задачи сортировок элементов массива. Двумерные массивы: задачи
поиска, замены и суммирования элементов двумерного массива, задачи сортировок и перестановок в двумерных массивах.
Тема. «Структуры»
Структуры и указатели. Объединения
ПК1,
ПК9
ПК9,
ПК16
ПК16
910
4
3
ПГ
1118
1112
16
Тема. «Стандартные файлы и функции по работе с ними»
Стандартные файлы и функции по работе с ними. Обработка файлов в потоковом режиме. Прямой доступ к данным файла. Работа с элементами файлов. Решение задач на обработку файлов.
Модуль 2 «Алгоритмы обработки данных»
4
3
ПГ
ПК1,
ПК9
1314
4
3
Тема. «Распределение памяти. Динамическое выделение памяти»
Распределение памяти. Динамическое выделение памяти. Одномерные динамические массивы. Двумерные динамические массивы. Решение задач на динамические массивы. Динамические структуры данных: однонаправленные и
двунаправленные списки, очередь и стек, бинарные деревья
Тема. «Алгоритмы обработки данных»
Алгоритмы обработки данных. Рекурсия и рекурсивные алгоритмы. Алгоритм
перебора с возвратом. Алгоритмы поиска в линейных структурах. Алгоритмы
хеширования данных
ПГ
ПК9,
ПК16
1516
4
2
ПГ
ПК16
1718
4
2
Тема. «Алгоритмы поиска на основе деревьев»
Алгоритмы поиска в двоичных упорядоченных, случайных и сбалансированных
в высоту (АВЛ) деревьях, программная реализация бинарного дерева поиска
и АВЛ-дерева.
Тема. «Алгоритмы сортировки массивов»
Алгоритмы сортировки массивов. Внутренняя сортировка. Внешняя сортировка
ПГ
ПК1,
ПК16
1718
2
110
1-2
20
2
Модуль 1 «Структуры данных»
4
2
3-4
4
5-6
Лабораторные занятия
ПГ
ПК1,
ПК16
ПК9,
ПК16
Аудиторные занятия (лекции, лабораторные, практические, семинарские) - заочная форма
обучения, срок подготовки 5 года
компеМетоды
Вид занятия, тема и краткое содержание
Реализуемые
тенции
в том числе в интерактивной форме, час.
Кол. час
Неделя
7
Лекции
Тема 1. «Типы данных в языке С++»
Понятие типов данных в языках программирования, классификация типов данных в С++, особенности представления базовых типов и операций над ними, рекомендации и правила выполнения операции преобразования базовых типов в
С++. Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные функции
Тема 2. «Производные типы. Указатели на объекты, указатели на функции»
Определение и виды указателей, способы объявления, инициализация указателей
на объекты, методы доступа к данным через указатели, размещение указателей
и адресуемых ими объектов в памяти, операции над указателями. Тип указатель:
указатели на функции. Решение задач с использованием указателей
Тема 3. «Массивы: одномерные и двумерные»
Понятие и виды массивов в языках программирования, определение, объявление,
инициализация, способы генерации и вывод одномерных массивов, расположение в памяти элементов массивов, связь между указателями и массивами, задачи
поиска, замены и перестановок элементов массива, сортировок элементов массива. Двумерные массивы: задачи поиска, замены и суммирования элементов двумерного массива, задачи сортировок и перестановок в двумерных массивах
Лабораторные занятия
ПБ,
Э
ПК1,
ПК9
ПБ,
Э
ПК9,
ПК16
ПБ,
Э
ПК16
2
Тема. Типы данных в языке С++
Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные
функции.
ПГ
2
Тема. «Производные типы. Указатели на объекты, указатели на функции»
Производные типы. Тип указатель: указатели на объекты. Тип указатель: указатели на функции. Решение задач с использованием указателей.
ПГ
ПК1,
ПК9
ПК9,
ПК16
2
2
2
компеМетоды
Вид занятия, тема и краткое содержание
Реализуемые
тенции
в том числе в интерактивной форме, час.
Кол. час
Неделя
Аудиторные занятия (лекции, лабораторные, практические, семинарские) - заочная форма
обучения, срок подготовки 3 года 6 месяцев
Лекции
2
2
Тема 1. «Типы данных в языке С++»
Понятие типов данных в языках программирования, классификация типов данных в С++, особенности представления базовых типов и операций над ними, рекомендации и правила выполнения операции преобразования базовых типов в
С++. Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные функции
Тема 2. «Производные типы. Указатели на объекты, указатели на функции»
Определение и виды указателей, способы объявления, инициализация указателей
ПБ,
Э
ПК1,
ПК9
ПБ,
Э
ПК9,
8
на объекты, методы доступа к данным через указатели, размещение указателей
и адресуемых ими объектов в памяти, операции над указателями. Тип указатель:
указатели на функции. Решение задач с использованием указателей
Лабораторные занятия
ПК16
2
Тема. Типы данных в языке С++
Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные
функции.
ПГ
2
Тема. «Производные типы. Указатели на объекты, указатели на функции»
Производные типы. Тип указатель: указатели на объекты. Тип указатель: указатели на функции. Решение задач с использованием указателей.
ПГ
2
Тема. «Массивы: одномерные и двумерные»
Массивы: одномерные массивы, задачи поиска, замены и перестановок элементов массива, задачи сортировок элементов массива. Двумерные массивы: задачи
поиска, замены и суммирования элементов двумерного массива, задачи сортировок и перестановок в двумерных массивах.
ПГ
ПК1,
ПК9
ПК9,
ПК16
ПК16
компеМетоды
Вид занятия, тема и краткое содержание
Реализуемые
тенции
в том числе в интерактивной форме, час.
Кол. час
Неделя
Аудиторные занятия (лекции, лабораторные, практические, семинарские) - заочная форма
обучения, срок подготовки 2 года 6 месяцев
Лекции
Тема 1. «Типы данных в языке С++»
Понятие типов данных в языках программирования, классификация типов данных в С++, особенности представления базовых типов и операций над ними, рекомендации и правила выполнения операции преобразования базовых типов в
С++. Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные функции
Тема 2. «Производные типы. Указатели на объекты, указатели на функции»
Определение и виды указателей, способы объявления, инициализация указателей
на объекты, методы доступа к данным через указатели, размещение указателей
и адресуемых ими объектов в памяти, операции над указателями. Тип указатель:
указатели на функции. Решение задач с использованием указателей
Лабораторные занятия
ПБ,
Э
ПК1,
ПК9
ПБ,
Э
ПК9,
ПК16
2
Тема. Типы данных в языке С++
Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные
функции.
ПГ
2
Тема. «Производные типы. Указатели на объекты, указатели на функции»
Производные типы. Тип указатель: указатели на объекты. Тип указатель: указатели на функции. Решение задач с использованием указателей.
ПГ
2
Тема. «Массивы: одномерные и двумерные»
Массивы: одномерные массивы, задачи поиска, замены и перестановок элементов массива, задачи сортировок элементов массива. Двумерные массивы: задачи
поиска, замены и суммирования элементов двумерного массива, задачи сортировок и перестановок в двумерных массивах.
ПГ
ПК1,
ПК9
ПК9,
ПК16
ПК16
2
2
9
Неделя
Кол. час
Темы, разделы, вынесенные на самостоятельную подготовку, вопросы к практическим и лабораторным занятиям; тематика рефератной работы; курсовые работы и
проекты, контрольные, рекомендации по использованию литературы и ЭВМ и др.
1-18
6
1-18
6
Самостоятельное изучение отдельных тем курса:
Тема 1. Символьные данные и строки: понятия и определения символьных данных
и строк, сходство и отличия их внутреннего представления, способы объявления,
инициализация строк, методы доступа к элементам строк, определение размера
строк, различные способы организации ввода/вывода символьных данных и строк.
Тема 2. Функции для работы со строками: библиотечные функции, предназначенные для работы со строками, и особенности их выполнения, приведены примеры
использования таких функций при решении задач.
Тема 3. Битовые поля: объявление и размещение в памяти битовых полей, методы
доступа к битовым полям, приемы использования битовых полей для побитового анализа данных.
Тема 4. Алгоритмы сжатия данных: основные понятия и алгоритмы сжатия данных, приводятся примеры программной реализации алгоритма Хаффмана через
префиксные коды и на основе кодовых деревьев.
Тема 5. Алгоритмы на графах. Алгоритмы обхода графа: основные понятия из
теории графов, модели представления графов, на основе которых приводятся описания и реализации алгоритмов поиска в глубину и в ширину.
Тема 6. Алгоритмы на графах. Алгоритмы нахождения кратчайшего пути: постановка задачи и описание алгоритмов нахождения кратчайшего пути в графах,
программные реализации алгоритмов Дейкстры, Флойда и переборного алгоритма.
Темы и вопросы, определяемые преподавателем с учетом интересов студента
1-18
6
Усвоение текущего учебного материала
Реализуемые
компетенции
Самостоятельная работа студента - очная форма обучения
Методы
2.2.
Э
ПК1,
ПК9,
ПК16
Э
ПК1
ПК16
Э
40
9
Самостоятельное изучение отдельных тем курса:
Тема 1. Символьные данные и строки: понятия и определения символьных данных
и строк, сходство и отличия их внутреннего представления, способы объявления,
инициализация строк, методы доступа к элементам строк, определение размера
строк, различные способы организации ввода/вывода символьных данных и строк.
Тема 2. Функции для работы со строками: библиотечные функции, предназначенные для работы со строками, и особенности их выполнения, приведены примеры
использования таких функций при решении задач.
Тема 3. Битовые поля: объявление и размещение в памяти битовых полей, методы
доступа к битовым полям, приемы использования битовых полей для побитового анализа данных.
Тема 4. Алгоритмы сжатия данных: основные понятия и алгоритмы сжатия данных, приводятся примеры программной реализации алгоритма Хаффмана через
префиксные коды и на основе кодовых деревьев.
Тема 5. Алгоритмы на графах. Алгоритмы обхода графа: основные понятия из
теории графов, модели представления графов, на основе которых приводятся описания и реализации алгоритмов поиска в глубину и в ширину.
Тема 6. Алгоритмы на графах. Алгоритмы нахождения кратчайшего пути: постановка задачи и описание алгоритмов нахождения кратчайшего пути в графах,
программные реализации алгоритмов Дейкстры, Флойда и переборного алгоритма.
Темы и вопросы, определяемые преподавателем с учетом интересов студента
Реализуемые
компетенции
Кол. час
Неделя
Темы, разделы, вынесенные на самостоятельную подготовку, вопросы к практическим и лабораторным занятиям; тематика рефератной работы; курсовые работы и
проекты, контрольные, рекомендации по использованию литературы и ЭВМ и др.
Методы
Самостоятельная работа студента - заочная форма обучения, срок подготовки 5 лет
Э
ПК1,
ПК9,
ПК16
Э
ПК-
10
9
Усвоение текущего учебного материала
Э
1
ПК9
9
Самостоятельное изучение отдельных тем курса:
Тема 1. Символьные данные и строки: понятия и определения символьных данных
и строк, сходство и отличия их внутреннего представления, способы объявления,
инициализация строк, методы доступа к элементам строк, определение размера
строк, различные способы организации ввода/вывода символьных данных и строк.
Тема 2. Функции для работы со строками: библиотечные функции, предназначенные для работы со строками, и особенности их выполнения, приведены примеры
использования таких функций при решении задач.
Тема 3. Битовые поля: объявление и размещение в памяти битовых полей, методы
доступа к битовым полям, приемы использования битовых полей для побитового анализа данных.
Тема 4. Алгоритмы сжатия данных: основные понятия и алгоритмы сжатия данных, приводятся примеры программной реализации алгоритма Хаффмана через
префиксные коды и на основе кодовых деревьев.
Тема 5. Алгоритмы на графах. Алгоритмы обхода графа: основные понятия из
теории графов, модели представления графов, на основе которых приводятся описания и реализации алгоритмов поиска в глубину и в ширину.
Тема 6. Алгоритмы на графах. Алгоритмы нахождения кратчайшего пути: постановка задачи и описание алгоритмов нахождения кратчайшего пути в графах,
программные реализации алгоритмов Дейкстры, Флойда и переборного алгоритма.
Темы и вопросы, определяемые преподавателем с учетом интересов студента
9
Усвоение текущего учебного материала
40
Реализуемые
компетенции
Кол. час
Неделя
Темы, разделы, вынесенные на самостоятельную подготовку, вопросы к практическим и лабораторным занятиям; тематика рефератной работы; курсовые работы и
проекты, контрольные, рекомендации по использованию литературы и ЭВМ и др.
Методы
Самостоятельная работа студента - заочная форма обучения, срок подготовки 3 года 6 мес
Э
ПК1,
ПК9,
ПК16
Э
ПК1
4
Э
40
Самостоятельное изучение отдельных тем курса:
Тема 1. Символьные данные и строки: понятия и определения символьных данных
и строк, сходство и отличия их внутреннего представления, способы объявления,
инициализация строк, методы доступа к элементам строк, определение размера
строк, различные способы организации ввода/вывода символьных данных и строк.
Тема 2. Функции для работы со строками: библиотечные функции, предназначенные для работы со строками, и особенности их выполнения, приведены примеры
использования таких функций при решении задач.
Тема 3. Битовые поля: объявление и размещение в памяти битовых полей, методы
доступа к битовым полям, приемы использования битовых полей для побитового анализа данных.
Тема 4. Алгоритмы сжатия данных:основные понятия и алгоритмы сжатия данных, приводятся примеры программной реализации алгоритма Хаффмана через
префиксные коды и на основе кодовых деревьев.
Тема 5. Алгоритмы на графах. Алгоритмы обхода графа: основные понятия из
теории графов, модели представления графов, на основе которых приводятся описания и реализации алгоритмов поиска в глубину и в ширину.
Тема 6. Алгоритмы на графах. Алгоритмы нахождения кратчайшего пути: поста-
Э
Реализуемые
компетенции
Кол. час
Неделя
Темы, разделы, вынесенные на самостоятельную подготовку, вопросы к практическим и лабораторным занятиям; тематика рефератной работы; курсовые работы и
проекты, контрольные, рекомендации по использованию литературы и ЭВМ и др.
Методы
Самостоятельная работа студента - заочная форма обучения, срок подготовки 2 года 6 мес
ПК1,
ПК9,
ПК16
11
2.3.
9
новка задачи и описание алгоритмов нахождения кратчайшего пути в графах,
программные реализации алгоритмов Дейкстры, Флойда и переборного алгоритма.
Темы и вопросы, определяемые преподавателем с учетом интересов студента
Э
9
Усвоение текущего учебного материала
Э
Интерактивные технологии
образовательном процессе
и
инновационные
методы,
ПК1
ПК9
используемые
в
Основаны на использовании современных достижений науки и информационных технологий. Направлены на
повышение качества подготовки путем развития у студентов творческих способностей и самостоятельности
(методы проблемного обучения, исследовательские методы, тренинговые формы, рейтинговые системы
обучения и контроля знаний и др.). Нацелены на активизацию творческого потенциала и самостоятельности
студентов и могут реализовываться на базе инновационных структур (научных лабораторий, центов,
предприятий и организаций и др.).
№
Наименование основных форм
1.
Компьютерные симуляции
2.
Деловые и ролевые игры
3.
Разбор конкретных ситуаций
4.
Психологические и иные тренинги
5.
Использование информационных ресурсов и
баз данных
6.
Применение электронных мультимедийных
учебников и учебных пособий
Ориентация содержания на лучшие отечественные аналоги образовательных программ
7.
8.
9.
Применение предпринимательских идей в содержании курса
Использование проблемно-ориентированного
междисциплинарного подхода к изучению наук
10.
Применение активных методов обучения, на
основе опыта и др.
11.
Использование методов, основанных на изучении практики (case studies)
3.
3.1.
№
1.
2.
Краткое описание и примеры, использования в темах и разделах, место проведения
В процессе работы с компьютерной техникой во время практических занятий
Деловая игра «Анализ результатов хозяйственной деятельности предприятия».
Разбор конкретных ситуаций по результатам работы групп в ходе деловой игры,
относительно качества анализа показателей
Психологический тренинг при выполнении
деловой игру группами участников для
выработки навыков лидеров и новаторов.
Коучинг, мотивация, настройка на успех
Использование информационных ресурсов
на лабораторных занятиях для выполнения
учебных заданий
Гипертекстовые учебные пособия для студентов включены в состав УМК на сервере
Темы лекций 1-4: алгоритмический и
математический аппарат для обработки,
анализа и систематизации данных
Задачи по принятию решений в практике
управления
Темы 5-9 лекций: алгоритмический и
математический аппарат для обработки,
анализа и систематизации данных
Лабораторные занятия с использованием
компьютерной техники и электронных пособий: метод активизации познавательной
деятельности, метод мозгового штурма для
решения проблемных задач.
Тема 3-6 лекций: студентам предлагаются
задачи на основе подобных решений.
Часы
6
6
6
6
Средства обучения
Информационно-методические
Перечень основной и дополнительной литературы, методических разработок; с указанием наличия в библиотеке, на кафедре
Основная литература:
Алгоритмы и структуры данных на С++ /Е.А. Аксенова, А.В. Соколов – Петрозаводск: Изд-во АУЛ
ПетрГУ, 2008
Гагарина Л. Г., Колдаев В. Д. Алгоритмы и структуры данных - М.: Финансы и статистика, Ин- АУЛ
12
3.
1.
2.
3.
4.
5.
6.
7.
8.
3.
фра-М, 2009.
Макконелл Дж. Анализ алгоритмов. Вводный курс - М.: Техносфера, 2004
Дополнительная литература:
Майника Э. Алгоритмы оптимизации на сетях и графах - М.: Мир, 1981
Основы программирования http://bigor.bmstu.ru/?cnt/?doc=CLang/base.cou
Пышкин Е.В. Структуры данных и алгоритмы: реализация на C/C++ - СПб.: ФТК СПБГПУ, 2009
Программирование
на
языке
высокого
уровня
(базовый
курс)
http://bigor.bmstu.ru/?cnt/?doc=VU/base.cou
Седжвик Р. Алгоритмы на C++. Фундаментальные алгоритмы и структуры данных - М.: «ВИЛЬЯМС», 2011
Седжвик Р. Фундаментальные алгоритмы на C++ - М.: ДиаСофт, 2002
Сундукова Т.О., Ваныкина Г.В. Структуры и алгоритмы компьютерной обработки данных. – М.:
ИНТУИТ. http://www.intuit.ru/department/algorithms/staldata/
Гудрич М.Т., Тамассия Р. Структуры данных и алгоритмы в Java - Мн.: Новое знание, 2003
№ ауд.
Основное оборудование, стенды, макеты, компьютерная техника, наглядные пособия и другие
дидактические материалы, обеспечивающие
проведение лабораторных и практических занятий, научно-исследовательской работы студентов с указанием наличия
Телевизионные Компьютер, телевизионная или проекционная
аудитории
техника
532
4.
№
1
2
3
4
5
6
7
АУЛ
Эл.вид
Каф
ИТиЗИ
Эл.вид
АУЛ
Каф
ИТиЗИ
Эл.вид
Каф
ИТиЗИ
Материально-технические
3.2.
532
532
Каф
ИТиЗИ
Операционная система Windows 7.
Офисный интегрированный пакет Microsoft
Office 2010.
MS Visual Studio 2010
Основное назначение (опытное,
обучающее, контролирующее) и
краткая характеристика использования при изучении явлений и
процессов, выполнении расчетов.
Назначение обучающее. Применяется для демонстрации презентаций, обучающих видеороликов
Обучающее
Обучающее
Обучающее
Текущий, промежуточный контроль знаний студентов
Тесты, вопросы для текущего контроля, для подготовки к зачету, экзамену
Вопросы к контролю знаний по модулю 1.
Понятие типов данных в языках программирования, классификация типов данных в С++
Особенности представления базовых типов и операций над ними
Рекомендации и правила выполнения операции преобразования базовых типов в С++.
Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные функции.
Определение и виды указателей, способы объявления, инициализация указателей на объекты.
Методы доступа к данным через указатели, размещение указателей и адресуемых ими объектов
в памяти, операции над указателями.
Понятие и виды массивов, определение, объявление, инициализация, способы генерации и вывод одномерных массивов, расположение в памяти элементов массивов, связь между указателями и массивами
13
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
Задачи поиска, замены и перестановок элементов массива, сортировок элементов массива.
Двумерные массивы: задачи поиска, замены и суммирования элементов двумерного массива,
задачи сортировок и перестановок в двумерных массивах.
Определения, способы объявления, инициализация структур, методы доступа к данным структуры, размещение структур и определение их размера в памяти, массивы структур.
Структуры и указатели.
Объединения.
Понятия и определения файлов и потоков, классификация файлов, стандартные функции по работе с файлами, основные алгоритмы работы с файлами.
Обработка файлов в потоковом режиме.
Прямой доступ к данным файла.
Работа с элементами файлов.
Вопросы к контролю знаний по модулю 2.
Распределение, способы выделения и освобождения динамической памяти, взаимодействие указателей и участков динамической памяти.
Одномерные динамические массивы.
Двумерные динамические массивы.
Динамические структуры данных: однонаправленные и двунаправленные списки, очередь и
стек, бинарные деревья.
Понятие ресурсной эффективности алгоритмов посредством анализа асимптотических функций временной и емкостной сложности.
Классификация алгоритмов на основе функции временной сложности, общие методы оценки
трудоемкости алгоритмов.
Рекурсия и рекурсивные алгоритмы.
Алгоритм перебора с возвратом.
Алгоритмы поиска в линейных структурах.
Алгоритмы хеширования данных.
Определение и виды деревьев поиска, приемы снижения трудоемкости поиска в древовидных
структурах.
Алгоритмы поиска в двоичных упорядоченных, случайных и сбалансированных в высоту (АВЛ)
деревьях.
Примеры программной реализации бинарного дерева поиска и АВЛ-дерева.
Определение и классификация алгоритмов сортировок массивов.
Бинарная пирамидальная сортировка.
Сортировка слиянием.
Сортировка Шелла.
Сортировка Хоара.
Внутренняя сортировка.
Внешняя сортировка
Вопросы к зачету
Понятие типов данных в языках программирования, классификация типов данных в С++
Особенности представления базовых типов и операций над ними
Рекомендации и правила выполнения операции преобразования базовых типов в С++.
Подставляемые (встраиваемые) функции. Перегрузка функций. Рекурсивные функции.
Определение и виды указателей, способы объявления, инициализация указателей на объекты.
Методы доступа к данным через указатели, размещение указателей и адресуемых ими объектов
в памяти, операции над указателями.
Понятие и виды массивов, определение, объявление, инициализация, способы генерации и вывод одномерных массивов, расположение в памяти элементов массивов, связь между указателями и массивами
Задачи поиска, замены и перестановок элементов массива, сортировок элементов массива.
Двумерные массивы: задачи поиска, замены и суммирования элементов двумерного массива,
задачи сортировок и перестановок в двумерных массивах.
Определения, способы объявления, инициализация структур, методы доступа к данным структуры, размещение структур и определение их размера в памяти, массивы структур.
Структуры и указатели.
14
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
5.
Объединения.
Понятия и определения файлов и потоков, классификация файлов, стандартные функции по работе с файлами, основные алгоритмы работы с файлами.
Обработка файлов в потоковом режиме.
Прямой доступ к данным файла.
Работа с элементами файлов.
Распределение, способы выделения и освобождения динамической памяти, взаимодействие указателей и участков динамической памяти.
Одномерные динамические массивы.
Двумерные динамические массивы.
Динамические структуры данных: однонаправленные и двунаправленные списки, очередь и
стек, бинарные деревья.
Понятие ресурсной эффективности алгоритмов посредством анализа асимптотических функций временной и емкостной сложности.
Классификация алгоритмов на основе функции временной сложности, общие методы оценки
трудоемкости алгоритмов.
Рекурсия и рекурсивные алгоритмы.
Алгоритм перебора с возвратом.
Алгоритмы поиска в линейных структурах.
Алгоритмы хеширования данных.
Определение и виды деревьев поиска, приемы снижения трудоемкости поиска в древовидных
структурах.
Алгоритмы поиска в двоичных упорядоченных, случайных и сбалансированных в высоту (АВЛ)
деревьях.
Примеры программной реализации бинарного дерева поиска и АВЛ-дерева.
Определение и классификация алгоритмов сортировок массивов.
Бинарная пирамидальная сортировка.
Сортировка слиянием.
Сортировка Шелла.
Сортировка Хоара.
Внутренняя сортировка.
Внешняя сортировка
Дополнения и изменения в рабочей программе на учебный год _____/______
Следующие записи относятся к п.п.
Автор
Зав. кафедрой
Принято УМУ__________________________________ Дата:_____________________
Download