Cabe%C3%A7alho%20Aula%2010%20-%20M%C3%B3dulo%202.jpg

Conteúdo da Aula de hoje:

  1. Topcom
  2. OBI
  3. Maratona de Programação
    3.1 Regras
    3.2 Ambiente de programação
  4. Code Jam

Programação competitiva

A programação é uma habilidade fundamental para um profissional do futuro. O mercado de trabalho nessa área está se desenvolvendo cada dia mais e, por conseguinte, a demanda de profissionais qualificados aumenta diariamente. Sendo assim, é necessário que os programadores busquem desenvolver habilidades que muitas vezes não são ensinadas até mesmo nos cursos de nível superior.

Uma boa forma de ganhar experiência e desenvolver a capacidade de resolver problemas, são os torneios de programação. De ano para ano temos observado que as instituições e principalmente as grandes empresas da área têm valorizado os alunos que participam dos torneios mais renomados.

Um torneio de programação é classificado como um mind sport (como o xadrez), e são realizados via internet ou rede local. Normalmente, envolvem estudantes da área que tentam resolver uma série de problemas de acordo com algumas especificações, fazendo o uso da programação. Abaixo explicaremos um pouco sobre os principais torneios de programação.

1. Topcom

O topcom, Torneio de Programação de Computadores, é promovido pelo grupo PET Engenharia de Computação (UFES) e, é aberto a estudantes da área. A competição ocorre durante um dia inteiro, sendo que no período matutino ocorrem palestras de profissionais da área e logo após isso, a sessão de aquecimento tem início. Nela, as equipes resolvem alguns problemas sem valor de competição, isso é feito para que os competidores se acostumem com a plataforma de correção utilizada.

A competição acontece no período vespertino, onde as equipes resolvem os problemas propostos pela organização do evento. A competição é em disputada em equipes de três pessoas, e apenas um computador é disponibilizado por equipe. Assim, o torneio também explora o trabalho em equipe sob pressão e estimula a criatividade.

No fim do dia ocorrem as premiações e uma confraternização entre as equipes. Esse projeto visa motivar a participação de instituições locais em competições nacionais universitárias, como a Maratona de Programação. A elaboração e validação dos problemas contam com a participação de professores do Departamento de Informática da UFES. O torneio utiliza o BOCA como plataforma de correção automática.

2. Olimpíada Brasileira de Informática

A Sociedade Brasileira de Computação (SBC) organiza anualmente, desde 1999, a Olimpíada Brasileira de Informática (OBI). O público alvo dessa competição são os estudantes do ensino fundamental, médio e do primeiro ano de graduação.

Ao contrário de vários outros torneios de programação, a OBI é realizada individualmente e, possui uma correção não binária. Parecida com a correção do Run.Codes, o código da questão é analisado e o programa é pontuado de acordo com a quantidade de casos de teste corretos. Os resultados são divulgados após a realização da prova.

Outra peculiaridade da OBI é que o tempo total de resolução das questões não importa, a única coisa que é levada em consideração é a quantidade de desafios corretos.

3. Maratona de Programação

Assim como a OBI, a Maratona de Programação também é organizada anualmente pela Sociedade Brasileira de Computação. Ela se destina a alunos de cursos de graduação e início de pós-graduação na área de Computação e afins (Ciência da Computação, Engenharia de Computação, Sistemas de Informação, Matemática, etc).

A Maratona é disputada em times, que são compostos por três estudantes de uma mesma escola. Uma escola é definida pela instituição de ensino superior e a cidade de onde vêm os alunos participantes do time, ou seja, uma mesma universidade pode ter várias Escolas. Com isso, os estudantes tentarão resolver durante 5 horas o maior número possível dos 10 ou mais problemas que são entregues no início da competição. Estes estudantes têm à sua disposição apenas um computador e material impresso (livros, listagens, manuais) para vencer a batalha contra o relógio e os problemas propostos.

A correção dos problemas é automática e binária, ou seja, é preciso que o programa submetido passe em todos os casos de teste realizados pela banca avaliadora. Assim sendo, existe uma penalidade de tempo (+ 20 min) para cada submissão incorreta de um problema. No fim, o time que conseguir resolver o maior número de problemas, no menor tempo, é declarado vencedor. De forma análoga ao Topcom, a Maratona de Programação utiliza o BOCA como a plataforma de correção automática.

3.1 Regras

Para o ano de 2019, as regras citadas a seguir foram válidas. Cada membro, antes dessa competição, pode ter participado de no máximo uma final mundial do ICPC, de no máximo 4 (quatro) regionais sul-americanas do concurso (ou seja, da Maratona de Programação) e deve ter iniciado seus estudos universitários no ano de 2015 ou anos posteriores (a contar do início do primeiro curso universitário do aluno, mesmo que não tenha completado este curso), ou ter nascido em 1996 ou anos posteriores.

Assim, por exemplo, se você iniciou seu primeiro curso superior em 2018, pode participar, mesmo que tenha nascido em 1994. Outro exemplo, se você nasceu em 1996 pode participar, mesmo tendo iniciado sua graduação em 2013.

3.2 Ambiente de programação

Na edição deste ano (2019) o sistema operacional usado foi o Ubuntu 18.04, e as linguagens disponíveis foram: C, C++, Python 2, Python 3, Java e Kotlin.

Além disso, os editores de texto disponíveis são: geany, vim, gedit, sublime, VScode entre outros. Caso você prefira utilizar IDEs, as disponíveis são o Eclipse, o Pycharm e o Intellij. Para mais informações acesse o site http://maratona.ime.usp.br/

4. Code Jam

O Google Code Jam é uma competição internacional hospedado e administrado pelo Google. A competição começou em 2003 como um meio de identificar os melhores talentos de engenharia para um emprego potencial no Google. Os competidores podem usar qualquer linguagem de programação e ambiente de desenvolvimento para obter suas soluções.

A competição é aberta para qualquer pessoa maior de 18 anos e todas as etapas são online, exceto a final. As etapas afunilam os competidores até que sobrem 25 pessoas para disputarem a final em alguma sede do Google. Para mais informações acesse https://codingcompetitions.withgoogle.com/codejam/about/

5. Preparatório

Visando um melhor desempenho dos capixabas nos torneios de programação, o grupo PET Engenharia de Computação criou o preparatório STEPS. Esse preparatório é acessível a qualquer pessoa que tenha interesse em realizá-lo. As aulas são lecionados aos sábados desde o primeiro semestre do ano. É muito importante se preparar para esses torneios, principalmente para aqueles de nível nacional, pois nessas competições geralmente cobram assuntos muito específicos como grafos, geometria computacional, programação dinâmica, strings etc. Nas aulas do STEPS alguns desses assuntos são abordados.

Agora, até o restante da aula, faremos uma pequena competição entre os alunos, utilizaremos a platafora BOCA. A mesma plataforma utilizada no Topcom e na Maratona de Programação. Boa Sorte!!