Вкратце об олимпиадном программировании

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

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

Во-вторых, проверка решений на таких олимпиадах обычно является, в своем роде, самой справедливой и самой несправедливой. (Вообще-то программистских олимпиад много, и есть среди них и такие, к которым этот пункт не относится, но в дальнейшем речи о них идти не будет.) Дело в том, что жюри не смотрит вашу программу, а проверяет ее (обычно в автоматическом режиме, с помощью компьютера) на тестах. Вообще, по условию задач, в программу вводятся некие входные данные, она их обрабатывает и выдает ответ. Тесты жюри — это варианты входных данных и соответствующих правильных ответов. При тестировании жюри «подсовывает» вашей программе свои тесты, а затем проверяет, правильный ли ответ ваша программа выдает. Справедливость (по сравнению с проверкой задач по математике, физике) здесь заключается в том, что от решения требуется только одно — правильность, соответствие условиям, только то, не требовать чего было бы нельзя. Неважно, понятно решение или нет, если оно работает. Неважно, каким способом вы получили ответ, если он правильный. В любом случае вы получите причитающиеся баллы. Несправедливость же здесь в том, что за глупую ошибку, вроде тех, за которые снимают 1—2 балла на других олимпиадах, здесь задача может вполне быть аннулированной. Далее мы подробно рассмотрим популярные ошибки и методы борьбы с ними.

Есть два основных подхода к оценке решений. При одном подходе, который я буду далее называть «Пан или пропал», задача либо получает максимум баллов, если все тесты успешно пройдены, либо 0, если хотя бы на одном из тестов она «завалилась». Так чаще всего оценивают на командных олимпиадах. На большинстве других олимпиад, в том числе обычных школьных (на всех этапах: городском, региональном и более крупных), используется более гуманная система оценки. Проверочные тесты имеют определенный вес в баллах. Если тест пройдет, то эти баллы прибавляются к счету участника. Бывает дополнительный «бонус», то есть баллы, которые начисляются, только если все тесты пройдены. Действия олимпиадника различаются в двух этих случаях (особенно, если задачи сложные), но об этом речь пойдет позже.

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

Отлично!  Как раз для учителей других предметов, заучей и директоров и начинающих учителей.

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

Мой блог тут http://oivt.ru/blog/3
А где ваш? Нету? Заведи свой персональный блог на ОИВТ.ру !

Добавил в раздел "Подшивки"  --> Олимпиада

Мой блог тут http://oivt.ru/blog/3
А где ваш? Нету? Заведи свой персональный блог на ОИВТ.ру !

дело говорите, товарищ))

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

Нам самим в первую очередь надо решить, договорить и с Министерством и с РОСОБРНАДЗОРОМ, по поводу стандартов... что тогда!? Олимпиалные задачи связанны как правило с программированием, если оно есть, значит шансов решить задачи определенно больше, елси оно не преподавалось, скажем до 9 класса, то и речи быть не может, что же остается 8 классникам??? Да вот именно что ничего! есть конечно самый простой способ записывать глобально детей на курсы по программированию, там научат, но ведь это только как дополнительное образование и несомненно ученики имеют явное преимущество, по сравнению с теми, кто на такие курсы не ходит! Все потому что программа у них строго определенна!

В такой ситуации для школы я ввижу выход в следующем:

1) четко определититься с заданиями для каждого класса

2) определиться с учебником и программой

 3) ввести предмет программирование (не ОИВТ и не ИКТ, а программирование)

Перечитал свой же пост, что-то у меня как-то все утопично получилось!

да согласен. Информатика - единственный предмет где олимпиада проходит по одному разделу курса.

Мой блог тут http://oivt.ru/blog/3
А где ваш? Нету? Заведи свой персональный блог на ОИВТ.ру !

Кросспостинг в ЖЖ работает ;)

Да потому-что нет международной олимпиады по информационным технологиям или просто информатике.

Международная олимпиада по информатике есть. Именно в виде программирования.

Цитирую фразу с прошлогодней международной олимпиады по информатике в Египте с официального сайта  http://www.ioi2008.org :

The International Olympiad in Informatics (IOI) is one of the most recognized computer science competitions in the world. The 20th International Olympiad in Informatics will be held in Egypt, August 2008, at Mubarak city for education located in the new district 6 october of Cairo metropolitan.

 

 Выводы делайте сами.

Мой блог тут http://oivt.ru/blog/3
А где ваш? Нету? Заведи свой персональный блог на ОИВТ.ру !

Для начальной подготовки к олимпиадам: "Песни о Паскале" - программирование для школьников. Скачивать здесь: http://oleg-derevenets.narod.ru