Алгоритмизация и программирование

advertisement
Алгоритмизация и программирование
Учебная программа факультативных занятий
по учебному предмету «Информатика»
для учреждений общего среднего образования
Минск, 2008
Авторы-составители: Кондратович А.Б., начальник отдела ГУО «Витебский
областной институт развития образования»,
Локтина Виктория Павловна, учитель информатики УО «Государственная
гимназия №8 г. Витебска»
Пояснительная записка
Вопрос, который невозможно обойти при обсуждении содержания
факультативных курсов по информатике, связан с целесообразностью изучения
программирования.
Понятно,
что
программирование – стержень
курса
информатики. Но какова его роль и есть ли необходимость изучать
программирование в рамках спецкурса?
Часто говорят, что в современных условиях развитого прикладного
программного обеспечения изучение программирования потеряло свое значение
как средство подготовки основной массы школьников к труду, профессиональной
деятельности. С одной стороны, это действительно так, но, с другой стороны,
изучение основ программирования связано с целым рядом умений и навыков
(организация деятельности, планирование ее и т.д.), которые по праву носят
общеинтеллектуальный характер и формирование которых – одна из
приоритетных задач современной школы.
Очень велика роль изучения программирования для развития мышления
школьников, формирования многих приемов умственной деятельности. Здесь роль
информатики сродни роли математики в школьном образовании. Поэтому не
использовать действительно большие возможности программирования, решения
соответствующих задач для развития мышления школьников, формирования
многих общеучебных, общеинтеллектуальных умений и навыков было бы,
наверное, неправильно.
Изучая программирование, учащиеся прочнее усваивают основы
алгоритмизации, приобщаются к алгоритмической культуре, познают азы
профессии программиста.
Учитывая все вышесказанное, можно выделить основную цель данного курса.
Цели и задачи курса








Сформировать
интерес
к
изучению
профессии,
связанной
с
программированием.
Дать ученику возможность реализовать свой интерес к выбранному курсу.
Научить учащихся структурному программированию.
Приобрести знания и навыки алгоритмизации учащимися в ее структурном
варианте.
Освоение всевозможных методов решения задач, реализуемых на языке
программирования.
Развить логическое и алгоритмическое мышление учащихся.
Сформировать навыки грамотной разработки программ.
Углубить знания, умения и навыки решения задач по программированию и
алгоритмизации.
Рекомендуемые формы и методы проведения занятий
Обучение предполагает, прежде всего, наполнение учебного материала
упражнениями и задачами различной сложности. Для проведения уроков могут
быть использованы различные формы. В каждой конкретной ситуации учитель
может самостоятельно выбирать те методы обучения, которые наиболее полно
отвечают поставленным задачам и позволяют достигать намеченных целей.
В учебном процессе должно быть уделено особое внимание
самостоятельной работе учащихся — решению домашних заданий, проработке
дополнительного учебного материала, разбору готовых решений.
Выбор базового языка программирования остается за учителем.
Весь курс условно разделён на классы. У учителя есть возможность
самостоятельно отводить определённое количество часов на прохождение той или
иной темы в зависимости от подготовленности учащихся, дифференцированного и
индивидуального подхода к ним.
Содержание
5 класс
Алгоритм
Алгоритм и его свойства. Формы представления алгоритмов. Блок-схема.
Среда программирования.
Язык программирования. Линейные алгоритмы.
Алфавит языка. Стандартные типы данных. Общая структура программы.
Оператор присваивания. Процедуры ввода-вывода. Описание выражений.
Стандартные арифметические функции. Составление линейных алгоритмов.
Реализация простейших линейных алгоритмов на языке программирования.
Разветвляющиеся алгоритмы
Изображение команд ветвления с использованием блок-схем. Составление
разветвляющихся алгоритмов с использованием блок-схем и языка
программирования. Решение задач с использованием команды ветвления.
6 класс
Линейные алгоритмы. Повторение.
Язык программирования. Реализация линейных алгоритмов на языке
программирования.
Условный оператор. Оператор выбора.
Оператор ветвления в полной и сокращенной форме. Блок-схема.
Составление разветвляющихся алгоритмов. Составной оператор. Вложенные
алгоритмические конструкции. Составление разветвляющихся алгоритмов с
использованием блок-схем и языка программирования. Оператор выбора.
Составление алгоритмов, содержащих оператор выбора. Составление алгоритмов
с вложенными алгоритмическими конструкциями.
Команда повторения.
Изображение команды повторения с использованием блок-схем.
Составление циклических алгоритмов. Реализация циклических алгоритмов с
использованием блок-схем и языка программирования. Решение задач с
использованием команд ветвления и повторения.
7 класс
Команды ветвления и повторения.
Решение задач с использованием команд ветвления и повторения.
Одномерные массивы
Понятие массива. Описание массивов. Заполнение и вывод элементов
массива. Поиск и замена элементов с заданными свойствами. Подсчет количества
или сумм искомых элементов в массиве. Поиск максимального и минимального
элемента массива. Несложная перестановка элементов массива. Удаление или
вставка элемента в массиве. Работа с элементами массива. Сортировка элементов
массива. Задачи на использование сортировки. Решение задач с использованием
массивов, циклов, ветвлений
8 класс
Повторение.
Программирование алгоритмов альтернативной
Программирование циклических алгоритмов.
обработки
данных.
Одномерные массивы. Поиск и сортировка элементов.
Поиск данных в одномерных массивах. Вставка, удаление, замена элементов
одномерного массива. Сортировка. Бинарный поиск. Решение задач с
использованием одномерных массивов.
Алгоритмы работы со строками.
Строковые величины. Операции и функции работы со строковыми
величинами. Решение задач с использованием строковых величин.
Двумерные массивы.
Двумерные массивы: заполнение массивов, поиск данных. Работа с
элементами двумерного массива. Заполнение массивов элементами согласно
рисунку или формуле. Вставка и удаление столбцов (строк).
9 класс
Повторение.
Составление циклических и разветвляющихся алгоритмов. Решение задач с
использованием массивов.
Пользовательские процедуры и функции.
Порядок организации пользовательских процедур и функций. Глобальные и
локальные, фактические и формальные параметры. Решение задач с
использованием пользовательских процедур и функций.
Алгоритмы целочисленной арифметики.
Поиск НОД и НОК. Разложение на простые множители. Поиск делителей
числа. Простые числа. Представление чисел. Выделение цифр числа. Перевод
чисел из одной системы счисления в другую. Действия с многозначными числами
(сложение, вычитание, умножение). Делимость многозначного числа. Решение
задач целочисленной арифметики с использованием пользовательских процедур и
функций.
Работа с файлами.
Текстовые и типизированные файлы. Процедуры и функции работы с
текстовыми и типизированными файлами. Программирование алгоритмов с
использованием файлов.
Решение геометрических задач.
Уравнение прямой, проходящей через две заданные точки, и способы его
записи. Размещение точек плоскости относительно прямой. Уравнение прямой,
проходящей через данную точку с данным углом наклона. Поиск коэффициентов
уравнения прямой.
Формула расчета расстояния между точками. Расстояние
от точки до прямой, как длина перпендикуляра. Нормальное уравнение прямой.
Понятие
контура
области.
Стороны
многоугольника.
Площадь
многоугольника. Понятие выпуклости многоугольника. Проверка выпуклости
многоугольника.
Решение
геометрических
задач
с
использованием
пользовательских процедур и функций.
10 класс
Повторение.
Составление циклических и разветвляющихся алгоритмов. Задачи на
использование массивов. Задачи на составление пользовательских процедур и
функций.
Рекурсия.
Понятие рекурсивного
рекурсивных алгоритмов.
алгоритма.
Решение
задач
на
составление
Методы решения переборных задач.
Реализация перебора вариантов. Сокращение перебора. Решение
переборных задач.
Рекуррентные уравнения и динамическое программирование.
Поиск решения задачи с использованием подзадач. Рекуррентные уравнения
и их программирование. Поиск решения задачи с помощью одномерной таблицы.
Поиск решения задачи с помощью двумерной таблицы. Решение задач.
Алгоритмы обработки записей.
Запись как структурированный тип данных. Способы описания записей.
Программирование алгоритмов с использованием записей.
11 класс
Повторение.
Задачи на использование пользовательских процедур и функций, файлов,
записей, массивов.
Множества.
Описание множеств. Основные операции над множествами.
Использование множеств при решении задач.
Задачи комбинаторики.
Перестановки. Сочетания. Размещения. Размещения с повторением.
Перестановки с повторением. Сочетания с повторением. Подмножества.
Элементы теории графов.
Понятие графа, основные определения, простейшие свойства, способы
задания. Поиск в ширину. Поиск в глубину. Топологическая сортировка.
Кратчайшие пути в графе. Эйлеров цикл в графе. Максимальный поток.
Графические возможности языка программирования.
Основные процедуры ввода графической информации: процедуры очистки
экрана, построение точки и отрезка. Процедуры построения прямоугольника, дуги
и окружности, эллипса. Вывод текста. Построение графиков функций. Работа с
цветом: процедуры установки и изменения цвета, закраска области. Структура
программ, осуществляющих движение рисунков.
Ожидаемые результаты
После успешного прохождения учебного материала учащиеся получат
представление:
 о методах алгоритмизации и программирования;
 о методах решения задач на языке программирования;
 об использовании комбинаторики, рекурсии, динамических переменных,
графов при решении различных задач;
Изучение данного курса предполагает:
 развитие алгоритмического мышления школьников;
 повышение творческой и исследовательской деятельности;
 повышение интереса учащихся к программированию.
Рекомендуемая литература
1. Ахо, А. Структуры данных и алгоритмы / А. Ахо, В. Хопкрафт, Д. Ульман. —
М.: Издательский дом «Вильямс», 2000. - 384 с.
2. Кормэн, Т. Х. Алгоритмы: построение и анализ / Т. Х. Кормэн, Ч. И. Лейзерсон,
Р. Л. Ривест. — М.: МЦНМО, 2000. — 960 с.
3. Котов, В. М. Информатика: методы алгоритмизации: 10-11 классы / В. М.
Котов, О. И. Мельников. — Мн.: Народная асвета, 2000. — 221 с.
4. Мельников, О. И. Занимательные задачи по теории графов: Учебно-метод.
пособие / О. И. Мельников. — Мн.: ТетраСистемс, 2001. — 144 с.
5. Окулов, С. М. Программирование в алгоритмах / С. М. Окулов. — М.: БИНОМ.
Лаборатория знаний, 2002. — 341 с.
6. Котов В. М. Информатика. Методы алгоритмизации
О. И. Мельников. — Мн.: Народная асвета, 2000. — 221 с.
/
В. М. Котов,
7. Окулов С. М. Основы программирования / С. М. Окулов. — М.: БИНОМ.
Лаборатория знаний, 2005. — 440 с.
8. Ф. В. Меньшиков. Олимпиадные задачи по программированию. – СПб.: Питер,
2006
Related documents
Download