МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Саратовский государственный университет имени Н.Г. Чернышевского

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Саратовский государственный университет имени Н.Г. Чернышевского
Факультет компьютерных наук и информационных технологий
УТВЕРЖДАЮ
___________________________
"__" __________________20__ г.
Рабочая программа дисциплины
Типы и структуры данных
Направление подготовки
231000 Программная инженерия
Профиль подготовки
Разработка программно-информационных систем
Квалификация (степень) выпускника
Бакалавр
Форма обучения
очная
Саратов,
2011 год
1. Цели освоения дисциплины «Типы и структуры данных»
Целями освоения данной дисциплины являются формирование общих
представлений о типах и структурах данных, способах представления данных
в ЭВМ, алгоритмах обработки структур данных, развитие у студентов
компетенций в области применения различных типов и структур данных при
решении конкретной задачи.
2.Место дисциплины «Типы и структуры данных» в структуре
ООП бакалавриата «Программная инженерия»
Дисциплина «Типы и структуры данных» входит в раздел
«Профессиональный цикл. Базовая часть» ФГОС-3 направления подготовки
«Программная инженерия». Для успешного усвоения данной дисциплины
необходимы компетенции, сформированные у обучающихся в результате
обучения в средней общеобразовательной школе, а также при изучении таких
дисциплин как «Основы программирования».
Сформированные в процессе изучения дисциплины «Типы и структуры
данных» компетенции, необходимы студенту при освоении таких дисциплин
профессионального
цикла,
как
«Объектно-ориентированное
программирование», «Теория кодирования и передачи данных».
3 Компетенции обучающегося, формируемые в результате
освоения дисциплины «Типы и структуры данных»
В результате освоения дисциплины «Типы и структуры данных»
студент
должен
обладать
следующими
профессиональными
компетенциями:

Способность к формализации в своей предметной области с
учетом ограничений используемых методов исследования (ПК-2);

Способность формализовать предметную область программного
проекта и разработать спецификации для компонентов программного
продукта (ПК-6);
В результате освоения дисциплины обучающийся должен:

Знать:
 способы представления различных структур данных в ЭВМ;
 алгоритмы обработки структур данных;
 технологии программирования с использованием абстрактных
типов данных.

Уметь:
 выбрать наиболее эффективный алгоритм для решения задачи;
 выбрать подходящие структуры данных;
 разрабатывать спецификации для конкретных компонентов
программного продукта.

Владеть:
 навыками самостоятельной оценки использования структур
данных и алгоритмов их обработки;
 навыками реализации абстрактных типов данных в конкретные
структуры данных на языке программирования;
 навыками реализации выбранного алгоритма на языке
программирования;
 навыками формализации предметной области программного
продукта.
4. Структура и содержание дисциплины «Типы и структуры
данных»
Общая трудоемкость дисциплины составляет 4 зачетных единицы 144
часа (из них 72 часа аудиторных).
№
п/п
Раздел
дисциплины
1
Понятие
данных
2
Основные
абстрактные
данных
С
е
м
ес
тр
Неде
ля
семе
стра
Виды учебной работы,
включая
самостоятельную
работу студентов и
трудоемкость (в часах)
1
Лек.
2
Лаб
2
3
2-4
6
6
6
типа 3
ПР
С
2
типы
3
Деревья
3
5-7
6
6
6
4
Множества
3
8-10
6
6
6
Формы
текущего
контроля
успеваемости
(по неделям
семестра)
Формы
промежуточной
аттестации (по
семестрам)
Участие
в
лабораторных
занятиях – 1 нед.
Контрольная
работа №1– 10
нед.
Участие
в
лабораторных
занятиях – 2-4
нед.
Контрольная
работа №1– 10
нед.
Участие
в
лабораторных
занятиях – 5-7
нед.
Контрольная
работа №1 – 10
нед.
Участие
в
лабораторных
занятиях – 8-10
нед.
Контрольная
работа №1– 10
нед.
5
Ориентированные
графы
3
11-13 6
6
6
6
Неориентированные
графы
3
14-16 6
6
6
7
Структуры данных 3
для
внешней
памяти. Управление
памятью.
17
2
2
2
8
Понятие
эффективности
алгоритмов
18
2
2
2
ИТОГО
3
3
Промежуточная аттестация
36
36
36
Участие
в
лабораторных
занятиях – 11-13
нед.
Контрольная
работа №2– 17
нед.
Участие
в
лабораторных
занятиях – 14-16
нед.
Контрольная
работа №2– 17
нед.
Участие
в
лабораторных
занятиях – 17
нед.
Контрольная
работа №2 – 17
нед.
Участие
в
лабораторных
занятиях – 18
нед.
Зачет
1.
Понятие типа данных
Простые типы данных. Представление различных типов данных в
ЭВМ.
Самостоятельная работа – подробное изучение представления
различных типов данных в ЭВМ, подготовка к контрольной работе.
2.
Основные абстрактные типы данных.
Списки. Реализация списков посредством массивов и указателей.
Связанные списки. Стеки. Очереди. Стеки и рекурсивные процедуры.
Самостоятельная работа – изучение и сравнение различных
абстрактных типов данных, подготовка к контрольной работе.
3.
Деревья
Основная терминология. Способы обхода деревьев. Реализация
деревьев. Двоичные деревья. Реализация двоичных деревьев с помощью
указателей. Коды Хаффмана.
Самостоятельная работа – подробное изучение реализации деревьев,
подготовка к контрольной работе.
4.
Множества
Система обозначений для множеств. Реализация множеств. Словари.
Структуры данных, основанные на хеш-таблицах. Оценка эффективности
хеш-функций. Деревья двоичного поиска. Нагруженные деревья. Реализация
множеств посредством сбалансированных деревьев.
Самостоятельная работа – подробное изучение реализаций множеств,
подготовка к контрольной работе.
Контрольная работа №1.
5.
Ориентированные графы
Основные определения. Представление ориентированных графов.
Задача нахождения кратчайшего пути. Алгоритм Дейкстры. Кратчайший
путь между двумя парами вершин. Алгоритм Флойда.
Обход ориентированных графов. Орграфы. Сильная связность.
Самостоятельная работа – сравнение алгоритмов Дейкстры и Флойда,
подготовка к контрольной работе.
6.
Неориентированные графы
Основные определения. Представление неориентированных графов.
Остовные деревья минимальной стоимости. Алгоритм Прима. Алгоритмы
Крускала. Обход неориентированных графов. Поиск в глубину, поиск в
ширину. Точки сочленения и двусвязные компоненты.
Самостоятельная работа – сравнение алгоритмов Прима и Крускала,
подробное изучение поиска в глубину и ширину, подготовка к контрольной
работе.
7.
Структуры данных для внешней памяти. Управление
памятью
Модель внешних вычислений. Хранение данных в файлах. Ускорение
операций с файлами. Хешированные файлы, индексированные файлы,
несортированные файлы с плотным индексом. Внешние деревья поиска. Вдеревья. Проблемы управления памятью. Управление блоками одинакового
размера. Алгоритм Дойча-Шорра-Уэйта. Фрагментация и уплотнение пустых
блоков. Уплотнение памяти. Алгоритм Морриса.
Самостоятельная работа – подробное изучение алгоритмов управления
памятью, подготовка к контрольной работе.
Контрольная работа №2.
8.
Понятие эффективности алгоритмов
Эффективность алгоритмов. Анализ рекурсивных программ.
Алгоритмы «разделяй и властвуй». «Жадные» алгоритмы.
Самостоятельная работа – подробное изучение эффективности
алгоритмов, подготовка к экзамену.
5. Образовательные технологии
В учебном процессе при реализации компетентностного подхода
используются такие активные и интерактивные формы проведения занятий
как модельный метод обучения, метод развивающей кооперации, разбор
конкретных ситуаций, командное выполнение заданий с распределением
ролей. Широко используются мультимедийные презентации при
представлении лекционного материала.
6. Учебно-методическое обеспечение самостоятельной работы
студентов. Оценочные средства для текущего контроля успеваемости,
промежуточной аттестации по итогам освоения дисциплины «Типы и
структуры данных».
7.
Учебно-методическое
и
информационное
обеспечение
дисциплины «Типы и структуры данных»
а) основная литература:
1.
Круз Р. Л. Структуры данных и проектирование программ (Data
Structures and Program Design) — М.: БИНОМ. Лаб. Знаний, 2008.
2.
Ахо А. В., Хопкрофт Дж. Э., Ульман Дж. Д. Структуры данных и
алгоритмы (Data Structures and Algorithms).— Киев: Вильямс, 2007.
б) дополнительная литература:
1.
Кузнецов В. А., Караваев А. М. Оптимизация на графах
(алгоритмы и реализация) — Петрозаводск: Изд-во ПетрГУ, 2007.
2.
Каррано Фр. М., Причард Дж. Дж. Абстракция данных и
решение задач на C++: Стены и зеркала (Data Abstraction and Problem
Solving with C++) — Киев: Изд. дом "Вильямс", 2003. - 847 с.
в) программное обеспечение и Интернет-ресурсы
1.
Алексеев В. Е., Таланов В. А. Структуры данных и модели
вычислений.http://www.intuit.ru/department/algorithms/dscm/
8. Материально-техническое обеспечение дисциплины «Типы и
структуры данных»
Для данного курса необходимо наличие компьютерного класса,
оборудованного соответствующим программным обеспечением для работы
на языке С++ (например, Visual Studio или подобной средой разработки
программ).
Программа составлена в соответствии с требованиями ФГОС ВПО с
учетом рекомендаций и Примерной ООП ВПО по направлению и профилю
подготовки «Разработка программно-информационных систем».
Автор
доцент
каф. МКиКН
___________ А. С. Иванова
Программа одобрена на заседании кафедры математической
кибернетики и компьютерных наук от года 22.02.2011, протокол № 13.
Заведующий кафедрой
математической кибернетики и
компьютерных наук
___________ А. С. Иванов
Декан факультета КНиИТ,
доцент
___________ А. Г. Федорова
Download