МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Саратовский государственный университет имени

Факультет компьютерных наук и информационных технологий

УТВЕРЖДАЮ

___________________________

"__" __________________20__ г.

Рабочая программа дисциплины

Типы и структуры данных

Направление подготовки

231000 Программная инженерия

Профиль подготовки

Разработка программно-информационных систем

Квалификация (степень) выпускника

Бакалавр

Форма обучения

очная

Саратов,

2011 год

1. Цели освоения дисциплины «Типы и структуры данных»

Целями освоения данной дисциплины являются формирование общих представлений о типах и структурах данных, способах представления данных в ЭВМ, алгоритмах обработки структур данных, развитие у студентов компетенций в области применения различных типов и структур данных при решении конкретной задачи.

2.Место дисциплины «Типы и структуры данных» в структуре ООП бакалавриата «Программная инженерия»

Дисциплина «Типы и структуры данных» входит в раздел «Профессиональный цикл. Базовая часть» ФГОС-3 направления подготовки «Программная инженерия». Для успешного усвоения данной дисциплины необходимы компетенции, сформированные у обучающихся в результате обучения в средней общеобразовательной школе, а также при изучении таких дисциплин как «Основы программирования».

Сформированные в процессе изучения дисциплины «Типы и структуры данных» компетенции, необходимы студенту при освоении таких дисциплин профессионального цикла, как «Объектно-ориентированное программирование», «Теория кодирования и передачи данных».

НЕ нашли? Не то? Что вы ищете?

3 Компетенции обучающегося, формируемые в результате освоения дисциплины «Типы и структуры данных»

В результате освоения дисциплины «Типы и структуры данных» студент должен обладать следующими профессиональными компетенциями:

-  Способность к формализации в своей предметной области с учетом ограничений используемых методов исследования (ПК-2);

-  Способность формализовать предметную область программного проекта и разработать спецификации для компонентов программного продукта (ПК-6);

В результате освоения дисциплины обучающийся должен:

·  Знать:

-  способы представления различных структур данных в ЭВМ;

-  алгоритмы обработки структур данных;

-  технологии программирования с использованием абстрактных типов данных.

·  Уметь:

-  выбрать наиболее эффективный алгоритм для решения задачи;

-  выбрать подходящие структуры данных;

-  разрабатывать спецификации для конкретных компонентов программного продукта.

·  Владеть:

-  навыками самостоятельной оценки использования структур данных и алгоритмов их обработки;

-  навыками реализации абстрактных типов данных в конкретные структуры данных на языке программирования;

-  навыками реализации выбранного алгоритма на языке программирования;

-  навыками формализации предметной области программного продукта.

4. Структура и содержание дисциплины «Типы и структуры данных»

Общая трудоемкость дисциплины составляет 4 зачетных единицы 144 часа (из них 72 часа аудиторных).

п/п

Раздел дисциплины

Семестр

Неделя семестра

Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)

Формы текущего контроля успеваемости (по неделям семестра)

Формы промежуточной аттестации (по семестрам)

Лек.

Лаб

ПР

С

1

Понятие типа данных

3

1

2

2

2

Участие в лабораторных занятиях – 1 нед.

Контрольная работа №1– 10 нед.

2

Основные абстрактные типы данных

3

2-4

6

6

6

Участие в лабораторных занятиях – 2-4 нед.

Контрольная работа №1– 10 нед.

3

Деревья

3

5-7

6

6

6

Участие в лабораторных занятиях – 5-7 нед.

Контрольная работа №1 – 10 нед.

4

Множества

3

8-10

6

6

6

Участие в лабораторных занятиях – 8-10 нед.

Контрольная работа №1– 10 нед.

5

Ориентированные графы

3

11-13

6

6

6

Участие в лабораторных занятиях – 11-13 нед.

Контрольная работа №2– 17 нед.

6

Неориентированные графы

3

14-16

6

6

6

Участие в лабораторных занятиях – 14-16 нед.

Контрольная работа №2– 17 нед.

7

Структуры данных для внешней памяти. Управление памятью.

3

17

2

2

2

Участие в лабораторных занятиях – 17 нед.

Контрольная работа №2 – 17 нед.

8

Понятие эффективности алгоритмов

3

18

2

2

2

Участие в лабораторных занятиях – 18 нед.

Промежуточная аттестация

Зачет

ИТОГО

3

36

36

36

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++) — Киев: Изд. дом "Вильямс", 20с.

в) программное обеспечение и Интернет-ресурсы

1.  Алексеев В. Е., Таланов В. А. Структуры данных и модели вычислений.http://www. *****/department/algorithms/dscm/

8. Материально-техническое обеспечение дисциплины «Типы и структуры данных»

Для данного курса необходимо наличие компьютерного класса, оборудованного соответствующим программным обеспечением для работы на языке С++ (например, Visual Studio или подобной средой разработки программ).

Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и Примерной ООП ВПО по направлению и профилю подготовки «Разработка программно-информационных систем».

Автор

доцент

каф. МКиКН

___________

Программа одобрена на заседании кафедры математической кибернетики и компьютерных наук от года 22.02.2011, протокол

Заведующий кафедрой

математической кибернетики и компьютерных наук

___________

Декан факультета КНиИТ,

доцент

___________