Informações


Enquadramento das equipas

A prestigiada instituição americana Association for Computing Machinery (ACM) promove anualmente a realização do ACM International Collegiate Programming Contest (ACM-ICPC), um concurso mundial de programação disputado por equipas de alunos universitários. A génese deste evento remonta a 1970, com um concurso local no estado do Texas. Desde então, o número de alunos, universidades e países participantes tem crescido significativamente. Na edição de 2015|2016 estiveram envolvidos 40 266 alunos, de 2 736 universidades de 102 países espalhados pelos seis continentes.


O concurso desenrola-se basicamente em três etapas:

Locais | Concursos para selecionarem as equipas que posteriormente irão representar cada universidade nos concursos regionais. No nosso caso a MIUP tem servido esse propósito, mas não é obrigatório que uma universidade use a MIUP para selecionar as suas equipas.

Regionais | Concursos que agregam países ou estados de uma mesma região geográfica do mundo e qualificam equipas para a final mundial. O número de equipas que se qualificam para a final dependem da regional e da sua prestação em finais anteriores, a nossa regional é o SWERC.

Final Mundial | A final mundial é disputada pelas melhores equipas qualificadas pelas regionais. Em 2017, 150 equipas foram apuradas para a final, que se realizou na Rússia, Moscovo.


Porquê um concurso de programação nacional?

A organização em Portugal de um evento análogo ao SWERC tem como principal objetivo informar, cativar, motivar e preparar equipas de instituições universitárias portuguesas para uma participação meritória a nível internacional.

Estes concursos proporcionam aos alunos uma oportunidade de demonstrarem e melhorarem os seus conhecimentos de Informática, bem como, as suas capacidades de resolução de problemas. Além do convívio que uma competição como esta proporciona, o concurso constitui também uma excelente oportunidade para estabelecer novos contactos.

A MIUP "vale por si só", um desempenho positivo é algo que podem e devem referenciar no vosso curriculum, por exemplo.


Em que consiste um concurso de programação?

Os concursos estilo ACM-ICPC são disputados por equipas de três elementos com um único computador durante a prova e as linguagens permitidas são C, C++, Java e Python. Uma prova típica dura cinco horas para oito a dez problemas.

O objetivo é resolver o maior número de problemas no menor tempo possível. Destreza na resolução de problemas, bons conhecimentos de algoritmos, rapidez de programação e bom espírito de equipa são fatores importantes.


Que tipo de problemas são colocados?

Os problemas são descrições de tarefas que podem ser automatizadas. Geralmente cobrem um vasto leque de áreas de aplicação, centrando-se a sua descrição nos requisitos de utilizador. Não será de esperar que a resolução de um problema se reduza à escrita de um algoritmo de ordenação, mas é razoável que envolva uma fase de ordenação, por exemplo, para apresentação dos resultados ordenados. Muitos problemas procuram simular o tipo de problemas que poderão ocorrer em situações reais numa empresa. Os problemas variam em grau de dificuldade, desde os simples aos que podem constituir um autêntico desafio.


Que tipo de conhecimentos é suposto ter-se para competir?

Assume-se que os alunos têm conhecimentos de inglês, de matemática básica e de informática, com especial ênfase em algoritmos e estruturas de dados. Os problemas não requerem conhecimentos prévios muito avançados de uma área específica de aplicação. A descrição do problema será auto-suficiente, incluindo qualquer conhecimento específico de uma dada área que seja necessário à compreensão do problema.


Como preparar a participação numa MIUP?

Nisto, como noutras coisas da vida, não há nada como praticar. Claro que devem tentar ter uma boa base teórica, mas o ideal é verem enunciados de problemas que tenham saído em concursos da ACM, tentando resolvê-los. Podem aproveitar a avaliação automática que alguns sites disponibilizam (ver secção Ligações úteis).


Organização

A organização da MIUP envolve duas comissões, uma comissão local de organização e outra de carácter científico.

A comissão científica tem como função elaborar o conjunto de problemas para o concurso e acompanhar o processo de avaliação durante a prova. Esta comissão é composta por docentes representantes de um alargado número de instituições universitárias. A avaliação dos problemas submetidos pelas equipas no decorrer da prova será feita pelo Mooshak, um avaliador automático desenvolvido no DCC-FCUP. Caberá ao júri da prova, composto por membros da comissão científica, confirmar os resultados do avaliador automático, responder a dúvidas apresentadas pelas equipas e decidir sobre eventuais problemas que surjam no decorrer da prova.