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