Pular para conteúdo

Programação Competitiva

Ementa

Revisão de conceitos de programação e algoritmos. Fundamentos de análise de algoritmos. Algoritmos de busca e ordenação. Estrutura de dados básicas e avançadas. Teoria dos números. Paradigmas de soluções de problemas: busca exaustiva, dividir para conquistar, algoritmo guloso e programação dinâmica. Grafos. Processamento de strings. Geometria computacional.

Objetivos

  • Introduzir técnicas de programação e noções de complexidade de algoritmos;
  • Familiarização com ambientes de treinamento de competições de programação;
  • Estudar estruturas de dados básicas e avançadas comumente utilizadas em competições de programação;
  • Estudar algoritmos eficientes de busca e ordenação de dados;
  • Estudar diferentes teorias de números;
  • Apresentar e estudar diferentes tipos de paradigmas de soluções de problemas;
  • Apresentar os conceitos e os principais algoritmos de grafos;
  • Apresentar e estudar os algoritmos de processamento de strings e geometria computacional;
  • Identificar qual o melhor algoritmo ou estratégia deve ser usada para resolver diferentes problemas.

Programas e Sites

Bibliografia

Notebooks