O que é a MIUP?
A Maratona Inter-Universitária de Programação (MIUP) é um concurso para estudantes universitários que proporciona uma oportunidade para estes demonstrarem, e melhorarem, os conhecimentos e 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.
O concurso é disputado por equipas com (no máximo) 3 elementos e envolve uma prova de programação de 5 horas para resolução de 8 a 9 problemas com recurso às linguagens de programação C, C++, Java ou Pascal.
Enquadramento
A prestigiada instituição americana “Association for Computing Machinery” (ACM) promove anualmente a realização do “The ACM International Collegiate Programming Contest” (ACMICPC), um concurso mundial de programação envolvendo equipas de alunos universitários. Este tipo de evento teve início em 1970 como um concurso local, no estado do Texas e, entretanto, cresceu de forma quase exponencial, quer no número de universidades participantes, quer no número de países envolvidos. No ano de 2001 estiveram envolvidas cerca de 3082 equipas, de 1300 universidades, de 67 países, participantes em 30 concursos regionais repartidos por 96 localizações. Destes concursos, apuraram-se 62 equipas para a final mundial que se realizou em Março de 2002 em Honolulu, Hawaii. (ver http://icpc.baylor.edu/icpc/)
Este evento tem sido mais recentemente designado também como “the Superbowl of Computer Programming” ou mesmo como “the Olympic Games of Computer Science”.
Portugal está inserido na região sudoeste da Europa juntamente com Espanha, França, Itália, Suiça, parte oeste da Austria e parte oeste da Alemanha. Em 2003, o evento Southwestern Europe Regional ACM Programming Contest (SWERC), realizou-se em Paris.
Porquê um concurso de programação nacional?
A organização em Portugal de um evento análogo à SWERC, como se pretende que seja a Maratona Inter-Universitária de Programação, tem como principal objectivo alertar, cativar, motivar e preparar equipas de instituições universitárias portuguesas para uma participação meritória a nível internacional.
Este tipo de concursos proporcionam aos alunos uma oportunidade de demonstrarem, e melhorarem, os seus conhecimentos e 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.
No que consiste um concurso de programação?
Resolver o maior número de problemas no menor tempo possível. Num concurso típico, são propostos 8 a 9 problemas para serem resolvidos em 5 horas por equipas com no máximo 3 elementos. Destreza na resolução de problemas, bons conhecimentos de algoritmos, rapidez de programação e bom espirito de equipa são factores importantes. Na MIUP serão usadas as linguagens de programação C, C++, Java e Pascal.
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 dos 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?
Os juizes que preparam os problemas assumem que os alunos têm conhecimentos de inglês, matemática básica ao nível dos primeiros anos das licenciaturas de informática (algebra, geometria, trigonometria, matemática discreta e geometria analítica), e de informática com especial ênfase em algoritmos e estruturas de dados. Os problemas não requerem conhecimentos prévios 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.
Alguns problemas requerem um conhecimento de técnicas mais avançadas de informática, nomeadamente, retrocesso (backtracking), caminhos mínimos, máquinas de estado, teoria da informação, computação gráfica, etc.
Como te podes preparar para a MIUP?
Nisto, como noutras coisas da vida, não há nada como praticar. É claro que também deves tentar ter uma boa base teórica, mas o ideal é veres enunciados de problemas que tenham saido em concursos ACM, tentando resolvê-los. Podes inclusive aproveitar a avaliação automática que alguns sites te proporcionam, imitando na “perfeição” o ambiente do concurso.
Funcionamento do Concurso
A organização da MIUP envolve duas comissões, uma comissão de organização local e outra de carácter científico. A comissão científica terá 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 razoável número de instituições universitárias.
A avaliação dos problemas submetidos pelas equipas no decorrer da prova será feita por um avaliador automático, o Mooshak desenvolvido no DCC-FCUP (Departamento de Ciência de Computadores – Faculdade de Ciências da Universidade do Porto) pelo Prof. José Paulo Leal. 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.
Mooshak – Avaliação automática durante um concurso
A organização da MIUP envolve duas comissões, uma comissão de organização local e outra de carácter científico. A comissão científica terá 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 razoável número de instituições universitárias.
A avaliação dos problemas submetidos pelas equipas no decorrer da prova será feita por um avaliador automático, o Mooshak desenvolvido no DCC-FCUP (Departamento de Ciência de Computadores – Faculdade de Ciências da Universidade do Porto) pelo Prof. José Paulo Leal. 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.