Учебно-тематический план к программе творческого

advertisement
Дополнение к программе творческого объединения программистов (2010 год)
Учебно-тематический план к программе творческого
объединения программистов
Пояснительная записка
Организация и особенности учебного процесса
Ввиду сложности занятия программированием, программа предназначена для учащихся старших классов: обучение на первом этапе целесообразно начинать 7-8 класса.
Освоить программу можно за 4–5 лет.
Всю программу условно, по степени сложности изучаемого материала и сложности
самостоятельных творческих работ выполняемых учащимися, можно разделить на три периода.
Первый период — это обучение теоретическим основам программирования и основам одного из языков программирования высокого уровня (Turbo Pascal). Этот период
длится год-полтора.
Второй период — это более углубленное изучение, как языка программирования,
так и методов решения сложных программистских задач. Начало второго периода характеризуется (или определяется) началом подготовки и участию в городской олимпиаде
школьников.
Третий период предназначен для учащихся показывающих достаточно высокий
уровень усвоения теоретического материала предыдущих уровней, и имеющих определенные навыки в составлении программ и включает темы способствующие подготовке
школьника к участию в олимпиадах областного и межрегионального уровня.
Деление на отдельные периоды условно, большое место занимает самостоятельная
практическая работа учеников, достаточный объём выполнения которой позволяет переходить к изучению более сложных тем. Большое влияние на учебный процесс и порядок
изучения тем оказывают конкретные массовые мероприятия, подготовка к которым занимает достаточно много времени, а сроки их проведения, зачастую, не известны в начале
учебного года.
Планирование учебного процесса — непрерывный процесс. Приведенный ниже
учебно-тематический план носит блочный характер и может служить основой, но обязательно должен корректироваться в зависимости от уровня общеобразовательной подготовки учащихся, возраста, личностных характеристик учащихся группы.
Для наиболее эффективной реализации программы необходимо:
 набирать для обучения детей ориентированных на изучение программирования, т.е., проводить вступительное испытание, позволяющее выявить способность
и стремление учащегося к решению нестандартных логических и математических
задач, ориентированных на участие в конкурсах и олимпиадах. (Предлагаемый по-
рядок проведения вступительного испытания, который был применён во время проведения набора в 2010 году приводится в Приложении);
 формировать группы учащихся по возрасту, что позволит корректировать
учебный план для каждой группы и учитывать уровень общеобразовательной подготовки учащихся при отборе учебного материала и составлении заданий;
 поддерживать высокий уровень мотивации для изучения программирования — решение сложных задач, проведение конкурсов и олимпиад программистов,
разработка «настоящих» программ, общение и обмен программистским опытом со
сверстниками из других учреждений (при проведении массовых мероприятий) и т.п.
Список тем (блоков)
Теоретические темы для начинающих
Системы счисления
Рассматриваются понятия: количество, число, цифра, система счисления и т.п.
Формируется понятие о позиционной системе счисления. На практике изучаются методы
перевода чисел из позиционной системы счисления в десятичную и обратно, из двоичной
в шестнадцатеричную и обратно, а, также, рассматривается выполнение арифметических
операций в двоичной системе счисления.
По итогам изучения данной темы учащиеся решают контрольную работу, предназначенную для проверки полученных навыков перевода чисел из одной системы в другую
и выполнения основных арифметических операций в двоичной системе счисления.
Булева алгебра
Рассматриваются основные логические операции, используемые в языках программирования (отрицание, дизъюнкция, конъюнкция, неравнозначность), основные тождества и теоремы булевой алгебры. Выполняются упражнения на составление, вычисление и
сокращение сложных логических выражений с использованием основных тождеств и теорем булевой алгебры.
По итогам изучения данной темы учащиеся выполняют контрольную работу.
Кодирование
Рассматривается представление основных видов информации (целых и вещественных чисел, символов, строк символов) в памяти компьютера на примере стандартных простых типов языка программирования Pascal. Рассматриваются такие понятия, как арифметическое переполнение, погрешность вычислений для чисел с плавающей запятой, адрес
ячейки памяти, адрес переменной, указатель.
По итогам изучения темы проводится проверочная работа (может быть проведена в
форме опроса).
Основы алгоритмов
Главная тема на начальном этапе освоения данной образовательной программы. В
результате изучения данной темы у учащихся формируются основы структурного алгоритмического мышления, начальные навыки построения алгоритмов решения задач.
Рассматриваются понятие алгоритма, основные свойства и особенности алгоритма,
основные принципы структурного кодирования, базовые алгоритмические блоки: последовательный алгоритм, развилки (полная и усечённая), циклы (с пред- и постусловием, с
параметром), вводится понятие вспомогательного алгоритма. Практическим итогом изучения данной темы являются блок-схемы решений задач на применение каждого из вышеперечисленных базовых алгоритмических блоков.
Язык программирования Pascal
Операторы
Данная тема является естественным продолжением темы «Алгоритмы». Учащийся,
умеющий изображать решение задачи в виде блок-схемы, переходит на новый язык записи алгоритмов — язык программирования высокого уровня.
Рассматриваются все простые и, практически, все структурные операторы языка.
Из структурных операторов два изучаются позднее: оператор выбора (так же как и конструкция else if) — он не требуется для выполнения упражнений начального уровня, и
оператор with, который будет рассматриваться при изучении типа данных запись.
Имеющие отношение к алгоритмической структуре программы процедуры Break,
Continue, Exit, Halt рассматриваются после получения учащимися некоторого практического опыта и изучения тем по работе с пользовательскими процедурами и функциями.
Структура программы
Рассматривается обобщённая структура программы на языке Паскаль. Вместе с темой «Операторы» позволяет за полтора-два занятия перейти от теории к практическому
выполнению упражнений на языке Паскаль.
Типы данных
Перечисляются все простые стандартные типы языка Паскаль, причём, большая
часть из них уже знакома учащимся по теме «Кодирование». Пользовательские типы
только называются, они будут подробно рассматриваться в дальнейшем при изучении
других тем. Повторяются порядковые типы данных.
Выражения, операции, приоритет операций
Перечисляются все операции языка Паскаль в порядке приоритета. Рассматривается порядок вычисления выражений, операция преобразования типов. Повторяются поразрядные логические операции.
Стандартные процедуры и функции для обработки данных простых типов
Перечисляется часть функций и процедур модуля System: математические, функции преобразования типов, функции и процедуры для работы с порядковыми типами.
Стандартные процедуры и функции для работы со строками
Рассматриваются все стандартные (для Turbo Pascal) процедуры и функции для обработки строк типа string. Выполняются практические упражнения.
Пользовательские процедуры и функции, передача параметров в процедуры и функции.
Вводится терминология, связанная с использованием процедур и функций: вызов,
определение, заголовок процедуры (функции), формальные и фактические параметры,
значение, возвращаемое функцией. Рассматривается синтаксис описания процедур и
функций. Подробно разбираются способы передачи параметров по значению и по ссылке.
Перечисляются другие варианты передачи параметров в Паскале: безтиповые параметры,
открытый массив, параметры-константы.
Массивы
Рассматривается синтаксис описания массивов, варианты указания типа индекса и
типа элементов, указываются типичные ошибки при работе с массивами: выход за пределы диапазона, превышение допустимого объёма памяти, используемой для хранения массива.
Выполняются базовые упражнения на обработку одномерных массивов: инициализация элементов массива, поиск максимума, обмен значений элементов массива.
Прямые методы сортировки, как пример упражнений на обработку массивов. Рассматриваются методы сортировки обменом, выбором и вставкой.
Рекурсия
Примеры задач, имеющих рекурсивное решение. Пример применения рекурсии —
быстрая сортировка (QuickSort).
Работа с текстовым файлом
Классификация файлов по логической структуре (текстовые, бинарные: типизированные и нетипизированные для Паскаля), по типу доступа к элементам файла (прямого,
или произвольного доступа, последовательного доступа), по уровню прав доступа к элементам файла (файлы только для чтения, только для записи, для чтения-записи).
Общий алгоритм работы с файлами. На примере работы с текстовым файлом рассматриваются процедуры открытия файла, чтения-записи данных, закрытия файла.
Множества
Рассматриваются операции с множествами (тип set of Паскаля): пересечение, объединение, принадлежность множеству и пр.
Указатели
Вводится понятие о динамически распределяемой памяти, о динамических переменных, рассматривается синтаксис работы с указателями, операция разыменования указателей, кратко указатели на процедуры и функции.
Совместимость и преобразование типов данных
Явное и неявное преобразование типов в выражениях, при присваивании, передаче
параметров в процедуры и функции.
Типизированный и нетипизированный файлы.
Работа с бинарными файлами.
Подготовка к теоретическому туру олимпиады по информатике
Рассматриваются наиболее часто встречавшиеся в теоретическом туре городских
олимпиад прошлых лет темы и задачи. Обычно рассматриваются такие темы:
 конечность алгоритма;
 методы анализа и доказательства правильности алгоритма, доказательство
по индукции, инвариант, доказательство от противного и т.п.;
 решение задач типа «Что делает данный алгоритм».
Подготовка к практическому туру олимпиады. Методы решения
олимпиадных задач
Данный блок условно можно разбить на две части: алгоритмы и структуры данных.
К первому пункту можно отнести такие темы как:
 рекурсия;
 сортировка;
 поиск;
 перебор и методы сокращения перебора;
 динамическое программирование, комбинаторика;
 операции «длинной» арифметики;
 вычислительная геометрия;
 жадный алгоритм;
 поиск стратегии в детерминированных играх;
 поиск по образцу;
 разбор выражений;
 конечные автоматы.
Ко второму:
 понятие абстрактных типов данных на примере таких структур как стек,
очередь, кольцевой список, двунаправленный список и т.п;
 различные способы реализации перечисленных структур, в т.ч. при помощи
динамических списков;
 деревья;
 куча (heap);
 хэш-таблицы;
 графы и т.д.
Download