Муниципальное бюджетное образовательное учреждение средняя общеобразовательная школа № 27 имени Э.А. Хиля города Смоленска «Рассмотрено» «Согласовано» «Утверждаю» Руководитель ШМО _____________ _______________ ФИО Протокол № ___ от «__» __________20___г. Председатель Методического совета МБОУ СОШ № 27 _____________ _________________ ФИО Протокол № _______________ от «__»____________20___г. Директор МБОУ СОШ № 27 _____________ ______________ ФИО Приказ № _____ от «__»_________20___г. М.П. ПРОГРАММА КРУЖКА ПРОГРАММИРОВАНИЕ ___________________10- 11 класс________________ класс _______________Зенчук Ирина Валерьевна_______ ФИО руководителя ___________________2014 - 2015_________________ учебный год Пояснительная записка. В существующем стандарте общеобразовательного курса информатики количество уроков программирования сокращается. Вместе с тем упражнения по программированию направлены на формирование алгоритмического мышления, что является одной из приоритетных задач базового курса информатики. К тому же велик интерес самих детей к данному разделу информатики. Основная цель этого курса – развитие мышление ученика: от алгоритмического к структурному, а затем к эвристическому. Алгоритмический стиль мышления – это умение написать алгоритм, план будущей деятельности (модель деятельности), записанный в заранее выбранной формальной системе обозначений с ограниченными возможностями. Умение «расчленять» задачу, «разделять» ее на более простые задачи называют структурным стилем мышления. Здесь важно уметь выделить из каких элементов состоит структура и как связаны элементы между собой. Умение находить истину, доказывать факт правильности решения задачи – это эвристический стиль мышления. Программа курса рассчитана на 68 часов ( 34 часа в 10-ом классе и 34 часов в 11 классе) и состоит из 2-х разделов: « Основы программирования» и «Решение олимпиадных задач» .В 10-ом классе ученики углубленно изучают язык Turbo Pascal, изучают основные базовые алгоритмы. В 11-ом классе изучается раздел «Решение олимпиадных задач» 9 класс « Основы программирования» (34 часа) Содержание курса 1) Основные управляющие конструкции (13) Понятия исполнитель, алгоритм, программа. Свойства алгоритма. Линейные алгоритмы. Циклические алгоритмы. Разветвляющиеся алгоритмы. Представление алгоритма в виде блок-схемы. Перевод алгоритма в программу. Основные типы данных. Операторы ввода, вывода, вычисления, ветвления, циклов. Учащиеся должны знать: назначение алгоритма и его определение; типовые конструкции алгоритма; представление алгоритма в виде блок-схемы; основные операторы языка Turbo Pascal. Учащиеся должны уметь: составлять алгоритмы различных задач в виде блок-схем; использовать основные операторы и функции языка Turbo Pascal; составлять программы, основанные на основных конструкциях языка Turbo Pascal. 2) Процедуры и функции – элементы структуризации программ (4 часа) Понятие подпрограммы. Объявление процедур и функций, параметры, передаваемые в процедуру и функцию. Использование процедур и функций в программировании. Учащиеся должны знать: понятие подпрограммы, виды подпрограмм; способы задания процедур и функций; способы передачи параметров в процедуры и функции. Учащиеся должны уметь: создавать процедуры и функции, передавать параметры в них, получать значения из них; использовать процедуры и функции при написании программ. 3) Массив – фундаментальная структура данных (9 часов) Одномерные массивы. Двумерные массивы. Методы задания массива, работа с элементами массива, методы сортировки. Использование массивов при решении задач Учащиеся должны знать: понятия одномерного и двумерного массива; методы задания массива; методы работы с элементами массива; методы сортировки массива. Учащиеся должны уметь: задавать одномерные и двумерные массивы; заполнять массивы по формуле, с клавиатуры и случайным образом; обращаться к элементам массива; сортировать массив; осуществлять поиск в массиве. 4) Работа со строковыми величинами (4 часа) Объявление символьных переменных, операция конкатенации строк, функции и операторы для работы с символьными переменными. Понятие текстового файла. Методы записи и чтения из текстового файла Учащиеся должны знать: как задать строковую переменную; основные операции и функции для строковых переменных; понятие текстового файла; операторы и функции для записи в файл и чтения из файла. Учащиеся должны уметь: задать строковую переменную ; использовать операторы и функции строковых переменных при решении задач; создавать текстовые файлы, записывать в них информацию и читать информацию из файла. 5) Работа с графическими функциями (4 часа) Основные операторы графики, оператора макрографики. Учащиеся должны знать: основные операторы и функции работы с графикой; операторы работы с макрографикой; операторы сохранения части экрана в памяти и вывод сохраненного на экран. Учащиеся должны уметь: создавать рисунок из задания простейших фигур; создавать мультики, используя операторы графики Turbo Pascal. 11 класс «Решение олимпиадных задач» (34 часа) Содержание курса 1) Рекурсия (9 часов) Понятие рекурсии, задание рекурсивных функций и процедур. Примеры использования рекурсии в различных ситуациях Учащиеся должны знать: понятие рекурсии; способы задания рекурсии. Учащиеся должны уметь: объяснить принцип работы рекурсивной процедуры или функции; создать рекурсию; пошагово проверить ее работу; использовать рекурсию при решении задач. 2) Комбинаторные задачи (8 часов) Классические задачи комбинаторики (перестановки, размещения, сочетания, размещение с повторениями, перестановки с повторениями, сочетания с повторением, разбиения). Генерация комбинаторных объектов (перестановок, размещений, сочетаний, разбиений). Использование комбинаторных задач при решении задач программирования Учащиеся должны знать: основные понятия комбинаторики (множество, подмножество, отношение порядка, лексикографический порядок); правило умножения и сложения в комбинаторике; классические задачи комбинаторики (перестановки, размещения, сочетания, размещение с повторениями, перестановки с повторениями, сочетания с повторением, разбиения); алгоритмы реализации основных задач комбинаторики. Учащиеся должны уметь: решать задачи, основанные на классических задачах комбинаторики; записывать алгоритмы решения основных задач комбинаторики; применять знания при решении задач, сводимых к классическим задачам комбинаторики. 3) Динамические структуры (6 часов) Списки, списки переменного размера. Очередь, стек. Работа с очередями и стеками (задание, добавление элементов, извлечение элементов) Учащиеся должны знать: понятие списка, очереди, стека; способы задания списков и списков переменного размера; способ задания очереди, методы работы с элементами очереди; способ задание стека, методы работы с элементами стека. Учащиеся должны уметь: создавать списки и списки переменного размера; реализовывать алгоритмы задания очереди и стека, алгоритмы работы с их элементами. 4) Перебор и методы его сокращения (5 часов) Переборы с возвратом. Задачи для разбора общей схемы перебора. Динамическое программирование. Метод ветвей и границ. Метод «решета» Учащиеся должны знать: алгоритмы перебора с возвратом; алгоритм метода ветвей и границ; алгоритм «решета». Учащиеся должны уметь: реализовывать алгоритмы перебора с возвратом, метода ветвей и границ, метода «решета». 5) Алгоритмы на графах (6 часов) Понятие графа. Представление графа в памяти компьютера. Поиск в графе (поиск в глубину и в ширину). Связность. Учащиеся должны знать: понятие графа; алгоритмы представления графов; алгоритмы поиска в графе. Учащиеся должны уметь: задавать граф; реализовывать алгоритмы поиска в графе. Тематическое планирование 10 класс (34 часа) « Основы программирования» № п/п Тема Основные управляющие конструкции (13 часов) 1 Понятие исполнитель, алгоритм, программа 2 Составление блок-схем алгоритма 3 Первая программа. Операторы присвоения, ввода, вывода Типы данных. Объявление переменной. 4 Логический тип данных. Логические операции 5 Составной оператор If 6 Оператор For 7 Оператор While 8 Вложенные циклы Процедуры и функции – элементы структуризации программ (4 часа) 9 Процедуры 10 Функции Массив – фундаментальная структура данных (9 часов) 12 Одномерные массивы 13 Методы работы с элементами одномерного массива 14 Методы сортировки 15 Двумерные массивы 16 Двумерные массивы. Работа с элементами 17 Множественные типы данных Работа со строковыми величинами ( 4 часа) 18 Символьный тип данных. Основные функции для работы с символьными величинами 19 Методы обработки текста 20 Текстовые файлы Работа с графическими функциями ( 4 часа) 21 Основные графические функции и операторы 22 Создание изображений 23 Создание анимации. Мультики Кол-во часов 1 2 1 1 2 2 2 2 2 2 1 1 2 1 2 2 1 1 2 1 1 2 Тематическое планирование 11 класс (34 часа) «Решение олимпиадных задач» № п/п Тема Рекурсия (9 часов) 1 Повторение основных управляющих конструкций 2 Повторение темы массивы 3 Повторение темы процедуры и функции 4 Рекурсия 5 Рекурсивные функции 6 Разбор задачи «Ханойские башни» 7 Самостоятельная работа учащихся по теме Комбинаторные задачи (8 часов) 8 Комбинаторика 9 Перестановки 10 Размещения 11 Сочетания 12 Решение олимпиадных задач на комбинаторику Динамические структуры ( 6 часов) 13 Динамические структуры данных 14 Стек 15 Очередь Перебор и методы его сокращения (5 часов) 16 Перебор с возвратом 17 Решение задач на перебор 18 Динамическое программирование Алгоритмы на графах (6 часов) 19 Представление графа в памяти компьютера 20 Поиск в графе 21 Связность 22 Кратчайшие пути Кол-во часов 1 1 1 1 2 1 2 1 1 2 2 2 2 2 2 1 2 2 1 2 1 2 Используемая литература: 1) Милов А.В. Основы программирования в задачах и примерах/ А.В. Милов. - Харьков: ООО «Фолио», 2002. – С. 392 2) Окулов С.М. Основы программирования / С.М. Окулов. – М.: БИНОМ. Лаборатория знаний, 2004. – С. 424, ил. 3) Окулов С.М. Программирование в алгоритмах/ С.М. Окулов. – М.: БИНОМ. Лаборатория знаний, 2004. – С. 424, ил.