O que é a programação competitiva e qual a sua importância?

Por volta dos anos 1980, os eventos de programação competitiva, também conhecidos como maratonas de programação, começaram a ser realizados como uma forma de competição entre os cursos da área de computação de diferentes instituições de ensino superior. Nesses eventos, os times - geralmente formados por três estudantes representando instituições de ensino superior - tentam resolver o maior número possível de problemas propostos para a competição. No início da competição, os times recebem os problemas que devem ser resolvidos. O time que conseguir resolver o maior número de problemas é declarado o vencedor.

A avaliação das submissões realizadas pelas equipes é, geralmente, realizada por sistemas de julgamento automático (AJ, do inglês Automated Judges). Um AJ recebe o código-fonte escrito por uma equipe para a resolução de um problema, o compila, e o testa diante de um conjunto de diferentes entradas para o problema, indicando ao final desse processo se a solução proposta pela equipe é aceita ou não.

Essa dinâmica adotada pelos eventos de programação competitiva, com o uso e AJ, vai além da competição em si, podendo ser utilizada por:

  • Estudantes para melhorar suas habilidades em programação de computadores e resolução de problemas através de páginas como Codeforces, beecrowd e Topcoder.
  • Empresas para testar as habilidades de programação de computadores e resolução de problemas de candidatos em processos de seleção e contratação, como Google, Facebook e Amazon.
  • Para diversão, onde apenas se procura por uma desculpa para poder programar!

A Maratona de Programação da SBC

A Maratona SBC de Programação é um evento de programação competitiva organizado pela Sociedade Brasileira de Computação (SBC) que existe desde o ano de 1996, tendo origem nas competições regionais classificatórias para as finais mundiais do International Collegiate Programming Contest (ICPC). Atualmente, a Maratona SBC de Programação é parte da classificatória regional sul-americana do ICPC.

A Maratona SBC de Programação se destina a alunos e alunas de cursos de graduação e início de pós-graduação na área de computação e áreas afins, promovendo nesses estudantes a criatividade, a capacidade de trabalho em equipe, a busca de novas soluções de software e a habilidade de resolver problemas sob pressão.

Várias instituições de ensino superior do Brasil competem na Maratona SBC de Programação - e portanto, da regional sul-americana do ICPC -, de onde as melhores equipes são selecionadas para participar das Finais Mundiais do ICPC. No ano de 2019, mais de 50 mil estudantes de mais de 3000 instituições de mais de 100 países competiram em regionais por todo o mundo. Nesse mesmo ano, nove times brasileiros, dos quase 800 participantes, se classificaram para as finais mundiais, que ocorreu em Moscou (Rússia). No ano de 2021, cinco times brasileiros classificaram-se para as finais mundiais que ocorreram entre 6 e 11 de novembro de 2022 em Dhaka (Bangladesh). A cada edição da competição, diversas instituições e, principalmente, grandes empresas da área têm valorizado os alunos que participam da Maratona.

Para mais informações sobre a Maratona SBC de Programação, como o histórico de competições passadas e suas regras, acesse a página oficial do evento através da URL https://maratona.sbc.org.br/.

A equipe de programação competitiva CEFET++ e sua participação em eventos

A primeira participação de alunos de graduação do CEFET-MG (Campus Divinópolis) em um evento de programação competitiva ocorreu no ano de 2022, no qual, dois times - cada time formado por três alunos do curso de Engenharia de Computação - participaram da IX Maratona Mineira de Programação, realizada na cidade de Timóteo, MG. Já em seu primeiro evento, um dos times se destacou como a melhor equipe estreante no evento. Os times estavam sob a coordenação do Prof. Willyan Michel Ferreira.

Após a participação em seu primeiro evento de programação competitiva, esses alunos decidiram organizar e oficializar a primeira equipe programação competitiva do CEFET-MG(Campus Divinópolis). Com isso, convidaram o Prof. André L. Maravilha que, juntamente com o Prof. Willyan Michel Ferreira, criaram a Equipe de Programação Competitiva CEFET++, oficialmente credenciada na instituição.

Desde então, os membros que compõem a equipe do CEFET++ (alunos e coordenadores) têm se reunido regularmente para estudar e praticar técnicas de resolução de problemas e programação para se prepararem para participação em eventos de programação competitiva.