страница 1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Похожие работы
|
Программа дисциплины Методы разработки и анализа алгоритмов для направления 080500. - страница №1/1
Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Национальный исследовательский университет «Высшая школа экономики» Факультет Бизнес-информатики Отделение Программной инженерии для направления 080500.62 «Бизнес-информатика» подготовки бакалавра Авторы программы: Ульянов М.В., д.т.н., профессор, muljanov@mail.ru, Ахметсафина Р.З., к.т.н., доцент, rakhmetsafina@hse.ru Одобрена на заседании кафедры управления разработкой программного обеспечения «___»____________ 2012 г Зав. кафедрой С.М. Авдошин
Рекомендована секцией УМС факультета бизнес информатики «___»____________ 2012 г Председатель Ю.В. Таратухина Москва, 2012 1 Область применения и нормативные ссылкиНастоящая программа учебной дисциплины «Методы разработки и анализа алгоритмов» устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 080500.62 «Бизнес-информатика» подготовки бакалавра, изучающих дисциплину «Методы разработки и анализа алгоритмов». Программа разработана в соответствии с: образовательным стандартом государственного образовательного бюджетного учреждения высшего профессионального образования «Национальный исследовательский университет «Высшая школа экономики» по направлению 080500.62 «Бизнес-информатика» подготовки бакалавров http://www.hse.ru/data/2012/01/30/1264146137/B-I.pdf рабочим учебным планом университета по направлению 080500.62 «Бизнес-информатика» подготовки бакалавра, утвержденным в 2012 г. http://www.hse.ru/standards/rup/archive/?fid=24258 В соответствии с рабочим учебным планом по направлению «Бизнес-информатика» дисциплина «Методы разработки и анализа алгоритмов» читается студентам третьего курса бакалавриата в 3-ем и 4-ом модулях. 2 Цели освоения дисциплиныЦели освоения дисциплины «Методы разработки и анализа алгоритмов»:
3 Компетенции обучающегося, формируемые в результате освоения дисциплиныВ результате освоения дисциплины студент должен: Знать: — методы анализа алгоритмов в итерационной реализации; — методы анализа алгоритмов в рекурсивной реализации; — метод декомпозиции и метод динамического программирования как методы разработки эффективных алгоритмов. Уметь: — оценивать компьютерные алгоритмы с использованием комплексных критериев качества, в том числе оценивать ресурсную эффективность алгоритмов; — планировать эксперимент, проводить экспериментальное исследование алгоритмов. Иметь навыки (приобрести опыт) и владеть: — инструментами измерения времени в программных реализациях алгоритмов; — методами и средствами оценки трудоемкости алгоритмов в их итерационной и рекурсивной реализации; — методами разработки эффективных алгоритмов на основе их сравнительного анализа. В результате освоения дисциплины студент осваивает следующие компетенции:
4 Место дисциплины в структуре образовательной программыНастоящая дисциплина относится к профессиональному циклу дисциплин (Б.3), его вариативной части (В.3.1). Изучение данной дисциплины базируется на знаниях, полученных студентами при освоении учебных дисциплин «Дискретная математика», «Программирование», «Теоретические основы информатики», общих знаниях математики и основ программирования в части базовых алгоритмических конструкций. Дисциплина является основой для последующего изучения дисциплин: «Хранилища данных», «Базы данных и экспертные системы», «Процессы разработки информационных систем». 5 Тематический план учебной дисциплины
6 Формы контроля знаний студентов
6.1 Критерии оценки знаний, навыковОценки по всем формам контроля выставляются по 10-ти балльной шкале. Текущий контроль предусматривает контрольную работу, домашнее задание и реферат, выполняемые во втором модуле. Контрольная работа предусматривает программную реализацию на компьютере предложенного алгоритма. Выполняется на практическом занятии. Оценка за контрольную работу выставляется по критериям, описанным в примерном задании на контрольную работу (см. п. 9.1.2). Пересдача контрольной работы с целью повышения оценки не допускается. Допускается выполнение контрольной работы в более поздний срок при пропуске по уважительной причине. Домашнее задание включает разработку, кодирование, тестирование и отладку программ реализации одной задачи (по выбору), исследование и сравнительный анализ алгоритмов ее решения. По домашнему заданию оформляется отчет в электронном виде. Домашнее задание размещается в LMS в разделе «Проекты». В установленный срок студент загружает в LMS архив, содержащий полностью оформленный отчет и программу решения контрольного домашнего задания. Оценка за домашнее задание выставляется с учетом полноты выполнения задания и оформления результатов. Реферат предусматривает самостоятельную работу с литературой и знакомство с существующими алгоритмами решения выбранной для реферата задачи Акцент в изложении материала должен быть сделан на сравнительном анализе алгоритмов и формулировке рекомендаций по их рациональному выбору в зависимости от особенностей применения. Студент может также выбрать тему реферата, связанную с языком программирования С++. При этом обязательно привести примеры программ для иллюстрации темы. Кроме текущего контроля учитывается
В случае несвоевременной сдачи домашних работ и домашнего задания оценка снижается на один балл за каждый день задержки. При задержке по уважительной причине баллы не снимаются. Итоговый контроль: экзамен в конце 4-го модуля. Проводится в устной форме или в форме тестирования. При проведении экзамена в устной форме он состоит из двух частей:
При проведении экзамена в форме тестирования студенты предварительно знакомятся с примерными заданиями теста. 6.2 Порядок формирования оценок по дисциплинеПо всем видам работ выставляется 10-балльная оценка. Оценивается работа студентов на практических занятиях Оаудиторная, в которую входят результаты опросов по текущей теме как устных, так и в форме компьютерного тестирования, Оценки за работу на практических занятиях выставляются в рабочую ведомость. Оценивается самостоятельная работа студентов Осам. работа: правильность и полнота выполнения домашних работ по темам практических занятий. Оценки за самостоятельную работу студента преподаватель выставляет в рабочую ведомость. Текущая оценка Отекущий рассчитывается как взвешенная сумма оценок за домашнее задание, контрольную работу и реферат: Отекущий = 0,4 *·Одз + 0,4 *·Окр.+ 0,2 *·Ор Реферат защищается в форме доклада с презентацией, оценивается полнота освещения темы. Накопленная оценка формируется следующим образом: Онакопленная= 0,5 * Отекущий + 0,2 * Оауд + 0,3 * Осам.работа, Способ округления — арифметический. Оценка итогового контроля в четвертом модуле в форме экзамена определяется соотношением: Оитоговая = 0,5 * Онакопленная + 0,5 *·Оэкз. Перевод в пятибалльную оценку осуществляется в соответствии со следующей таблицей. Таблица соответствия оценок по десятибалльной и пятибалльной системам
7 Содержание дисциплины7.1 Содержание лекцийТема 1. Понятие алгоритма. Формализм Э.Л. Поста. Алгоритм как финитный 1-процесс История теории алгоритмов. Понятие алгоритма. Формализация понятия алгоритма. Формализм Э.Л. Поста. Пространство символов и примитивные операции в машине Поста, алгоритм как финитный 1-процесс, доставляющий решение общей проблемы, гипотеза Поста. Литература по теме 1:
Тема 2. Основная терминология и обозначения в анализе ресурсной эффективности алгоритмов Вход как эквивалент конкретной проблемы по Посту. Длина входа как функция от мощности множества входных данных. Оценки качества алгоритма. Понятие трудоёмкости. Трудоёмкость в лучшем, худшем и среднем случаях. Ёмкостная эффективность. Литература по теме 2:
Тема 3. Классификация алгоритмов по трудоёмкости Влияние длины входа и значений на трудоёмкость. Классификация алгоритмов по характеристическим особенностям множества исходных данных, определяющим вид функции трудоемкости. Классы N, PR, NPR. Примеры алгоритмов в рамках классификации. Дополнительная детализация классов. Особенности анализа алгоритмов по классам. Литература по теме 3:
Тема 4. Анализ NPR алгоритмов методом классов входных данных Метод классов входных данных. Особенности его применения. Задача сортировки трёх чисел по месту. Классы входных данных, порождаемые этой задачей. Алгоритмы и их анализ методом классов входных данных. Литература по теме 4:
Тема 5. Метод вероятностного анализа для получения трудоёмкости в среднем Собственно метод вероятностного анализа. Алгоритм сортировки вставками и анализ его трудоёмкости в среднем. Замечания об экспериментальном анализе алгоритмов по трудоёмкости. Выборочное среднее и математическое ожидание. Определение необходимого числа экспериментов. Литература по теме 5:
Тема 6. Сравнительный анализ алгоритмов по трудоёмкости и решение задачи рационального выбора Методика сравнительного анализа алгоритмов и определение границ применимости по характеристикам исходных данных. Простейшие примеры сравнительного анализа для задачи сортировки — алгоритм сортировки вставками и сортировки методом индексов. Рациональный выбор в параметрическом пространстве. Литература по теме 6:
Тема 7. Сложность алгоритмов. Теоретическая нижняя граница сложности задачи Асимптотический анализ функций и основные обозначения. Сложность как асимптотическая оценка трудоёмкости в худшем случае. Теоретическая нижняя граница сложности задачи. Доказательство теоретической нижней границы для задачи сортировки сравнениями. Литература по теме 7:
Тема 8. Введение в теорию сложности вычислений. Основные сложностные классы задач Исторический очерк теории сложности вычислений. Сложностные классы задач. Определение и взаимосвязь классов P и NP. Определение и примеры NP-полных задач. Литература по теме 8:
Тема 9. Временная эффективность и особенности перехода к временным оценкам Переход к пооперационному анализу трудоёмкости алгоритмов. Построение временных оценок. Методы перехода к временным оценкам на основе функции трудоемкости. Особенности измерения времени выполнения программной реализации алгоритма. Литература по теме 9:
Тема 10. Рекурсивные алгоритмы — Особенности реализации и анализа Рекурсивные функции и рекурсивные алгоритмы. Рекурсивная реализация алгоритмов. Анализ механизма рекурсивного вызова. Дерево рекурсивных вызовов. Простейшие примеры рекурсивных алгоритмов. Литература по теме 10:
Тема 11. Метод декомпозиции и особенности его применения Собственно метод декомпозиции. Рекурсивные алгоритмы как реализация метода декомпозиции. Методы анализа рекурсивных алгоритмов. Теорема Бентли-Хакен-Сакса и её применение для получения сложностных оценок алгоритмов. разработанных методом декомпозиции. Анализ рекурсивных алгоритмов методом прямого подсчета вершин рекурсивного дерева. Пример анализа — алгоритм сортировки слиянием. Литература по теме 11:
Тема 12. Анализ рекурсивных алгоритмов методом подсчёта вершин дерева рекурсии Анализ рекурсивных алгоритмов методом прямого подсчета вершин рекурсивного дерева. Пример анализа — алгоритм сортировки слиянием. Отличие детального анализа от асимптотического — граница применимости алгоритма сортировки вставками. Литература по теме 12:
Тема 13. Рекурсивный алгоритм возведения в степень Метод повторного возведения в квадрат. Функция 1(n). Рекурсивный и итерационный алгоритм быстрого возведения в степень и их анализ с использованием функции 1(n). Литература по теме 13:
Тема 14. Задачи умножения длинных целых чисел и умножения матриц Задача умножения длинных целых чисел. Гипотеза Колмогорова. Алгоритм умножения в столбик. Алгоритм Карацубы. Классический алгоритм умножения матриц. Алгоритм Штрассена. Литература по теме 14:
Тема 15. Динамическое программирование. Задача оптимальной упаковки (задача о рюкзаке) Основы метода динамического программирования. Пошаговая оптимизация. Классическая задача упаковки и основное уравнение Беллмана для точного решения задачи упаковки — табличная реализация функционального уравнения. Литература по теме 15:
Тема 16. Рекурсивный алгоритм метода динамического программирования для задачи упаковки Рекурсивная реализация алгоритма Беллмана для задачи упаковки. Параметризация задачи упаковки по среднему объёму грузов. Структура рекурсивного дерева и подсчет количества вершин порождённого дерева рекурсии. Оценка сложности алгоритма. Сравнительный анализ табличного и рекурсивного алгоритмов. Варианты построения комбинированного алгоритма. Литература по теме 16:
7.2 Содержание практических занятийПримерный перечень тем практических занятий:
На практических занятиях языком программной реализации алгоритмов является язык программирования С++, в связи с этим на занятиях изучаются основы языка С++ в объеме, необходимом для выполнения практических заданий. 8 Образовательные технологииРабота на практических занятиях предполагает разработку программ, реализующих алгоритмы, их экспериментальное исследование и сравнение результатов с теоретическими оценками алгоритмов. Домашнее задание предполагает самостоятельный анализ ресурсной эффективности двух-трех выбранных алгоритмов решения определённой задачи и сравнительный анализ этих алгоритмов с целью формулировки рекомендаций по их применению в зависимости от особенностей проблемной области применения. 9 Оценочные средства для текущего контроля и аттестации студента9.1 Тематика заданий текущего контроля9.1.1 Домашнее заданиеПредполагается выбор студентами для последующей программной реализации и сравнительного анализа двух-трех алгоритмов из перечисленных в темах 7–12 практических занятий (раздел 7.2). 9.1.2. Контрольная работаПримерное задание: По заданному алгоритму требуется
Формат входных данных:
Формат выходных данных На консоль должно выводиться одно целое число — максимальная глубина рекурсии. Пример входных и выходных данных
Оценивание контрольной работы
Работа выполнена самостоятельно менее чем за 60 минут — +1 балл. 9.2 Вопросы для оценки качества освоения дисциплины1. Понятие модели вычислений. 2. Машина Поста, алгоритм как финитный 1-процесс. 3. Требования к алгоритмам. 4. Основные свойства алгоритмов. 5. Понятие функции трудоёмкости в модели вычислений. 6. Понятие вычислительной сложности алгоритма. 7. Комплексные оценки качества алгоритмов и их компоненты. 8. Классификации алгоритмов. 9. Теоретический нижний предел сложности задачи. 10. Трудоёмкость в худшем, среднем и лучшем случае как функция длины входа. 11. Сравнительный анализ алгоритмов по трудоёмкости. 12. Методика прогнозирования временных оценок по функции трудоёмкости. 13. Особенности анализа рекурсивных алгоритмов. 14. Метод подсчета вершин порожденного дерева рекурсии. 15. Способы повышения временной эффективности рекурсивных алгоритмов. 16. Этапы разработки алгоритмов методом декомпозиции. 17. Основная теорема о рекуррентных соотношениях. 18. Оценка вычислительной сложности рекурсивных алгоритмов. 19. Метод динамического программирования — основная идея. 20. Уравнение Беллмана для задачи одномерной упаковки. 21. Основные этапы табличного алгоритма решения задачи упаковки. 22. Структура дерева рекурсии, порожденного алгоритмом решения задачи упаковки. 23. Оценка сложности рекурсивного алгоритма решения задачи упаковки. 24. Понятие о комбинированных алгоритмах. 25. Принцип построения комбинированного алгоритма сортировки. 26. Идея волнового комбинированного алгоритма упаковки. 27.Комплексное решение задачи рационального выбора алгоритма. 28. Основные сложностные классы задач. 29. Теорема Кука и полиномиальная сводимость задач. 30. NP-полные задачи и особенности решающих их алгоритмов. 10 Учебно-методическое и информационное обеспечение дисциплины10.1 Базовый учебник — отсутствует10.2 Основная литература:
10.3 Дополнительная литература и источники
10.4 Справочники, словари, энциклопедии
10.5 Программные средстваПрактические занятия проводятся в компьютерном классе с выходом в Интернет и доступом к ресурсам электронной библиотеки НИУ ВШЭ. Каждый студент должен иметь рабочее место. Необходимое программное обеспечение:
10.6 Дистанционная поддержка дисциплиныДистанционная поддержка дисциплины обеспечивается использованием LMS. В разделе дисциплины «Методы разработки и анализа алгоритмов» размещаются материалы лекций и практических занятий, тесты для самоподготовки, проекты, оценки текущего и итогового контроля. 11 Материально-техническое обеспечение дисциплиныПроектор для лекций и семинаров, классы для семинаров с компьютерами, на которых установлена инструментальная среда Microsoft Visual Studio 2010. Авторы программы М.В. Ульянов Р.З. Ахметсафина |
|