Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

AlgStr / Библиотека / Разные источники / Алг-мы и СД Программа Беларусь

.doc
Скачиваний:
43
Добавлен:
23.03.2015
Размер:
57.34 Кб
Скачать

В авторской редакции

Министерство образования Республики Беларусь

Национальный институт образования

Алгоритмы и структуры данных

Программа

курса по выбору для учащихся

учреждений, обеспечивающих получение

общего среднего образования

с 12-летним сроком обучения

Минск, 2007

В данном курсе по выбору подробно рассматриваются основополагающие структуры данных, начиная со стеков и очередей, линейных списков и заканчивая двоичными деревьями, приводятся наиболее популярные алгоритмы поиска и сортировки. Уделено внимание рекурсии, методам построения эффективных алгоритмов и их анализа.

Пояснительная записка

Одна из задач школьного образования, связанного с применением компьютеров — популярное изложение важнейших понятий современной науки об алгоритмах. Как показывает опыт, многие ее идеи и характерные приемы решения задач вполне доступны школьникам старших классов.

Для каждого круга практических задач характерны те или иные структуры данных, над которыми выполняются алгоритмические действия. Изучение основополагающих структур данных помогает создавать эффективные алгоритмы обработки реальных данных, облегчает понимание и анализ этих алгоритмов, а также их реализацию в виде программ на языках программирования.

В курсе рассматриваются наиболее распространенные структуры данных, такие как стеки, очереди, линейные списки со связями, двоичные деревья. Важное место отводится разнообразным алгоритмам поиска и сортировки, а также понятию рекурсии. Уделяется внимание разработке алгоритмов и программ по технологии сверху-вниз (принцип пошаговой детализации).

Методически важная задача этого курса — показать, как алгоритмы и используемые в них структуры данных влияют на эффективность создаваемых программ.

Программа курса «Алгоритмы и структуры данных» рекомендуется для учащихся XI—XII классов и рассчитана на 68 часов (1 час в неделю). Она расширяет учебный материал базового уровня по информатике и предназначена для повышенного уровня обучения. По своему усмотрению учитель может передвинуть (или сжать кратно блокам по 17 часов) сроки изучения курса.

Цели курса: заложить основы алгоритмической культуры школьников в процессе решения на компьютере задач обработки данных; рассмотреть структуры данных, которые являются фундаментом современной методологии построения эффективных алгоритмов; обеспечить подготовку учащихся к получению профессии, связанной с методами хранения и компьютерной обработкой информации, и с программированием.

Задачи курса:

  • разбор важнейших алгоритмов поиска и сортировки, их сравнительная характеристика, оценка сложности;

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

  • рассмотрение рекурсии как одного из важнейших средств алгоритмического решения задач;

  • разработка алгоритмов и программ по технологии сверху-вниз, называемой также методом последовательного уточнения.

Рекомендуемые формы и методы проведения занятий

Успех решения задач предлагаемого курса во многом зависит от организации учебного процесса. Обучение предполагает, прежде всего, наполнение учебного материала упражнениями и задачами различной сложности. Одни из них служат для закрепления пройденного материала, в других модифицируются рассматриваемые алгоритмы и реализации структур данных.

Для проведения уроков могут быть использованы различные формы. В каждой конкретной ситуации учитель может самостоятельно выбирать те методы обучения, которые наиболее полно отвечают поставленным задачам и позволяют достигать намеченных целей.

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

Выбор базового языка программирования остается за учителем. Для представления рассматриваемых структур данных и алгоритмов удобен Паскаль, которым можно овладеть быстро и легко.

Содержание

Поиск в массиве

Задача поиска в линейном массиве. Последовательный поиск. Поиск делением пополам (двоичный поиск) в упорядоченном массиве. Примеры применения при решении задач.

Сложность алгоритмов

Понятие сложности алгоритма. Анализ алгоритмов поиска и сравнение их эффективности.

Упорядочение (сортировка) массива

Задача сортировки массива. Простейшие алгоритмы сортировки: сортировка простым выбором, пузырьковая сортировка, сортировка вставками, сортировка подсчетом. Анализ простейших алгоритмов сортировки и сравнение их эффективности.

Рекурсия

Понятие рекурсии. Рекурсивные определения. Рекурсивные программы. Задача о ханойских башнях. Стратегии решения задач. Общий метод «разделяй и властвуй».

Более сложные алгоритмы сортировки

Рекурсивные алгоритмы сортировки массива: сортировка слиянием, быстрая сортировка. Анализ рекурсивных алгоритмов сортировки.

Простые структуры данных

Стек, определение и примеры. Представление стека линейным массивом. Очередь и ее кольцевое представление линейным массивом. Реализация операций над стеком и очередью на языке программирования. Применение стека и очереди при решении задач.

Линейные связные списки

Статическое и динамическое выделение памяти. Указатели (ссылки) и динамические переменные. Линейные связные списки (списки со связями). Операции над связными списками. Представление стека и очереди связным списком. Рекурсивные алгоритмы обработки списков. Кольцевые списки. Двунаправленные списки.

Двоичные деревья

Двоичные деревья поиска. Построение двоичного дерева. Оценка сложности алгоритмов поиска. Обход двоичного дерева. Рекурсивные алгоритмы обхода двоичных деревьев. Алгоритмы обхода, использующие стек и очередь. Полные деревья. Применение двоичных деревьев в задачах поиска и сортировки. Представление списков двоичными деревьями. Представление двоичного дерева с использованием массива.

Разработка алгоритмов и программ по технологии сверху-вниз

Формализованная запись алгоритма решения задачи. Пошаговая разработка и детализация алгоритмов и программ. Требования структурного программирования. Преимущества разработки и отладки программ по технологии сверху-вниз.

Ожидаемые результаты

После успешного прохождения учебного материала учащиеся получат представление:

  • о разнообразии методов поиска и сортировки, о рекурсии;

  • о методах анализа алгоритмов и критериях оценки их сложности;

  • о приемах работы с базовыми структурами данных;

  • об использовании динамических переменных;

  • о разработке алгоритмов и программ по технологии сверху-вниз.

Изучение данного курса предполагает:

  • развитие познавательных способностей школьников;

  • формирование у них алгоритмического мышления;

  • получение реального опыта творческой и исследовательской деятельности;

  • повышение интереса учащихся к программированию.

Рекомендуемая литература

  1. Абрамов С. А. Математические построения и программирование / С. А. Абрамов. — М.: Наука, 1978. — 191 с.

  2. Ахо А. В. Структуры данных и алгоритмы / А. В. Ахо, Д. Хопкрофт, Д. Д. Ульман. — М.: Издательский дом «Вильямс», 2000. — 384 с.

  3. Бакнелл Дж. Фундаментальные алгоритмы и структуры данных в Delphi / Дж. Бакнелл. — СПб: ООО «ДиаСофтЮП», 2003. — 560 с.

  4. Бентли Д. Жемчужины программирования / Д. Бентли. — СПб: Питер, 2002. — 272 с.

  5. Вирт Н. Алгоритмы + структуры данных = программы / Н. Вирт. — М.: Мир, 1985. — 406 с.

  6. Касьянов В. Н. Курс программирования на Паскале в заданиях и упражнениях / В. Н. Касьянов. — Новосибирск: Из-во НГУ, 2001. — 448 с.

  7. Катков В. Л. Программирование / В. Л. Катков, Э. З. Любимский. — Мн.: Вышэйшая школа, 1992. — 295 с.

  8. Кормен Т. Х. Алгоритмы: построение и анализ / Т. Х. Кормен, Ч. И. Лейзерсон, Р. Л. Ривест. — М.: МЦНМО, 2000. — 960 с.

  9. Котов В. М. Информатика. Методы алгоритмизации / В. М. Котов, О. И. Мельников. — Мн.: Народная асвета, 2000. — 221 с.

  10. Котов В. М. Структуры данных и алгоритмы: теория и практика / В. М. Котов, Е. П. Соболевская. — Мн.: БГУ, 2004. — 255 с.

  11. Макконелл Дж. Основы современных алгоритмов / Дж. Макконелл. — М.: Техносфера, 2004. — 368 с.

  12. Окулов С. М. Основы программирования / С. М. Окулов. — М.: БИНОМ. Лаборатория знаний, 2005. — 440 с.

  13. Окулов С. М. Программирование в алгоритмах / С. М. Окулов. — М. : БИНОМ. Лаборатория знаний, 2002. — 341 с.

  14. Стивенс Р. Delphi. Готовые алгоритмы / Р. Стивенс. — М.: ДМК Пресс, 2004. — 384 с.

8

Скачено с Образовательного портала www.adu.by