1 УТВЕРЖДАЮ Директор института ___________Сонькин М.А. «___»_____________2011 г. РАБОЧАЯ ПРОГРАММА МОДУЛЯ (ДИСЦИПЛИНЫ) СТРУКТУРЫ И АЛГОРИТМЫ ОБРАБОТКИ ДАННЫХ НАПРАВЛЕНИЕ (СПЕЦИАЛЬНОСТЬ) ООП _230100 Информатика и вычислительная техника___________________ ПРОФИЛЬ ПОДГОТОВКИ (СПЕЦИАЛИЗАЦИЯ, ПРОГРАММА) Программное обеспечение средств вычислительной техники и автоматизированных систем КВАЛИФИКАЦИЯ (СТЕПЕНЬ) __бакалавр______________________ БАЗОВЫЙ УЧЕБНЫЙ ПЛАН ПРИЕМА __2011______ г. КУРС__3_____ СЕМЕСТР ___5, 6_____ КОЛИЧЕСТВО КРЕДИТОВ __8____ ПРЕРЕКВИЗИТЫ _Информатика, Математический анализ, Линейная алгебра и аналитическая геометрия, Иностранный язык, Программирование на ЯВУ, Дискретная математика ________________________________________________________________ КОРЕКВИЗИТЫ __ Организация ЭВМ, Сети и телекоммуникации, Объектноориентированное программирование__________________________________________ ВИДЫ УЧЕБНОЙ ДЕЯТЕЛЬНОСТИ И ВРЕМЕННОЙ РЕСУРС: __Лекции ______________________ __36__ час. __Лабораторные занятия _________ __72__ час. ________________________ ____ час. АУДИТОРНЫЕ ЗАНЯТИЯ _108____ час. САМОСТОЯТЕЛЬНАЯ РАБОТА __108__ час. ИТОГО _216___ час. ФОРМА ОБУЧЕНИЯ____дневная______________ ВИД ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ _____________Экзамен в 5 семестре, Диф. зачет в 6 семестре_______________________________________________________ ОБЕСПЕЧИВАЮЩЕЕ ПОДРАЗДЕЛЕНИЕ___________кафедра Автоматики и компьютерных систем________________________________________________________ ЗАВЕДУЮЩИЙ КАФЕДРОЙ_________________________Цапко Г.П.______ РУКОВОДИТЕЛЬ ООП ____________________________Рейзлин В.И.______ РУКОВОДИТЕЛЬ ПРОФИЛЯ _________________ Кочегурова Е.А. ПРЕПОДАВАТЕЛЬ ___________________________Цапко И.В.______ 2011г. 2 1. Цели освоения модуля (дисциплины) Цели освоения дисциплины соответствуют целям образовательной программы и включают: Обеспечение готовности студентов к проектно-конструкторской деятельности в области создания и внедрения аппаратных и программных средств объектов профессиональной деятельности в соответствии с техническим заданием и с использованием средств автоматизации проектирования (Ц1). 2. Место модуля (дисциплины) в структуре ООП Дисциплина входит в состав вариативной части профессионального цикла. Пререквизитами данной дисциплины являются: Информатика, Математический анализ, Линейная алгебра и аналитическая геометрия, Иностранный язык, Программирование, Дискретная математика. Также требуется опыт алгоритмизации и владение английскими математическими терминами. Знания и умения, полученные при изучении дисциплины «Структуры и алгоритмы обработки данных», могут быть востребованы дисциплинами-кореквизитами: Организация ЭВМ, Сети и телекоммуникации, Объектно-ориентированное программирование. 3. Результаты освоения модуля (дисциплины) После изучения данной дисциплины студенты приобретают знания, умения и опыт, соответствующие результатам основной образовательной программы: Р1, Р2, Р3, Р4. Соответствие результатов освоения дисциплины «Структуры и алгоритмы обработки данных на ЭВМ» формируемым компетенциям ООП представлено в таблице. Формируемые компетенции в Результаты освоения дисциплины соответствии с ООП* З.1.3, 3.1.4, 3.2.1, В результате освоения дисциплины студент должен знать: 3.3.2, 3.4.2 Логику высказываний и предикатов элементов теории сложности, З.3.2.4 введение в теорию алгоритмов и алгоритмических языков. Булевы функции; дизъюнктивные нормальные функции; основные положения теории графов; алгоритмы решения некоторых классических задач теории графов. Современные тенденции развития информатики и вычислительной техники, компьютерных технологий. Основные понятия моделирования, математических и имитационных методов моделирования, методов планирования имитационных экспериментов с моделями, способов алгоритмизации процессов, методов построения моделирующих алгоритмов; методов моделирования случайных величин, событий и потоков, событий; методов оценки точности результатов, верификации, инструментальных средств и языков моделирования. Технологии разработки алгоритмов и программ, методов отладки и решения задач на ЭВМ в различных режимах, основы объектноориентированного подхода к программированию. Элементы теории сложности алгоритмов; основные понятия алгоритмических структур для построения алгоритмов и задач по их математическим моделям; основные структуры представления данных в ЭВМ; алгоритмы, оперирующие со структурами. У.1.3, У.1.4, В результате освоения дисциплины студент должен уметь: У.2.1, У.4.2, Применять методы математической логики и теории алгоритмов для У.3.2.4 решения практических задач. Применять алгоритмы решения следующих задач: минимизация булевых функций; поиск кратчайших путей в графе; построение остовного дерева графа; нахождение эйлеровых и гамильтоновых циклов в графах; задача коммивояжера. Применять вычислительную технику для решения для решения практических задач. 3 Ставить задачу и разрабатывать алгоритм ее решения, использовать прикладные системы программирования, разрабатывать основные документы, работать с современными системами программирования, включая объектно-ориентированные. Выбирать и использовать структуры представления данных для решения возникающих задач. В.1.3, В.1.4, В результате освоения дисциплины студент должен владеть: В.2.1, В.4.2, Методами математической логики и теории алгоритмов. Методами и В.3.2.4 алгоритмами теории графов. Навыками работы на персональном компьютере. Языками процедурного и объектно-ориентированного программирования, навыками разработки и отладки программ не менее чем на одном из алгоритмических процедурных языков программирования высокого уровня. Навыками грамотной постановки задач, возникающих в практической деятельности для их решения с помощью ЭВМ; навыками выбора структур данных и разработки оптимальных алгоритмов для решения поставленных задач; навыками формализованного описания поставленных задач. *Расшифровка кодов результатов обучения и формируемых компетенций представлена в Основной образовательной программе подготовки бакалавров по направлению 230100 «Информатика и вычислительная техника». В процессе освоения дисциплины у студентов развиваются следующие компетенции: 1.Универсальные (общекультурные) владеет культурой мышления, способен к обобщению, анализу, восприятию информации, постановке цели и выбору путей её достижения (ОК-1); использует основные законы естественнонаучных дисциплин в профессиональной деятельности, применяет методы математического анализа и моделирования, теоретического и экспериментального исследования (ОК-10); 2. Профессиональные разрабатывать модели компонентов информационных систем, включая модели баз данных (ПК-4); разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования (ПК-5); обосновывать принимаемые проектные решения, осуществлять постановку и выполнять эксперименты по проверке их корректности и эффективности (ПК-6). 4. Структура и содержание модуля (дисциплины) 4.1 Приводится аннотированное содержание разделов модуля (дисциплины): 1. Классификация структур данных. Операции над структурами данных. Критерии эффективности алгоритмов. Теория сложности алгоритмов. Анализ итеративных и рекурсивных программ. 2. Типы данных линейной структуры. Типы данных линейной структуры с прямым доступом к данным. Типы данных линейной структуры с последовательным доступом к данным: Стеки, Очереди, Очереди приоритетов, Дек, Связанные линейные списки, Односвязный линейный список, Циклические списки, Двусвязный линейный список. Мультисписки. Нелинейные разветвленные списки. 3. Алгоритмы обработки данных линейной структуры. Сортировка. Алгоритмы сортировка массивов: Сортировка посредством выбора, Сортировка обменом (пузырек), Сортировка вставками, Сортировка с разделением (быстрая сортировка). Сравнение алгоритмов сортировки массивов. Слияние сортированных последовательностей. Поиск: Последовательный поиск, Бинарный поиск, М-блочный поиск, Поиск медианы. 4. Хеширование. Хеш-функции, разрешение коллизий. 4 5. Файлы. Операции с данными на внешних носителях: Внешний поиск, Внешняя сортировка. Сортировка прямым слиянием. Сортировка естественным слиянием. Сбалансированное многопутевое слияние. 6. Типы данных нелинейной структуры. Деревья. Терминология деревьев. Способы отображения деревьев. Двоичные (бинарные) деревья. Структура бинарного дерева. Идеально сбалансированные деревья. Двоичные деревья выражений. Деревья двоичного поиска. Операции с двоичными деревьями: поиск по дереву, алгоритмы обхода дерева, копирование и удаление деревьев, удаление из дерева. Бинарные деревья, представляемые массивами. Турнирная сортировка. Оптимальные деревья поиска. Сбалансированные деревья. Основные определения. Узлы AVL-дерева. Включение в сбалансированное дерево. Повороты. Удаление из сбалансированного дерева. Сильноветвящиеся деревья. В-деревья. Бинарные В-деревья. Пирамиды (heap - tree). Преобразование массива в пирамиду. Включение элемента в пирамиду. Удаление из пирамиды. Пирамидальная сортировка. 7. Графы. Основные понятия и определения. Способы задания графов. Алгоритмы на графах. Поиск в глубину. Поиск в ширину. Оптимизационные алгоритмы. Кратчайшие пути. Достижимость и алгоритм Уоршолла. Кратчайшие пути между всеми парами вершин. Нахождение центра ориентированного графа. Остовные деревья минимальной стоимости: Алгоритм Прима, Алгоритм Крускала. Гамильтонов цикл. Эйлеровы пути и циклы. Паросочетания графов. 8. Методы разработки алгоритмов. Алгоритмы «Разделяй и властвуй». Динамическое программирование. «Жадные» алгоритмы. Поиск с возвратом. 4.2 Структура модуля (дисциплины) по разделам и формам организации обучения Название раздела/темы 1. Классификация структур данных. 2. Типы данных линейной структуры 3. Алгоритмы обработки данных линейной структуры 4. Хеширование 5. Файлы 6. Типы данных нелинейной структуры 7. Графы 8. Методы разработки алгоритмов Аудиторная работа (час) Лекции Лабор. Занятия 2 2 СРС (час) Колл, Контр.Р. Итого 4 8 4 10 16 30 6 12 16 2 4 8 8 8 13 13 13 16 6 4 36 12 7 72 16 14 108 2 36 2 23 25 39 34 31 216 2 4.3 Распределение компетенций по разделам дисциплины Распределение по разделам дисциплины планируемых результатов обучения по основной образовательной программе, формируемых в рамках данной дисциплины и указанных в пункте 3. № 1. 2. 3. 4. Формируемые компетенции З.1.3 3.1.4 3.2.1 3.3.2 1 + + + 2 + Разделы дисциплины 3 4 5 6 7 + + + + + + + + 8 + + + 5 5. 6. 7. 8. 9. 10. 11. 12. 13. 3.4.2 У.1.3 У.1.4 У.2.1 У.4.2 В.1.3 В.1.4 В.2.1 В.4.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5. Образовательные технологии Достижение планируемых результатов освоения дисциплины обеспечивается образовательными технологиями, сочетание которых приведено в таблице. Методы и формы организации обучения (ФОО) ФОО Методы IT-методы Работа в команде Case-study Игра Методы проблемного обучения. Обучение на основе опыта Опережающая самостоятельная работа Проектный метод Поисковый метод Исследовательский метод Другие методы Лекц Лаб. . раб. + + + Пр. зан./ Сем., + + Тр*., Мк** СРС К. пр. + + + + + + * - Тренинг, ** - Мастер-класс Для достижения поставленных целей преподавания дисциплины реализуются следующие средства, способы и организационные мероприятия: изучение теоретического материала дисциплины на лекциях с использованием компьютерных технологий; самостоятельное изучение теоретического материала дисциплины с использованием Internet-ресурсов, информационных баз, методических разработок, специальной учебной и научной литературы; закрепление теоретического материала при проведении лабораторных работ с использованием учебного и научного оборудования и приборов, выполнения проблемноориентированных, поисковых, творческих заданий. 6. Организация и учебно-методическое обеспечение самостоятельной работы студентов 6.1 Цель организации самостоятельной работы такого вида состоит в обеспечении обратной связи между студентами и преподавателем. Текущая СРС состоит в проработке лекционного материала, подготовке к лабораторным работам и контрольным работам. Она составляет 54 часа и включает: 1) проработку лекционного материала и подготовку к лабораторным работам (36 ч.) 2) подготовку к контрольным работам (18 ч.) Творческая проблемно-ориентированная самостоятельная работа (ТСР) состоит в самостоятельном изучении студентами некоторых разделов курса (24 часа) и в выполнении индивидуальных заданий по темам, согласно заданию на курсовую работу (30 часов). 6.2. Содержание самостоятельной работы студентов по модулю (дисциплине) Темы на самостоятельное изучение «Ассоциативные списки»; 6 «Реорганизация списков»; «Построение упорядоченного списка». Вертикальная печать дерева; Бинарные Б-деревья; «Паросочетания графов»; Задача «триангуляции»; Задача о «рюкзаке»; Метод ветвей и границ. Согласно рабочей программе дисциплины в 4 семестре предусматривается курсовая работа. Цель выполнения курсовой работы соответствует целям изучения дисциплины. В результате выполнения курсовой работы студент должен закрепить следующие знания, полученные в ходе изучения дисциплины: технологии разработки алгоритмов и программ, методов отладки и решения задач на ЭВМ, основные положения теории графов, алгоритмы решения некоторых классических задач теории графов, способов алгоритмизации процессов, методов построения моделирующих алгоритмов. Продемонстрировать умения: применять алгоритмы решения следующих задач: минимизация булевых функций; поиск кратчайших путей в графе; построение остовного дерева графа; нахождение эйлеровых и гамильтоновых циклов в графах; задача коммивояжера. Применять вычислительную технику для решения для решения практических задач. Овладеть методами и алгоритмами теории графов. Навыками работы на персональном компьютере. На курсовую работу выносятся темы, изучаемые студентами в течение семестра, а так же темы, данные на самостоятельное изучение: 1. Применение стеков, очередей. 2. Деки. 3. Построение двоичных деревьев выражений. 4. Представление двоичных деревьев в виде массивов. 5. Сильноветвящиеся деревья. 6. Алгоритмы на графах 6.3 Контроль самостоятельной работы Оценка результатов самостоятельной работы организуется как единство двух форм: самоконтроль и контроль со стороны преподавателей. Оценка преподавателем самостоятельной работы студентов отражена в Рейтинг-плане. 6.4 Учебно-методическое обеспечение самостоятельной работы студентов - Цапко И.В.. Структуры и алгоритмы обработки данных: Учебное пособие/Том. политехн. ун-т. – Томск, 2007. – 184 с. - Вирт, Никлаус. Алгоритмы и структуры данных : пер. с англ. / Н. Вирт. — 2-е изд., испр. — СПб. : Невский Диалект, 2001. — 351 с. - Уильям Топп, Уильям Форд. Структуры данных в С++: Пер. сильям Топп, Уильям Форд. Структуры данных в С++: Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 2000. – 816 с. - Ахо Альфред В., Хопкрофт Джон, Ульман Джеффри Д. Структуры данных и алгоритмы.: Пер. с англ.: Уч.пос. – М.: Издательский дом «Вильямс», 2000. – 384 с. 7. Средства (ФОС) текущей и итоговой оценки качества освоения модуля (дисциплины) Оценка текущий и промежуточной аттестации по дисциплине осуществляется на основе Рейтинг-плана по результатам выполнения лабораторных работ и контрольных работ. При изучении учебной дисциплины проводится 3 рубежные контрольные работы по следующим разделам курса: 7 1. Теория сложности алгоритмов. Сортировка элементов массива. Типы данных линейной структуры с последовательным доступом. 2. Иерархические структуры данных. Их представление в ЭВМ. 3. Графы. Каждая контрольная работа контролирует освоение студентами определенного раздела изучаемой дисциплины и соответственно обеспечивает перечисленные результаты освоения дисциплины: КР1 - З.1.3, З.4.2, У.1.3, В.1.3; КР2 - З.2.1, З.3.2, У.2.1, В.2.1; КР3 З.1.4, У.1.4, В.1.4. Итоговый контроль по дисциплине осуществляется по результатам выполнения лабораторных, контрольных работ и сдачи экзамена 8. Учебно-методическое и информационное обеспечение модуля (дисциплины) Перечень рекомендуемой литературы 1. Цапко И.В.. Структуры и алгоритмы обработки данных: Учебное пособие/Том. политехн. ун-т. – Томск, 2007. – 184 с. 2. Вирт, Никлаус. Алгоритмы и структуры данных : пер. с англ. / Н. Вирт. — 2-е изд., испр. — СПб. : Невский Диалект, 2001. — 351 с. 3. Уильям Топп, Уильям Форд. Структуры данных в С++: Пер. сильям Топп, Уильям Форд. Структуры данных в С++: Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 2000. – 816 с. 4. Ахо Альфред В., Хопкрофт Джон, Ульман Джеффри Д. Структуры данных и алгоритмы.: Пер. с англ.: Уч.пос. – М.: Издательский дом «Вильямс», 2000. – 384 с. Перечень дополнительной литературы 1. Трамбле Ж., Соренсон П. Введение в структуры данных: Пер.с англ. - М.: Машиностроение, 1982. - 784 с. 2. Костюк Ю.Л. Основы алгоритмизации: Учебное пособие. - Томск: Изд.ТГУ, 1996. 124 с. 3. Орлов В.А. Теория графов и комбинаторика: Учебное пособие. - Томск: Изд.ТПИ, 1988. - 96 с. 4. Райли Д. Абстракция и структуры данных: Вводный курс: Пер.с англ. - М.: Мир, 1993. - 752 с. 5. Брой М. Информатика. Теоретическая информатика, алгоритмы и структуры данных, логическое программирование, объектная ориентация: В 4-х частях. Ч.4/ Пер.с нем. М.:Диалог-МИФИ, 1998. - 224 с. 6. Евстигнеев В.А. Применение теории графов в программировании/ Под ред. А.П.Ершова. - М.: Наука. Гл. Ред. ФМЛ, 1985. - 352 с. 7. Алгоритмы и программы решения задач на графах и сетях./ Нечепуренко М.И., Попков В.К. и др. - Новосибирск: Наука. Сиб.отделение, 1990. - 515 с. 8. Н. Кристофидес. Теория графов. Алгоритмический подход. – М.: Мир, 1978. – 432 с. 9. Оре, Ойстин. Теория графов: пер. с англ. / О. Оре. — 2-е изд., стереотип. — М. : Наука : Физико-математическая лит-ра, 1980. — 336 с. ил. 10. Пападимитриу, Христос Х. Комбинаторная оптимизация; Алгоритмы и сложность: пер. с англ. / Х. Х. Пападимитриу, К. Стайглиц ; Пер. В. Б. Алексеева. — М. : Мир, 1985. — 510 с. : ил. 11. М.Свами, К.Тхуласираман. Графы, сети и алгоритмы. – М.: Мир, 1984. – 454 с. 12. Ф.Харари. Теория графов. – М.:Мир, 1973. – 300 с. 13. Кондратьева С.Д. Введение в структуры данных: лекции и упражнения по курсу. – М.: Изд-во МГТУ им. Н.Э.Баумана, 2000. – 376 с. 8 Программное обеспечение и Internet-ресурсы 1. Среда программирования на языке С++. 2. Цапко И.В. Структуры и алгоритмы обработки данных: Учебное пособие/ http://www.tpu.aics.ru/books.shtml?action =showbookcont&id=119 3. Цапко И.В. Структуры и алгоритмы обработки данных на ЭВМ: Слайды мультимедийной презентации лекций/ http://www.tpu.aics.ru/subjects.shtml?action =showsubjectdetails&id=97 9. Материально-техническое обеспечение модуля (дисциплины) Компьютеры класса IBM PC с операционной системой Windows-*. Программа составлена на основе Стандарта ООП ТПУ в соответствии с требованиями ФГОС по направлению 230100 «Информатика и вычислительная техника» и профилю «Программное обеспечение вычислительной техники и автоматизированных систем». Программа одобрена на заседании кафедры Автоматики и автоматизированных систем __________________________________________________________ (протокол № _____ от «_____» _________ 20___ г.). Автор Цапко И.В. Рецензент Кочегурова Е.А.