Document 487841

advertisement
1. ЦЕЛИ ОСВОЕНИЯ ДИСЦИПЛИНЫ
В результате освоения данной дисциплины бакалавр приобретает
знания, умения и навыки, обеспечивающие достижение целей Ц1, Ц2 и
Ц51 основной образовательной программы «Прикладная математика и
информатика».
Основные цели освоения дисциплины:
1. Приобретение базовых знаний в области алгоритмов.
2. Приобретение навыков реализации алгоритмов.
3. Приобретение навыков создания собственных алгоритмов.
4. Приобретение навыков разработки эффективных алгоритмов.
2. МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕ ООП
Дисциплина «Теория алгоритмов» входит в вариативную часть математического и естественнонаучного цикла Б2. Пререквизитом для
данной дисциплины является «Информатика и программирование»,
Кореквизитом – «Языки и методы программирования».
3. РЕЗУЛЬТАТЫ ОСВОЕНИЯ ДИСЦИПЛИНЫ
При изучении дисциплины бакалавры должны:
 овладеть базовыми знаниями в построении алгоритмов;
 научиться быстро реализовывать алгоритмы;
 научиться объединять различные алгоритмы;
 изучить классические алгоритмы.
После изучения данной дисциплины бакалавры приобретают знания, умения и опыт, соответствующие результатам основной образовательной программы: Р1, Р92. Соответствие результатов освоения дисциплины «Теория алгоритмов» формируемым компетенциям представлено в таблице.
Формируемые компетенции в
Результаты освоения дисциплины
Расшифровка кодов результатов обучения представлена в Основной образовательной программе подготовки бакалавров по направлению (специальности) 010400,
Прикладная математика и информатика
2
Расшифровка кодов результатов обучения представлена в Основной образовательной программе подготовки бакалавров по направлению (специальности) 010400,
Прикладная математика и информатика
1
2
соответствии с ООП
ПК1. Способность демонстрации
общенаучных базовых знаний естественных наук, математики и информатики, понимание основных
фактов, концепций, принципов теорий, связанных с прикладной математикой и информатикой
З.1.1 Знать проблемы, связанные с разрешимостью задач,
границы применимости программирования.
ПК3. способность понимать и применять в исследовательской и прикладной деятельности современный
математический аппарат
У.3.1 Уметь оценить вычислительную сложность и эффективность алгоритмов.
ПК7. способность собирать, обрабатывать и интерпретировать данные
современных научных исследований, необходимые для формирования выводов по соответствующим
научным, профессиональным, социальным и этическим проблемам
ПК9. способность решать задачи
производственной и технологической деятельности на профессиональном уровне, включая: разработку алгоритмических и программных
решений в области системного и
прикладного программирования
ОК14. способность использовать в
научной и познавательной деятельности, а также в социальной сфере
профессиональные навыки работы с
информационными и компьютерными технологиями
В.7.1 Опыт в оценке сложности алгоритмов и в оценке разрешимости задач.
З.9.1 Знать основные алгоритмические стратегии и технологию выбора стратегии для решения прикладных задач.
У.9.1 Уметь правильно выбрать стратегию решения прикладной задачи.
В.14.1 Опыт в разработке алгоритмов с использованием
разных алгоритмических стратегий.
3
4. СТРУКТУРА И СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
4.1. Структура дисциплины по разделам, формам организации и
контроля обучения
Аудиторная работа
(час.)
ЛекЛаб. занятия
ции
4
4
№
Название раздела/темы
1
Базовые понятия. Асимптотика
(4 часа)
2
Рекурсия (4 часа)
4
4
8
3
Принцип разделяй-и-властвуй
(3 часа)
3
3
6
4
Графы (4 часов)
4
4
8
5
Структуры данных (4 часа)
4
4
8
6
Строковые алгоритмы (6 часов)
6
6
12
7
Динамическое программирование (2 часа)
2
2
4
27
27
54
Итого
СРС
(час.)
8
Колл,
контр. раб.
Итого
Отчеты по лаб.
работам.
Защита работы
Отчеты по лаб.
работам.
Защита работы
Отчеты по лаб.
работам.
Защита работы
16
Отчеты по лаб.
работам.
Защита работы
Отчеты по лаб.
работам.
Защита работы
16
Отчеты по лаб.
работам.
Защита работы
Отчеты по лаб.
работам.
Защита работы
–
24
16
12
16
8
108
После сдачи отчета по выполненной лабораторной работе, проводится защита.
4.2. Содержание разделов дисциплины
4.2.1. Содержание лекций (27 часов)
Тема 1. Базовые понятия. Асимптотика (4 часа)
1.
2.
3.
4.
5.
Асимптотика.
Алгоритм Евклида.
Решето Эратосфена.
Бинарное возведение в степень.
Сортировка подсчетом.
4
Тема 2. Рекурсия (4 часа)
1.
2.
3.
4.
Рекурсия.
Сортировка слиянием.
Бинарный поиск.
Длинная арифметика.
Тема 3. Принцип разделяй-и-властвуй (3 часа)
1. Быстрая сортировка.
2. Кратчайшее расстояние между двумя точками.
3. Выпуклая оболочка.
Тема 4. Графы (4 часов)
1.
2.
3.
4.
Классификация графов.
Обходы в глубину и в ширину.
Алгоритм Флойда.
Алгоритм Дейкстры.
Тема 5. Структуры данных (4 часа)
1.
2.
3.
4.
5.
Терминология.
Двоичное дерево поиска.
Двоичная куча.
Пирамидальная сортировка.
Дерево отрезков.
Тема 6. Строковые алгоритмы (6 часов)
1.
2.
3.
4.
Z-функция и префикс-функция.
Алгоритм Бойера-Мура.
Алгоритм КМП.
Алгоритм Рабина-Карпа.
Тема 7. Динамическое программирование (2 часа)
1. Разбиение числа.
4.2.2. Содержание лабораторных занятий (27 часов)
1.
2.
3.
4.
5.
6.
7.
Алгоритм Евклида, Решето Эратосфена. (2 часа)
Бинарное возведение в степень. (2 часа)
Сортировки. (4 часа)
Обходы графа в глубину и в ширину. (2 часа)
Алгоритм Флойда. Алгоритм Дейкстры. (2 часа)
Бинарный поиск. Длинное сложение. (2 часа)
Дерево отрезков. Перебор с возвратом. (4 часа)
5
8. Динамическое программирование. Выпуклая оболочка. (4 часа)
9. Поиск подстроки в строке. (5 часов)
4.3. Распределение компетенций по разделам дисциплины
Распределение по разделам дисциплины планируемых результатов обучения по базовой образовательной программе, формируемых в
рамках данной дисциплины:
№
1
2
3
4
5
6
Формируемые
компетенции
З.1.1
У.3.1
В.7.1
З.9.1
У.9.1
В.14.3
1
Разделы (темы) дисциплины
2
3
4
5
x
x
x
x
x
x
7
x
x
x
x
x
x
6
x
x
x
5. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ
При освоении дисциплины используются следующие сочетания
видов учебной работы с методами и формами активизации познавательной деятельности бакалавров для достижения запланированных результатов обучения и формирования компетенций.
Виды учебной деятельности
Методы и формы активизации
деятельности
Дискуссия
IT-методы
Работа в команде
Опережающая самостоятельная
работа
Индивидуальное обучение
Проблемное обучение
Поисковый метод
Разбор кейсов
Обучение на основе опыта
ЛК
x
ЛБ
СРС
x
x
x
x
x
x
x
x
x
x
x
x
Для достижения поставленных целей преподавания дисциплины
реализуются следующие средства, способы и организационные мероприятия:
 изучение теоретического материала на лекциях;
6
самостоятельное изучение теоретического материала дисциплины с использованием Internet-ресурсов, информационных баз, методических разработок, специальной учебной литературы;
 закрепление теоретического материала при проведении лабораторных работ;
 закрепление теоретического материала в курсовой работе по
языкам и методам программирования;
 подготовка к рубежному и итоговому контролю.

6. ОРГАНИЗАЦИЯ И УЧЕБНО-МЕТОДИЧЕСКОЕ
ОБЕСПЕЧЕНИЕ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ
6.1. Текущая и опережающая СРС
Текущая и опережающая самостоятельная работа (СРС) студентов направлена на углубление и закрепление знаний, а также практических умений. К ней относятся:
 изучение тем, вынесенных на самостоятельную проработку;
 работа бакалавров с лекционным материалом;
 поиск и анализ литературы и электронных источников информации по вопросам и проблемам, поставленным на лекционных занятиях;
 изучение методических указаний к лабораторным работам;
 подготовка к защите выполненных лабораторных работ;
 подготовка к зачету.
6.1.1. Перечень
проработку
тем,
выносимых
на
самостоятельную
Тема. Поиск подстроки в строке.
6.2. Творческая проблемно-ориентированная
самостоятельная работа
Творческая проблемно-ориентированная самостоятельная работа
ориентирована на развитие интеллектуальных умений, комплекса универсальных (общекультурных) и профессиональных компетенций, повышение творческого потенциала студентов и заключается:
 в поиске, анализе и структурировании информации, необходимой для выполнения заданий (вопросов), сформулированных на лекциях;
 в анализе теоретического материала по теме, определенной преподавателем;
7
в подборке и освоении материала, связанного с эффективными
алгоритмами;
 в участии в олимпиадах по программированию;
 в подготовке к защите лабораторных работ.

6.3. Контроль самостоятельной работы
Оценка результатов самостоятельной работы организуется как
единство двух форм: самоконтроль и контроль со стороны преподавателей. Оценка успеваемости бакалавров осуществляется по результатам:
 самостоятельного (под контролем преподавателя) выполнения
лабораторных работ;
 устного опроса при защите отчетов по лабораторной работе.
6.4. Учебно-методическое обеспечение
самостоятельной работы студентов
Образовательные ресурсы, рекомендуемые для использования при
самостоятельной работе студентов:
1. http://e-maxx.ru/, вход свободный.
2. http://algolist.manual.ru/, вход свободный.
3. http://coding.tomsk.ru/, вход свободный.
7. СРЕДСТВА ТЕКУЩЕЙ И ИТОГОВОЙ ОЦЕНКИ КАЧЕСТВА
ОСВОЕНИЯ ДИСЦИПЛИНЫ (ФОНД ОЦЕНОЧНЫХ СРЕДСТВ)
Оценка качества освоения дисциплины, а также оценка успеваемости бакалавров осуществляется по результатам:
 самостоятельного (под контролем преподавателя) выполнения
лабораторных работ;
 ответов на вопросы рубежного, итогового контролей;
 устного опроса при защите отчетов по лабораторным работам и
во время «зачета».
7.1. Банк данных теоретических вопросов
7.1.1. Примерный перечень вопросов для входного контроля
1.
2.
3.
4.
5.
Типы данных в С++.
Одномерные и многомерные массивы.
Статические и динамические массивы.
Условный оператор и тернарный оператор.
Циклы for и while: break, continue. Вложенный цикл.
8
6. В чем отличие break, continue, return?
7. Функции: return.
8. Тип void.
9. Передача параметров в функцию.
10.Возвращение функцией результата.
11.Локальные и глобальные переменные.
12.Операции чтения/записи с консолью и текстовыми файлами.
13.Чтение/запись массива целых чисел из консоли.
14.Компиляция.
15.Хранение переменных в памяти. Битовое представление переменных. Хранение в памяти вещественных чисел, отрицательных чисел,
символов, строк, одномерных и многомерных массивов, структур.
16.Переполнение типов.
17.Явное и неявное преобразование типов.
18.Таблица ASCII.
19.Рекурсия: явная и неявная.
20.Указатели.
21.Структуры.
7.1.2. Примерный перечень вопросов для контроля текущей
успеваемости
1. Что Вы можете сказать про асимптотику алгоритма?
2. Расскажите об алгоритме Евклида. Какова у него асимптотика?
3. Как работает решето Эратосфена? Какова его асимптотика? Как
хранятся простые числа в массиве?
4. Что такое рекурсия?
5. Какие Вы знаете алгоритмы сортировок? Расскажите об их преимуществах и недостатках: время работы, используемая память, устойчивость.
6. Как работает дихотомия? Какова ее асимптотика? В чем заключается необходимое условие выполнения алгоритма?
7. Что такое компиляция?
8. Какую структуру данных использует пирамидальная сортировка?
9. Что такое граф? Классификация графов.
10.Обход в глубину. Асимптотика.
11.Обход в ширину. Асимптотика.
12.Алгоритм Флойда. Асимптотика.
13.Алгоритм Дейкстры. Асимптотика.
9
14.Какие изменения необходимо сделать в алгоритме СПЕЦИАЛЬНЫЕ МАТРИЦЫ, чтобы не учитывать последовательности, которые начинаются с определенных чисел?
15.Какие изменения необходимо сделать в алгоритме СПЕЦИАЛЬНЫЕ МАТРИЦЫ, чтобы не учитывать последовательности, которые заканчиваются определенными числами?
16.Свойства остатка от деления.
17.Бинарное возведение в степень.
18.Как привести рациональную дробь к несократимому виду?
19.Что такое СТЕК, ОЧЕРЕДЬ, ДЕК?
20.Что такое СТРУКТУРЫ ДАННЫХ? Какие Вы знаете структуры
данных? И в чем их особенности? Дерево, корень, листья.
21.Дерево отрезков. Асимптотика.
22.Двоичная куча. Асимптотика.
7.1.2. Примерный
аттестации студентов
перечень
вопросов
для
проведения
1. Определение понятия «алгоритм». Примеры алгоритмов.
2. Определение понятия «алгоритмическая система». Примеры алгоритмических систем.
3. Определение понятия «структура данных». Примеры структур
данных.
4. Основные типы и сложность алгоритмов. Использование алгоритмов для решения задач.
5. Два способа реализации алгоритмов в виде программы: структурный и программный. Примеры.
6. Динамическое программирование.
7. Выпуклая оболочка.
8. Перебор.
9. Жадность.
10.Длинная арифметика.
11.Ориентированная площадь треугольника.
12.Строковые алгоритмы.
13.Принцип разделяй-и-властвуй.
8. РЕЙТИНГ КАЧЕСТВА ОСВОЕНИЯ ДИСЦИПЛИНЫ
В соответствии с рейтинговой системой текущий контроль производится раз в два месяца в течение семестра путем балльной оценки качества усвоения теоретического материала (ответы на вопросы) и ре10
зультатов практической деятельности (решение задач, выполнение заданий, решение проблем).
Промежуточная аттестация (зачет) производится в конце семестра
также путем балльной оценки. Итоговый рейтинг определяется суммированием баллов текущей оценки в течение семестра (60 баллов максимум) и баллов промежуточной аттестации в конце семестра по результатам зачета (40 баллов максимум). Максимальный итоговый рейтинг
соответствует 100 баллам (текущая оценка в семестре + промежуточная
аттестация в конце семестра = 60 + 40).
9. УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ
ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
9.1. Основная литература
1. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Л., Штайн К. Алгоритмы: построение и анализ. – М.: «Вильямс», 2013. – 1324 с.
2. Кнут Д. Искусство программирования. Том 1-4. –
М.: «Вильямс», 2006-2013. – 720-960 с.
3. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. – М.: «Книга по Требованию», 2012. – 542 с.
4. Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы. – М.: «Вильямс», 2010. – 400 с.
9.2. Дополнительная литература
5. Сэджвик Р. Фундаментальные алгоритмы на C++. Часть 1-5. –
М.: «ДиаСофт», 2002. – 688 с.
6. Скиена С., Ревилла М. Олимпиадные задачи по программированию. – М.: «КУДИЦ-Образ», 2005. – 416 с.
7. Гасфилд Д. Строки, деревья и последовательности в алгоритмах. – СПб.: «Невский Диалект», 2003. – 656 с.
8. Макконнелл Дж. Основы современных алгоритмов. –
М.: «Техносфера», 2006. – 368 с.
9.3. Программное обеспечение
9. Программный продукт Microsoft Visual Studio 2010.
10.Операционная система Microsoft Windows 7.
10. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ
ДИСЦИПЛИНЫ
Для преподавания дисциплины кафедрой ПМ предоставляется 4
компьютерных класса (ауд. 102 – 105 корпуса Института Кибернетики).
11
В каждом классе установлено не менее 8 ПК типа Intel 2,8 GHz, ОЗУ
0,5…1 Гб, или Intel Intel Core 2,67 GHz, 4 Гб, мониторы LCD 21" или
17" LG, cетевые коммутаторы, объединенных в локальную сеть с автоматическим выходом в корпоративную сеть ТПУ и глобальную сеть
Интернет. Все ПК оснащены лицензионным ПО Microsoft Windows 7 и
Microsoft Visual Studio 2010.
Программа составлена на основе Стандарта ООП ТПУ в соответствии с требованиями ФГОС по направлению и профилю подготовки
010400 «Прикладная математика и информатика».
Программа одобрена на заседании кафедры ПМ ИК
(протокол № 176 от « 29 » сентября 2011 г.).
Автор: ассистент Звигинцев И.Л.
12
Download