Программа курса «МЕТОДЫ ПРОГРАММИРОВАНИЯ ДЛЯ РЕШЕНИЯ ОЛИМПИАДНЫХ ЗАДАЧ по информатике» 7-9 класс

Муниципальное бюджетное общеобразовательное учреждение
гимназия № 79




Утверждаю
Директор МБОУ гимназии № 79
____________Л.Н.Копцева

Приказ № от г.





Рабочая программа
КУРСА
"МЕТОДЫ ПРОГРАММИРОВАНИЯ ДЛЯ РЕШЕНИЯ
ОЛИМПИАДНЫХ ЗАДАЧ"



Авторы: учителя информатики
МБОУ гимназии № 79
Васильева Е.Г.
Ауст О.В.







Рассмотрено и одобрено на заседании
МО учителей математики и информатики
протокол № 1 от 31 .08. 2016 г.
Руководитель МО: Ауст О.В.

Согласовано
заместитель директора по УВР

_____________Ю.В.Пудова

« __» августа 2016 г.






г. Ульяновск
2016г.

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

ВВЕДЕНИЕ.

Предлагаемая вашему вниманию программа курса "Методы программирования для решения олимпиадных задач" была разработана в связи с необходимостью подготовки способных учащихся к олимпиадам по информатике. Чтобы решать олимпиадные задачи, необходимо не только быстро и логически мыслить, но и владеть специальными методами программирования, которые позволяют создавать оптимальные и эффективные программы. Количество часов, отводимое в школьном курсе информатики на раздел "Алгоритмизация и программирование", недостаточно для того, чтобы хотя бы ознакомить учащихся с этими методами. В связи с этим появилась идея привлечения способных учащихся к изучению данного курса.


ЦЕЛИ И ЗАДАЧИ КУРСА
"МЕТОДЫ ПРОГРАММИРОВАНИЯ ДЛЯ РЕШЕНИЯ
ОЛИМПИАДНЫХ ЗАДАЧ"

Программа курса "Методы программирования для решения олимпиадных задач" построена с учетом ФГОС ООО второго поколения по предмету «Информатика и ИКТ» с перспективой стандарта для старшей ступени школьного образования, а также на основе структуры современного содержания олимпиад по информатике.
Путь к наивысшим достижениям на олимпиадах по информатике является эволюционным и включает несколько этапов. Эти этапы органично отражены в современном Положении о Всероссийских олимпиадах школьников. Это школьный этап (точка входа в этот этап - 5-6 классы, диапазон участия 5-11 классы), муниципальный этап (точка входа в этот этап – 7-8 классы, диапазон участия 7-11 классы), региональный этап и заключительный этап (точки входа в эти этапы – 9 класс, диапазон участия 9-11 классы). При этом наивысшие достижения могут проявляться учениками на разных этапах олимпиады, однако следует учитывать, что сильнейшие учащиеся устойчиво показывают наивысшие достижения в группе 9-11 классов только в случае, если они использовали точку входа в олимпиады уже в 5-6 классах. Каждый из этапов характеризуется своим уровнем сложности. Постепенно осваивая каждый такой уровень и переходя с одного уровня на другой, ( только так можно подняться на вершину олимпиадной пирамиды и стать лучшим из лучших.

Цель курса "Методы программирования для решения олимпиадных задач" ( увлечь учащихся программированием, дать способным учащимся материал для работы и обеспечить качественное усвоение знаний о методах программирования для разработки и реализации эффективных и оптимальных алгоритмов решения задач повышенной сложности.
Программа рассчитана на трехлетнее изучение курса в объеме 105 часов:
1-ый год обучения ( 35 часов в год (1 час в неделю);
2-ой год обучения ( 35 часов в год (1 час в неделю);
3-ий год обучения ( 35 часов в год (1 час в неделю).

Предлагаемая программа ориентирована на учащихся, не владеющих основами программирования на каком-либо языке.

1 год обучения: Графические возможности PascalABC

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

Содержание курса


Тема
Всего
часов

1.
Знакомство с модулем GraphABC и его командами. Графические примитивы.
2

2.
Структура графической программы. Прямые линии. Прямоугольники.
4

3.
Графика. Окружность. Эллипс. Дуга.
2

4.
Графика. Закрашивание. Работа с цветом. Заливка. Стиль линий и заливки.
3

5.
Построение изображений с применением циклического алгоритма
3

6.
Построение графиков функций различной сложности
4

7.
Использование процедур для изображения объектов
4

8.
Рекурсивные объекты, их применение в графике. Дерево Пифагора.
4

9.
Анимация. Динамическая графика.
3

10.
Ознакомление с фрактальной графикой.
3

11.
Выполнение творческой зачётной работы.
3


1. Знакомство с модулем GraphАВС и его командами. Графические примитивы. Инициализация графического режима. Процедуры и функции библиотеки GraphABC. Составление простейших графических программ
2. Структура графической программы. Прямые линии. Пря-моугольники. Обобщение материала по изображению точек, линий, прямоугольников. Изучение новой, сокращённой формы оператора Line, практическая работа по отработке навыков составления графических программ
3. Графика. Окружность. Эллипс. Дуга.
Знакомство с новыми операторами CIRCLE, ELLIPSE, ARC. Практическая работа по отработке навыков составления графических программ.
4. Графика. Закрашивание. Работа с цветом. Заливка. Стиль линий и заливки. Иллюстрация основных возможностей при реализации геометрических образов. Использование в рисовании переменных величин. Практическая работа.
5. Построение изображений с применением циклического алгоритма. Решение графических задач, направленных на закрепление умений использования различных алгоритмических структур. Использование случайных величин при рисовании
6. Построение графиков функций различной сложности. Построение по заданному параметрическому представлению графиков функций: эпициклоиды, кардиоиды, астроиды, улитки Паскаля, строфоиды. Практическая работа.
7. Использование процедур для изображения объектов. Закрепление навыков использования подпрограмм, метода последовательной детализации в применении к построению графических объектов.
8. Рекурсивные объекты, их применение в графике. Ввод понятия рекурсии, его детальное изучение, рассмотрение примеров готовых программ. Реализация рекурсии в графической программе на построение дерева Пифагора. Практическая работа.
9. Анимация. Динамическая графика. Создание на экране компьютера эффекта движения объектов, расчёт изменение координат движущихся объектов. Выполнение практической работы на закрепление имитации движения.
10. Ознакомление с фрактальной графикой. Фракталы, примеры программ. Создание программы по этапам: постановка задачи. Программирование по методу «сверху вниз». Работа над структурой программы. Запись программы целиком
11. Выполнение творческой зачётной работы. Включает в себя обобщение и применение всех полученных знаний по графическим возможностям языка программирования ПаскальАВС.



Тема
Всего
часов
В том числе
Формы контроля




лекции
практика


1
Знакомство с модулем GraphAВC и его командами Графические примитивы.
1
0,7
0,3
Самостоятельная работа

2-3
Структура графической программы. Прямые линии. Прямоугольники
2
0,5
1,5
практикум

4-5
Структура графической программы. Прямые линии. Прямоугольники
2
0,5
1,5
практикум

6-7
Графика. Окружность. Эллипс.
2
0,5
1,5
практикум

8-9
Графика. Закрашивание. Работа с цветом. Заливка. Стиль линий и заливки.
2
0,5
1,5
практикум

10
12
Построение изображений с применением циклического алгоритма
3
0,5
2,5
практикум

13
14
Построение изображений с применением циклического алгоритма
2
0,5
1,5
практикум

15
16
Построение графиков функций различной сложности
2
0,5
1,5
практикум

17
18
Построение графиков функций различной сложности
2
0,5
1,5
практикум

19
20
Использование процедур для изображения объектов
2
0,5
1,5
практикум

21
22
Рекурсивные объекты, их применение в графике. Дерево Пифагора.
2
0,5
1,5
практикум

23
24
Рекурсивные объекты, их применение в графике. Дерево Пифагора.
2
0,3
1,7
практикум

25
27
Анимация. Динамическая графика.
3
0,5
2,5
практикум

28
29
Анимация. Динамическая графика.
2
0,5
1,5
практикум

30
32
Ознакомление с фрактальной графикой.
3
0,7
2,3
практикум

33
35
Выполнение творческой зачётной работы.
3

3
зачёт


Основной тип занятий – практикум.
Важной составляющей каждого урока является самостоятельная работа учащихся. Теоретическая и практическая части курса изучаются параллельно, чтобы сразу же закреплять теоретические вопросы на практике.
Планируемые результаты курса
Ученик научится:
составлять и записывать алгоритмы для построения графических изображений с использованием базовых алгоритмических конструкций.
применять основные процедуры библиотеки GraphАВС;
использовать при решении задач различные способы организации графических данных
осуществлять отладку и тестирование программы.

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

Форма контроля за уровнем достижения учащихся
Предметом диагностики и контроля являются составленные алгоритмы и программы на языке программирования Pascal к предложенным задачам. Оценка имеет различные способы выражения - устные суждения педагога, письменные качественные характеристики, систематизированные по заданным параметрам аналитические данные, в том числе и рейтинги.
Оценке подлежит в первую очередь уровень достижения учеников минимально необходимых результатов, обозначенных в целях и задачах курса.
Качество знаний и умений ученика оценивается следующими характеристиками:
знание основных алгоритмических конструкций и процедур модуля Graph ABC;
умение составить и записать алгоритм построения графических объектов с использованием соответствующей алгоритмической конструкции;
умение тестировать программу.
В течение всего курса проводятся практические работы и выставляются баллы за решенные задачи. По окончании курса проводится итоговая творческая работа.
2 год обучения. Задания повышенного уровня сложности по информатике
По сравнению с другими дисциплинами школьного курса, олимпиадная информатика имеет ряд своих особенностей. А именно:
- задачи по информатике находятся на стыке нескольких дисциплин;
- учащиеся разного возраста решают одни и те же задачи;
- виртуозное знание языка программирования не является гарантом успешного выступления (даже на олимпиаде муниципального уровня).
Класс олимпиадных задач этого уровня имеет свою специфику. Здесь не обязательно виртуозно владеть техникой программирования на каком-либо из языков. Олимпиадные задачи составлены таким образом, что главным является нахождение оригинальной идеи решения, а технически такие задачи решаются достаточно просто (линейный алгоритм или вложенные циклы), даже без использования массивов. Эту основную идею применяют на начальном этапе подготовки школьников среднего звена.
После знакомства с основными структурами программирования основное направление – решение большого количества интересных логических задач, которые облечены в форму какого-либо игрового интерактивного пособия. Когда задача оживает и превращается в увлекательную компьютерную игру, повышается интерес учащихся к программированию.

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

Содержание курса


Тема
Всего
часов

1.
Основы ввода-вывода. Типы переменных, операции, выражения. Практическая работа№1. Обмен значений переменных.
2

2.
Файловый ввод-вывод, используемый в программах.
2

3.
Этапы решения олимпиадной задачи: формализация условия задачи, выбор метода решения задачи.
2

4.
Основные конструкции программирования. Ветвление. Практическая работа№2. Условия на четность, на кратность числу К, на принадлежность отрезку.
2

5.
Основные конструкции программирования. Ветвление. Вложенные ветвления. Практическая работа№3 Задача "Рация и чемодан"
2

6.
Задача на обработку цифр числа. Практическая работа№4 Задача «Два натуральных числа»
2

7.
Основные конструкции программирования. Ветвление. Вложенные ветвления. Практическая работа№5. Задача «Автобусы».
2

8.
Основные конструкции программирования. Циклы с параметрами. Практическая работа№6. Ввод цепочки чисел и вычисление наибольшего.
2

9.
Основные конструкции программирования. Циклы с параметрами. Практическая работа№7. Ввод цепочки чисел. Вычисление суммы и произведения чисел.
2

10.
Основные конструкции программирования. Циклы с условием. Практическая работа№8 Задача о количестве автомобилей
2

11.
Основные конструкции программирования. Циклы с условием. Практическая работа№9 Задача "Кока-кола"
2

12.
Основные конструкции программирования. Циклы с условием. Вычисление НОД и НОК. Практическая работа№10 Сумма простых дробей.
2

13.
Основные структуры данных. Строки. Практическая работа№11 "Задача стрелки"
2

14.
Основные структуры данных. Строки. Практическая работа№12 "Задача нули"
2

15.
Основные структуры данных. Строки. Практическая работа№13. Кодирование строки
2

16.
Итоговая работа
2

17.
Резерв
2


Основной тип занятий – практикум
Важной составляющей каждого урока является самостоятельная работа учащихся. Теоретическая и практическая части курса изучаются параллельно, чтобы сразу же закреплять теоретические вопросы на практике.
Разработка и отладка программы - творческий процесс, который требует знания возможных ошибок в написании программ, умения их «отлавливать», понимания многих тонкостей программирования.
На практических занятиях разбирается способ решения задач по изучаемой теме, в некоторых случаях на доске выписывается блок-схема одной из задач или наиболее интересный фрагмент программы. Большая часть практических занятий уходит на проверку и отладку написанных программ. Эта часть работы построена на индивидуальной работе учителя с учеником.

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

Планируемые результаты курса
Ученик научится:
по данному алгоритму определять, для решения какой задачи он предназначен;
различать различные типы данных, уметь их обрабатывать;
осуществлять отладку и тестирование программы на языке ПаскальABC.NET.

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

Форма контроля за уровнем достижения учащихся
Оценка качества освоения учащимися данного курса включает входной, текущий, рубежный контроль успеваемости.
Входной контроль определяет актуальный уровень знаний, необходимый для продолжения обучения, а также намечает «зону ближайшего развития» предметных и метапредметных знаний и умений, организует коррекционную работу в зоне актуальных знаний.
Текущий контроль осуществляется учителем на каждом занятии по итогам выполнения практических, а также диагностических работ.
Рубежный контроль проводится в конце четверти, учебного года.
Качество освоения учащимися данного курса оценивается следующими характеристиками:
знание основных алгоритмических конструкций языка Паскаль;
умение составить и записать алгоритм решения задачи с использованием соответствующей алгоритмической конструкции;
умение по данному алгоритму определять, для решения какой задачи он предназначен;
умение различать различные типы данных, уметь их обрабатывать;
осуществлять отладку и тестирование программы на языке ПаскальABC.NET.
По окончании курса проводится итоговая творческая работа.
3 год. Методы программирования для решения олимпиадных задач
Данный раздел является для олимпиад по информатике очень важным и определяет основу продуктивной деятельности школьников, их творческого самовыражения. Именно в этой области информатики участники олимпиады имеют возможность продемонстрировать свои лучшие творческие качества при решении олимпиадных заданий.
Фактическая ценность любой программы или программной системы зависит от двух факторов: применяемых в ней алгоритмов и эффективности их реализации на различных ее уровнях. Поэтому разработка хорошего алгоритма имеет решающее значение для производительности любой программной системы. Кроме того, изучение алгоритмов позволяет более глубоко вникнуть в задачу и может подсказать методы решения, не зависящие от языка программирования, парадигмы программирования, аппаратного обеспечения и других аспектов реализации.
Изучение теории алгоритмов помогает развивать у школьников способность выбирать алгоритм, наиболее подходящий для решения данной задачи, или доказать, что такого алгоритма не существует. Эта способность
должна основываться на знании класса алгоритмов, которые предназначены для решения определенного набора известных задач, понимании их сильных и слабых сторон, применимости различных алгоритмов в заданном контексте с оценкой его эффективности.
Задача данного курса заключается в том, чтобы помочь учащимся в поиске оптимальных алгоритмов для решения сложных задач и привлечь их к участию в олимпиадах по информатике.

СОДЕРЖАНИЕ КУРСА.
№ п/п
Тема
Кол-во часов


Методы перебора вариантов.
3


Методы работы со случайными числами
2


Рекурсия
3


Занимательные задачи кибернетики
3


Некоторые численные методы
3


Методы поиска эффективных алгоритмов
2


Управление таблицами
3


Методы сортировки
3


Структуры данных
3


Структурное программирование
2


Стиль программирования
2


Доказательство правильности программ
2


Итоговая работа
2


Резерв
2


1. Методы перебора вариантов.
1.1. Вычислительные задачи, использующие свойства натуральных чисел.
Нахождение НОД и НОК. Треугольник Паскаля. Пифагоровы тройки. Простые числа. Решето Эратосфена. Совершенные числа. Числа палиндромы, Мерсена, Армстронга, Фибоначчи. Несократимые дроби. Цепные дроби.

1.2. Перебор.
Алгоритм перебора вариантов на примере задачи о восьми ферзях. Улучшение алгоритма. Сокращение вариантов. Применение алгоритма перебора вариантов для решения других задач.

1.3. Игровые задачи.
Игры: "Семь лунок", "Прыгающие шарики", "Пятнадцать", "Расстановка трех чисел", "Расстановка девяти чисел".

2. Методы работы со случайными числами.

2.1. Элементы комбинаторики.
Размещения с повторениями. Перестановки. Подмножества. Разбиения.

2.2. Игровые задачи.
Игровые задачи на обработку случайных чисел (кроссворды, шахматные задачи, игральные кости, карточные игры и др.).

3. Рекурсия.
Рекурсивные определения и рекурсивные программы. Свойства рекурсивных алгоритмов. Игра "Ханойская башня". Численные задачи. Сортировка. Восходящее рекурсивное вычисление. Алгоритм последовательных испытаний. Рекурсивная форма.

4. Занимательные задачи кибернетики.
Задачи "Артиллерист и пехотинец", "Тройственная дуэль", "Справедливый дележ", "Выбор шара", "Удивительное рядом" и др.

5. Некоторые численные методы.
Вычисление определителя методом триангуляции. Решение уравнений методами итераций, половинного деления, Ньютона, хорд. Решение систем уравнений: метод Гаусса, метод Зейделя.

6. Методы поиска эффективных алгоритмов.
"Разделяй и властвуй". Уравновешивание. Компиляция и интерпретация.

7. Управление таблицами.

7.1. Последовательная неупорядоченная таблица.
Представления. Алгоритмы поиска. Алгоритм включения.

7.2. Упорядоченная последовательная таблица.
Последовательный поиск в упорядоченной таблице. Последовательное включение. Дихотомический поиск.
7.3. Двоичное дерево поиска.
Метод. Равновесные двоичные деревья.

8. Методы сортировки.
Сортировка включением: простое включение, метод Шелла. Сортировка обменами: быстрая сортировка, пузырьковая сортировка. Сортировка слиянием. Сортировка извлечением: древесная сортировка. Сортировка распределением.

9. Структуры данных.
Множества, стеки, файлы, списки, деревья, двоичные деревья ( логическое описание, физическое представление. Решение задач на использование различных структур данных.

10. Структурное программирование.

10.1. Нисходящая разработка.
Модульность. Нисходящее проектирование программ. Планирование. Детализация. Управляющие структуры.
10.2. Пошаговая детализация.
Правила детализации. Сегментирование. Сквозной структурный контроль. Тестирование.

11. Стиль программирования.
11.1. Читаемость программы.
Стандартизация стиля. Комментарии. Выбор имен. Размещение операторов.

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

11.3. Отладка программы.
Виды отладки. Обнаружение ошибок. Средства отладки.

11.4. Тестирование программы.
Методы тестирования. Тестовые данные. Примеры тестов. Модули. Средства тестирования.

12. Доказательство правильности программ.
Правильность программы. Доказательства: их роль и границы. Сравнение с традиционными методами. Средства диагностики при выполнении.

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

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

Планируемые результаты курса
Ученик научится:
анализировать и объяснять изученные методы, обосновывать выбор того или иного метода для решения данной задачи;
использовать изученные методы в процессе решения базовых задач;
различать основные алгоритмы сортировки и поиска;
понимать принципы структурного программирования, стиля программирования.

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

Форма контроля за уровнем достижения учащихся
Оценка качества освоения учащимися данного курса включает входной, текущий, рубежный контроль успеваемости.
Входной контроль определяет актуальный уровень знаний, необходимый для продолжения обучения, а также намечает «зону ближайшего развития» предметных и метапредметных знаний и умений, организует коррекционную работу в зоне актуальных знаний.
Текущий контроль осуществляется учителем на каждом занятии по итогам выполнения практических, а также диагностических работ.
Рубежный контроль проводится в конце четверти, учебного года.
Качество освоения учащимися данного курса оценивается следующими характеристиками:
умение анализировать и объяснять изученные методы, обосновывать выбор того или иного метода для решения данной задачи;
умение использовать изученные методы в процессе решения базовых задач;
умение различать основные алгоритмы сортировки и поиска;
понимание принципов структурного программирования, стиля программирования.
По окончании курса проводится итоговая творческая работа.
Список рекомендуемой литературы для олимпиадной подготовки по информатике

Алексеев А.В., Беляев С.Н. Подготовка школьников к олимпиадам по информатике с использованием веб-сайта: учебно-методическое пособие для учащихся 7-11 классов. – Ханты-Мансийск: РИО ИРО, 2008. – 284 с.
Андреева Е.В., Босова Л.Л., Фалина И.Н. Математические основы информатики. Элективный курс: Учебное пособие. – М.: БИНОМ. Лаборатория Знаний, 2007. – 312 с.
Арсак Ж. Программирование игр и головоломок. – М.: Наука, 1990. – 224 с.
Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. Пер. с англ. М.: Мир, 1979. 536 с.
Бентли Д. Жемчужины творчества программистов: пер. с англ. – М.: Радио и связь, 1990. – 224 с.
Босова Л.Л., Босова А.Ю., Коломенская Ю.Г. Занимательные задачи по информатике. – М.: БИНОМ. Лаборатория знаний. 2007. – 119 с.
Брудно А.Л., Каплан Л.И. Московские олимпиады по программированию/ Под ред. акад. Б.Н. Наумова.- 2-е изд., доп. и пераб. – М.: Наука, гл. ред. физ.-мат. лит., 1990. – 208 с.
Великович Л.С., Цветкова М.С. Программирование для начинающих. – М.: БИНОМ. Лаборатория знаний. 2007. – 287 с.
Волчёнков С.Г., Корнилов П.А., Белов Ю.А. и др. Ярославские олимпиады по информатике. Сборник задач с решениями. – М.: БИНОМ. Лаборатория знаний. 2010. – 405 с.
Долинский М.С. Алгоритмизация и программирование на Turbo Pascal: от простых до олимпиадных задач: Учебное пособие. – СПб.: Питер Принт, 2004. – 240 с.
Задачи по программированию /С.М. Окулов, Т.В. Ашихмина, Н.А. Бушмелева и др.; Под ред. С.М. Окулова. – М.: БИНОМ. Лаборатория знаний, 2006. – 820 с.
Златопольский Д.М. Программирование: типовые задачи, алгоритмы, методы. – М.: БИНОМ. Лаборатория знаний, 2007. – 223 с.
Иванов С.Ю., Кирюхин В.М., Окулов С. М. Методика анализа сложных задач по информатике: от простого к сложному // Информатика и образование. 2006. №10. С. 21 – 32.
Кирюхин В.М. Всероссийская олимпиада школьников по информатике. М.: АПК и ППРО, 2005. –212 с.
Кирюхин В.М. Информатика. Всероссийские олимпиады. Выпуск 1. – М.: Просвещение, 2008. – 220 с. – (Пять колец).
Кирюхин В.М. Информатика. Всероссийские олимпиады. Выпуск 2. – М.: Просвещение, 2009. – 222 с. – (Пять колец).
Кирюхин В.М. Информатика. Всероссийские олимпиады. Выпуск 3. – М.: Просвещение, 2010. – 201 с. – (Пять колец).
Кирюхин В.М. Информатика. Международные олимпиады. Выпуск 1. – М.: Просвещение, 2009. – 239 с. – (Пять колец).
Кирюхин В.М., Окулов С. М. Методика анализа сложных задач по информатике // Информатика и образование. 2006. №4. С. 42 – 54.
Кирюхин В.М., Окулов С. М. Методика анализа сложных задач по информатике // Информатика и образование. 2006. №5. С. 29 – 41.
Кирюхин В.М., Окулов С. М. Методика решения задач по информатике. Международные олимпиады. – М.: БИНОМ. Лаборатория знаний, 2007. – 600 с.
Кирюхин В.М., Цветкова М.С. Всероссийская олимпиада школьников по информатике в 2006 году. – М.: АПК и ППРО, 2006. – 152 с.
Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. – М.: МЦНМО, 1999. – 960с.
Меньшиков Ф.В. Олимпиадные задачи по программированию. – СПб.: Питер, 2006. – 315 с.
Московские олимпиады по информатике. 2002 – 2009. / Под ред. Е.В. Андреевой, В.М. Гуровица и В.А. Матюхина. – М.: МЦНМО, 2009. – 414 с.
Окулов С.М. Основы программирования. – М.: БИНОМ. Лаборатория знаний, 2005. – 440 с.
Окулов С.М. Программирование в алгоритмах. – М.: БИНОМ. Лаборатория знаний. 2002. – 341 с.
Окулов С.М. Дискретная математика. Теория и практика решения задач по информатике: учебное пособие. – М.: БИНОМ. Лаборатория знаний. 2008. – 422 с.
Окулов С.М. Алгоритмы обработки строк: учебное пособие. – М.: БИНОМ. Лаборатория знаний, 2009. – 255 с.
Окулов С.М., Лялин А.В. Ханойские башни. – М.: БИНОМ. Лаборатория знаний. 2008. – 245 с. (Развитие интеллекта школьников).
Пинаев В.Н. Олимпиадные задачи по программированию: Учебное пособие / РГАТА. – Рыбинск, 1997. – 41 с.
Просветов Г.И. Дискретная математика: задачи и решения: учебное пособие. – М.: БИНОМ. Лаборатория знаний. 2008. – 222 с.
Пупышев В.В. 128 задач по началам программирования. – М.: БИНОМ. Лаборатория знаний. 2009. – 167 с.
Рейнгольд Э. Комбинаторные алгоритмы: теория и практика / Э. Рейнгольд, Ю. Нивергельт, Н. Део. – М.: Мир, 1980. – 476 с.
Скиена С.С., Ревилла М.А. Олимпиадные задачи по программированию. Руководство по подготовке к соревнованиям. – М.: Кудиц-образ, 2005. – 416 с.
Столяр С.Е., Владыкин А.А.. Информатика. Представление данных и алгоритмы. – СПб.: Невский Диалект; М.: БИНОМ. Лаборатория знаний. 2007. –382 с.
Сулейманов Р.Р. Организация внеклассной работы в школьном клубе программистов: методическое пособие. – М.: БИНОМ. Лаборатория знаний. 2010. – 255 с.
Уэзерелл Ч. Этюды для программистов. – М.: Мир, 1982. – 288 с.
Шень А. Программирование: теоремы и задачи. – М.:МЦНМО, 1995. – 264 с.

Электронные ссылки
Сайт Методического центра олимпиадной информатики:
http://metodist.lbz.ru/lections/6/
Портал Всероссийской олимпиады школьников:
http://www.rosolymp.ru/
Сайт с архивом олимпиадных задач:
http://old.rosolymp.ru/
Заголовок 1 Заголовок 3HYPER15Основной шрифт абзаца

Приложенные файлы

  • doc speckurs7-9
    Размер файла: 182 kB Загрузок: 0

Добавить комментарий