Публичное представление собственного инновационного педагогического опыта
учителя информатики МБОУ «Покровская СОШ №3-ОЦ с УИОП» Хангаласского района Республики Саха (Якутия)
Соловьевой Ирины Васильевны
на тему «Подготовка учеников к олимпиаде по программированию»
«Наибольшего успеха добивается тот,
кто располагает лучшей информацией»
Б. Дизраэли
Тема над которой я начала работать, интересовала давно и низкий уровень выступления учеников нашего района на региональных этапах олимпиад по информатике (программированию) очень удручал и заставил задуматься над этой проблемой глубже.
Актуальность и перспективность опыта:
Так как в школьной информатике программированию выделено мало часов и во многих рабочих программах они стоят в последних четвертях, то проблема подготовки детей-олимпиадников стоит очень остро. Так как школьные и муниципальные этапы проходят еще до новогодних каникул.
Так же теперь перед учениками стоит выбор языка программирования. Так как большинство учителей в нашем районе или сильно отдалены от центра или пожилого возраста, многие дети вообще смотрят на программы, как на «рисунки». Не говоря уже о разнообразии языков программирования.
Ни на уроках информатики, ни на дополнительных занятиях типа: «Робототехника», «Графический дизайн» или «Разработка приложений» дети не научаться олимпиадному программированию. Хотя в этих занятиях и есть свой толк. Так как сфера применения информационных технологий очень широка предмет распылен по всем областям, поэтому требует дополнительных занятий. И иногда даже непонятно, почему на олимпиадах по информатике одно программирование.
Задачей учителя для решения этой проблемы является выявление одаренных учеников и создание отдельных групп для занятий.
Как же выявить этих детей?
Я делаю отбор детей обычно в 5-6 классе, путем решения логических задач и программированием в среде Robowin. По наблюдениям из подгруппы, состоящей из 10 выявляется 1-3 ученика.
Теоретический опыт:
В первую очередь надо выбрать язык программирования. Самые популярные варианты C+, Python, Java, Pascal. Python, который часто используется на олимпиадах, очень многих школьников учат ему, но он является интерпретатором и на нем нельзя решить все задачи, потому что он медленный. Если дети изучают Python, это поможет решить несколько простых задач, например, задачи с длинной арифметикой.
Начинать лучше с базовых алгоритмов, например, алгоритм сортировки, двоичный поиск, понятие о динамическом программировании. При подготовке важно уделять внимание самым разным темам и быть готовым ко всему. Например, если на олимпиаде дают восемь задач, то скорее всего все восемь задач будут на разную тематику. Но главное – это понимать, что в информатике без серьезной математической подготовки вероятность успеха невелика.
По математике нужно знать следующее: делимость, свойства делимости, представление целых чисел, геометрические задачи. Геометрия в информатике немного другая, не такая, как в школе. 90% задач по геометрии в информатике решаются через векторы. В векторном представлении формулы выглядят совсем не страшными
Требуется понимание того, как устроен компьютер, что такое точность вычислений, нужно знать типы данных, сколько бит занимает целое число, уметь проводить вычисления с плавающей точкой, потому что на это часто бывают задачи.
С формулами типа Герона с корнями, которые даются в школе, никакие задачи по информатике не решишь. А вот тригонометрию знать очень желательно, хотя бы для того, чтобы понять векторы. Тригонометрия используется в любых геометрических задачах. Например, нужно посчитать расстояние между двумя отрезками, проверить, пересекаются ли отрезки, посчитать расстояние от точки до прямой, взаимное расположение окружностей и т.д. Это самые базовые задачи, обычно бывают комбинации идей.
Также для участия в олимпиадах надо знать динамическое программирование. Задачи на динамику будут практически в каждой олимпиаде, включая региональные. Это очень важная тема.
Нужно уметь решать уравнения методом двоичного поиска. Задача может звучать так: «найти корень уравнения, если известно, что в одной точке величина отрицательная, в другой – положительная». Для решения всякий раз берем середину отрезка и смотрим, поменялся ли знак в этой середине.
На олимпиаде надо знать вещи типа алгоритма Евклида для простых чисел. Надо уметь находить взаимную простоту чисел, уметь работать с остатками от деления по модулю. Если сложение, умножение, вычитание – это довольно простые вещи, то для деления будет нужен нетривиальный алгоритм быстрого возведения в степень. В очень многих олимпиадах ответ требуется вывести в виде остатка от деления на какое-то большое простое число.
Из того, что не проходят в школе, надо также знать темы, касающиеся теории графов: что такое граф, представление графа в виде списка, в виде матрицы и в виде списка вершин, базовые алгоритмы поиска, обход в ширину, обход в глубину, основные деревья, компоненты связности, на которые распадается граф.
Надо научиться решать переборные задачи, рекурсии типа задачи обхода доски ходом коня.
Самую решающую роль в этом играет учитель – способность вовремя выявить одаренных детей, суметь правильно организовать подготовку учащихся к олимпиадам. Т. е. даже если учитель сам не способен решить все задачи, то он должен уметь правильно направлять детей, давать нужные идеи и быть достаточным мотиватором.
Результативность опыта
В нашей школе работает инновационная площадка «Раннее программирование», начиная со 2го класса даны часы внеурочной деятельности, как раз под выявление одаренных детей.
Думаю в будущем, эти дети будут успешнее выступать на олимпиадах.
Начинают работу кружки дополнительного образования «Программирование на Java», «Создание приложений».
В этом году ученик 9 класса успешно решил все задания школьного этапа олимпиады. Так как сменила место работы обобщать опыт еще рано.
В 2018 году ЕГЭ по информатике сдавали 2 ученика: 73 и 70 баллов, то есть средний балл 71,5.
Также в том же году сдавали 2 ученика ГИА по информатике 18 и 14 б, средний балл – 16.
Чтобы повысить интерес методического объединения учителей информатики выступаю на мероприятиях, посещаю семинары и прохожу различные курсы повышения квалификации по данной теме.