Городняя Лидия Васильевна
О КОНКУРСАХ ПО ИНФОРМАТИКЕ
ВВЕДЕНИЕ
Организация состязаний как метод активизации интереса школьников к знаниям достаточно результативна. Работа такого рода закладывается на годы вперед. Новосибирские конкурсы по информатике (олимпиады, фестивали, конференции) в настоящее время образуют сложную систему с отдельными оргкомитетами, объединяющими представителей большого числа организаций, заинтересованных в уровне подготовки выпускников школы.
Олимпиады по информатике и программированию проводятся в Новосибирске более 25-ти лет. Тем не менее, в трудный период начала 90-х годов наш город утратил позиции на Российских олимпиадах для школьников, а наши студенческие команды оказались не готовы к участию в Международном чемпионате АСМ даже на уровне полуфинала в Барнауле. Пришлось признать, что успехи на таких соревнованиях требуют совместной работы школы, вуза и науки.
В последние годы удалось согласовать усилия по расширенной системе мероприятий, курсов и тренировочных занятий, что повысило уровень подготовки для полноценного участия школьников в Российских олимпиадах по информатике, а студентов НГУ - в Международном чемпионате по программированию АСМ на уровне финала в Майами. Радует, что в процессе тренировок сформировался ряд
новых команд, способных в ближайшие годы защищать честь Новосибирска.
РАЙОННЫЙ УРОВЕНЬ
Задачи, предлагаемые участникам школьных олимпиад по информатике, выглядят как результат негласного конкурса среди составителей заданий на самую сложную алгоритмическую задачу, доступную пониманию участника. Не исключено, что такой подход помогает отсеять заведомо неподходящих участников. Но он заодно отсеивает и большое число участников, заведомо подходящих, но не успевших разобраться в правилах игры.
Термин «олимпиада» традиционно подразумевает демократично организованный Праздник Любителей разных видов спорта. Олимпиады по информатике фактически сведены к отбору чемпионов по единственному виду «спорта»: программированию на языке Паскаль/Си усложненных алгоритмов, допускающих автоматическую проверку с помощью тестов на современной технике.
Практика предпочтения сложных алгоритмических задач на районных олим-
Практика предпочтения сложных алгоритмических задач на районных олимпиадах по информатике не только противоречит смыслу слова «олимпиада», но и категорически мешает решению проблемы формирования базы олимпийского резерва, закладываемой именно на школьном и районном уровнях.
пиадах по информатике не только противоречит смыслу слова «олимпиада», но и категорически мешает решению проблемы формирования базы олимпийского резерва, закладываемой именно на школьном и районном уровнях. Чрезмерная, превышающая школьные требования, сложность задач выводит из олимпийского движения школы, не располагающие подходящей техникой, и учеников, практикующихся на нестандартных типах информационных систем, а также обесценивает творческие и образовательные аспекты информатики и достижения педагогов, считающих своим долгом научить азам информатики всех своих учеников.
Многие школьники и учителя бывают столь обескуражены участием в традиционно усложненных олимпиадах по информатике, что в дальнейшем их отвергают. Они не видят пути к успеху и не рискуют травмировать учащихся. Тем не менее, олимпиадные успехи учащихся почему-то существенно влияют на оценку квалификации педагогов, учитываются при их аттестации и при лицензировании школ.
Другие трудности связаны с нормированием представительства от школ, районов, областей при делегировании на более высокий уровень. Если выход на российский уровень ограничен бюджетом, и это всем понятно, то ограничения районного, городского и областного уровня не столь обоснованы.
Ряд школьников знакомятся с информатикой вне школы. Опыт конкурсов «Молодые информатики Сибири» показывает, что среди таких самоучек имеются потенциальные чемпионы олимпиад.
Между тем, районные конкурсы могли бы дать шанс школе сохранить и поощрить интерес школьников к рациональному решению задач по информатике, к эффективному применению компьютерных средств.
Сравним со спортом. Спортивные олимпиады опираются на широкую сеть
секций и соревнований разного уровня. К тренировкам и на сборы привлекают резервный и вспомогательный состав. Кроме специальной подготовки, спортсмен выполняет программы общего физического развития.
Компьютерные виды спорта, возможно, требуют не меньшего размаха и столь же продуманной системы интеллектуальных тренировок, нацеленных на поощрение индивидуальности и признание достоинств как способных учеников, так и воспитывающих их учителей.
Вспоминая опыт разных школ юных программистов и конференций по информатике (Новосибирск, Красноярск, Переславль-Залесский, Иркутск, Миасс и др.), следует отметить, что успешная конкурсная работа неизбежно многофункциональна. Кроме функции отбора потенциальных призеров, она должна включать и функцию формирования благоприятной среды, организации тренинга и подготовки кадров. Нужна среда, поощряющая даже малый успех. Необходим тренинг, повышающий соответствие конкурсным требованиям. Надо искать и поддерживать людей, способных добиться высоких результатов.
В больших городах обычно известен круг школ, где учатся потенциальные победители. Но из этого не вытекает, что в других школах нет достойных. Многие наши «ассы» учились в так называемых «слабых школах». Следовательно, нели-дирующие школы можно вовлечь в нечто вроде второй лиги. Искусство алгоритмических решений оттачивается в головах, а не на машинах. Значит, необ-
У нас был случай, когда 1 место среди 10 классов занял неизвестный никому ранее юноша. Когда открыли его карточку, выяснилось, что, во-первых, его никто не посылал на олимпиаду, а он все равно проник (что было удивительно), а во-вторых, он все освоил САМОСТОЯТЕЛЬНО, без учителей!
Из письма засл. учителя С.П. Митрофанова, г. Сургут.
ходимы безмашинные туры или секции. Спортивное стремление и умение побеждать воспитывается на тренировках. Поэтому к отборочным олимпиадам нужно добавить районные сборы, привлекающие к соревнованиям второй и третий состав будущих призеров. Чем шире районная база олимпиад, тем надежнее путь к победам.
Следует добавить, что для своевременного вывода победителей на российский и международный уровни целесообразно на районный тур приглашать школьников, начиная с 6-8 класса, а на школьный - с 3-5 класса. Тогда их успехи могут проявиться уже на школьном, а не только на вузовском уровне.
Разнообразие средств и методов эффективного решения задач по информатике существенно превосходит школьные возможности. Освоение новых систем, эксперименты по рациональным техническим приемам, коллекциони-рование и разбор решений задач, дискуссии и семинары -все это может вести поддерживающая бригада, работающая стабильно из года в год, а не эпизодически день-два во время конкурса, тем более, что на базе Интернет полноценная кооперация всех, заинтересованных в прогрессе нашей школьной информатики, вполне осуществима. Например, второй год на сервере Администрации НСО для всех интересующихся информатикой, не только школьников, доступна электронная олимпиада, обеспечивающая начальное знакомство с олимпиадными задачами, начиная с самых простых (crocodile.iis.nsk.su/оНтр). Задачи можно использовать при подготовке и проведении школьных олимпиад.
НОВИЧКИ
Особого внимания требует выбор конкурсных задач для начинающих инфор-матиков, не имеющих достаточно квалифицированной поддержки. В таких случаях необходимы специальные серии заданий, направленных на самостоятельное
овладение приемами представления программ и их отладки. При наличии какого-либо набора небольших, полностью отлаженных текстов программ можно рекомендовать следующие серии заданий:
- исправить ошибки в данном тексте программы (число и место специально подсаженных ошибок известно членам жюри);
- данную программу переделать в другую, соответствующую чуть-чуть измененной задаче;
- для заданной программы создать систему тестов для демонстрации работоспособности программы;
- по данному тексту программы описать ее эффект (какие данные она обрабатывает и что выдает как результат работы);
- определить кратность выполнения отдельных команд данной программы на заданном наборе тестов;
- построить эквивалент данной программы с другими характеристиками (объем памяти, скорость реагирования, пользовательский интерфейс, точность диагностических сообщений, гибкость и т.п.);
- описать информацию, которую можно извлечь из данного представления фрагмента программы в зависимости от разных контекстов его включения или доопределить фрагмент до полностью работающей программы;
- при заданной системе операций построить схему решения данной задачи.
К подготовке конкурсных задач следует привлекать специалистов-информати-ков, преподающих в профильных ВУЗах или ведущих профессиональную работу в области информационных технологий.
Важнейшей составляющей олимпиады для школьников должен быть мягкий, поощряющий микроклимат, компетентная
Другие трудности связаны с нормированием представительства от школ, районов, областей при делегировании на более высокий уровень. Если выход на российский уровень ограничен бюджетом, и это всем понятно, то ограничения районного, городского и областного уровня не столь обоснованы.
оценка детских работ с разных сторон (подача материала, качество результата, техника исполнения), участие преподавателей в работе жюри, понятность логики оценки, право апелляции, анализа одобренных решений, получение недостающих знаний в процессе подведения итогов.
В дальнейшем такой механизм желательно развить в многоуровневую систему подготовки и дистанционной поддержки школьников, учителей и методистов, заинтересованных в освоении информатики и демонстрации своих успехов в рамках олимпиадного движения.
Полезно варьировать формы и методы дистанционных мероприятий. Турниры-фестивали в каникулярное время могут вобрать в себя:
- чемпионат по практической программотехнике, в отличие от традиционной олимпиады по программированию классических алгоритмов (можно принять за основу замысел Открытой Всесибирской студенческой олимпиады);
- конкурс мастеров информационных технологий (конкурсы web-мастеров на Сибирской выставке-ярмарке, проводимый ОблЦИТ);
- представление новых творческих проектов (игры, тренажеры, системы);
- состязание знатоков-эрудитов (терминология и стилистика речевой практики информатиков);
- вернисаж информационно-компьютерных художеств, творчества и изобретений, КВН (юмор, эвристики, коллекции, эмпирика);
- дискуссии о качестве информационных систем и эффективности информационных технологий;
- награды и торжественные поздравления.
ИТОГИ КОНКУРСОВ И ВРУЧЕНИЕ НАГРАД
Весьма тонкий аспект любой конкурсной работы с детьми - подведение итогов и раздача наград. В этом деле нет мелочей. Важна очевидность справедливости результатов и обоснованность формулировок, произносимых при награждении. Важно, кто и за что вручает призы.
Важна реакция и поддержка зрителей. Все это завершает сложную техническую процедуру оценки результатов и подведения итогов конкурса.
К настоящему времени сложилась следующая технология подведения итогов Новосибирского областного тура олимпиад по информатике:
- К выполнению работы по разработке эталонных решений задач, комплектации тестов, тестированию и экспертизе выполненных участниками решений привлекается команда из студентов, изучавших методы проверки правильности программ и знакомых с особенностями систем автоматического тестирования программ.
- Разработчики эталонных решений проводят экспертизу программ, выполненных участниками, оценивают адекватность использованных в программах средств, стиль программирования и красоту решений.
- Жюри дает заключение о результатах олимпиады по информатике, которое составляет на основе результатов тестирования и экспертного мнения разработчиков эталонных решений.
ЗАДАЧИ
При подготовке к олимпиаде по программированию рекомендуется придерживаться следующих правил подбора и комплектации типов задач для конкурса с участием школьников:
1) Легкая среднешкольная задача, посильная почти любому грамотному ученику. На районной олимпиаде 80% участников должны решить хотя бы одну задачу. Обязательно нужна хотя бы одна обеспечивающая это задача. Иначе - зачем приглашали?
2) Трудная задача, показательная для отбора на более высокий уровень. Нужна одна запредельная задача, посильная только потенциальным победителям областного уровня, чтобы не было сомнений в объективности выбора победителей.
3) Задача на сообразительность, не требующая техники владения методами программирования. Кто-то заинтересуется - подучится и победит потом.
4) Демонстрация техники владения методами программирования. Иначе «знающий» человек заволнуется или обидится, что ему нечем блеснуть.
5) Понимание затуманенных, объемистых формулировок задач (почти страница). Помогает найти ценных членов команд для российских и международных олимпиад, где организаторы любят такие формулировки.
6) Стабильная по постановке задача, опирающаяся на готовый текст отлаженной программы (см. «НОВИЧКАМ»). Выполняет учебную функцию конкурса -учеба в стрессовой обстановке.
7) Информатика без программирования. Описать информацию, которую можно извлечь из заданного представления в зависимости от разных контекстов. (Все-таки в школьном обиходе слово «информатика» не стало синонимом ни английского «computer science», ни русского «программирование».)
8) Решение в суженной системе команд. Ценная тренировка ума. Например, при заданной системе операций построить решение общеизвестной задачи. («Выразить умножение через сложение»)
9) Общее число задач должно быть не менее трех (лучше шесть). Это исключит зависимость «успеха» от случайного знакомства с отдельными задачами.
Чтобы при сборке комплекта задач заранее избежать поводов для недоразумений, можно придерживаться следующих принципов:
1. Не более одной задачи, предложенной одним человеком, в комплекте, чтобы не возникло случайного преимущества у тех, кто знаком с его стилем.
2. Задача включается после предварительного отбора (тип, идея, формулировка, тесты, стандартное решение, программа, пояснение, оформление постановки задачи) в сопровождении комплекта тестов и типичного решения в виде отлаженной программы.
3. Тесты, эталонные программы и формулировки задач подвергаются профессиональной экспертизе.
4. В день проведения олимпиады и апелляции все, включившие задачи в комплект, дают Жюри консультации по телефону.
5. После подведения итогов районных олимпиад предметное Жюри имеет право изучить работы отобранных участников для сопоставления уровня их оценки.
6. Удобнее всего, если Жюри поручает подготовку формулировок задач, тестов и эталонных программ студенческой команде, не ведущей непосредственно подготовку школьников к олимпиадам и предупрежденной о конфиденциальном характере работы.
При подготовке задачи для включения ее в олимпиадный комплект обычно Жюри выполняет следующую работу:
- поиск интригующего сюжета, повышающего интерес к решению задачи;
- переформулировка постановки задачи, чтобы она была пригодна для тестирования;
- разработка системы тестов для демонстрации поведения программы в типовых случаях;
- разработка и отладка эталонного решения задачи;
- анализ сложности решения, назначение баллов за решение задачи и определение правила начисления очков при проверке задачи;
- оформление текста задания.
КУРСЫ
Повышенная сложность олимпиад-ных задач по информатике ставит школьных педагогов в крайне неудобное положение. Дело в том, что методы решения большинства задач не опираются на школьную программу и требуют знания классических методов программирования и вузовской математики.
Было бы по меньшей мере вежливо, если бы организации, ведущие аттестацию и переподготовку преподавателей информатики, включили в свои планы ежегодные курсы по методам решения олимпиадных задач и ознакомлению с системой автоматического тестирования программ.
В последние годы ВКИ НГУ в программу своей работы со школьными педагогами включал курсы по методам программирования, ориентированным на решение олимпиадных задач по информатике. Ниже приводится план годового курса «Олимпиадные задачи по информатике: решение и анализ» (для педагогов-ин-форматиков - 64 часа; авторы Т.А. Андреева, Л.В. Городняя, Т.С. Нестеренко, Т.И. Тихонова, Т.Г. Чурина).
«Олимпиадные задачи по информатике: решение и анализ»
1. Классификация алгоритмов по сложности. Примеры алгоритмов разного порядка сложности (константа, логарифм, линейные, квадратичные, степенные, экспоненциальные, факториальные) Оценка сложности алгоритмов.
2. Задачи на представление чисел. Арифметика погрешностей. Свойства разных систем счисления. Очень большие числа и повышенная точность. Аналитические вычисления. Многочлены.
3. Рекурсивные построения при быстром программировании. Доказательность и схемы программ. Оценка сходимости рекурсии.
4. Элементы теории информации и кодирования. Метод Хафмана. Код Фано. Случайные числа. Сжатие и архивация данных. Криптография.
5. Строковая обработка. Поиск подстроки. Алгоритм Бойера-Мура. Лингвистическая обработка.
6. Комбинаторика. Генерация перестановок. Алгоритм Дейкстры. Параллелизм и синхронизация.
7. Поиски и обходы однородных структур данных. Метод дихотомии. По-
иск в глубину. Транзитивное замыкание. Матричная алгебра.
8. Методы сортировки. Быстрая сортировка. Пирамида. Минимальный каркас дерева. Сокращение перебора.
9. Грамматики и автоматы. Конструирование и анализ выражений. Синтаксическое управление обработчиками.
10. Указатели, списки, деревья. Вспомогательные построения. Свойства структур и надежность их обработки. Графы, маршруты, дороги.
11. Обработка файлов. Буферизация. Тексты и коды. Графические форматы.
12. Динамическое программирование: табличная техника. Минимальный путь. Обход в ширину и глубину (очередь и стек).
13. Основы тестирования программ. Знакомство с системой автоматического тестирования программ. Требования к комплекту тестов. Эталонные решения.
14. Методы отладки программ. Приемы оформления текстов для быстрой отладки. Входные и выходные данные программы. Управление вводом-выводом.
15. Организация командной работы. Распределение обязанностей. Роль психологических факторов. Слагаемые победы.
16. Общий обзор проблем проведения конкурсов по информатике и программированию. Обязанности жюри. Подготовка и комплектация задач. Инструктаж участников. Подведение итогов. Церемония награждения.
Естественно, освоение такого объема нового материала требует от школьного учителя большого энтузиазма и напряжения.
Городняя Лидия Васильевна, кандидат физ.-мат. наук, старший научный сотрудник Института систем информатики им. А.П. Ершова, Новосибирск.
НАШИ АВТОРЫ