Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Apresentação Competições

6,643 views

Published on

Published in: Travel, Education
  • Be the first to comment

Apresentação Competições

  1. 1. Competições de Programação <ul><li>Apresentação </li></ul><ul><li>Filipi Vaichert de Carvalho </li></ul>
  2. 2. O que é uma Competição de Programação? <ul><li>É uma competição onde um programador , ou grupo de programadores, deve apresentar uma solução computacional correta para um dado problema. </li></ul><ul><li>✓ a correção é realizada por meio de testes: </li></ul><ul><ul><li>- um arquivo de entradas. </li></ul></ul><ul><ul><li>- um arquivo de saída esperada </li></ul></ul><ul><li>✓ o programa solução deve: </li></ul><ul><ul><li>- ler o arquivo de entradas </li></ul></ul><ul><ul><li>- imprimir o resultado correspondente a essas entradas </li></ul></ul><ul><ul><li>- respeitando limites de tempo de execução e de quantidade de memória usada. </li></ul></ul><ul><li>✓ o resultado do programa deve ser idêntico ao conteúdo do arquivo de saída esperada. </li></ul>
  3. 3. Por que é bom? <ul><li>Ajuda você a desenvolver um raciocínio rápido, de forma que você aprende a lidar melhor com diversos problemas computacionais; </li></ul><ul><li>Você busca conhecer todos os recursos das linguagens de programação; </li></ul><ul><li>Você ganha motivação para estudar o material de algoritmos e estruturas de dados; </li></ul><ul><li>Melhora o seu currículo; </li></ul><ul><li>Você pode até ganhar dinheiro com isso; </li></ul><ul><li>É sempre bom competir . </li></ul><ul><li>Estimula o raciocínio e a criatividade para a resolução de problemas (quase) reais, aproximando teoria e prática. </li></ul><ul><li>Desperta interesse em competições de resolução de problemas e programação. </li></ul>
  4. 4. Como funciona? <ul><li>Existem diferentes modalidades de competição </li></ul><ul><li>Para ganhar, você deve resolver o maior número de problemas no menor tempo possível; </li></ul><ul><li>Existe um tempo fixo para resolver os problemas. </li></ul>
  5. 5. Algumas Competições Competição Participação Quem Pode participar Etapas TopCoder Individual Aberto Online Imagine Cup Vários Estudantes Online /Presencial Google Code Jam Individual Aberto Online / Presencial IPSC Grupo (1 a 3) Aberto online OBI Individual Estudantes do ensino fundamental e médio Presencial ACM ICPC Maratona de Programação Grupo (3) Estudantes gradução Presencial
  6. 6. Olimpiada de Informatica (OBI) <ul><li>Para alunos de primeiro e segundo grau; </li></ul><ul><li>Possui duas modalidades: Iniciação e Programação; </li></ul><ul><li>Alunos que terminaram o segundo grau no ano passado também podem participar da Olimpíada. </li></ul>
  7. 7. Como funciona a Olimpíada de Informática <ul><li>Você deve se inscrever em alguma instituição que vá aplicar a prova (escola ou universidade); </li></ul><ul><li>Na modalidade Programação você deve saber programar em C ou C++; </li></ul><ul><li>A competição é individual; </li></ul><ul><li>A competição é em três fases; </li></ul><ul><li>As soluções são avaliada posteriormente; </li></ul><ul><li>Quanto mais testes uma solução funciona (retorna o resultado esperado), maior a pontuação do competidor . </li></ul>
  8. 8. E se eu me der bem? <ul><li>Os melhores colocados são convidados a fazer um curso em Campinas; </li></ul><ul><li>Dentre os participantes do curso serão escolhidos os integrantes da equipe brasileira na Olimpíada Internacional de Informática (IOI). </li></ul>
  9. 9. Como me Preparo? <ul><li>Os conceitos e as técnicas de programação serão estudados com base a linguagem de programação Objective CAML. </li></ul><ul><ul><li>Oportunamente, e para fins comparativos, poderão ser ilustrados alguns conceitos em uma segunda linguagem de programação, como C++. </li></ul></ul><ul><li>O conteúdo da disciplina é incremental: os conceitos mais avançados apenas podem ser entendidos quando os conceitos básicos foram bem assimilados. </li></ul><ul><li>A necessidade de exercitar de forma concreta os conceitos apresentados em sala de aula. </li></ul><ul><li>Atenção: o conteúdo da disciplina é abrangente e necessita um esforço importante e permanente dos alunos. </li></ul><ul><li>Os alunos recebem tarefas a serem realizadas antes da aula seguinte. </li></ul>
  10. 10. ICPC Maratona de Programação <ul><li>Criada em 1976 </li></ul><ul><li>Competição voltada para alunos de cursos de Ciência da Computação, Engenharia de Computação e áreas afins; </li></ul><ul><li>Visto mundialmente </li></ul>
  11. 11. Elegibilidade <ul><li>Regularmente matriculado </li></ul><ul><li>Não ter competido em 5 regionais ou 2 mundiais </li></ul><ul><li>Não ter mais de 5 anos de faculdade (iniciado em 2004 ou depois) </li></ul><ul><li>Ter menos que 24 anos completos (nascido em 85 para este ano) </li></ul>
  12. 12. Como funciona a Maratona de Programação <ul><li>C, C++ ou Java; </li></ul><ul><li>A competição é em equipe, cada equipe é formada por três alunos; </li></ul><ul><li>Cada equipe tem acesso a um computador e apenas a material impresso; </li></ul><ul><li>Acesso a uma impressora (pode usar a vontade). </li></ul><ul><li>Objetivo é apresentar soluções computacionalmente corretas para um dado problema no menor tempo possível. </li></ul><ul><li>5 horas </li></ul><ul><li>+- 10problemas </li></ul><ul><li>1 Computador + 3 pessoas = FIGHT! </li></ul><ul><li>Estratégia </li></ul><ul><li>Escolha de questões </li></ul><ul><li>Controle de Tempo </li></ul>
  13. 13. Pontuação <ul><li>Ganha quem tiver mais problemas. </li></ul><ul><li>Desempate pela menor penalidade de tempo. </li></ul><ul><li>Penalidade é o tempo de solução de cada problema, a partir do início do contest. </li></ul><ul><li>Mais a penalidade por erro (de 20 min.) acrescida a cada erro antes de um acerto numa questão específica. </li></ul>
  14. 14. Como eu participo para Maratona de Programação <ul><li>Cada instituição pode inscrever até três equipes; </li></ul><ul><li>Para montar as equipes geralmente existe uma competição para selecionar os melhores alunos; </li></ul><ul><li>Os selecionados irão então representar a instituição na primeira fase da Maratona de Programação. </li></ul>
  15. 15. Como se dar bem? <ul><li>Ficar em primeiro na regional do estado na UVV </li></ul><ul><li>10 primeiros na final brasileira ganham medalha (em Campinas este ano) </li></ul><ul><li>1 e 2 lugares na final brasileira vão para o mundial (China este ano) </li></ul>
  16. 16. Qual a importância? <ul><li>A Maratona é patrocinada pela IBM e pela Microsoft, sendo organizada pela ACM desde 1977; </li></ul><ul><li>Em 2005, cerca de 5000 times de 1500 instituições de mais 70 países competiram nas regionais em todo o planeta e 83 deles avançaram para a final, que aconteceu em San Antonio, Texas, Estados Unidos. </li></ul><ul><li>Em 2007 82 paises, 1756 instituições de ensino, 6099 equipes. </li></ul>
  17. 17. Como se preparar <ul><li>Existem várias páginas na internet onde é possível resolver problemas no estilo da maratona e conferir se sua solução está correta; </li></ul><ul><li>Praticando com assiduidade os seguintes sites: </li></ul><ul><ul><li>http://acm.uva.es/ . </li></ul></ul><ul><ul><li>http://spoj.sphere.pl . </li></ul></ul><ul><li>Dizem que estudando também dá. </li></ul>
  18. 18. Em Quem se inspirar <ul><li>Loiane Groner </li></ul><ul><li>Estudou na Faesa. </li></ul><ul><li>Trabalha na IBM atualmente. </li></ul><ul><li>http://twitter.com/loiane </li></ul><ul><li>www.loiane.com </li></ul>
  19. 19. Última maratona na UFES
  20. 20. TopCoder <ul><li>Competição organizada por uma instituição não acadêmica com premiações em dinheiro. </li></ul><ul><li>Para qualquer pessoa maior de 13 anos; </li></ul><ul><li>Possui uma estrutura um pouco diferente das outras competições; </li></ul><ul><li>Competições acontecem todas as semanas. </li></ul><ul><li>Vários tipos de competição (bug trace, teste, component, assembly, algorithm, etc.) </li></ul>
  21. 21. Como Funciona o TopCoder <ul><li>Você deve saber programar em C++, Java, C# ou VB; </li></ul><ul><li>A competição é individual; </li></ul><ul><li>Objetivo é apresentar soluções corretas o mais rápido possível; </li></ul><ul><li>Principiantes competem na segunda divisão; </li></ul><ul><li>Participantes com uma pontuação cumulada suficiente passam a competir na primeira divisão. </li></ul>
  22. 22. E se eu me der bem <ul><li>Existe um ranking com os melhores competidores; </li></ul><ul><li>Existem várias empresas patrocinando os eventos, querendo contratar bons profissionais; </li></ul><ul><li>Algumas competições dão prêmios em dinheiro. </li></ul>
  23. 23. Sites <ul><li>http://acm.uva.es/p (não julga mais =//) </li></ul><ul><li>http:// icpcres.ecs.baylor.edu/onlinejudge / </li></ul><ul><li>http://acmicpc-live-archive.uva.es/nuevoportal / </li></ul><ul><li>http://br.spoj.pl </li></ul><ul><li>http:// acm.pku.edu.cn/JudgeOnline / </li></ul><ul><li>http:// www.topcoder.com </li></ul>
  24. 24. Alguns Livros
  25. 25. Biblografia <ul><li>Apostila (referência e complemento às aulas). </li></ul><ul><li>Steven S. Skiena e Miguel A. Revilla. Programming Challenges - The Programming Contest Training Manual. Springer, 2003. </li></ul><ul><li>Udi Manber. Introduction to Algorithms: A Creative Approach. Addison-Wesley, 1989. </li></ul><ul><li>Thomas H. Cormen, Charles E. Leiserson, Ronald L. </li></ul><ul><li>Rivest e Clifford Stein. Introduction to Algorithms. MIT Press, 2001. </li></ul><ul><li>Inumeros outros… </li></ul>

×