Passo Fundo, 08 de março de 2018

Introdução à Programação Competitiva

Principais competições de programação

Organizadas pela Sociedade Brasileira de Computação (SBC)

Olimpíada Brasileira de Informática (sbc.org.br/obi)

  • Público: estudantes de escolas e 1º ano de graduação
  • Competição individual
  • 2017: 3 problemas por prova
  • Duração de 2 horas
  • Sem consulta, nem digital nem impressa
  • Códigos são corrigidos somente após a prova
    • Pontuação por "tarefas" que seu código resolve

Maratona de Programação (sbc.org.br/maratona)

  • Público: universitários de qualquer curso
  • 10~13 problemas
  • 5 horas de prova
  • Equipes de 3 pessoas (+ 1 suplente)
  • 1 só computador, sem acesso à Internet
    • "Cinco horas de máquina, mas 15 horas de humano"
  • Pode levar apenas material impresso para consulta
  • Vence quem resolver mais problemas em menos tempo

Um pouco de História...

A UPF em competições de programação

  • Caxias do Sul, RS
     
  • Primeira vez da UPF na Maratona, até onde se sabe
     
  • "Started from the bottom..."
  • 2008: 2º, 5º, e 10º lugares de 11 equipes
  • 2009: , 12º e 13º lugares de 17 equipes
    • Primeira classificação para a Final Nacional!
  • 2010 e 2011: sem participações
  • 2012: 3º lugar de 21 times
  • 2013: , 7º e 14º lugares de 26 times
    • Segunda classificação para a Final Nacional!

2013: de volta à Final Nacional

Equipes da UPF em 2013

Funcionalidade Aleatória

  • 2014: , 18º e 21º lugares de 32 equipes
    • Equipes de alunos do primeiro ano se saindo melhor do que equipes de veteranos (!!!)
  • 2015: 6º, 7º e 9º lugares de 21 equipes
    • Um bom desempenho, na média
  • 2016: 8º, 9º e 23º lugares de 26 times
  • 2017: , 11º e 13º lugares de 28 times
    • Terceira classificação para a Final Nacional!

2014–2017: a montanha-russa

2017: a redenção

Equipe: Skynet dos Pampas

Final Nacional 2017, em Foz

2018: 50 anos da UPF

Esse ano, é muito mais que uma competição que está em jogo

São 50 anos de história

"O que é preciso para participar do Clube?"

Tempo disponível para treinar

Vontade de vencer

Disciplina e persistência

"Ingredientes"

  • Linguagem de programação
    • C, C++, Java, Python
  • Ambiente de programação
    • Editor de texto + terminal
  • Sistema operacional: GNU/Linux
    • A Maratona usa Ubuntu mesmo
    • A OBI provavelmente também vai usar
      • (pelo menos aqui na UPF)

Execução, entrada e saída

# Execução simples: lê do teclado e escreve na tela
python3 prog.py

# Redirecionando a entrada: lê de um arquivo texto
python3 prog.py < entrada.txt

# Redirecionando a saída: escreve num arquivo texto
python3 prog.py < entrada.txt > saida.txt

# Cronometrando a execução do nosso programa
time python3 prog.py < entrada.txt > saida.txt

# Comparando a resposta esperada com a resposta do programa
diff gabarito.txt saida.txt 

Não se assuste

Ir da ideia pro código não é nada natural.

Não se assuste

Ir da ideia pro código não é nada natural.

É por isso que a gente treina.

Não se assuste

Ir da ideia pro código não é nada natural.

É por isso que a gente treina.

É apenas uma das grandes coisas que a Maratona e a OBI oferecem :-)

Obrigado!

Passo Fundo, 08 de março de 2018

/maratonaUPF​

maratonaupf.github.io

constantin.leo@gmail.com

Introdução à Programação Competitiva 2018

By Clube de Programação UPF

Introdução à Programação Competitiva 2018

Apresentação utilizada no primeiro encontro com os calouros de Ciência da Computação da UPF.

  • 1,119