apresentação competições

26
Competições de Programação Apresentação Filipi Vaichert de Carvalho

Upload: loiane-groner

Post on 24-May-2015

5.999 views

Category:

Travel


1 download

TRANSCRIPT

Page 1: Apresentação Competições

Competições de Programação

Apresentação

Filipi Vaichert de Carvalho

Page 2: Apresentação Competições

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Última maratona na UFES

Page 20: Apresentação Competições

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

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

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

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

Alguns Livros

Page 25: Apresentação Competições

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