УТВЕРЖДАЮ Зам. директора Института кибернетики по учебной работе

advertisement
УТВЕРЖДАЮ
Зам. директора Института кибернетики
по учебной работе
________________ С.А. Гайворонский
«___»_____________2015 г.
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
Алгоритмы и структуры данных
НАПРАВЛЕНИЕ ООП 09.03.04 Программная инженерия
ПРОФИЛИ ПОДГОТОВКИ Разработка программно-информационных систем
КВАЛИФИКАЦИЯ (СТЕПЕНЬ)
БАЗОВЫЙ УЧЕБНЫЙ ПЛАН ПРИЕМА
КУРС 3
СЕМЕСТР
КОЛИЧЕСТВО КРЕДИТОВ
бакалавр
2014 г.
5
6 кредитов ECTS
ВИДЫ УЧЕБНОЙ ДЕЯТЕЛЬНОСТИ И ВРЕМЕННОЙ РЕСУРС:
Лекции
32 час.
Лабораторные занятия
32 час.
Курсовая работа
АУДИТОРНЫЕ ЗАНЯТИЯ
64час.
САМОСТОЯТЕЛЬНАЯ РАБОТА
152 час.
ИТОГО
216 час.
ВИД ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ
ОБЕСПЕЧИВАЮЩЕЕ ПОДРАЗДЕЛЕНИЕ
экзамен, диф.зачет
кафедра ОСУ
ЗАВЕДУЮЩИЙ КАФЕДРОЙ ОСУ
____________ Иванов М.А.
РУКОВОДИТЕЛЬ ООП
___________
ПРЕПОДАВАТЕЛЬ
____________ Фофанов О.Б.
Чердынцев Е.С.
2015 г.
1. ЦЕЛИ ОСВОЕНИЯ ДИСЦИПЛИНЫ
Целями преподавания дисциплины являются:
 изучение основных абстрактных типов данных (АТД) (примитивные типы, массивы, комбинированные типы, списки, стеки,
очереди, деки, деревья, графы, хэш-таблицы) и статическая и динамическая реализации АТД
 изучение способов описания алгоритмов и методов исследования и оценки их пространственной и временной сложности;
 изучение наиболее широко использующихся в практике алгоритмов поиска, сортировки и модификации данных.
Поставленные цели полностью соответствуют целям (Ц1-Ц5) ООП.
К
Формулировка цели
од
ц
Требования ФГОС, критерии
АИОР
и
заинтересованных
работодателей.
ели
1
2
3
Ц
Подготовка
выпускников
к
проектно-конструкторской деятельности в
области создания и внедрения аппаратных
и
программных
средств
объектов
профессиональной
деятельности
в
соответствии с техническим заданием и с
использованием средств автоматизации
проектирования.
Ц
Подготовка
выпускников
к
проектно-технологической деятельности в
области
создания
компонентов
программных комплексов и баз данных,
автоматизации технологических процессов
с
использованием
современных
инструментальных средств и технологий
программирования.
Ц
Подготовка
выпускников
к
комплексным инженерным исследованиям
для решения задач, связанных с
разработкой аппаратных и программных
средств
объектов
профессиональной
деятельности.
Требования ФГОС.
Критерии
АИОР,
соответствующие международным
стандартам EUR-ACE и FEANI.
Требования ФГОС.
Критерии
АИОР,
соответствующие международным
стандартам EUR-ACE и FEANI.
Требования ФГОС.
Критерии
АИОР,
соответствующие международным
стандартам EUR-ACE и FEANI.
4
5
Ц
Подготовка
специалистов
к
монтажно-наладочной
и
сервисноэксплуатационной деятельности для ввода
разработанных
объектов
профессиональной
деятельности
в
опытную и промышленную эксплуатацию
с выполнением требований защиты
окружающей среды и правил безопасности
производства.
Ц
Подготовка
выпускников
к
самообучению
и
непрерывному
профессиональному
самосовершенствованию.
Требования ФГОС.
Критерии
АИОР,
соответствующие международным
стандартам EUR-ACE и FEANI.
Запросы отечественных и
зарубежных работодателей.
Требования ФГОС.
Критерии
АИОР,
соответствующие международным
стандартам EUR-ACE и FEANI.
Запросы отечественных и
зарубежных работодателей.
2. МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕ ООП
Дисциплина «Алгоритмы и структуры данных» (Б1.ВМ4.11) является базовой дисциплиной вариативной части междисциплинарного
профессионального модуля (Б1.ВМ4).
Для её успешного усвоения необходимы:
знания базовых понятий информатики и вычислительной техники, хотя бы одного языка программирования, представления и
преобразования информации в компьютере;
умения
программировать на языке ООП
владение навыками работы на персональном компьютере.
Пререквизитами данной дисциплины являются дисциплина «Информатика» Б1.БМ2.4,
«Линейная алгебра и аналитическая
геометрия» (Б1.БМ2.1), «Введение в информационные технологии» (Б1.ВМ4.5), «Информатика и программирование» (Б1.ВМ4.7).
3. РЕЗУЛЬТАТЫ ОСВОЕНИЯ ДИСЦИПЛИНЫ
В соответствии с требованиями ООП освоение дисциплины «Алгоритмы и структуры данных» направлено на формирование у студентов
следующих компетенций (результатов обучения), в т. ч. в соответствии с ФГОС:
- Таблица 1. Составляющие результатов обучения, которые будут получены при изучении дисциплины «Алгоритмы и структуры
данных»
Результа
т
обучения
Код
Знания
Код
З.2.2.1
Основные понятия и
терминологию в
области
вычислительной
техники;
способы
представление
информации в
памяти компьютера;
альтернативные
способы описания
алгоритмов;
методы
исследования
эффективности
алгоритмов:
Алгоритмы
сортировки
информации;
базовые типы
данных и операции
с ними;
основные
абстрактные типы
данных (АТД) и
способы их
реализации
У.2.2.1
Формализовать
вычислительные и
логические задачи;
представлять
алгоритмы
вычислительных и
логических задач;
записывать
алгоритмы решения
задач на псевдокоде
В.2.2.1
У.5.1
Анализировать
исходные данные и
выбирать наиболее
подходящий АТД и
их реализации.
Осуществлять анализ
и выбор
соответствующих
алгоритмов
сортировки
В.5.1
Р2
З.5.1
Р5
Умения
Код
Владения
Методами
алгоритмизации,
различными
способами
описания
алгоритмов,
кодирования на
псевдокоде;
методами
исследования
эффективности
алгоритмов
различными
способами
Методами отладки
и
тестирования
программных
приложений
и
экспериментальног
о
исследования
временной
и
пространственной
сложности
исследуемых
алгоритмов
сортировки
Результа
т
обучения
Код
Знания
Код
З.5.2
Поисковые
алгоритмы и области
их использования;
способы
представления
информации в виде
деревьев;
принципы
хеширования данных
и методов
определения хешфункций.
У.5.2
Умения
Анализировать
специфику задач
информационного
поиска и выбирать
наиболее
эффективные
алгоритмы,
руководствуясь
критериями
временной и
пространственной
сложности
Код
Владения
В.5.2
Методами отладки
и тестирования
программных
приложений и
экспериментальног
о исследования
временной и
пространственной
сложности
исследуемых
алгоритмов
информационного
поиска
В результате освоения дисциплины «Алгоритмы и структуры данных» студентом должны быть достигнуты следующие результаты:
Таблица 2. Планируемые результаты освоения дисциплины (модуля)
Код
результ
атов
РД1
РД2
Результат обучения
(выпускник должен быть готов)
Применяет базовые и специальные знания в области современных
информационных технологий для решения инженерных и экономических задач.
Проводит теоретические и экспериментальные исследования, включающие поиск
и изучение необходимой научно-технической информации, проведение
РД3
РД4
вычислительных экспериментов, анализ и интерпретация полученных данных, в
области прикладной информатики. Проводить исследования, связанные с
оценкой информационной безопасности проектов.
Знает основы теории информации; принципы алгоритмизации; базовые АТД и
соответствующие структуры данных; возможности языков программирования
высокого уровня в части представления АТД и структур данных
Умеет содержательно и математически осуществлять постановку задач
проектирования АТД и структур данных , их алгоритмизацию; владеет навыками
написания и отладки программных приложений на языках высокого уровня
4. СТРУКТУРА И СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
4.1 Аннотированное содержание разделов дисциплины:
1. Основные понятия алгоритмов структур данных
Концепция типа данных. Простейшие типы данных. Простейшие стандартные типы данных. Ограниченные типы (диапазоны). Массивы.
Записи. Записи с вариантами. Множества. Представление массивов, записей и множеств. Определение и свойства алгоритма, способы
описания алгоритмов. Анализ сложности и эффективности алгоритмов. Оценка временной и пространственной сложности алгоритмов на
основе асимптотических соотношений (О, -Θ и -Ω нотаций).
2. Данные с динамической структурой
Линейные списки: основные операции, упорядоченные списки и перестройка списков. Стеки, очереди, деки, нелинейные структуры
данных, иерархические списки, мультисписки. Реализация перечисленных структур данных. Стандартные классы в ООП, поддерживающие
динамические структуры
3. Алгоритмы поиска
Задачи поиска и кодирования (сжатия) данных. Кодовые деревья, оптимальные префиксные коды, исчерпывающий поиск. Линейный
поиск. Поиск делением пополам (двоичный поиск). Поиск в таблице. Прямой поиск строки. Поиск в строке (алгоритмы Кнута, Мориса и
Прата, Боуэра-Мура, Рабина-Карпа).
4. Алгоритмы сортировки
Сортировка массивов: прямым включением, прямым выбором и прямым обменом. Улучшенные методы сортировки: включениями с
уменьшающимися расстояниями, с помощью дерева, разделением. Нахождение медианы. Сравнение методов сортировки массивов. Файлы:
организация и обработка. Сортировка файлов: прямое слияние, естественное слияние, сбалансированное многопутевое слияние,
многофазная сортировка, распределение начальных серий.
5. Деревья
Определение деревьев, рекурсивная природа деревьев Бинарные деревья. Представление деревьев в памяти с помощью статических и
динамических структур. Обходы деревьев. Т-деревья и алгоритмы их обработки. Деревья оптимального поиска. Сбалансированные по
высоте (АВЛ) и рандомизированные деревья поиска и алгоритмы работы с ними. Восстановление сбалансированности, левое и правое
вращение. 2-3 деревья, черно-красные деревья. Сильноветвящиеся (B-) деревья. Поиск информации, удаление и вставка узлов в
сильноветвящихся деревьях.
6. Быстрый доступ к данным
Хеширование данных. Способы вычисления хеш-функций. Разрешение коллизий. Линейное, квадратичное опробование. Метод
цепочек, двойное хеширование. Оценка качества хеш-функций. Инвертированные индексы. Битовые карты
4.2 Структура дисциплины по разделам и формам организации обучения приведена в таблице 3.
Таблица 3
Структура дисциплины
по разделам и формам организации обучения
Название раздела/темы
1. Основные понятия
алгоритмов и структур
данных
2 Данные с динамической
структурой
3. Алгоритмы поиска
Аудиторная работа (час)
Лекции Практ./сем.
Лаб. зан.
занятия
4
6
4
4. Алгоритмы сортировки
6
5. Деревья
8
6. Быстрый доступ к
данным
7. Курсовая работа
4
Итого
32
-
СРС
(час)
4
8
6
12
4
8
6
12
Контр.Р.
8
16
Контр.Р.
4
8
88
-
Колл,
Контр.Р.
32
152
Ито
го
16
24
16
24
32
16
88
216
5. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ
В таблице 2 приведено описание образовательных технологий, используемых в данном модуле.
Таблица 4
Методы и формы организации обучения (ФОО)
ФОО
Лекц.
Методы
IT-методы
Работа в команде
Case-study
Игра
Методы проблемного
обучения.
Обучение
на основе опыта
Опережающая
самостоятельная работа
Проектный метод
Поисковый метод
Исследовательский метод
Другие методы
√
Лаб. раб.
Тр*.,
Мк**
СРС
√
√
√
√
К. пр.
√
√
√
√
√
*-Тренинг, **-Мастер-класс
6. ОРГАНИЗАЦИЯ И УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ
6.1 Самостоятельная работа студентов (СРС) состоит из текущей СРС.
Текущая СРС – работа с лекционным материалом, подготовка к лабораторным работам, практическим занятиям с использованием
сетевых образовательных ресурсов; опережающая самостоятельная работа; выполнение домашних заданий; изучение тем, вынесенных на
самостоятельную проработку; подготовка к контрольным работам и экзамену.
Творческая проблемно-ориентированная самостоятельная работа
(ТСР) – поиск, анализ, структурирование информации по темам индивидуальных курсовых заданий.
6.2 Контроль самостоятельной работы
Оценка результатов самостоятельной работы организуется как единство двух форм: самоконтроль и контроль со стороны
преподавателя.
Самоконтроль в обучающей программе, контроль знаний, полученных с помощью обучающей программы (20 контролирующих
тестов).
Рубежный контроль в виде тестов по теоретической части.
По результатам текущего и рубежного контроля формируется допуск студента к экзамену. Экзамен проводится в письменной или
устной форме.
6.3. Учебно-методическое обеспечение самостоятельной работы студентов
Для самостоятельной работы студентов используются сетевые образовательные ресурсы, пособия и учебники в электронной форме.
7. СРЕДСТВА (ФОС) ТЕКУЩЕЙ И ИТОГОВОЙ ОЦЕНКИ КАЧЕСТВА ОСВОЕНИЯ ДИСЦИПЛИНЫ
Для организации текущего контроля полученных студентами знаний по данной дисциплине проводится 2 тестирования. Образец
контролирующего теста приведен ниже (ПРИЛОЖЕНИЕ 1) . Для проведения экзамена предлагаются 34 вопроса. Экзаменационный билет
содержит 4 пункта.
8. УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
Основная литература
1. Вирт, Никлаус Алгоритмы и структуры данных. Новая версия для Оберона : пер. с англ. / Н. Вирт. — 2-е изд., испр.. — Москва: ДМК
Пресс, 2012. — 272 с.: ил. + CD-ROM. — Классика программирования. — Библиография в конце глав. — Предметный указатель: с.
270-272.. — ISBN 978-5-94074-734-5.
2. Вирт, Никлаус Алгоритмы и структуры данных. Новая версия для Оберона + CD / Никлаус Вирт; пер.с англ. под ред. Ф.В. Ткачева.
— Москва: ДМК Пресс, 2010. — 272 с.: ил.. — Классика программирования. — . — Предм. указ.: с.270-272.. — ISBN 978-5-94074http://e.lanbook.com/books/element.php?pl1_cid=25&pl1_id=1261
3. Алексеев, Владимир Евгеньевич Графы и алгоритмы. Структуры данных. Модели вычислений : учебник / В. Е. Алексеев, В. А.
Таланов. — Москва: БИНОМ. Лаборатория знаний ИНТУИТ, 2012. — 319 с.: ил.. — Основы информационных технологий. —
Библиогр.: с. 318-319.. — ISBN 978-5-94774-543-6. — ISBN 978-5-9556-0066-6.
4. Ахо, Альфред В.Структуры данных и алгоритмы : пер. с англ. / А. В. Ахо, Д. Э. Хопкрофт, Д. Д. Ульман. — Москва: Вильямс, 2010.
— 392 с.: ил.. — Библиогр.: с. 377-382. — Предметный указатель: с. 383-391.. — ISBN 978-5-8459-16105. Кнут, Дональд Э.Искусство программирования : учебное пособие : пер. с англ. / Д. Э. Кнут. — 3-е изд., испр. и доп.. — Москва:
Вильямс, 2012. — Классический труд .В 3 томах
Дополнительная литература
1. Лафоре, Роберт Структуры данных и алгоритмы Java : пер. с англ. / Р. Лафоре. — 2-е изд.. —СПб.: Питер, 2011. — 702 с.: ил.. —
Классика Computer Science. —Алфавитный указатель: с. 695-701.. — ISBN 978-5-459-00292-8.
2. Цапко, Ирина Валериевна Структуры и алгоритмы обработки данных [Электронный ресурс] : учебное пособие / И. В. Цапко;
Томский политехнический университет (ТПУ). — 1 компьютерный файл (pdf; 1749 KB). — Томск: Изд-во ТПУ, 2007. — Учебники
Томского политехнического университета. — Заглавие с титульного экрана. — Электронная версия печатной публикации. — Доступ
из корпоративной сети ТПУ. — Системные требования: Adobe Reader..
http://www.lib.tpu.ru/fulltext2/m/2009/m31.pdf
Программное обеспечение и Internet-ресурсы:
1. Электронные курсы лекций
http://www.intuit.ru/department/algorithms/staldata/
http://www.mstu.edu.ru/study/materials/zelenkov/ch_1_1.html
2. Среда разработки Java SE 6 Update 23
3. Визуальные IDE Java IntelliJ IDEA , Eclipse
4. Web-ресурсы
a. http://www.informatics.susx.ac.uk/courses/dats/notes/html/index.html
b. http://rain.ifmo.ru/cat/view.php/vis
c. http://informatics.mccme.ru/moodle/
9. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
Лабораторные работы выполняются в компьютерном классе, оснащенном 10-ю компьютерами на базе процессоров Intel Core 4 Duo.
Программа составлена на основе Стандарта ООП ТПУ в соответствии с требованиями ФГОС по направлению 231000 «Программная
инженерия» и профилю подготовки «Разработка программно-информационных систем».
Программа одобрена на заседании кафедры оптимизации систем управления
(протокол № от 2015 г.).
Автор
Фофанов О.Б.
Рецензент
Марухина О.В.
ПРИЛОЖЕНИЕ 1
Томский политехнический университет
Кафедра оптимизации систем управления
Направление 23100 – «Программная инженерия»;
Дисциплина Алгоритмы и структуры данных
ТЕСТ№1
по теме «Сортировка»
ВАРИАНТ1
Фамилия студента____________________________________
Группа _______________
Даны три условия окончания просеивания при сортировке прямым включением. Найдите среди них лишнее.
1.
найден элемент a(i) с ключом, меньшим чем ключ у x;
2.
найден элемент a(i) с ключом, большим чем ключ у x (верный);
3.
достигнут левый конец готовой последовательности.
Какой из критериев эффективности сортировки определяется формулой M=0,01*n*n+10*n ?
1.
число сравнений (верный);
2.
время, затраченное на написание программы;
3.
количество перемещений;
4.
время, затраченное на сортировку.
Томский политехнический университет
Кафедра оптимизации систем управления
Направление 23100 – «Программная инженерия»;
Дисциплина Алгоритмы и структуры данных
ТЕСТ № 2
по теме «Деревья»
ВАРИАНТ2
Фамилия студента____________________________________
Группа _______________
При обходе дерева
слева направо получаем последовательность…
1.
отсортированную по убыванию;
2.
неотсортированную (верный);
3.
отсортированную по возрастанию.
При обходе дерева слева направо его элемент заносится в массив…
1.
при втором заходе в элемент (верный);
2.
при первом заходе в элемент;
3.
при третьем заходе в элемент.
Download