Чувашское региональное отделение Академии информатизации образованияОФИЦИАЛЬНЫЙ САЙТ
Орфографическая ошибка в тексте

Послать сообщение об ошибке автору?
Ваш браузер останется на той же странице.

Комментарий для автора (необязательно):

Спасибо! Ваше сообщение будет направленно администратору сайта, для его дальнейшей проверки и при необходимости, внесения изменений в материалы сайта.

Публикации » КОМАНДНАЯ ОЛИМПИАДА ШКОЛЬНИКОВ ПО ПРОГРАММИРОВАНИЮ

29 апреля 2005 г.

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

Кроме личных соревнований по программированию учащихся очень популярными стали командные олимпиады. Первая Всероссийская командная олимпиада по программированию среди учащихся  состоялась в ноябре 2000 г. в г Санкт-Петербург. Команды Чувашской Республики в этих турнирах начали участвовать  с 2002 года.  В связи с успешным выступлением ученика ЧТЛ (ЧНЦО им.Г.С.Лебедева) Курочкина Андрея (диплом 1 степени) во Всероссийской олимпиаде 2002 года в г.Перми, команда лицея была приглашена на 3 Всероссийскую командную олимпиаду по программированию среди учащихся в рамках Международной молодежной недели информатики. Команда лицея тогда заняла 32 место, среди более чем 70 команд России, Белоруссии, Грузии, Азербайджана. Начиная  с 2002 года  команда ЧНЦО им.Г.С.Лебедева  ежегодно принимает участие во Всероссийской командной олимпиаде по программированию среди учащихся.

В 2004 году в командной олимпиаде по программированию от Чувашской Республики участвовали  2 команды: лицея № 44 г. Чебоксары и команда ЧНЦО им. Г. С. Лебедева, которые заняли соответственно 75 и 52 место среди более чем 120 команд России и стран СНГ.

В Чебоксарах командный турнир для учащихся проводится с 2003 года. Учителя информатики Ленинского района провели уже 3 турнира, где разыгрывается переходящий кубок ЛТОУО г. Чебоксары. Победителями этих турниров становились команды 18 лицея г. Новочебоксарска -2003 год, РЛИ -2004 год (февраль), ЧНЦО им. Г. С. Лебедева –2004 год (декабрь).

В 2004 году  прошла первая командная олимпиада  по программированию среди учащихся Чувашской Республики. В ней участвовали более 25 команд. Победителями стали команды школ ЧНЦО им.Г.С.Лебедева г.Чебоксары, лицея 18 г.Новочебоксарска, 44 лицея г.Чебоксары, сош №24 г.Чебоксары. Победители получили ценные призы и дипломы.

26 марта 2005 года состоялась 2 командная олимпиада Чувашской Республики по программированию. Олимпиада была представлена 21 командой Чувашской Республики.  Победителями и призерами олимпиады стали учащиеся ЧНЦО им.Г.С.Лебедева, СОШ №24, лицея №44 (дипломы 1 степени), команда лийея №2, гимназии №3, вторая команда лицея №44 (диплом 2 степени). Участникам были предложены  9 задач, которые по уровню сложности  распределились так: 3 задачи  базового уровня, 3 задачи уровня городских и три задачи уровня республиканских олимпиад. Три команды справились с задачами базового уровня – это команды ЧНЦО им Г.С.Лебедева, СОШ №24, лицея №44 г.Чебоксары. Одну задачу уровня городских олимпиад решила команда ЧНЦО, 4 команды решили по 2 задачи, 2 комады по одной. Этот конкурс показал очень слабый уровень команд в программировании. Работа с типами данных, ввод вывод данных из файла, работа с строковыми переменными, сортировка строк и чисел, элементы математики - поиск наибольшего общего делителя и наименьшего общего кратного двух целых чисел - главная проблема участников олимпиад 2005 года. 12 команд не справились ни с одной задачей. Такой плачевный результат,  на мой взгляд, становится тенденцией, и это происходит на протяжении последний двух лет, и будет продолжаться  в дальнейшем. Причины здесь, на мой взгляд, в следующем:

1) уменьшение количества часов на информатику с 2 часов на 1 час в неделю (особенно в старших 10 – 11 классах);

2) малое количество часов на алгоритмизацию и  программирование (20 часов на весь курс информатики);

3) переход учителей на пользовательскую систему преподавания информатики и  использования компьютеров, в большинстве  на обработку текста, табличных данных, всего то (опять же из-за нехватки времени);

4) слабый уровень учителей в программировании (не вина учителей, а вина стандарта, где  поставлена задача, научит учащихся  использовать компьютер,  а развитие мыслительных способностей, разработка алгоритмов решения тех или иных задач, использования методов вычислительной геометрии, элементов комбинаторики, теории обработки строк, динамического программирования – по стандарту считается пройденным этапом  в развитии информатики);

5) работа с одаренными детьми на уроках информатики сводится к красивому оформлению текста, подготовки изящной графики, поиска информации в Интернете, где скорость закачки страницы около 1 кбайта/с. Класс ждет целый урок, пока загружается какая-либо страница Интернета. И это называется громко – информационными технологиями;

6) постепенный переход информатики в школе как обслуживающего предмета  других гуманитарных и математических дисциплин;

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

8) учитель разрабатывает такой учебный план, который сам хорошо знает и освоил. Тот же язык BASIC, который хорошо знал учитель, теперь мало востребован, не считая VBASIC. На  QBASIC не  все олимпиадные  задачи решаемы (не хватает памяти – всего 64 кбайта). На Всероссийских олимпиадах жюри не принимает участников, которые пишут программы на QBASIC.

Правила командных олимпиад отличаются от личных. В состав команды входит 3 ученика. Им предлагается от 6 до 9 задач. Задача решена, если она прошла все тесты жюри. Проверка задач производится при помощи специальной автоматизированной системы. За каждую дополнительную отправку задачи команде начисляется  20 минут штрафного. В итоге победителем становится команда, которая решила больше задач. Если количество решенных задач одинаково, то выигрывает та команда, которая набрала меньше штрафного времени.

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

Остановимся на стратегии «три мудреца в одном тазу», которую применяли большинство участников Республиканской олимпиады.

Сразу после старта каждый участник выбирает себе задачу, с которой в состоянии справиться, и начинает решать ее на своем листочке. Большинство  участников олимпиады сидели над одной задачей и мешали друг другу. Выбравший себе самую простую задачу может ее решать сразу на компьютере. Для своей задачи каждый игрок сам придумывает себе тесты, осуществляет отладку и сдачу. После отсылки задачи на проверку участники за компьютером меняются, освободившийся участник команды выбирает себе новую задачу и так далее.

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

Простые задачи выгоднее решать раньше, меньше штрафного времени получит команда. Данная стратегия направляет  участников на решение задач в правильном направлении от простых к сложным. Но эта стратегия имеет рад недостатков:

1)                    все три участника должны  виртуозно владеть всеми стадиями программирования – от написания постановки задачи  до завершающего тестирования;

2)                     затягивая решение своей задачи, участник команды задерживает сразу две другие задачи, т.е. каждая минута простоя (придумывание тестов, отладка программы после неудачной попытки) умножается как минимум на три.

3)                    так как не конкретного человека принимающего решения о распределении работ, команда может (и часто так и бывает) попасть в дефицит  времени.

Данная стратегия может быть разумной, если все три участника команды хорошо владеют программированием и имеют достаточную математическую подготовку. Наряду с данными способностями  участники команды должны обладать высокой коммуникабельностью.

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

1) использование программы «Монитор».

«Монитор» - это программа, которая позволяет просмотреть текущее состояние результатов  олимпиады. Если команда не определилась с первой, самой простой задачей скажем в первые 30 минут, целесообразно посмотреть на таблицу результатов, и узнать за какую задачу взялись те или иные команды. Обычно многие быстро определяют простую задачу.  Показание монитора – есть верный критерий сложности задачи. Отрицательной стороной является сильный психологический шок, который испытывает команда, которая надеется на успех увидев себя в нижней строчке турнирной таблицы.

2) Отсечение созданных тестов

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

3) Отсечение простых и сложных задач.

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

4) Сортировка задач  одного типа или класса.

Если после того, как условие прочитано, понятно как ее решать, т.е. видны алгоритмы решения команде желательно заняться задачей, минимальной по числу особенностей. При этом конечно важно убедиться, что условие задачи понято правильно. Небрежность, допущенная при понимании условия задачи сейчас, позже окажется втридорога.

5) Способы пересдачи.

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

6) Использование эвристики.

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

7) Метод нисходящего проектирования

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

8) Блочная отладка.

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

9) Граничные тесты

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

10) Об integer, word, longint.

Чтобы не допускать ошибок, связанных с преобразованием целых  типов необходимо при передаче в переменную или функцию значения некоторого выражения, убедиться, что хотя бы один аргумент имеет тип результата. Нужно помнить что integer*integer=longint, abs(integer)+abs(integer)=word, но integer + integer= longint.

11) Оператор  комментария.

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

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

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

Мой МирВКонтактеОдноклассники
Система управления контентом
TopList Сводная статистика портала Яндекс.Метрика