25 февраля начнется регистрация участников командной олимпиады «Высшая проба» по программированию, которую НИУ ВШЭ проводит для учеников 7–10 классов. Решить задачи квалификационного (заочного) этапа можно будет до 25 марта, основной (очный этап) пройдет 21 апреля. К участию в олимпиаде приглашаются команды из трех человек. Мы собрали советы, как подготовиться к олимпиаде и как увеличить свои шансы на успех на ней.
Есть два варианта формирования команд. Первый — когда инициатива исходит от самих участников: членами команды могут быть одноклассники, ученики курсов программирования в учреждениях дополнительного образования. Бывает и так, что члены команды, познакомившись на летних школах по программированию, живут и учатся в разных регионах. Второй вариант — когда команду формирует и готовит к олимпиаде педагог, знающий сильные и слабые стороны каждого ученика.
Чтобы пройти «квалификацию», команда должна решить две задачи из трех предложенных. Отборочным этот этап можно назвать с некоторой долей условности, поскольку он скорее представляет собой проверку базовых знаний программирования.
На основном этапе каждая команда получит один компьютер, от 10 до 12 алгоритмических задач и 4 часа на их решение. Решение задачи — это программа, составленная на одном из допустимых языков программирования. Через систему проведения состязаний команда отправляет решения на автоматическую проверку. Задача считается решенной, если программа проходит все тесты, разработанные жюри, причем результат проверки виден сразу, во время состязаний.
Советы участникам основного этапа олимпиады дает директор Центра студенческих олимпиадфакультета компьютерных наук ВШЭ Михаил Густокашин.
1
Командная олимпиада отличается от обычной тем, что трём участникам дается один компьютер. Разделять задачи на три части и молча решать каждому свою, устраивая три личных олимпиады с борьбой за ценное время за компьютером — плохая идея. Общайтесь, обсуждайте идеи, устраивайте мозговой штурм, используйте сильные стороны каждого.
2
Хотя олимпиада рассчитана на начинающих, хотя бы один член команды должен знать основы программирования, чтобы реализовать идеи в виде программы. Если в вашей школе нет занятий по программированию, необходимые знания можно получить в Яндекс. Лицее, на наших онлайн курсах по C++ или Python.
3
Попробуйте потренироваться лично и с командой на задачах прошлых лет с командных соревнований по программированию похожего уровня: турнире Архимеда (сайт олимпиады, архив задач) и Московской командной олимпиады, Лига Б (сайт олимпиады, архив задач).
4
В начале соревнования разделите весь комплект заданий на три части между участниками и попытайтесь для каждой задачи определить ее тему и сложность. Запишите свои идеи о решении на условии задачи, чтобы не забыть. Листок с решенной задачей перечеркивайте и убирайте, чтобы задачу никто не решил второй раз.
5
Решать задачи лучше по возрастанию сложности — это минимизирует штрафное время.
6
Перед тем, как занимать компьютер, расскажите задачу и её решение кому-нибудь из своей команды. Это поможет убедиться в том, что вы четко поняли условие и придумали правильное решение.
7
Компьютер — ценный ресурс. Постарайтесь организовать «конвейерное» решение задач, чтобы компьютер не простаивал. Это можно сделать несколькими способами, но общая их суть такая: пока один участник пишет решение, кто-то другой придумывает решение других задач.
8
Нет единой выигрышной стратегии. В какой-то команде все участники могут сменять друг друга за компьютером, в другой могут быть ярко выраженные роли — например, «реализатор», «придумыватель решений», «улаживатель конфликтов». Попробуйте разные стратегии со своей командой (кому какая роль подходит, стоит определить заранее) и выберите такую, при которой всем комфортно и результат наилучший.
9
Во время командной олимпиады (кроме последнего часа) участникам доступен монитор — таблица с текущими результатами всех команд. Не спешите расстраиваться из-за своего низкого или радоваться из-за своего высокого места — все может поменяться. Однозначной ценностью обладает единственная строка: статистика по количеству удачных решений для каждой задачи. Это может помочь определиться со сложностью задач (чем меньше удачных решений, тем сложнее задача).
10
Получайте радость от решения задач и общения со своей командой. Вы еще успеете понервничать на олимпиадах, влияющих на поступление или выход на следующий этап. Командная олимпиада — мероприятие азартное, но проигравших на ней точно нет.
Победители и призёры олимпиады, помимо памятных призов и подарков от Вышки и спонсоров, получат преференции при поступлении на бакалаврские программы факультета компьютерных наук «Программная инженерия» и «Прикладная математика и информатика»: победители — 5 баллов за индивидуальные достижения дополнительно к результатам ЕГЭ, а призеры — 4 балла. Считается, что все члены команды вносят равный вклад в формирование общего результата, поэтому по результатам соревнований каждый в команде получит одинаковые призы и привилегии.