Примерная программа наименование дисциплины Структуры и алгоритмы компьютерной обработки данных Рекомендуется для направления подготовки
Вид материала | Примерная программа |
- Рабочая программа дисциплины Структуры и алгоритмы компьютерной обработки данных (Наименование, 153.24kb.
- Программа дисциплины структуры и алгоритмы компьютерной обработки данных для специальности, 506.16kb.
- Рабочая программа дисциплины Структуры и алгоритмы обработки данных (Наименование дисциплины), 185.25kb.
- Рабочая программа дисциплины Структуры и алгоритмы обработки данных (Наименование дисциплины), 183.25kb.
- Примерная программа Аннотация Наименование дисциплины: Технология обработки текстовой, 53.97kb.
- Примерная программа наименование дисциплины общее земледелие рекомендуется для направления, 130.8kb.
- Рабочей программы дисциплины Структуры и алгоритмы обработки данных по направлению, 21.62kb.
- Примерная программа наименование дисциплины Региональная экономика Рекомендуется для, 233.19kb.
- Примерная программа наименование дисциплины землеустройство рекомендуется для направления, 171.22kb.
- Примерная программа наименование дисциплины Алгебра и теория чисел Рекомендуется для, 486.84kb.
ПРИМЕРНАЯ ПРОГРАММА
Наименование дисциплины
Структуры и алгоритмы компьютерной обработки данных
Рекомендуется для направления подготовки
010500 Математическое обеспечение и администрирование информационных систем
Квалификация выпускника: бакалавр
1. Цели и задачи дисциплины: изучение структур данных и алгоритмов их обработки, знакомство с фундаментальными принципами построения эффективных и надежных программ. Курс ориентирован на становление математика-программиста, должен способствовать повышению культуры мышления. Курс предназначен для овладения компьютерными методами обработки информации путем развития профессиональных навыков разработки, выбора и преобразования алгоритмов, что является важной составляющей эффективной реализации программного продукта.
2. Место дисциплины в структуре ООП:
Дисциплина относится к профессиональному циклу (Б.3).
Компетенции: ПК-2, ПК-3, ПК-7, ПК-8, ПК-9, ПК-10, ПК-11, ПК-36.
Студент должен знать:
- основные этапы компьютерного решения задач;
- понятие алгоритма и структуры управления; традиционные структуры данных;
- основные требования методологии структурного программирования, как технологической основы разработки качественных программных компонентов;
- понятие статических и динамических данных;
- примеры базовых структур данных;
- идеи, лежащие в основе процедурного программирования, реализацию вызова процедур в языках с блочной структурой, рекурсию;
- идеи, лежащие в основе процедурного, модульного, объектно-ориентированного программирования;
- математический аппарат, необходимый для оценивания времени выполнения алгоритма.
Студент должен уметь:
- применять требования методологии структурного программирования при проектировании информационных моделей;
- разрабатывать и записывать на языке высокого уровня алгоритмы решения классических задач программирования;
- реализовывать технологию проектирования сверху-вниз;
- выбирать оптимальную структуру для представления данных.
Студент должен владеть:
- навыками практического программирования конкретных задач в определенной языковой среде;
- применять средства структурного, модульного и объектно-ориентированного программирования для решения задач.
Данная дисциплина является предшествующей для следующих дисциплин:
- базы данных и СУБД;
- компьютерное моделирование;
- компьютерная графика;
- теория вычислительных процессов и структур;
- технология разработки программного обеспечения;
- исследование операций;
- основы построения отказоустойчивых систем;
- модели и методы принятия решений.
3. Требования к результатам освоения дисциплины:
Процесс изучения дисциплины направлен на формирование и расширение следующих компетенций:
ПК-2, ПК-3, ПК-7, ПК-8, ПК-9, ПК-10, ПК-11, ПК-36.
В результате изучения дисциплины студент должен:
Знать:
- методы построения и использования сложных структур данных, нетрадиционные представления данных;
- различные аспекты обработки этих структур данных;
- иметь понятие о сложности алгоритмов и методах анализа сложности и эффективности;
- способы представления стеков, очередей, деревьев в памяти ЭВМ;
- методы сортировки (внутренней и внешней);
- представления графов и алгоритмы на графах;
- иметь представление о NP-сложных задачах;
- основные задачи поиска и методы их решения:
- различные методы разработки алгоритмов.
Уметь:
- при решении конкретной задачи грамотно формулировать задачу программирования;
- применять методы построения новых типов при проектировании информационных моделей;
- выбирать оптимальную для данной информационной модели структуру данных;
- для написания программы уметь выбирать в случае необходимости одно из известных решений;
- анализировать трудоемкость метода сортировки данных;
- выбрать оптимальный подход для решения задачи.
Владеть:
- навыками использования сложных нетрадиционных структур данных для решения задач программирования;
- навыками тестирования и верификации реализованной программы;
- навыками использования классических алгоритмов и методов программирования.
- навыками использования систематического и научного подхода к построению программ со сложными данными.
4. Объем дисциплины и виды учебной работы
Общая трудоемкость дисциплины составляет 3,5 зачетных единицы.
Вид учебной работы | Всего часов | Семестры |
4 | ||
Аудиторные занятия (всего) | | |
В том числе: | - | - |
Лекции | 51 | 51 |
Практические занятия (ПЗ) | 17 | 17 |
Семинары (С) | 0 | 0 |
Лабораторные работы (ЛР) | 17 | 17 |
Самостоятельная работа (всего) | | |
В том числе: | - | - |
Курсовой проект (работа) | - | - |
Расчетно-графические работы | - | - |
Реферат | - | - |
Другие виды самостоятельной работы | 45 | 45 |
| | |
Вид промежуточной аттестации (зачет, экзамен) | | Зачет, Экзамен |
Общая трудоемкость час зач. ед. | 130 | 130 |
3,5 | 3,5 |
5. Содержание дисциплины
5.1. Содержание разделов дисциплины
№ п/п | Наименование раздела дисциплины | Содержание раздела |
1. | Алгоритмы поиска. Хеширование | Последовательный поиск, двоичный поиск: анализ наихудшего и среднего случая. Понятие функции расстановки, понятие конфликта (коллизии), методы разрешения конфликтов. Анализ качества хэш-функций. |
2. | Основные абстрактные типы данных: списки, стеки, очереди | Способы физического представления совокупности данных - сплошное и цепочное. Стек: цепочная реализация и представление с помощью массива. Пакет процедур функциональной спецификации. Независимость основного алгоритма от способа реализации. Приложения стеков: анализ постфиксной записи выражений, реализация рекурсивных процедур и функций. Очередь. Сплошное и цепочное представление очереди. Кольцевой буфер. Пакет процедур функциональной спецификации. |
3. | Деревья | Двоичные деревья поиска: понятие, реализация на основе массива, цепочное представление, поиск, добавление и удаление элемента, способы обхода, построение, основные операции с деревом: рекурсивный и нерекурсивный варианты. Дерево-формула, способы записи выражений. Идеально сбалансированные деревья. Алгоритмы поиска с использованием АВЛ-деревьев: определение АВЛ-дерева, включение в сбалансированное дерево, удаление элемента из сбалансированного дерева, обоснование выбора структуры данных для организации поиска. Оптимальные деревья поиска. Сильно ветвящиеся деревья (определение, обоснование использования, алгоритмы включения и удаления, организация поиска): В-деревья, В+ - деревья, Trie – деревья. |
4. | Алгоритмы на графах | Основные понятия теории графов, структуры данных для представления графов, поиск в глубину и в ширину. Алгоритмы поиска минимального остовного дерева: Прима, Краскала. Поиск кратчайшего пути: алгоритм Дейкстры. Алгоритм определения компонентов двусвязности. Алгоритм минимальной раскраски вершин графа. |
5. | Алгоритмы сортировки | Методы сортировок, их классификация. Внутренние сортировки. Сортировки с помощью прямого включения, с двоичным включением, простым выбором, простым обменом (метод пузырька и шейкер-сортировка); Улучшенные методы – Шелла, пирамидальная, быстрая. Нахождение медианы. Эффективность сортировок. Анализ и сравнительный анализ эффективности Внешние сортировки. Сортировки слиянием: простым и естественным. Характеристики сортировок слиянием (однопутевое, многопутевое, однофазное, двухфазное, сбалансированное, несбалансированное). Улучшенные методы: многофазная и каскадная сортировки. Эффективность внешних сортировок. |
6. | Недетерминированные алгориты | NP-сложные и труднорешаемые задачи. Типичные NP-задачи: раскраска графа, раскладка по ящикам, упаковка рюкзака, задача о сумме элементов подмножества. |
7. | Методы разработки алгоритмов | Поиск с возвратом, «разделяй и властвуй», динамическое программирование, жадные приближенные алгоритмы, вероятностные алгоритмы. |
5.2 Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами
№ п/п | Наименование обеспе-чиваемых (последующих) дисциплин | № № разделов данной дисциплины, необходимых для изучения обеспечиваемых (последующих) дисциплин | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
1. | базы данных и СУБД; | + | | + | | + | | |
2. | компьютерное моделирование; | + | + | + | + | + | + | + |
3. | компьютерная графика; | + | + | + | + | + | | + |
4. | теория вычислительных процессов и структур; | + | + | + | + | + | + | + |
5. | технология разработки программного обеспечения; | + | + | + | + | + | + | + |
6. | исследование операций; | + | | + | + | + | + | + |
7. | основы построения отказоустойчивых систем; | + | | + | | | | |
8. | модели и методы принятия решений | + | + | + | + | + | + | + |
5.3. Разделы дисциплин и виды занятий
№ п/п | Наименование раздела дисциплины | Лекц. | Практ. зан. | Лаб. зан. | Семин | СРС | Все-го час. |
1. | Алгоритмы поиска. Хеширование. | 6 | 4 | 6 | | 8 | 24 |
3. | Основные абстрактные типы данных: списки, стеки, очереди | 6 | 4 | 4 | | 4 | 18 |
4. | Деревья | 10 | 6 | 4 | | 8 | 28 |
5. | Алгоритмы на графах | 6 | 4 | 4 | | 5 | 19 |
6. | Алгоритмы сортировки | 8 | 8 | 8 | | 8 | 32 |
7. | Недетерминированные алгоритмы | 4 | 2 | 4 | | 4 | 14 |
8. | Методы разработки алгоритмов | 11 | 6 | 4 | | 8 | 29 |
6. Лабораторный практикум
№ п/п | № раздела дисциплины | Наименование лабораторных работ | Трудо-емкость (час.) |
1. | 1 | Задача на тему «Хеширование» | 4 |
2. | 2 | Задача на тему «Стеки» или «Очереди» | 4 |
3. | 3 | Задача на тему «Бинарные деревья, упорядоченные бинарные деревья» или на тему «Дерево-формула». Задача на тему «Trie-деревья». | 6 |
4. | 4 | Задача на тему «Алгоритмы на графах» | 4 |
5. | 5 | Задача на тему «Внутренние сортировки» | 8 |
6. | 6 | Решение NP-сложной задачи с применением алгоритма с возвратом. | 2 |
7. | 7 | Решение NP-сложной задачи с использованием либо динамического программирования, либо жадного приближенного алгоритма или при помощи вероятностных алгоритмов. | 6 |
7. Практические занятия (семинары)
№ п/п | № раздела дисциплины | Тематика практических занятий (семинаров) | Трудо-емкость (час.) |
1. | 1 | Структуры данных для представления хеш-таблиц с разными способами разрешения коллизий (внутренние цепочки, внешние цепочки, линейно и квадратичное опробование, двойное хеширование). Реализация функций добавления, удаления и поиска данных для различных способов разрешения коллизий. Решение задач с использованием хеширования. | 4 |
2. | 2 | Решение задач на тему «Стеки». Решение задач на тему «Очереди». | 4 |
3. | 3 | Решение задач на темы «Двоичные деревья», «Дерево-формула». Выполнение упражнений на включение, исключение элементов для АВЛ-деревьев, B-деревьев, B+-деревьев. Решение задач на тему «Trie-деревья». | 6 |
4. | 4 | Реализация основных алгоритмов для различных способов представления графов. Проблемы визуализации графов и их решения.. | 4 |
5. | 5 | Структуры данных и реализация методов для визуализации процесса внутренней сортировки. Построение графиков зависимости количества операций сравнения и перемещения от количества элементов в массиве. Другие алгоритмы внешних сортировок: сортировка подсчетом, распределяющий подсчет, двухпутевые вставки, вставки в список с вычислением адреса, обменная поразрядная сортировка, параллельная сортировка Бэтчера. Структуры данных, предназначенные для реализации внешних сортировок. Реализация простых и улучшенных методов внешних сортировок. | 8 |
6. | 6 | Алгоритмы и реализация решений некоторых NP-сложных задач с применением алгоритмов с возвратом. | 2 |
7. | 7 | Применение динамического программирования для решения NP-сложных задач. Решение NP-сложных задач с применением жадных алгоритмов. Решение NP-сложных задач с применением вероятностных алгоритмов. | 6 |
8. Примерная тематика курсовых проектов (работ): нет
9. Учебно-методическое и информационное обеспечение дисциплины:
а) основная литература:
Вирт Н. Алгоритмы и структуры данных. / Н. Вирт ; пер. с англ. Д.Б. Подшиваловой. – 2-е изд., испр. – Спб.: Невский диалект, 2001. – 352 с.
- Ахо А.. Структуры данных и алгоритмы / А.Ахо, В. Хопкрофт, Д. Ульман : пер. с англ. – М.: Вильямс, 2003. – 384 с.
- Кнут Д. Э. Искусство программирования. / Д.Э. Кнут; пер. с англ. и ред. В.Т. Тертышного, И.В. Красикова; под общ. ред. Ю.В. Козаченко. – М.; СПб ; Киев : Вильямс, 2000. – Т. 3 : Сортировка и поиск. – 822 с.
- Программирование алгоритмов обработки данных / О.Ф. Ускова, Н.В. Огаркова, И.Е. Воронина, М.В. Бакланов, В.М. Мельников. – СПб: БХВ - Петербург, 2003. – 192 с.
- Макконнелл Дж. Анализ алгоритмов. Вводный курс / Дж. Макконнелл: ; пер. с англ . –М.: Техносфера, 2002. - 304 с.
б) дополнительная литература:
Сибуя М. Алгоритмы обработки данных:. / М. Сибуя, Т. Ямамото : пер. с япон. – М.: Мир, 1986. – 218 с.
- Мейер Б. Методы программирования: В 2-х томах. / Б. Мейер., К. Бодуэн – М.: Мир, 1982.
- Кормен Т. Алгоритмы: построение и анализ. / Т. Кормен, Ч. Лейзерсон Ч., Р. Ривест : пер.с англ., под ред. А.Шеня. – М.: МЦНМО: БИНОМ. Лаборатория знаний, 2004. – 2-е изд. стереотип. – 960 с.
- Кубенский А.А. Структуры и алгоритмы обработки данных: объектно-ориентированный подход и реализация на С++. / А.А. Кубенский – СПб.: БХВ-Петербург, 2004. – 464 с.
в) программное обеспечение: в аудиториях для проведения лабораторных занятий, должно быть установлено программное обеспечение, предназначенное для разработки приложений на языках высокого уровня.
10. Материально-техническое обеспечение дисциплины:
Требования к аудиториям для проведения лекционных и практических занятий: наличие доски и средств письма на ней, оснащение проекционной техникой и компьютером.
Требования к аудиторному оборудованию для проведения лабораторных занятий: наличие компьютерных классов с современной компьютерной техникой.
11. Методические рекомендации по организации изучения дисциплины:
Методическое обеспечение аудиторной работы: учебно-методические пособия для студентов, учебники и учебные пособия, электронные и Интернет-ресурсы.
Методическое обеспечение самостоятельной работы: учебно-методические пособия по организации самостоятельной работы, контрольные задания и тесты в бумажном и электронном вариантах, тестирующие системы, дистанционные формы общения с преподавателем. Контроль самостоятельной работы реализуется с помощью опросов, тестов, вопросов по темам заданий и т.д.
Пример вопросов контроля самостоятельной работы:
- Стек: цепочная реализация и представление с помощью массива. Пакет процедур функциональной спецификации.
- Способы обхода, построение, основные операции с бинарным деревом: рекурсивный и нерекурсивный варианты
- В+ - деревья; определение, обоснование использования, алгоритмы включения и удаления.
- Алгоритмы с возвратом. Функциональное назначение алгоритмов, примеры задач с использованием алгоритмов с возвратом обобщение схемы алгоритма методом проб и ошибок.
Контрольно-измерительные материалы: задания, тесты, контрольные работы, теоретические вопросы и выполнение практических заданий.
Допуск к экзамену осуществляется на основании получения зачета по дисциплине.
ТРЕБОВАНИЯ:
зачтено | Выполнены все лабораторные работы из лабораторного практикума. Выполнены запланированные контрольные работы с положительным результатом. Студент отчитался по итогам самостоятельной работы (например, успешно ответил на вопросы) |
не зачтено | Не выполнен хотя бы один из пунктов, указанных выше |
Примеры экзаменационных контрольно-измерительных материалов:
Вопрос | Бинарное дерево поиска. Реализация с помощью массива. |
Задача | Подсчитать количество узлов на k-ом уровне заданного двоичного дерева (корень считать узлом 1-го уровня). |
Вопрос. | Сортировки слиянием: простым и естественным. |
Задача. | Проиллюстрировать сортировку двухпутевым однофазным простым слиянием на примере следующих чисел: 7, 2, 13, 23, 2, 1, 35, 88, 2, 25, 42. |
Вопрос. | Trie - деревья. |
Задача. | Удалить из Trie - дерева все слова, в которые входит заданная буква. |
Вопрос. | Хеширование: понятие функции расстановки, понятие коллизии |
Задача. | Удалить следующие элементы из B-дерева: 45, 16, 106, 3, 73. |
Вопрос. | Пирамидальная сортировка |
Задача. | Задан файл записей. У каждой записи ключевое поле представляет собой код из 4 цифр и 2 латинских букв (малых). Напишите хеш-функцию и реализуйте удаление элемента из хеш-таблицы, с применением метода разрешения коллизий – двойное хеширование. |
Вопрос. | В+ - деревья: определение, обоснование использования, алгоритм включения элемента |
Задача. | Построить АВЛ-дерево из следующих элементов: 17, 24, 9, 3, 5, 22, 11, 30, 40 |
КРИТЕРИИ ОЦЕНОК
отлично | Отличное знание теоретического материала, правильное и эффективное решение задачи |
хорошо | Хорошее знание теоретического материала, правильное решение задачи |
удовлетворительно | Решение задачи не доведено до конца или продемонстрировано недостаточное знание теоретического материала. |
неудовлетворительно | Задача не решена или серьезные пробелы в знании теоретического материала |
Разработчики:
Воронежский государственный университет, факультет прикладной математики, информатики и механики, кафедра программного обеспечения и администрирования информационных систем | кандидат технических наук, доцент | И.Е. Воронина |
Воронежский государственный университет, факультет прикладной математики, информатики и механики, кафедра программного обеспечения и администрирования информационных систем | преподаватель | Н.В. Огаркова |
Эксперты:
Воронежский государственный университет, факультет прикладной математики, информатики и механики, декан | д.ф.-м. н., профессор | А.И. Шашкин | |
Воронежский государственный университет, факультет прикладной математики, информатики и механики, зав. каф. вычислительной математики и прикладных информационных технологий, председатель научно-методического совета факультета ПММ | д.т. н., профессор | Т.М. Леденева | |