Программа подготовки учащихся к олимпиадам по программированию

№57

Марат ХАСАНОВ,

учитель информатики и ИКТ высшей квалификационной категории IT-лицея КФУ, кандидат физико-математических наук

Олимпиады по программированию проводятся в России уже довольно-таки большое время. За этот период эти олимпиады обрели необходимые технические и правовые нормы.

Отличие олимпиады по информатике от олимпиад других предметов:

• техническая составляющая: проверка происходит автоматически, практически, исключен субъективный фактор;

• задание для всех параллелей V – XI классов одинаковые (пятиклассник должен владеть знаниями не ниже девятиклассника);

• курс предмета «Информатика и ИКТ» включает изучение теоретических знаний необходимых для сдачи ГИА (система счисления, количество и измерение информации, логика и логические основы компьютера), олимпиада только практические и это навык программирования. На обычных уроках  90% тем олимпиадной информатики не проходятся, многие из этих тем изучаются на профильных факультетах вузов, для ознакомления с ними необходимы дополнительные занятия.

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

Этапы программы подготовки к олимпиадам различного уровня:

 1. Выбор языка.

C/C++  – этот язык достаточно быстрый, имеет множество встроенных полезных функций (функция быстрой сортировки, бинарный поиск и т.п.). Также после соревнований, проходящих на сайте neerc.ifmo.ru/school, обычно бывают выложены решения задач на языке С/С++ и  знания С подобных языков помогает в них разобраться.

 2. Отбор учеников.

Отбираются ученики с математическими способностями:

• при поступление учащиеся тестируются по логике и математике;

• промежуточные тестирования по математике;

• участники олимпиад различного уровня по математике.

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

 3. Составление программ обучения (индивидуальных).

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

Для первого года обучения рекомендую следующие темы [2]:

  1. Арифметические операции.

2.                Условный оператор.

3.                Циклы.

4.                Массивы.

5.                Символы и строки.

6.                НОД, алгоритм Евклида.

7.                Рекурсивный перебор.

8.                Квадратичные сортировки.

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

10.            Основы динамического программирования.

11.            Стек, дек, очередь.

12.            Простые числа и разложение на множители.

13.            Проcтые графы.

14.            Поиск в ширину.

15.            Бинарный поиск (поиск делением пополам).

16.            Системы счисления. Двоичная система счисления.

17.            Два указателя.

18.            Основы поиска в глубину.

19.            Вычислительная геометрия.

Изучив все темы, у учеников появится ориентиры для решения олимпиадных задач, т. е. они смогут в случае возникновения проблем при решении задач самостоятельно определить конкретную тему, которую им необходимо доработать. Для самостоятельной подготовки рекомендую использовать сайты  e-maxx.ru,  codeforces.ru,  informatics.msk.ru, acmp.ru.

Так же на некоторых из выше перечисленных ресурсах можно самостоятельно пройти олимпиады в качестве тренировочных.