Competições de Programação

Existem várias competições que as pessoas interessadas podem participar. Elas variam um pouco de estilo e regras, mas em todas é necessário programar. Eis as principais, separadas por categoria:

Ensino Médio

Em geral participam alunos do ensino médio e primeiro ano do ensino superior.

International Olympiad in Informatics (IOI)
Competição de ensino médio mais reconhecida no mundo. A participação é individual. A avaliação das soluções é feita após o término da competição e a pontuação é dada parcialmente para cada teste aprovado. O Brasil leva para a competição uma equipe de 4 alunos selecionados na OBI.
Olimpíada Brasileira de Informática (OBI)
Competição de ensino médio mais reconhecida no país. É realizada nos moldes da IOI. Para participar é necessário apenas se inscrever para a prova.
TopCoder High School Tournament (TCHS)
Competição de ensino médio organizado pelo site de competições TopCoder.

Ensino Superior

Em geral participam alunos do ensino superior e primeiro ano da pós-graduação.

ACM International Collegiate Programming Contest (ACM-ICPC)
Competição de ensino superior mais reconhecida no mundo. A participação é em equipe de três alunos que dividem um único computador. A avaliação das soluções é feita durante a competição, mas a pontuação é dada somente se passar em todos os testes. Para participar é necessário ficar entre os primeiros do Brasil na Maratona de Programação.
Maratona de Programação
Competição de ensino superior mais reconhecida no país. Para participar é necessário fazer parte de uma das equipes de seu instituto ou faculdade. É realizada nos moldes da ACM-ICPC, mas em duas fases. Na primeira etapa as diversas equipes disputam localmente em sites espalhados pelo país. Os melhores classificados de cada site se classificam para a final nacional, onde todas as equipes competem no mesmo local. Cada instituto ou faculdade pode levar até duas equipes para a final.
TopCoder Collegiate Challenge (TCCC)
Competição de ensino superior organizado pelo site de competições TopCoder.

Livre

Geralmente as competições livres ocorrem pela internet. São ótimas oportunidades para treinar para as competições tradicionais.

TopCoder Open (TCO)
Competição livre mais respeitada no mundo. Organizado pelo site de competições TopCoder.
Google Code Jam (GCJ)
Competição livre organizada pelo Google. É uma competição mundial que ocorre quase todo ano. Além da versão mundial, já houveram também versões regionais na Europa, América Latina, China e Índia. Era realizada nos moldes do TopCoder, mas o site oficial diz que em 2008 usarão uma nova plataforma.
TopCoder Single Round Matches (SRM)
Site americano várias competições de programação. Estão sempre promovendo Single Round Matches (SRM) nas quais os participantes podem praticar e subir na classificação geral. Empresas buscam no site pessoas bem classificadas para oferecer empregos. Eventualmente os patrocinadores premiam os melhores colocados com camisetas e até dinheiro. Anualmente há duas competições maiores (TCC e TCCO) divididas em várias fases, onde os finalistas viajam de graça para participar de uma final centralizada. Em geral, uma etapa de competição ou um SRM no TopCoder é individual e constituída de três fase. Na primeira, de 1 hora e 15 minutos os competidores tentam resolver os problemas. Os pontos variam pelo nível de dificuldade do problema e o tempo usado para resolvê-lo. A avaliação das soluções não é feita na hora. Na segunda etapa, os competidores têm 15 minutos para verificarem os programas adversários e bolarem casos de teste para derrubá-los. Na terceira etapa o sistema realiza uma bateria de testes automatizada para verificar os programas. É uma competição bem mais dinâmica e menos cansativa que as tradicionais.
Internet Problem Solving Contest (IPSC)
Essa não é realmente uma competição de programação estritamente falando. É uma competição de resolução de problemas, mas quase sempre é necessária a ajuda do computador para resolvê-los. Nessa competição são dadas as descrições dos problemas e os arquivos de entrada e os participantes devem enviar as respostas. Bem diferente das tradicionais e muito divertida. Os 10 primeiros recebem certificados.
Online Judges
Os principais sites que disponibilizam problemas online com corretores automáticos também costumam realizar competições periodicamente. Em geral não há premiação, mas seguem os moldes do ACM-ICPC, servindo de excelente treino para a Maratona de Programação. Os sites mais conhecidos que realizam tais competições são os seguintes: