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. Объединения. Понятия и определения файлов и потоков, классификация файлов, стандартные функции по работе с файлами, основные алгоритмы работы с файлами. Обработка файлов в потоковом режиме. Прямой доступ к данным файла. Работа с элементами файлов. Распределение, способы выделения и освобождения динамической памяти, взаимодействие указателей и участков динамической памяти. Одномерные динамические массивы. Двумерные динамические массивы. Динамические структуры данных: однонаправленные и двунаправленные списки, очередь и стек, бинарные деревья. Понятие ресурсной эффективности алгоритмов посредством анализа асимптотических функций временной и емкостной сложности. Классификация алгоритмов на основе функции временной сложности, общие методы оценки трудоемкости алгоритмов. Рекурсия и рекурсивные алгоритмы. Алгоритм перебора с возвратом. Алгоритмы поиска в линейных структурах. Алгоритмы хеширования данных. Определение и виды деревьев поиска, приемы снижения трудоемкости поиска в древовидных структурах. Алгоритмы поиска в двоичных упорядоченных, случайных и сбалансированных в высоту (АВЛ) деревьях. Примеры программной реализации бинарного дерева поиска и АВЛ-дерева. Определение и классификация алгоритмов сортировок массивов. Бинарная пирамидальная сортировка. Сортировка слиянием. Сортировка Шелла. Сортировка Хоара. Внутренняя сортировка. Внешняя сортировка Дополнения и изменения в рабочей программе на учебный год _____/______ Следующие записи относятся к п.п. Автор Зав. кафедрой Принято УМУ__________________________________ Дата:_____________________