Конкурсы и состязания по программированию
Не каждый программист любит проверять свои умения в состязаниях, но иногда я интересуюсь новыми вызовами. Так что вот список конкурсов по программированию. Большинство конкурсов проводятся раз в год, но некоторые идут непрерывно, и вы можете принять в них участие в любое время.
Опыт выхода за пределы "зоны комфорта" в программировании приносит исключительно полезные плоды. Даже если вы не выиграете приз, ваш образ мышления изменится, и вы можете повторить попытку. Изучение того, как задачу решили другие, также может быть полезным.
Помимо перечисленных здесь, проходят и другие конкурсы, но я рассказал только о десяти, в которых может принять участие кто угодно. Очень важно, что в них вы сможете использовать C, C++ или C#.
Ежегодные конкурсы
- Международная конференция по функциональному программированию (ICFP). Этот конкурс проводится в Германии в течение десяти лет в июне или июле каждого года. Принять участие в нем может любой человек из любой страны, использующий любой язык программирования. Участие в конкурсе бесплатно, размер команды не ограничен. В 2010 году конкурс проводился с 18 по 21 июня.
- Конкурс Hewlett-Packard Codewars ориентирован на старшеклассников и проводится каждый год в кампусе Hewlett-Packard в Хьюстоне с 1999 года. Конкурсанты не только погружаются в высокотехнологичный мир HP, но и участвуют в разнообразных соревнованиях по программированию, поглощают огромное количество "пищи программистов" (пиццы и кофеина), слушают музыку и получают множество подарков. Помимо трофеев, для победителей каждой из двух номинаций вручается множество других призов, в том числе компьютеры, сканеры, принтеры, программное обеспечение и аксессуары. Это самый лучший конкурс по программированию для школьников старших классов.
- BME International - очень интенсивный бесплатный конкурс, проходящий в Европе раз в год. Участвуют команды из трех человек, которые должны использовать собственные компьютеры и программы. В этом году в Будапеште прошел 7-й конкурс. В прошлом на этом конкурсе были интересные задачи, например, вождение автомобиля по виртуальному ландшафту, управление нефтяной компанией, управление роботом сборочной линии и программирование секретной связи. Все программы писались всего за 24 часа!
- Международный студенческий конкурс программирования. Это один из самых старых конкурсов программирования. Впервые он был проведен в 1970 г. A&M в Техасе. С 1989 г. он проводится ACM, а с 1997 года его организатором является IBM. Это один из крупнейших конкурсов, в котором участвуют тысячи команд университетов и колледжей, которые соревнуются сначала на местном уровне, потом на региональном и, наконец, встречаются в общемировом финале. В конкурсе команды из трех студентов должны решить восемь или более сложных реальных задач за кажущийся невозможным срок в пять часов.
- Осложненный конкурс C проводится уже почти 20 лет. Конкурс проводится в Интернете, работы отправляются по электронной почте. Согласно правилам, участникам нужно написать самую запутанную или осложненную программу Ansi C длиной до 4096 символов. 19-й конкурс прошел в январе-феврале 2007 г.
- Премия Лебнера - это не обычный конкурс программирования, а премия за создание ИИ - компьютерной программы, которая может пройти тест Тьюринга, т.е. общаться с человеком достаточно хорошо, чтобы судьи поверили, что они общаются с человеком. Судейская программа Judge, написанная на Perl, задает вопросы типа "Который час?" или "Что такое молоток?", а также проводит сравнения и использует память. Приз лучшему участнику - $2000 и золотая медаль.
- С премией Лебнера сходен конкурс Chatterbox. Цель этого конкурса - написать лучшего робота для чата - веб-приложение (или загружаемое приложение) на любом языке, которое может вести разговор. Если в нем имеется анимированное изображение, синхронизирующееся с текстом, - это еще лучше, т.к. вы получите больше баллов!
- Международный конкурс решения задач (IPSC). Это, скорее, развлекательный конкурс, проводящийся через Интернет, в котором участвуют команды из трех человек. Перед командами ставятся шесть задач, их нужно решить с помощью программирования за 5 часов. Можно использовать любой язык программирования.
- The Rad Race. Команды из двух человек должны создать работающую коммерческую программу на любом языке за два дня. Это еще один конкурс, на который нужно привозить свое оборудование, в том числе маршрутизатор, компьютеры, кабели, принтеры и т.д. Следующий конкурс пройдет в Хассельте (Бельгия) в октябре 2011 г.
- The ImagineCup. Школьники и студенты соревнуются в написании программного обеспечения на заданную тему. Тема 2012 года: "Представьте себе мир, где технологии позволяют создать экологически рациональную среду". Прием работ начался.
- Конкурс ORTS. ORTS (открытая стратегическая игра в реальном времени) - среда программирования для изучения задач ИИ в реальном времени, таких, как поиск пути, обработка неидеальной информации, планирование времени и планирование в области стратегических игр реального времени. Такие игры имеют высокий темп и очень популярны среди пользователей. На ORTS каждый год проходит серия сражений, чтобы увидеть, чей ИИ превосходит другие.
- Конкурс инноваций. Новый конкурс, где участники могут создавать инновационные приложения для любой платформы (например, клиентские приложения, веб-приложения, приложения Java, Facebook, iPhone, Android и т.п.) на любом языке программирования.
- Google AI Contest 2010. Вы можете зарегистрировать робота C++ или C# для игры в "Змейку" вдвоем, где ваша цель - загнать противника в угол и заставить его врезаться в стену или в собственный хвост раньше вас. Основан на фильме "Трон" 1980-х годов.
Постоянно идущие конкурсы
- Проект Эйлера. Серия сложных задач из области математики и компьютерного программирования, требующая не только математических знаний для компьютерного решения задач менее чем за минуту. Типовая задача: "Определить первые десять цифр суммы ста пятидесятизначных чисел".
- Sphere Online Judge. В Гданьском техническом университете в Польше регулярно проводятся конкурсы по программированию, всего их прошло уже более 125. Решения представляются автоматизированному онлайновому судье, который распознает C, C++ и C# 1.0, а также многие другие языки.
- Задачи Intel по многопоточному программированию. Корпорация Intel проводит собственный конкурс программирования, включающий 12 задач, по 1 задаче в месяц. Эти задачи можно решить, используя многопоточное программирование. Участники получают баллы за решение задачи, элегантность программирования, время выполнения кода, использование библиотеки Intel Threading Building Blocks, а также бонусные баллы за публикацию в дискуссионном форуме. Можно использовать любой язык, но предпочтительнее всего C++.
- Codechef. Первый некоммерческий мультиплатформенный онлайновый конкурс программистов в Индии. В его рамках проводятся ежемесячные состязания на более чем 35 разных языках программирования, включая C, C++ и C#. Победители каждого конкурса получают призы, признание коллег и приглашение на ежегодный конкурс CodeChef Cup.
Не следует забывать и о конкурсах About.com по программированию на C, C++ и C#. Здесь нельзя выиграть призы, но можно завоевать славу.
Дэвид БОЛТОН,
About.com Guide
Перевод выполнен специалистами Alconost Translations.